おさらい! 機械学習(その1)

【連載】

教えてカナコさん! これならわかるAI入門

【第9回】おさらい! 機械学習(その1)

[2017/09/15 09:30]大西可奈子 ブックマーク ブックマーク

  • ソリューション
  • ● 関連キーワード
  • AI

ソリューション

前回までに、機械学習でメジャーな3つの手法について説明しました。今回はおさらいとして、ここまで学んできたことを振り返るとともに、皆さんからいただいた質問に答えていきたいと思います。

機械学習を活用するために必要な「2つのコト」

この連載のテーマでもある「人工知能(AI)」という言葉ですが、実は厳密な定義はありません。最近は特に、人工知能と言えば機械学習のことだというイメージが広まっているようですが、人工知能と呼ばれているものが必ずしも機械学習を用いているわけではありません。今の世の中には、非常に簡単なルールで実装されている人工知能から、最新の技術を用いた人工知能まで幅広く存在しているのです。

機械学習は、データからパターンやルールを自動で抽出する技術です。大まかに分類すると「教師あり学習」「教師なし学習」「強化学習」という3種類の手法があります。実は機械学習でできること(解ける問題)は非常にシンプルです。機械学習を使いこなすためには、解きたい課題をいかにして機械学習が解ける問題に落とし込むかがポイントとなります。そのためにも、「それぞれの手法がどのような問題を解くことができるか」を知っておくことと、「実際の課題をどうやって機械学習が解ける問題に落とし込むか」を考える柔軟な思考力が大切になります。

「教師あり学習」「教師なし学習」「強化学習」を、いつ、どのような目的に使用すると良いかを表にまとめました。それぞれほかにもできることはありますが、まずはよく活用される以下の内容を理解しておけば良いでしょう。

主な分類 できること やりたいこと(具体例)
教師あり学習 データを分類(クラス分け) 送られてきたメールが、迷惑メールかどうかを判定する機械が欲しい
教師なし学習 データを分割(グループ化) 大量にあるメールを本文の特徴に基づいて3つのグループに分けたい
強化学習 嗜好錯誤による経験則の作成 ゲームを自動でクリアしたい

ここまでを踏まえ、皆さんからいただいた質問を見ていきたいと思います。今回は、第4回の記事への質問です。

質問1:「教師あり学習」では、最初に人間が学習の土台となる「モデル」を作ってコンピュータに渡すって言ってたけど、モデルって具体的には何なの?

機械学習における「学習」とは、実際には「パラメータを持つ関数」のパラメータ部分を調整することを言います。ここで言う関数とは、ある数字が入ってきたら、何かしらの処理を施して別の数字が出てくるもののことです。例えば、入力された数字に1を足す関数ならば、1を入力すれば2を出力しますし、2を入力すれば3を出力するでしょう。

入力された数字に「1」を足して出力する関数のイメージ

パラメータを持つ関数とは、施す処理の一部が決まっていない状態のものを言います。先ほどの例では「入力された数字に1を足す」という処理を施しましたが、これを「入力された数字に何かを足す」と置き換えてください。何を足すかは不明ですが、何かの数字が入るものとします。この「何か」がパラメータにあたります。

入力された数字に「何か(パラメータ)」を足して出力する関数のイメージ

もし目の前に、「入力された数字に何かを足す」関数を持ったコンピュータがあり、そのコンピュータを使って「1が入力されたら3を出力し、2が入力されたら4を出力してください」と言われれば入力された数字に足す「何か」は2になるでしょう。この「1が入力されたら3を出力」「2が入力されたら4を出力」というのが、いわゆる「教師データ」にあたります。

パラメータを持つ関数では、教師データが持っている入力値と出力値のセットを基に、「何か(パラメータ)」にマッチする値を探すのです。

教師データを使って「何か(パラメータ)」にマッチする値を探す

一般的に「モデル」という言葉は、このパラメータを持つ関数のことを言います。教師あり学習を行う際は、最初に人間が、何らかのパラメータを持つ関数をコンピュータに与えるわけです。コンピュータは教師データを基に、できるだけ入力と出力のセットがうまくいくように与えられた関数のパラメータを調整(学習)します。

