柊研究所の備忘録

アート×ものづくり×教育を考える研究者です。

A.I.ってなに?

f:id:Sho1coco:20170419073537j:image

 

 

第15回は、今話題のA.I. (Artificial Intelligence: 人工知能)について書きます。

 

Googleが開発した囲碁プログラムアルファ碁(AlphaGo)が世界一のプロ棋士を破ったニュースは、人工知能の飛躍的な発展を世界中に知らしめました。

 

ただ、思い返してみると、学習機能や人工知能という言葉は10年以上前からありました。A.I.、なぜ今になって再び脚光をあびるようになったのでしょうか。複雑な数式は抜きにして概念を説明していきたいと思います。

 

A.I.は人工的な知能である

 

訳しただけです。

知能とはなにか。人は、生まれてから数えきれないトライアンドエラーを繰り返して、言葉を学び、知識を蓄え、人間らしい行いを判断できるようになります。それは、わざわざ数式に置き換えなくても、経験値でわかるものです。

 

その経験値をどうやってコンピュータに教えるのか。これが、人工知能の研究の核、すなわち機械学習です。

 

まずは、最もベーシックな人工知能の仕組みから書いていきます。

 

たとえば、

 

この人は男性か女性か。

 

こんな問題があったとします。多くの人はどちらかわかるでしょう。それは、無意識のうちに、人がいろいろな学習ポイント(特徴量)をみて判断しているのだと思います。

 

学習ポイント1: 髪の長さ

学習ポイント2: シルエット

学習ポイント3: 化粧

・・・などなど

 

コンピュータにこれを教えるとき、最初に、

「男性と女性を見分けるポイントは、髪の長さとホニャララとホニャララと・・・なんだよ。」と教えます。

 

すると、コンピュータはその情報を数字として取り込みます。

 

まずは1人目をトレーニング用として教えます。

 

学習ポイント1: 髪の長さ30cm

学習ポイント2: バスト85・ウエスト61・ヒップ86

学習ポイント3: 化粧はコントラストが高く、

学習ポイント4、、、

 

答え=女性

 

これで、コンピュータは1つの例を記憶しました。これを繰り返して繰り返して、ひたすら繰り返すと、コンピュータは数千、数万、あるいはもっと大量のデータを覚えて、男性と女性を見分けるトレーニングが完了します。

 

十分学習が進むとコンピュータは、

学習 ポイントの数値を聞けばだいたい男か女か判断できるようになります。

 

こんな感じでA.I.が成長していきます。

 

しかしここで壁にぶち当たります。

 

学習ポイントって、どうやって決めるの??

 

男性、女性を見分けるポイントは比較的簡単でしたが、これが、人の文字を見分けるなら?人の感情を見分けるなら?学習ポイントを何にするかがそのA.I.の能力を決めると言っても過言ではないくらい重要になってきます。研究者はこの学習ポイントの発見に力を注いできました。

 

ここで、冒頭の疑問に戻ります。

なぜ、今A.I.が再び脚光を浴びているのか?

 

ディープラーニングの登場

 

A.I.の驚くべき進化の立役者は、機械学習の新手法、ディープラーニングです。ディープラーニングは、階層的な学習手法(ニューラルネットワーク)を用いることで、コンピュータが自分の力で、学習ポイントを決定することができる手法。これにより、A.I.は「学習ポイント8, 137, 50......の順で重要です。」という重要な学習ポイントを自動で決定することが出来るようになりました。

 

自動で学習ポイントが決まる。

こうなってくると、コンピュータとコンピュータが相互に対戦していくだけで、学習ポイントの精度が上がりどんどん強くなっていく。囲碁ソフトがプロ棋士に勝ってしまうのも納得ができます。

 

A.I.が人類を超えると言われている2045年まで、後30年を切りました。ドラえもんやアトムが少しずつ現実に近づいているような気がします。

 

実際にプログラムをつくるには?

 

概念よりも使い方が知りたい!という方は、下の本がオススメです。

 

ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装

 

ディープラーニングをプログラムで実際に動かす方法を基礎から丁寧に書いています。使用する言語、Pythonの入門から書いてあるので比較的初心者でも読みやすい本です。

 

このブログで取り上げてほしい相談や感想等々を書き込める場として、LINE@に「柊研究所の相談所」をつくりました。気軽に覗いてみてください。

LINE Add Friend QR code