■人工知能

人工知能の作り方【機械学習のイテレーション】

■人工知能

 こんにちは黒部です。
今回は機械学習において学習データを繰返し学習させるイテレーションについて解説します。本記事を読むことで人工知能の作り方について知識がアップします。

本記事の目標とレベル

目標 :イテレーションの概要を理解する
レベル:★★☆☆☆

人工知能の作り方【機械学習のイテレーション】

 人工知能は学習データを繰返し学習していくことで、学習データと出力データの差(訓練誤差)が小さくなって予測や分類の精度が向上していきます。

 この繰返し学習をしていく反復処理のことをイテレーションといい、人工知能の作成には不可欠なステップです。本記事ではこのイテレーションの方法について解説し、人工知能の作り方について理解を深めていきたいと思います。

機械学習におけるイテレーションのポイント

 例えば機械学習によって画像判別の機能をもった人工知能を作る場合、数百~数千枚の画像情報をコンピュータに入力して学習させます。このデータを入力→学習→モデル修正のサイクルをイテレーションといい、この仕方によって以下のような違いが生れます。

【イテレーションの仕方で生まれる違い】
・モデル性能の安定性
・学習時間
・使用するメモリ量
・リアルタイムでのモデル修正可否

 イテレーションには主に3つの方法があり、それぞれ上記の違いを含めたメリット・デメリットがあります。

【イテレーションの主な3つの方法】
・バッチ学習
・ミニバッチ学習
(ディープラーニングで常用)
・オンライン学習

本記事ではこの3つの方法について解説していきます。

バッチ学習

 全てのデータを一括で学習させる方法。

【メリット】
・人工知能の性能が安定する
・学習時間が短い
・全データを均等に扱える
【デメリット】
・一括で読み込むためメモリ量が必要
・モデル作成後にデータを追加したい場合、再び全データを学習させる必要がある

【補足説明】
 バッチ学習は短時間でモデルを作成するのに有効です。さらには全データを同時に学習するので多少の異常データには影響を受けず、人工知能の性能が安定します。
 しかしながら、全データを一括で学習してモデルを作成するため、株式市場のように新しいデータがどんどん追加されていくものに対してリアルタイムで学習させていくことはできません。

ミニバッチ学習

 全データをミニバッチという少数単位のデータ群に分割して学習させる方法。ミニバッチをランダムに読み込んで学習を繰返し、最終的に全データを学習する。

【メリット】
・モデル完成後も新しいデータを追加してモデルを修正できる
・メモリ量が小さくて済む
【デメリット】
・学習時間の合計はバッチ学習より長い
・ミニバッチを読み込む順番で人工知能の性能に差がでる(後半に読み込んだデータの影響の方が大きい)
・異常データが入力されると人工知能の性能が落ちる。

【補足説明】
 ミニバッチにどれだけのデータを入れるか(バッチサイズ)によっても結果が変わってきます。新しいデータを追加してリアルタイムでモデルを修正できるため、先ほどバッチ学習では不可能だった株式市場のトレード予測にも有効です。
 しかしながら、小さなデータ群ごとに学習するため、ミニバッチの中に異常値があっても、異常値と捉えられずにモデルに反映してしまい、人工知能の性能が安定しないことがあります。

 ディープラーニングは扱うデータ量が多いため、ほとんどがミニバッチ学習を利用しています。

オンライン学習

 データを一つ一つ読み込んで、そのたびに学習してモデルの修正を繰り返す方法。
データを分割して学習するという点で、ミニバッチ学習も分類的にはこのオンライン学習に含まれます。

【メリットデメリット】
・ミニバッチ学習と同じ

【補足説明】
 データを一つずつ学習させるため、ミニバッチ学習よりも必要なメモリ量が小さく、モデル修正サイクルが早いです。しかしながら、ミニバッチ学習よりも学習時間の合計が長く、異常値のデータを受けやすいです。

おわりに

 イテレーションの概要と、バッチ学習、ミニバッチ学習、オンライン学習について解説しました。どのイテレーション方法で人工知能のモデルを作っていくかは目的によって判断していくことになります。人工知能開発に携わらなくても、今後AIツールを使用する時に、このAIはどういったイテレーションで学習をしているのかを知れば、より効果的にAIツールを使いこなすことが出来るようになります。

 以上で本記事の解説を終わります。