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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

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

Q&A

解決済

2回答

9003閲覧

CNNにおけるlossとaccの解釈について

退会済みユーザー

退会済みユーザー

総合スコア0

Keras

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

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

0グッド

0クリップ

投稿2018/10/19 04:21

編集2018/10/19 04:58

実現したいこと

CNNにおけるlossとaccの値から読み取れることを確認したいです。

質問

val_lossが大きいと共にval_accも大きい時、どういうことがCNNで起きているのでしょうか。
lossが大きくaccが小さいならば学習が進んでいない、val_lossが大きくaccが大きいなら過学習ということはわかるのですが
上記のタイプはどのように解釈すべきでしょうか。

学習設定

task: binary classification
model: ResNet101
Optimizer: SGD(lr=1e-4, momentum=0.9)
loss function: cross entropy
epoch: 300

モデルのコード

GitHubに上がっているkerasでのResNetコードを拝借いたしました。

結果画像

accuracy

loss

こちらは補足ですがResNet34を用いた際の学習曲線です
accuracy
イメージ説明
loss
イメージ説明

どちらもあまりうまく学習が進んでいないことがわかります…

追記

lr=1e-3としたところ以下のような画像になりました。
やはりlossもaccも高いという現象が見られるような気がするのですが…
イメージ説明
イメージ説明

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

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

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

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

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

tiitoi

2018/10/19 06:49

追記の内容みると、訓練誤差は落ちていて、バリデーション誤差が停滞しているので、データ数が足りない等で過学習気味ということではないでしょうか?
hayataka2049

2018/10/19 08:14

なにをもって「高い」としているのかよくわかりません。lossに関して言えば、値の絶対的な位置はネットワークとデータによるので、増加減少の傾向だけ見れば良いです
guest

回答2

0

val_lossが大きいと共にval_accも大きい時

原理的にないかと。質問のデータも、そうは解釈できません。

ResNet101はよくわかりません。ResNet34の方はよく見る過学習パターンなので、パラメータやネットワーク構造をチューニングすれば素直に改善するかと。

投稿2018/10/19 04:39

hayataka2049

総合スコア30933

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

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

0

ベストアンサー

過学習しているだけのように見えます。

lossが下がって、
accが上がって、
val_lossは下がらず、
val_accは上がっていない
という状態です。

学習率を下げて、バッチサイズを少し大きくしてみてはいかがでしょう。

val_accは高いという判断は、他のモデルと比べて、などでしょうか?

投稿2018/10/19 08:16

mkgrei

総合スコア8560

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

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

退会済みユーザー

退会済みユーザー

2018/10/19 09:36

ご回答ありがとうございます。性能評価に関する記述が抜けていたこと申し訳ありません。 高いというのは全く学習していない状態に比べて、つまりaccが0.5のときのことを指していたつもりでした。(今回扱うデータの各カテゴリ(0 or 1)の数は1:1になっています) なのでlossが低くならないのにaccは0.5より高くなっていてこれは学習しているのかしていないのか別の状態なのか見分けがつかなくなった次第です。
mkgrei

2018/10/19 11:04

学習速度が速いように見えます。 エポック数に対して、lossが急激に下がりきっています。 結果その後の学習が止まっているように見えます。 過学習した時に、valデータが「リーク」しているとval_accだけ上がるように見えます。 未知データに対しては学習がうまくいっていないので、val_lossは下がりにくいです。 基本的に青とオレンジの線が乖離すると不測のことが起こります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問