質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
深層学習

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

Neural Network Console

Neural Network Consoleは、ソニー社が開発したディープラーニング・ツール。ニューラルネットワークを視覚的に設計することが可能で、学習や評価をスムーズに実現できます。また、ニューラルネットワークを自動的に構築する機能も備わっています。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

解決済

1回答

1676閲覧

ニューラルネットワーク 各エポックごとの重み更新について詳しく知りたい

TA_88

総合スコア3

深層学習

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

Neural Network Console

Neural Network Consoleは、ソニー社が開発したディープラーニング・ツール。ニューラルネットワークを視覚的に設計することが可能で、学習や評価をスムーズに実現できます。また、ニューラルネットワークを自動的に構築する機能も備わっています。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2021/01/24 09:40

前提(認識)・質問

現在私は、ニューラルネットワークの回帰分析を行っています。その中で行われるニューラルネットワークの重み更新について、ざっくりですが私は以下のように解釈しております。
**(1)**訓練データを学習させ、重み(W1)を決める
**(2)**テストデータに重み(w1)をかけ計算を行い予測値を出す.次に予測値と正解値の誤差を求める(1エポック目)
**(3)**その誤差が小さくなるように重みを調整、新たな重み(W2)を決める
以降(2),(3)を繰り返す

分かりづらい文章で申し訳ないですが、そもそもこの認識は正しいのでしょうか。
また、あっている場合いくつかの疑問点があります。
疑問1
「エポックは一つの訓練データを何回繰り返し学習させるか」と説明されているサイトがありました。
この考えに基づくと(3)において、1エポック目の結果(誤差)から重みの最適値を予測し、訓練データの学習を行いながら再度重みを調整するのでしょうか。

疑問2
もし疑問1のエポックの考え方が正しい場合、
2エポック目以降、テストデータの予測結果を踏まえた上で訓練データの学習を行っていると考えると、テストデータをカンニングしていることになりませんか。
これは正しい学習といえるのでしょうか。

勉強不足であることはわかっていますが、重み更新について疑問が残るばかりであるため、詳しく教えていただけると嬉しいです。

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

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

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

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

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

guest

回答1

0

ベストアンサー

テストデータをカンニングしていることになりませんか。

テストデータはモデルの汎化性能を学習中に算出したい場合は使いますが、その誤差を重み調整には使いません。重み調整に使う誤差はあくまで訓練データとその正解データとの誤差です。

なので、

diff

1- (2)テストデータに重み(w1)をかけ計算を行い予測値を出す. 2+ (2)訓練データに重み(w1)をかけ計算を行い予測値を出す.

投稿2021/01/24 09:46

編集2021/01/24 09:48
tiitoi

総合スコア21956

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

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

TA_88

2021/01/24 09:53

回答ありがとうございます。 その場合、一番最初(1エポック目)の重みはどのように決めるのでしょうか。
tiitoi

2021/01/24 10:07 編集

最初は重みの値はランダムな値で初期化します。 ランダムといっても一様分布の乱数以外にもいろいろな初期化方法があります。 Keras や Pytorch のようなフレームワークは重みの初期化方法を指定するような機能があります。
TA_88

2021/01/24 10:17

ありがとうございます。 とても分かりやすく理解することができました。 最後に一つだけ質問なのですが、フレームワークで初期化方法を指定しない場合は、自動的に一様分布の乱数で初期化されるのでしょうか。
tiitoi

2021/01/24 12:03

それはフレームワークの仕様によります。 デフォルトがなんであるから使用するフレームワークのドキュメントに書いてあるのではないでしょうか。
TA_88

2021/01/24 13:56

わかりました。確かめてみます。 多くの質問に答えてくださりありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問