どうも、とがみんです。
機械学習において、データを学習させる際、バッチ学習、ミニバッチ学習、オンライン学習といった手法があります。
それぞれがどういった学習方法なのか、また、メリット・デメリットについて紹介していきます。
Contents
バッチ学習とミニバッチ学習
機械学習において、一定量のデータを集め、そのデータのまとまりを一括で処理させて行く学習ほうがあります。
その一定のデータ量、すなわちバッチのサイズによって、「バッチ学習」と「ミニバッチ学習」に分けられます。
「バッチ学習」は、学習データが1万個ある場合に、その1万個のデータ全てを用い、その損失関数の平均を計算させ、パラメータを学習させます。
「ミニバッチ学習」は、1万件のデータがあった場合、例えば、その1万件のデータからランダムに100件選び(ミニバッチ)、その損失関数の平均を求め学習させ、学習が終わったら、また100件ランダムに選び学習、といったのを繰り返していくといった手法です。
この繰り返しを100回行うと、全データ分カバーしたことになり、この単位をエポックと言います。
バッチ学習は、学習させるデータの順序による影響や、外れ値によるノイズの影響を受けにくいと言ったメリットがあります。
しかし、モデルの更新をする必要があった場合、必要なデータを全て揃え、モデルを作り直す必要があるといったデメリットがあります。
機械学習では、ユーザーの行動は常に一定ではないので、モデルの更新を行う必要があるケースがあります。
世の中の状況が変われば、既存のモデルでは予測できない状況が生じる可能性があるので、
そのような状況になった場合、必要なデータを全て揃え、モデルを作り直す必要が出てきてしまいます。
オンライン学習
オンライン学習とは、学習データが一つ与えられるたびに、与えられたデータのみを用いて逐次的にモデルを改良して行く学習手法です。
メモリやキャッシュに全データが乗らないほどの規模のデータ解析や、永続的にデータが生成される環境下での学習が効率化できます。
バッチ学習とは違って、ユーザーの行動の変化にすぐに対応することができ、モデルを新たに作り直す必要はありません。
しかし、学習させるデータの順番によって、そのデータがモデルに与える影響度が変わってしまったり、
データを1件ずつ学習させるので、ノイズに弱いといったデメリットがあります。
>Vol.30.No.5(2015/09)オンライン学習(Online Learning)
まとめ
機械学習における学習方法について、バッチ学習・ミニバッチ学習・オンライン学習についてと、そのメリット・デメリットについて紹介しました。