MNISTを通して画像分類の機械学習を勉強していますが、
結果の見方がよくわかりません。
結果には
・学習データに対しての精度(acc)
・検証データに対しての精度(val_acc)
・テストデータに対しての精度(test_accuracy)
があります。
これらの違いがよくわっていません。
理解したいので、
下記私の理解で正しいか教えて下さい。
学習データに対しての精度
MNISTのデータセットには
学習データ60,000枚
テストデータ10,000枚
のデータがあり
学習データは検証用として分割を行います。
0.2で分けたとします。(Validation_split = 0.2)
そうすると
学習データ:48,000枚
検証用12,000枚
とデータが分割されます。
エポック200で
バッチサイズが128だった場合で考えると、
1エポックの学習は
48,000枚/128で、
合計375個のインテレーションに分けられ1エポックとして学習されます。
そうすると
学習データに対する精度(acc)とは、
1エポックの中で学習し、バックプロパゲーションを画像一枚づつ行いながら精度を更新しその結果を示している。
(128枚×375インテレーション = 48,000回の更新をした結果を示している)
例えば
3/200 epochであれば
128枚×375インテレーション×3epoch= 144,000枚分の画像を取り込み、学習を更新した結果を示している
検証データに対する精度とは、(val_acc)
そのepochで学習が更新された最もロスEが低くなったとされる重みの設定で、
検証データである12,000枚のデータを認識させ
出力した精度を言う
この時重みの更新はされていない?
バックプロパゲーションは起こっていない?
最後にテスト用の画像データは
200/200 epochで更新された重みの設定で
テスト用の10,000枚の画像を対象として画像分類を行った精度を出力している
こちらも検証データと同様に学習の更新は行なっていない
検証データの結果とテスト用画像の結果違いは
毎epochで検証データは結果を出力するが、
テスト用画像の結果は最後の重みの更新が終わるまで検証しない
したがって200/200epochの検証データに対する結果とテストデータに対する結果は近くい値が出る。
長文失礼しました
この理解が正しいか一度みて頂けますでしょうか。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/31 13:36
2021/02/01 09:59
退会済みユーザー
2021/02/01 12:00