トレーニング(訓練)データの学習方法
機械学習という言葉が表す通り、学習させたモデルを使って、予測や分類する事ができます。
今回は教師あり学習の際に用いる代表的な3つの方法があるのでご紹介します!
バッチ学習
トレーニングデータの全ての誤差を計算し、学習する方法
精度は良いですが、全てが学習させるため処理時間やメモリ使用量が大きる傾向です。
ミニバッチ学習
トレーニングデータからランダムに小さなまとまり(ミニバッチ)を使って学習する方法
バッチ学習と次に記載するオンライン学習のいいところを合わせ持つため、一般的によく使われる学習方法。
ミニバッチ学習はバッチ学習に比べ学習に使用するデータを少ないため、計算量が少なくできます。
<バッチ学習で使われる用語>
小さなまとまり(ミニバッチ)を作りますが、その際によく出てくる用語が3つあります。
epoch(学習回数)・iteration(繰り返し数)・batch size(1グループの数)です。
これはもし合計データが1000コあり、それらを100コずつのセットを作るとすると、10セット作る事ができます!
それを3つの用語を使うと以下のようになります(^ ^)
- epoch(学習回数):②×③を何回学習させるか
- iteration(繰り返し数):10回繰り返す
- batch size(1グループの数):100コのデータセット
バッチ学習の用語イメージ
オンライン学習(逐次学習)
トレーニングデータのうち1つをランダムに選んで学習する方法
1つを学習させ、速度が速いですが、偏りのあるデータ等では精度が悪くなる事もあります。
まとめ
機械学習をする上で、ミニバッチ学習をよくみます。
その中で用語を知らないと何しているのか、どうしたら精度がよくなるのか、
が分からなくなるので、しっかりと理解する事をおすすめします!
それでは今日はここまで。
プログラミングを始めようと思った際は独学で勉強すると挫折する可能性が高いため、スクールも考えてもいいと思います!
機械学習の全体を勉強するなら、TechAccademyのはじめてのAIコース とかはいいかもしれません