ミニバッチサイズとエポックごとの反復について

エポック数とミニバッチサイズを指定し、学習(2種分類問題)しました。
学習データ数(2種合わせて) 5801枚を用いて、学習オプションを下記のように設定しました。
options = trainingOptions('sgdm', ...
'InitialLearnRate',0.001, ...
'Shuffle','every-epoch', ...
'ValidationData',testImages, ...
'MaxEpochs',5, ...
'ValidationFrequency',5,...
'Verbose',true, ...
'MiniBatchSize',290, ...
'Plots','training-progress');
学習データ数とミニバッチサイズからエポックごとの反復は(5801/290 = ) 20になると考えました。
しかしながら下図のようにエポックごとの反復が4になってしまいます。なぜこのような結果になるのでしょうか?
出力.bmp

 채택된 답변

Hiroyuki Hishida
Hiroyuki Hishida 2019년 11월 6일
편집: michio 2019년 11월 6일

1 개 추천

Yoshino様、
学習に使う画像と申しますかそのデータストアを、学習用と検証用に分けられていませんか?
なお、同種のQ&Aもありますので、あわせて確認してみてください。
よろしくお願いします。
菱田

댓글 수: 3

Yuki Yoshino
Yuki Yoshino 2019년 11월 6일
ValidationData(検証用)としてあらかじめ学習データ数(5801枚、学習用)とは別に683枚分けています。
Hiroyuki Hishida
Hiroyuki Hishida 2019년 11월 7일
편집: Hiroyuki Hishida 2019년 11월 7일
Yoshino様、
回答ありがとうございます。でしたら、michio からのコメントも一読いただいた後、以下二点を確認してみてください。なお、説明用のスクリプト(sample.m)では以下のURLにある「深層学習における学習の進行状況の監視」を使用しております。
Iteration数の計算
こちらはYoshino様のおっしゃるとおりです。端数処理についてはmichio のコメントにあるリンクを参照ください。
下図のようにエポックごとの反復が4
実際にはIteration数の計算が走っておりますが、プロットするタイミング(回数)は、上記の計算で求めたIteration数を、ValidationFrequencyで設定している値で割り算したものになります。従いまして、このケースですと20÷5=4となっております。
サンプルスクリプトと、trainingoptionを変更して走らせた結果をいくつか添付しておりますので、動かして確認してみていただければ、理解が進むかと思います。
よろしくおねがいします。
菱田
Yuki Yoshino
Yuki Yoshino 2019년 11월 7일
菱田様、michio様
理解いたしました。ありがとうございました。

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Deep Learning Toolbox에 대해 자세히 알아보기

제품

릴리스

R2019b

질문:

2019년 11월 6일

댓글:

2019년 11월 7일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!