🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1477閲覧

最小二乗誤差 tensorflow

uedayuya

総合スコア17

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/11/02 15:49

編集2019/11/02 15:57

##やりたいこと
入力値に対する目標値に近い値を出力したい。
csvファイルの中身は以下のようになっています。

##問題
以下のコードで出力値と目標値の誤差を縮めようとしたのですがなかなか縮まりませんでした。

pot1 pot2 pot3 ... pot398 pot399 pot400 angle 0 6.770000e-13 2.310000e-09 3.000000e-06 ... 5.080000e-81 5.150000e-86 7.280000e-92 270 1 9.620000e-13 5.120000e-09 5.540000e-06 ... 6.020000e-82 4.080000e-87 3.880000e-93 0 2 1.060000e-12 5.890000e-09 6.370000e-06 ... 6.020000e-82 4.080000e-87 3.880000e-93 0 3 5.550000e-13 1.020000e-09 1.600000e-06 ... 6.020000e-82 4.080000e-87 3.880000e-93 0 4 5.550000e-13 1.020000e-09 1.600000e-06 ... 6.020000e-82 4.080000e-87 3.880000e-93 0 ... ... ... ... ... ... ... ... 11977 1.430000e-36 8.270000e-31 6.640000e-26 ... 1.360000e-12 5.510000e-17 3.120000e-22 0 11978 4.860000e-37 2.820000e-31 2.270000e-26 ... 2.070000e-12 8.420000e-17 4.760000e-22 0 11979 4.860000e-37 2.820000e-31 2.270000e-26 ... 1.230000e-12 4.120000e-17 1.910000e-22 0 11980 1.630000e-37 9.440000e-32 7.580000e-27 ... 1.230000e-12 4.120000e-17 1.910000e-22 0 11981 1.630000e-37 9.440000e-32 7.580000e-27 ... 7.070000e-13 1.940000e-17 7.380000e-23 180

python

1 2import pandas as pd 3from sklearn.model_selection import train_test_split 4from sklearn.metrics import accuracy_score 5import numpy as np 6import tensorflow as tf 7 8# データの読み込み 9f_data = pd.read_csv("csv/4-5/potential4-5.csv", encoding="utf-8") 10 11# データをラベルと入力データに分離する (使うのは最後) 12y_data = f_data.loc[:,["angle"]] 13x_data = f_data.iloc[:, range(0,400)] 14x_train, x_test, y_train, y_test = train_test_split( 15 x_data, y_data, test_size=0.2, random_state=42) 16 17 18 19x = tf.placeholder(tf.float32, [None, 400]) #入れ物 20y_ = tf.placeholder(tf.float32, [None, 1]) 21 22W = tf.Variable(tf.zeros([400, 1]))#変数 23b = tf.Variable(tf.zeros([1])) 24 25#y = W*x+b 26y = tf.add(b, tf.matmul(x, W))#入れ物と変数で関数を作る 27 28loss = tf.square(y - y_)#(y-y_)^2 29losses = tf.reduce_sum(loss)#Σ(y-y_)^2 30train = tf.train.AdamOptimizer().minimize(losses) 31 32init = tf.initialize_all_variables() 33 34sess = tf.Session() 35sess.run(init) 36 37for epoch in range(400001): 38 #入れ物にデータを入れる 39 sess.run(train, feed_dict={x:x_train, y_:y_train}) 40 if epoch % 100000 == 0: 41 #入れ物にデータを入れる 42 losses_val=sess.run(losses, feed_dict={x:x_train, y_:y_train}) 43 print(epoch, losses_val) 44 45###########

誤差は以下になります。

epoch loss 0 144098800.0 100000 80782540.0 200000 79544110.0 300000 79425140.0 400000 79354920.0

データのangleは0が多いため、最小二乗誤差に合わないようなものだから誤差が大きいのは仕方がないということでしょうか?
ご教授ください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

訓練データの値が小さすぎることが原因でしょう。ほとんどが0として認識されているはずです。(精度が足りない)
データを-log10(data)のように変換して, 今一度挑戦してみてはいかがでしょうか。

投稿2019/11/06 11:03

WathMorks

総合スコア1582

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問