検索
連載

不幸な人工知能 〜尊敬と軽蔑の狭間で揺れるニューラルネットワークOver the AI ―― AIの向こう側に(21)(5/9 ページ)

今回のテーマは、第3次AI(人工知能)ブームを支えているといっても過言ではない花形選手、ニューラルネットワークです。ただしこのニューラルネットワーク、幾度もダイナミックな“手のひら返し”をされてきた、かわいそうなAI技術でもあるのです。

Share
Tweet
LINE
Hatena

「バカの人」判定システムで説明してみる

 さて、このニューラルネットワークを説明するのに、今回は、和田秀樹さんの「「バカの人」相手に感情的にならない本」(2016年、文芸社)の内容を使わせて頂き、説明したいと思います。

 この本は、「バカの人」を分類してそれぞれに対する対処方法(他人との対応だけでなく、自分の「バカの人」化の傾向と対策も含めて)をまとめたものです。

 今回は、「バカの人」を分類する手段として、ニューラルネットワークを使った(架空の)「「バカの人」判定システム」を想定してみたいと思います。

 いろいろツッコミはあると思いますが、上記の3つの入力データ(X0、X1、X2)を作ることができれば、自分自身が、どの種類の「バカの人」に当てはまりそうかを判別できる ―― と、ここでは仮定してください。

 さて、このような「「バカの人」判定システム」をロジック化して実装する(プログラミングする)のは、絶望的に難しい(というか、無理)です。理由としては、条件分岐が多すぎて、簡単に組合せ爆発を起すことになる、などが上げられます。

 もし「バカの人」を募集して(集まるかどうかは、さておき)、その人のデータを取ることができて、それをニューラルネットワークに丸暗記させることができれば、この「「バカの人」判定システム」は実現できます。

 「どの「バカの人」に分類すべきか」(Y0,Y1,Y2,Y3.Y4)を含めて、データ化(数値化)は人間ががんばってやらなければなりませんが、それでもプログラムするよりはずっとマシです。

 そして、この入力データ(X0,X1,X2)と、出力データ(Y0,Y1,Y2,Y3.Y4)を数値化して、この入力データと同じ値を入力すれば、かならず、この出力データと同じ値がでてくるように、ニューラルネットワークを、ビシバシと痛めつけ……もとい、鍛えます

 これが、逆伝搬学習 ―― バックプロパゲーションです。

 入力データに対して、ニューラルネットワークが期待通りの出力値を出力しない場合、バックプロパゲーションは、それを「強制的に矯正する」ものです。具体的には、ニューロンとニューロンをつなぐシナプス(結合値)の値を、少しずつ変化させていきます。

 100人の「バカの人」のデータがあれば、100人分を丸暗記させます。ニューラルネットワークには、何回も繰り返し暗記作業を強制します。この暗記作業の回数は、例えば、1000〜1000万回まで、さまざまです。

 ニューラルネットワークがこの100人分を全部完璧に覚えれば、誤差がなくなりますので、そこで学習は完了することになります。

 しかし、実際のところ1000回でも、それ以上でも、学習が完了するのであれば、幸せなことですが、大抵の場合、そううまくはいきません(後述します)。

 さて、ここで、100人分のデータの学習が完璧に完了したとします。ここに、学習データで使わなかった、江端の入力データ(例えば、(X0,X1,X2)=(0.5,0.7,0.8))を入力します。

 100人分の知見を覚えたニューラルネットワークは、その100人と全く同一でない値を入れたとしても、出力値を出してきます。そして、その値は、おおむね100人のバカの人のデータの間を補完した値(補完解)が出てくることが「期待されます」 ―― が、実際は、そううまくもいかないことが多いのです(後述)。

 しかし、このニューラルネットワークの「強制的に矯正する」の考え方は、現実でも普通に使われています。例えば、リハビリです。

 交通事故なので、ゲカをすると、ケガをした場所(例えば、脚や腕)が、従来の脳細胞(ニューロン)とつながっているところが異なってくるため、物理的にケガが直っても、脚や腕は動かせないままです。

 そこで、このニューロンのシナプス接続を「強制的に矯正する」のが、リハビリです。つまり、リハビリとは、バックプロパゲーションそのものなのです。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る