Machine Learning Lecture 1

スタンフォード大学のAnrew ng氏のmachine learning lectureを見て、機械学習について学習しています。今回はlecture1をもとに学習したことを書きます。

Machine Learning Lecture in Stanford University:https://itunes.apple.com/jp/itunes-u/machine-learning/id384233048

第一回に関していえば、事務連絡が若干入っていたりします(それがリアルな教室っぽく感じられます)。

Introduction of Machine Learning

機械学習は学問横断的であり、生物学、ロボット、自然言語処理など様々な分野に対して適用できる非常に強力な技術です。『Computer world』には"12 IT skills that employers can't say no to"という記事があがっており、その中でも機会学習は注目を浴びています。

it's about sort of the 12 most desirable skills in all of IT and all of information technology, and topping the list was actually machine learning.

と言われるほどに機会学習は重要視されています。機会学習は人工知能の初期の段階から成長してきました。20年程まえから機会学習は、コンピュータのための新たな処理能力の一種と捉えられてきました。特に人の手で書くことが困難であったり不可能なプログラムやアプリケーションに適用することができると考えられました。

例えば、曲線的な手書き文字を読み取ったり、ヘリコプターを飛行するプログラムを書くことは困難です。こういった課題に対して学習のアルゴリズムを適用すると非常に強力な効果を発揮します。

機械学習データマイニングにも適用することができ、強力な効果を発揮します。例えば、ITの発展により多くの病院が患者の種類、どんな問題を抱えているか、診断の予測、そして実際の結果はについて医学的な記録を蓄積しています。そして長年にわたってデータとして保存された記録に学習のアルゴリズムを適用することで、素の医学的記録を医学的知識という価値をもつものにし、診察の段階で医学的傾向を検出することも可能になります。

このように多岐にわたる分野で応用可能な機械学習ですが、僕らの生活にも浸透していたりします。クレジットカードの不正利用を検知に利用できますし、Amazonの"おすすめ機能"のようになじみのあるものもありますね。つまり気付くにしろ気づかないにしろ、僕達は何度も機械学習の恩恵にあずかっているわけです。機械学習について、もうちょっと深く見ていきます。

What is Machine Learning

Field of study that gives computers the ability to learn without being explicitly programmed.  Arthur Samuel(1959)

これは人工知能で有名な学者であるアーサー・サミュエルが機会学習を定義したものです。和訳すると明示的にプログラムすることなく、コンピュータに学習し行動させる科学の分野であるといったところでしょう。

アーサー・サミュエルはチェッカーというチェスボードを用いたゲームをプレイするプログラムを書き、数千ものゲームを行わせることで勝ちに結びつくパターンや負けのパターンを認識させたそうです。そして驚くべきことにそのプログラムはアーサー自身がプレイするよりもうまくチェッカーをプレイできるようになったのです。本人よりも強くなるというのは正しく学習しているといえますね。

そんな風にして機会学習というものがはじまっていったのです。こういう話って興奮しますよね。

ちなみにチェッカーはこんな感じ。

詳細なルールが気になる方はwikipedia: チェッカーを参照してみてください。

もう少し形式的な定義もあります。

Well-posed Learning Problem: A computer program is said to learn from experience E with respect to some task T and some performance measure P, if its performance on T, as measured by P, improves with experiece E. Tom Mitchell(1998)

なんとなくリズムの良い定義です。あるタスクTを行いパフォーマンスを測定し、それを経験Eとして、そこから学習します。その経験Eからの学習によりパフォーマンスを向上させていきます。

Supervised Learning

supervised learningは機械学習のいち区分であり、日本語では"教師つき学習"などと呼ばれています。(和訳すると微妙にダサい感じがします。)アルゴリズムにあらかじめデータ・セットを与えておきそれをもとに学習していくのでsupervised learningと呼ばれています。

例えば、家屋を売却したい場合にいくらで売却すべきか知りたいとします。supervised learningでは基本的な前提条件が同じ(この場合では地区とかが同じ)で、家屋の広さによって価格がかわるような場合を想定します。あらかじめ家屋の広さと正確な価格のデータセットをいくつも与えておきます。そして、売りたい家屋の広さを入力すると予想価格を出力するというアルゴリズムです。

家屋の広さと正確な価格のデータセットを与えておき広さと価格の関係をアルゴリズムに学習させようとしていることからも、supervised learning/教師つき学習と呼ばれ理由がわかります。

Unsupervised Learning

unsupervised learningは"教師なし学習"という和訳があります。これは教師つき学習とは対照的に、データを与えるけれど、正しい値は与えません。先ほどの家屋の例でいえば価格を与えません。アルゴリズムが行うことは、与えられたデータ・セットの特徴から何らかの構造を見出し、クラスタに分類することです。

Machine Learning Lecture in Stanford Universityでは画像から3Dのモデルを作成したりunsupervised lerningを遺伝子のデータに適用した例などが紹介されています。

Reinforcement Learning

最後にreinforcement learningです。日本語では"強化学習"と呼ばれています。強化学習は連続したやりとりのなかで試行錯誤を通じて、学習させるものです。Machine Learning Lecture in Stanford Universityではヘリコプターを例に説明しています。ヘリコプターを自動で飛ぶようにプログラムするのは人には難しいので強化学習を適用します。ヘリコプターが墜落してしまうパターンと、うまく飛行できるパターンを教えこむことが必要です。

So every time your dog does something good, you say, "Good dog," and you reward the dog. Every time your dog does something bad, you go, "Bad dog,"

飼い犬をしつけるときにたとえているようです。強化学習では何が良い状態なのかを明確にしていないといけません。自分が求めている動作が明確にならないと、何を基準に連続した取り組みをしていけばいいのかがわからなくなってしまいます。

 

最後の方は、講義で出た例をあまり紹介していませんがこれらは映像と一緒にみた方が理解しやすいと思います。 次回はlecture2を書いていきます。lecture2から数式がけっこう出てきます。