なお、「一般的」という言い方をしたのは、「モデル」という言葉には明確な定義がないためです。機械学習の世界では頻繁に登場する言葉なのですが、使われるシーンによって微妙に指しているものが異なることがあるので、留意しておいてください。

質問2:同じ教師データ(入力と出力のセット)を繰り返し学習させることで、なぜ洗練されたモデルになるの?

コンピュータはモデル(パラメータを持った関数)のパラメータを、できるだけ教師データの入出力に合うよう調整していきます。最初の状態(学習する前の状態)では、パラメータをどうすれば良いかわからないため、ランダムに適当な値を入れておきます。

教師データに入力と出力のセットが10個あったとしましょう。まずは1つ目の入力を、ランダムに決めた値を持つモデルに入力します。すると、何かしらの出力が得られます。その出力と、教師データに書かれた正解の出力を比較します。出力結果が教師データと大きく違うならパラメータを大きく調整し、小さな差であれば少しだけ調整します。

次に2つ目の入力を、今1つ目の入力によって調整されたモデルに入力します。すると、何かしらの出力が得られます。その出力と、教師データに書かれた正解の出力を比較します。出力結果が教師データと大きく違うならパラメータを大きく調整し、小さな差であれば少しだけ調整します。

現状のモデルで予測した結果と教師データ(正解の出力)の差異の大きさに応じて、モデル(パラメータ)を調整する

以降、これを繰り返すことにより、教師データの10個目の入力をするモデルは、それまでの9個の入力によって調整された状態のモデルとなります。ここで得られた出力と、教師データに書かれた正解の出力を比較し、同様にパラメータを調整します。

教師データがなくなったら、1つ目の入力に戻りましょう。最初の学習では適当に決めたモデルが出力した値を見て、パラメータの調整を行うところから始めました。しかし今回は、既に10回の調整を終えた後のモデルが出力した値を見て、パラメータの調整を行うことになります。

モデルの出力と正解の出力の差は大きくなっているかもしれませんし、小さくなっているかもしれません。その結果に応じて、また少しずつ調整をします。こうして微調整することにより、全体として最も良いモデルになるよう調整できるのです。

ただし、教師データを繰り返し学習させる場合、注意も必要です。学習を繰り返すことによって教師データにはばっちりマッチするモデルが出来ますが、教師データにだけマッチすると汎用性がなくなってしまいます。汎用性のないモデルは良いモデルとは言えません。教師データを元に学習しつつも、ある程度は汎用性を持たせて学習を終える必要があります。学習には用いていないテストデータを使って、モデルの汎用性を見極めながら、ちょうど良い辺りで学習を止めるようにしましょう。

著者紹介


国立研究開発法人 情報通信研究機構
ユニバーサルコミュニケーション研究所
データ駆動知能システム研究センター 専門研究員
大西可奈子

2012年お茶の水女子大学大学院博士後期課程修了。 博士(理学)。同年、大手通信会社に入社。2016年より現職。
一貫して自然言語処理、特に対話に関する研究開発に従事。
人工知能(主に対話技術)に関する講演や記事執筆も行う。
twitter:@WHotChocolate

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
3067
2
【連載】教えてカナコさん! これならわかるAI入門 [9] おさらい! 機械学習(その1)
前回までに、機械学習でメジャーな3つの手法「教師あり学習」「教師なし学習」「強化学習」について説明しました。今回はおさらいとして、ここまで学んできたことを振り返るとともに、皆さんからいただいた疑問に答えていきたいと思います。
https://news.mynavi.jp/itsearch/assets_c/2017/09/AIKanako09_003-thumb-400xauto-14007.jpg
前回までに、機械学習でメジャーな3つの手法「教師あり学習」「教師なし学習」「強化学習」について説明しました。今回はおさらいとして、ここまで学んできたことを振り返るとともに、皆さんからいただいた疑問に答えていきたいと思います。

会員登録(無料)

セキュリティ・キャンプ2017 - 精彩を放つ若き人材の『今』に迫る
ぼくらのディープラーニング戦争
クラウドアンケート
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
人事・経理・総務で役立つ! バックオフィス系ソリューション&解説/事例記事まとめ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

ページの先頭に戻る