テクノロジー

実際に作って学んでみよう!機械学習のモデルとは・その作り方も解説

実際に作って学んでみよう!機械学習のモデルとは・その作り方も解説

機械学習は近頃様々な場面で目にするAI(人工知能)と深い関わりがあります。機械学習とは、コンピュータがデータを学習し、新たなデータについて答えを出すことができるようにする訓練のことです。もしかしたら、近年非常に活発に研究開発が行われている分野で、既に調べたことがある、実際に作って試したことがあるという人もいるかもしれませんよね。

基本的に機械学習は、プログラミング又はソフトウェアを用いて開発しますが、数学やアルゴリズム等プログラミング以外の様々な知識を必要とします。普段からプログラミングを行う人であっても上記の知識がない状態では機械学習について調べようとしても、全容が掴みにくいでしょう。

機械学習に全く触れたことのない人は、まず全体構造を理解することから始めましょう。機械学習、機械学習モデルとは何か、どのようにして作るのか、どの工程でどんな知識が必要なのか、これらを頭に入れておくだけでも今後の学習に非常に役立ってきます。

そこで今回は、機械学習の肝である機械学習モデルとは何か、またその作り方をお伝えします!

機械学習のモデルの定義を簡単に説明!

データのイメージ

まず機械学習のモデルとは、入力値を受け取り、評価・判定をして出力値を出すものです。

例えばiPhoneに搭載されているSiriは音声認識の機械学習モデルが元となって人間が話している音声を入力値として認識し、それを文字に変換することができますし、自動運転の車は画像認識の機械学習モデルが元となって道の画像を入力値としてその中で車線や他の自動車、障害物を認識できます。

つまり機械学習モデルが出力値を出す場合は事前に「Aと来たらBと返す」のようなプログラミングはされておらず、膨大な量のデータを学習し、その統計から傾向を推理して機械学習モデルが独自の答えを出力します。

そのため、一見関連性ながないデータから傾向を見つけ出して開発者の意図以上の答えが返ってきたり、人間では判別できない問題も解決できることもあるでしょう。

機械学習を理解するうえで重要な「予測分析」とは

予測分析のイメージ
予測分析とは将来その結果が出る可能性を過去のデータにもとづいて特定する分析方法です。身近な例でいうと、1990年代前半にウォールストリートジャーナルという新聞から「おむつを買う顧客は同時にビールも買う」という調査結果が出たことです。

このような結果は2つのデータに関連性がないので、普通に考えるとあり得ない関連性に見えますよね。しかし顧客の購入履歴を統計し分析してみると意外な関連性が見えてくることもあるでしょう。これらのデータを元に商品の品ぞろえを変えることで売り上げの向上を図ったり販促活動の実効性を高めたりすることができます。

この予測分析をプログラムを利用して実現する手段の一つが機械学習です。

実際の機械学習のモデルの作り方

データのイメージ
では実際に機械学習のモデルの作り方を紹介していきます。基本的な作り方の流れとしては

  • 学習させるための大量のデータを用意する
  • データに意味を持たせる
  • 機械学習によってモデルを学習させる

となります。順番に見ていきましょう。

学習させるための大量のデータを用意する

まず、必要となるデータの数ですが、これはAI(人工知能)の用途によって変わってくるため一概にこれだけのデータがあればOKというふうに断定することができず、現状は人間が推測するしかありません。

例えば、人の顔を識別するAI(人工知能)を作る場合は人種、肌の色、性別の違う写真を10000通りくらいは用意する必要があります。またAI(人工知能)が自分の顔だけ認識できればいいのであれば、様々な角度から撮った画像であったり明るい場所、暗い場所で撮ったもの等を揃えて100~200通りの写真で大丈夫といったように、試行錯誤しながらデータを集める必要があります。

続いてデータの集め方についていくつか説明しましょう。

1つ目は動画から画像を集める方法です。動画は画像データをパラパラマンガの要領で動かしアニメーションにした物なので、例えば、30分の動画でフレームレートが30fpsだと、1秒に30コマの画像があるということなので1コマ1コマ区切れば54000枚の画像を得ることができます。

2つ目はWebサービスを利用する方法です。例えば画像データであればGoogleの画像検索で大量に取得することができるでしょう。手作業で1枚1枚保存するのでは時間がかかりますが、アプリやウェブスクレイピングの技術を使うことで、一括でダウンロードできます。

データに意味を持たせる

機械学習では目的変数(生存有無)と説明変数(その他パラメータ) という要素があり、これらの関係性を整理して、ある程度相関関係のある説明変数をモデルに突っ込む必要があります。

