現在地

第2回 人工知能(AI) ニューラルネットワークと深層学習

概要

前回のコラムでは、コンピューターの生い立ちからエキスパートシステムとしての期待、機械学習の誕生、そして最近の人工知能ブームの火付け役となった人間の脳の神経細胞を模したニューラルネットワークとディープラーニング(深層学習)についてご紹介しました。今回はこのニューラルネットワークが実際にどういう仕組みで動き、活用されるかをご紹介します。なお、今回から鈴木に代わりAIビジネスコーディネーターの川村がご紹介させていただきます。

4. いま一度「学習」とは?機械学習から深層学習へ

前回のお話で、コンピューターの学習とは、「集めた多くのデータに合わせてプログラムを変える」と説明しました。つまり、これは人間が行う「学習」と同じことで、多くの経験に基づいて、考え方を変えるということです。考え方を変えることの結果として、例えばある事象の次に起こることを正確に類推したり、ある事象を正確に理解したりできるようになります。これが学習ですね。
もう少し簡単に考えてみましょう。人間の赤ちゃんがお母さんの顔を判別したり、言葉を覚えたりするときには、どのようにしているのでしょうか?毎日、朝起きるとお母さんが目の前で優しく「おはよう」という言葉を掛けてくれます。この行為により「この人がお母さんなんだ!」と理解していきます。また朝目覚めたときは「おはよう」と言う言葉を掛け合うということも理解していきます。これが学習です。
人工知能も全く同じで、何度も繰り返し顔を見せてあげたり、言葉を掛けたりすることで顔を識別したり、言葉の使い方を学ぶのです。

ただし、第1回で書きましたが、当初考えられた機械学習では、顔の判別や言葉を理解し、適切に使うには無理がありました。「集めた多くのデータに合わせてプログラムを変える」ところのプログラムとして、数学的な確率統計論に基づいたプログラムを用いていたために、考えうるプログラムには限界があったからです。ここにディープラーニング(深層学習)が登場し、ブレークスルーを引き起こします。
「お母さんの顔を判別する」と言いましたが、実はコンピューターによる画像認識技術を研究する人たちの間では、昔から機械学習による認識精度のコンテストが行われていました。どんな確率統計論をベースとすれば、認識精度が上がるのだろう?お母さんの顔の特徴をどう掴み取れば、間違えずに認識できるのだろう?と。あるアプローチでは、顔を捉えた画像の中から両目と鼻の頭の位置を検出し、これら3点の位置が作り出す三角形の形によって男性と女性に分類でき、さらに女性の年齢や、最終的には誰?というところまで分類できれば、私のお母さんと判別できることになります。しかし、この手法ではなかなかお母さん一人ひとりを言い当てるのは難しいのです。
実際のコンテストの課題はもっと簡単で、画像に写っているのは「ヨット」「花」「動物」「猫」のどれか言い当てなさいという課題です。これなら、例えば白くて三角形をしたものが写っていたらヨット!何か顔みたいなものがあり、中心の鼻の周りに3本のヒゲがあれば猫!と分かりますね。まぁ、それでも意地悪な画像も中にはあり、帆を畳んだヨットとか、尻尾しか映っていない猫とか。。。。研究者が思考をめぐらし、画像からさまざまな特徴的部分を拾い出すアイデアを考え、確立統計論を考え抜いて、画像を言い当てる(分類する)ことに、しのぎを削っていったのです。
しかし2010年頃までには、ほぼ研究者のアイデアは出尽くしてしまい、もうこれ以上の認識精度をたたき出すのは難しいというところまで研究が進みました。これがコンピューターによる画像認識の限界なのか? ここで、ディープラーニング(深層学習)が登場します。ディープラーニングの登場により、認識精度が各段に向上したのです。いったい何が起こったのでしょうか?

ある画像に写っているのが、ヨット?花?動物?ネコ?を当てるコンテスト

1000万枚の解答有り画像で学習し、15万枚の試験画像で正答率を競う(エラー率が他者の26%台に対し、Toronto大学は15%!)

5. ニューラルネットと深層学習

前回のコラムでニューラルネットのご紹介をしました。脳細胞の研究が進み、脳の中にはどんな細胞があり、どう働いているのかが見えてきました。ニューロンとそれを繋ぐシナプスがどうも電気信号を伝えているらしい。ニューロンには何本ものシナプスから電気信号が伝えられ、何本ものシナプスに信号を送り出し、次のニューロンに伝えるという神経網が構築されているようだ。え!?電気信号? はい、人間の体では電気信号が発生しているのです。例えば、心電図。これは心臓を動かす筋肉が発生する電気信号を捉えたものです。一般に筋肉の発生する電気信号が体の中では比較的大きい電気信号になります。もちろん脳波も電気信号です。脳波は脳神経細胞一つひとつの電気信号を沢山集めた結果としての電気信号なので、脳波から脳の中で何が起こっているかは、細かいところまでは分かりません。また人間の脳細胞の数は、個人差はありますがおおよそ千数百億個もあるので、その一つひとつの電気信号を取り出すのは不可能です。 ですのでニューラルネットはあくまで数学的に模したモデルです。ただ、脳の働きを理解する上では、とても分かりやすいモデルなので、これが用いられてきました。また高度な処理を行おうとすると、このニューロンをたくさん層状に繋ぎ合わせると、どうも良いらしいということも分かってきました。この層を深く利用するということからディープラーニング(深層学習)という呼び名が出てきます。

さぁ、ではそのニューラルネットと、そのディープラーニングの仕組みを見て行きましょう!

これも前回のコラムで紹介しましたが、一つのニューロンに着目した単体の細胞を模したものをパーセプトロンと名付けています。このパーセプトロンの働きは、ニューロンに入り込む複数のシナプスからの電気信号をニューロンの中で合算して、ニューロンが設定する条件で、出力信号をニューロンから出て行くシナプスに乗せます。例えば「1」の信号を持つ電気信号が3本のシナプスからそれぞれニューロンに入力され、ニューロンでの条件が「3以上の入力ならば、出力に1を出す」と言う条件を持っていたとすると、出力のシナプスに1が出力されます。パーセプトロンをネットワーク状に繋ぎ合わせたニューラルネットでは、このようにして次々と信号が伝えられていくことになります。

もう一つの重要なしくみが、シナプスの「重みづけ」機能です。シナプスはそこを通る電気信号を何倍かに増幅させたり減じたり、いわゆる「重みづけ」を設定することが可能なのです。ですので、「このニューロンから次のニューロンには強く信号を伝えよう」とか、「このニューロンからの信号はあまり重要じゃないので弱めて伝えよう」などの設定ができるのです。
何か、だんだん分かってきませんか?
そうです。つまり毎日お母さんの顔を見ていると、特定のシナプスの重みづけが自然と強くなって、これはお母さんの顔だ!というようにニューラルネットが判断できるようになるのです!そうです、シナプスの重みづけを調整して最適な値を見つけ出すことが「学習」なのです!このシナプスと繋がれるニューロンの層が深く、高度な働きを実現するのが「深層学習」なのです。

次回は、実際にこのニューラルネットワークをどうやって「学習」させ、情報処理分野で使っていけばよいのか?についてご紹介していきます。

Writer Profile

営業推進部
AIビジネスコーディネーション担当
川村 直毅