

独学で深層学習を学び始めた初学者です。  
表題の3種類の学習法について、以下の理解でよろしいでしょうか。

1000枚の訓練画像でエポック数20の場合、  
・オンライン学習 - 1回の学習で全てのデータを使用するため、1エポック内で学習は1回  
・バッチ学習 - 1枚ずつ重みの更新をするため、1エポック内で学習は1000回  
・ミニバッチ学習 - バッチサイズ10の場合、訓練画像は100セットに分けられるため、1エポック内で学習は学習は100回

1エポックは全ての（に相当する）訓練データを使用した学習が1回終わることと理解しています。  
よろしくお願いします。


CC BY-SA 4.0
2018-09-02T06:33:56.040
48021
2019-02-26T00:20:16.353
29953
question
深層学習
オンライン学習、バッチ学習、ミニバッチ学習の違い


バッチ学習 ：全てのサンプルデータを用いて学習する  
オンライン学習：サンプルデータのうち1つだけ(ランダムに)選んで学習する  
ミニバッチ学習：ミニバッチサイズを10とすると  
サンプルデータのうち10つ(ランダムに)選んで学習する  
全サンプルデータが1000枚だとすると  
バッチ学習：1回学習すれば1エポック  
オンライン学習：1000回学習すれば1エポック  
ミニバッチ学習：100回学習すれば1エポック


CC BY-SA 4.0
2018-09-02T15:20:38.147
48032
2018-09-02T15:20:38.147
25980
48021
answer


厳密にはバッチ、オンライン、ミニバッチとは、ネットワークのパラメータ（重み）更新のタイミングです。

バッチ：全部学習してから更新（学習する順番の影響がない、メモリ容量が大きくなりがち）  
オンライン：１データ学習する毎に更新（最初より最後のデータの影響が大きい）  
ミニバッチ：N個（分類したいクラス数より大きい数 10倍くらい）のデータを学習してから更新

ネットワークのパラメータ（重み）は最初はランダムで、損失が少なくなるように更新する（学習）ことで、  
学習データの特徴を反映した出力を得ることができます。


CC BY-SA 4.0
2019-02-26T00:20:16.353
53037
2019-02-26T00:20:16.353
32319
48021
answer