例えば、動物園の入場者数(目的変数)の予測に対して天気のパラメータ(説明変数)は関係性があるように見えたり、別の例で言うと来場者数(目的変数)と動物園内にいるアリの数(説明変数)は関係なさそうですよね。このように目的変数と説明変数の相関の有無を整理して、必要に応じて修正しつつモデル作成時に説明関数としてモデルに突っ込みます。

この作業をデータクリーニングといいます。この作業が機械学習によるモデル作りの9割くらいを占めます。

機械学習によってモデルを学習させる

データを用意し、データクリーニングを行った上で実際にモデルに学習させていきましょう。機械学習で使用されるアルゴリズムを大きく分けると、教師あり学習、教師なし学習、強化学習の3つに分類されます。

教師あり学習

教師あり学習とは「正しいデータ」という教師をつけてAI(人工知能)に学習させていく手法です。膨大な量の正解となるデータを学習することによって、新しいデータが入力されたときでも正しいデータに近いかどうかで対応が可能となるでしょう。

教師あり学習のプロセスは「学習」と「認識・予測」の2段階にわかれています。「学習」とはまず、「正しいデータ」を大量にインプットし、AI(人工知能)がそのデータに共通するルールやパターンを学習します。そのあと入力された「正解がわからない新しいデータ」に対して、学習したルールやパターンを元に「認識・予測」をするという流れになっています。これらの代表例には、回帰や分類があります。

教師なし学習

教師なし学習は教師あり学習と違い、正しいデータ」を使わずデータから共通する特徴を持つグループを見つけたり、データを特徴づける情報を抽出したりする手法です。

例としては教師なし学習の手法の一つである主成分分析を利用して、身長、体重、走る速さ、ジャンプの高さなど人間のさまざまなパラメータから身長と速さの関係や、体重とジャンプの高さの関係等の情報に切り出していくことなどがあげられます。

強化学習

強化学習とは、試行錯誤を通じて「価値を最大化するような行動」を学習する手法です。例としてはテトリスでできるだけ高スコアを得るような問題等が挙げられます。

教師あり学習では、その場で点数を得ることが「正しいデータ」なので、一列でもいち早く揃えようとするのですが、実際に高得点を得たい場合は、その場では得点にならなくてもできるだけ積み重ねて一気に消したほうがより大きな得点を得ることができるでしょう。つまり強化学習ではその場の結果だけでなく、一連の行動をとった結果ごとに評価し、その価値が最大化するように学習していきます。

機械学習のモデルを作るときの注意点

過学習のイメージ
機械学習モデルに学習させる場合、間違ったやり方をしてしまうと見当違いの答えを返してくるモデルができてしまうことがあります。ここでは機械学習モデルを作るときの注意点について紹介しましょう。

過学習にならないよう気をつける

過学習とは機械学習モデルにデータを学習させすぎて、学習したデータ以外認めないモデルになってしまう状態のことを過学習となります。

この状態になってしまうとモデルを作成していて検証中は精度の高い結果が出力されても実際に使用する際は使い物にならないという事態に陥ることも。この状態を防ぐためには、学習データの量を増やしたりモデルをより簡単なものにするなどして汎用性を高めることで過学習になることを抑制することができるでしょう。

手持ちのデータを学習用データとして使いすぎない

手持ちのデータを全て学習用データとして使用してしまうと、適合し過ぎたモデルができ上がってしまうのえ、逆に精度が低くなってしまうことも。このため機械学習を行う際には学習に使用するデータ、パラメータ等の調節に使用する検証用のデータ、精度テストに使用するデータの3種類を用意しましょう。

そして学習用データを用いて機械学習モデルを作り、検証用データを用いて過学習のないように調整しバランスの良い結果のモデルを作ります。そしてモデルの精度チェックをする際はモデル作成に全く関わっていないテストデータで精度を確認することにより、より汎用性能の高いモデル作りができるでしょう。

まとめ

さて、今回は機械学習のモデルとは、またその作り方についてお伝えしました。一つ一つの工程で細かな調整は必要ですが、「実際に機械学習のモデルの作り方」で紹介したように必要な工程は

  • 学習させるための大量のデータを用意する
  • データに意味を持たせる
  • 機械学習によってモデルを学習させる

の3つです。今回は工程だけの紹介なので更に勉強したい方、プログラミングベースで勉強したい方は紹介した工程を元に調べましょう。

機械学習のすごいところは、音声・画像認識、戦略ゲーム等で人間を上回るレベルの結果が出てきていることです。例えば画像認識技術が将来的に医学診断に応用され、人間が識別困難なものでも識別可能で人間よりも効果のある診断ができるようになっていく等、今後IT技術の枠に収まらず様々な分野で機械学習の技術は活躍していくことでしょう。

もし興味を持って頂けたのであればぜひ自分で機械学習モデルの作成にチャレンジしましょう。

トップへ戻る
タイトルとURLをコピーしました