世界一わかりやすいAI技術の解説(ニューラルネットワーク)
今日、職場で急にAIを活用して業務改善ができないか、という話が降ってきた。
はいはい、確かにAIってなんかかっこいいもんね。
ニューラルネットワークをはじめとしたAI技術って、根本的にはコンピュータ技術の急激な進歩によって可能になったものなんだよね。
でさー、フツーに業務をこなしてるだけで、イントラがキャパオーバー起こしてダウンしているような貧弱なサーバしか持たない職場で、そんなもの導入する余地があるんかな??
ちうことで、その辺のことを説明するための練習として、ここでAI技術の説明をしようと思う。
まずは、最近よく言う「ディープラーニング」に代表されるニューラルネットワークについて解説しようと思う。
ニューラルネットワークは、例えば明日の天気のような、
『何となくだいたいの予測はできそうだけど、いくらでも予想外の事態が起こりうるもの』
に対して効果を発揮する、予測技術だと認識している。
もうちょっとわかりやすい例を挙げてみると、
「どんな男がバレンタインチョコをたくさん手に入れることができるか」
みたいなのが、面白いかもしれない。
大体、あいつたくさんチョコもらいそうだなーってのはだいたい想像がつくけども、一見男前な奴が、女の子にはからきしもてなかったりもする。
そこで、とある高校1年生のクラスの男子が総集結して、もてる男とはいったいどういうやつなのか、ということを議論してみた。
まずは、クラスの男子20人全員に、バレンタインチョコを去年何個もらったかを聞き取り調査を行った。
そのあとに、もてる男に必要な条件をみんなで列挙してみた。
①顔
②身長
③筋力
④おしゃれさ
⑤肌のきれいさ
⑥運動神経
⑦学力
⑧優しさ
⑨ユーモア
⑩経済力
こんなものだろうか。
イメージ的にはこういう感じだ。
これらの条件をもとに、またクラスの男子全員を、各項目10点満点として点数付けを行ってみて、バレンタインチョコをもらった数と比較してみた。
そうすると、この点数の順位とチョコをもらった数の多さは、かならずしも一致しないということが分かった。
よくよく分析してみると、そのうち、③握力⑤肌のきれいさ⑥学力⑧優しさは、チョコの数に与える影響が小さい一方①顔②身長④おしゃれさはチョコの数への影響度が高いことが分かった。
そのため、再度各項目ごとに重みづけを行った。
具体的には影響が少ない項目は、点数を半分にし、影響が大きな項目は点数を倍にしてみた。
この図において、太い線は点数を2倍に設定した要素であり、細い線は点数を半分にしていることを表す。
すると、チョコをもらった数と、点数の順位はほぼ一致した。
これで、このクラスの男子は、チョコをたくさんもらうためにはどうすればいいのか、ということを説明することに成功したのである。
そして迎えた高校2年のバレンタインデー。
昨年度確立した理論に基づき、去年はチョコをもらえなかった男子も、必死にできる限りの努力をした。
ことしは、あいつにばかりチョコを持っていかれることはないはず…。
誰もがそう思った。
ところがどっこい、結局ふたを開けてみると、去年と同じようなメンバーがランキングに名を連ねた。
中にはランクを大きく伸ばしたやつもいたけども、同じように努力したはずの男子でも結果は散々だったものもいた。
理論に基づいて、それぞれが必死に努力したにも関わらずだ。
なぜだ…。なぜなんだ…。
なにか、見落としている要素があるはず。
チョコをもらえなかった男子は、また考えた。
昨年度のデータではもらえるチョコの個数の傾向をほぼ、完璧に予測することができたはずだったのに、今年のデータまで加えてみると、その予測は完璧でないことが分かった。
去年の分析は、データ数が少なかったせいで、たまたま完璧に予測ができていたように見えただけだったのだ。
クラスの男子は、反省した。
女心がそんな単純に予測可能なわけがなかったのだ。
そして、ある仮説に至った。
それはなにかというと、
チョコを何個もらえるか(≒いかにもてるか)ということは、最初に挙げた10個の基礎的な要素に直接比例しているのではなく、それぞれの要素が複合的に絡み合って生まれる別の要素に直接的に関係しているのではないか?
ということだ。
具体的にどういことかというと
A.たくましさ・・・ ②身長③筋力といったものの影響が大きい要素
B.清潔感 ・・・ ①顔④おしゃれさ⑤肌のきれいさといったものの影響が大きい要素
C.信頼性 ・・・ ③筋力⑦学力⑧優しさ⑩経済力といったものの影響が大きい要素
D.名声 ・・・ ①顔④おしゃれさ⑥運動神経⑨ユーモア⑩経済力といったもの影響が大きい要素
E.ギャップ ・・・ 例えば、③筋力と⑦学力のような相反する要素を持っていること
これら5つの要素が、本質的にもてる男を構成しているのではないかということだ。
図にしてみると、こんな感じだろうか?
これらをもとに、もう一度、男子の点数をつけなおしてみた。
しかし、この作業は困難を極めた。
なにせ、A~Eの要素に、基本となる10個の要素がどう影響しているか、を調べた後
さらに、A~Eのどの要素が、チョコをもらえる個数に与える影響が大きいかを調べる必要があったからだ。
また、このクラスの男子20人分×2年分のデータだけでは、正解となる重みづけの組み合わせが複数存在することとなり、それらのうちどれが真の正解かを特定するためには、さらに他のクラスのデータまで追加して検証を行う必要があった。
そして、分析を行うこと10か月。ついに、学年の男子のデータすべてを費やしてなんとか翌年のバレンタインデーまでに、「もてる男理論改」を打ち立てることに成功したのだ。
果たして高校最後のバレンタインデー、結果はどうなったことだろうか?
それは皆さんの想像にお任せしたい。
だって、そもそもニューラルネットワークの仕組みについて説明したかっただけだからだ。
AIに話を戻したい。
「どういう男がもてるか」や「明日の天気はどうか」という、一見簡単に見えて、そう一筋縄にいかない事柄について予測をするときには、基礎的な要素から構成される中間的な要素を設定することで、正確な予測が可能になるということである。
しかも、その中間的な要素は、多ければ多いほど、予測精度は高まるらしい、ということが近年の研究によって明らかにされてきた。
ディープラニングというのは、現代の顕著なコンピュータ技術の発展と、インターネット等の発達により半自動的に膨大な量の正解データを集めることができるようになった(いわゆるビッグデータ)ことによって、圧倒的多数の中間要素を多層に構成することが可能となったことで実現した技術なのだ。
例示した、「もてる、もてない」のケースように1つの中間要素で予測するだけなのであれば、もてたくて必死なだけの男子高校生にも理解可能かもしれないが、何層にも中間要素をおいた高度な予測モデルにおいては、もはやその中間要素が何を示しているのかを人間の脳では理解することができない。
ゆえに、ニューラルネットワークはしばしば「ブラックボックスモデル」と呼ばれる。
なんかわからんけど、うまくいく。
それが、ニューラルネットワークなのである。
さきほどの事例をもとに、どういうものであれば、ニューラルネットワークが適用できるのか考えてみたい。
ニューラルネットワークが適用可能な事例というのは、少なくとも「誰かが正解を教えることができる」必要性があるのである。
「もてる、もてない」問題に関しては、チョコレートの数という明確な正解があった。
その明確な正解のもとに、理論をより正確なものに近づけることができた。
だから、AIがいかに万能とはいえど、人間がAIに正解を教えることができない問題には、AIの活用が見込みづらいのである。
その辺が分かってないと、AIの使いどころを見誤る。
ほかの例でいうと、「人間が手書きで書いた文字をコンピュータに認識させること」とか「人間が声で発したことを、コンピュータに文字に起こさせる」とかは、人間が答えを繰り返しだれでも教えることができるので、確実にいつかAIで実現することができる。
外国語の翻訳も似たようなものである。
google翻訳、「翻訳は正確でしたか」みたいなことをフィードバックすることができる。
これはただ、顧客満足度を調査しようとしているのではなく、ユーザーから半自動的に正解データを得ようとしているのである。
AIとはいえ、人間が正解を見つけることができないことは、実現できない。
これが、AIを利用する最低限知っておくべきことだと思う。
そうそう、ニューラルネットワークの「ニューラル」って「神経の」って意味らしい。
そう、人間の神経系の動きをモデル化してできたのが、ニューラルネットワークってわけ。
なんやそりゃって思うでしょ??
俺も最近twitterで流れてきて知ったんだけどね。
なんかあって、切れちゃった腕をもう一回つなぐ手術をするとき、お医者さんは元あった神経を元通りつなぐんじゃなくて、とにかく神経という神経を何でもいいからつなぐらしい。
もちろん、つないだ直後は、神経伝達があべこべになるから、例えば親指を曲げたつもりなのに、人差し指が曲がったりするらしい。
そこでリハビリですよ。
正しい動きはこうですよー、って繰り返し体に教えてやることで、なるほど、新しい久指の動きは、こうやって伝達すればいいんだ。
って体が覚えるらしい。
生き物ってすげー。