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

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

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

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python

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

Q&A

解決済

1回答

3307閲覧

CNN回帰でval_loss(trainデータ)がloss(validationデータ)と比べ小さくなる現象について

Kohei_KESE

総合スコア41

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python

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

0グッド

2クリップ

投稿2018/11/26 08:54

現在、用意した画像データ(150枚)と画像に一対一で対応する数字データを教師データとし、画像から数字を推論しようと試みています。そのときのlossとval_lossの値を図示したとき下記のようになりました。今回用意した画像と教師データの品質が良くないので、val_lossの値が想定より高い値となったのは良いのですが、trainの値がvalidation(図内ではtestと表記)よりも高い値となった理由がわかりませんでした。ざっくりとした質問で申し訳ないのですが、どういった要因が考えられるか教えて頂きたいです。
図

計算条件
・試したモデル(Lenet,AlexNet, VGG)
→いずれのモデルでもtrainのほうが大きくなりました。
・画像サイズ256*256
・Optimizer : Adam
・Batchsize : 32
・loss : mean_squared_error
・metrics : MSE (or MAE)

試しにMNISTのラベルを回帰させてみましたが、再現できませんでした。
他MNISTで試したこと
・ラベルに乱数を足す
・画像のサイズをresizeで拡大
・ガウシアンノイズを足す。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Dropout を入れてるからではないでしょうか?

投稿2018/11/26 08:58

tiitoi

総合スコア21956

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

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

Kohei_KESE

2018/11/27 02:53

Dropoutをはずしたら改善しました!回答ありがとうございます。 それと、どういった理由でDropoutが悪さをしているのか、理由や参考になるサイトがあれば教えて頂けないでしょうか?
tiitoi

2018/11/27 04:23 編集

Dropout は訓練時にランダムにニューロンを脱落させ、そのニュを使わないで学習することで過学習を防ぐテクニックです。 推論時は脱落させずすべてのニューロンを使います。 なので、モデルの表現力は学習時より推論時のモデルのほうが高いので、validation error のほうが低くなるのは自然なことです。 悪さをしているわけではなく、Dropout の本来の意図通り動いているということなので外さなくてもいいでしょう。
Kohei_KESE

2018/11/27 05:42

trainがなかなか下がらないのはdropoutを入れているから収束しづらくなっているからで、validation自体はdropoutにより汎化されるから下がりやすくなるという解釈であってますか?
tiitoi

2018/11/27 06:07

図を見ると、validation loss のほうが低いだけで training loss もちゃんと下がっていってますよね? training loss は dropout によりモデルの一部のニューロンのみ使って計算された値です。 マラソン選手は練習のときは足に重りを付けて、走る練習をしていると聞いたことがあります。練習の際にわざと制約をつけて負荷を上げることで、本番でパフォーマンスを発揮できるようにするわけですね。 それと同じで制約を課して訓練して、推論時は制約をはずしてモデル本来の能力が活用されているわけです。
Kohei_KESE

2018/11/27 06:14

わかりやすい例えありがとうございます。だいぶ理解を進めることができました。 回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問