2024年03月29日( 金 )

「深層学習」(ディープラーニング)とは何か!(中)

記事を保存する

保存した記事はマイページからいつでも閲覧いただけます。

印刷
お問い合わせ

(株)Preferred Networks リサーチャー 松元 叡一

データが増えても正しく動くようなアルゴリズム

 ――「機械学習」だけでも充分すごいですね。そのなかでも「深層学習」は、50年来のブレイクスルーと言われています。何が大きく違うのですか。


 松元 時代とともに、「機械学習」で学習したいデータのサイズと複雑さがどんどん増えてきました。実際には、世の中の社会現象、経済現象を考えてみても、直線でルール化できる単純なものは少ないです。先ほどの健康診断の例でも、年齢、住んでいる地域、年収、好みの食べ物等、データの項目が増えるほど、データの次元(1サンプルあたりの情報量)が高まってきます。
 画像を例にとると、100×100ピクセルのグレー画像なら、1データあたりの画素数10,000の次元になります。このような膨大な次元になりますと、もちろん直線では分けられませんし、曲線でも非常に複雑なものになります。このようなデータでは人間がルールを設計することが非常に難しいため、機械が自動でルールを学習するアルゴリズムが求められていました。
 そこに登場してきたのが「深層学習」ということになります。もちろん、深層学習でも、データはたくさん提供する必要があります。しかし、このデータさえ提供できれば、後はコンピュータ自身がそのルールを自分で見つけ出すのです。「深層学習」以前は、人間がデータを整理してからコンピュータに与える必要があり、その役割をデータサイエンティストという職業や各種専門家が担っていました。しかし、データが膨大になればなるほど、その整理は難しく限界を迎えているのです。

人間の脳の仕組みにかなり近いと考えられている

 ――機械自身がルールを獲得するとはすごいですね。どのような仕組みになっているのですか。


 松元 「深層学習」では、“ニューラルネット”というアルゴリズムを使います。人間の脳の神経回路の仕組みを模した数学モデルのことです。従来の機械学習のモデルは1段階、2段階だったのに対し、「深層学習」は多段階モデル(7段、8段と深い)と言われます。
 「顔認識」を例にご説明します。従来手法の機械学習の場合、まず目や口のようなかたちのわかりやすいパーツを探します(前段階)。目の場所がわかれば、目の色やかたちといった個人が特定できそうな情報(「特徴量」という)を調べることができます。さらに口、鼻からも特徴量を集め、総合して誰かを判断していました(後段階)。しかし、この方法には、2つの問題点がありました。1つは、人間が特徴量を設計するのは大変な職人技であること。もう1つは、前段階の設計を終えないと後段階の設計ができない、すなわち前段階の設計を変えると、それより後は全部つくり直す必要があったのです。
 「深層学習」では、人間が行っていた特徴量の設計を機械が自動でやり、しかも前段階と後段階を同時に学習することが可能です。このような処理方法は、視覚処理に限って言えば、人間の脳の仕組みにかなり近いと考えられています。


 ――それはどうして2000年代になるとできるようになったのですか。


 松元 その理由は、大きく分けて3つあります。1つは、コンピュータの計算力パワーが飛躍的に拡大したことです。2つ目は「ビッグデータ」です。たとえば画像であれば、コンピュータに提供するデータには困らなくなりました。3つ目は、“冬の時代”にもAI研究は地道に行われていて、多段階の数学的処理が格段に進歩したことによります。

ルールを自分で学習し最適な行動をとる

 ――ところで、松元さんは、先日「分散深層強化学習」に関する、ロボット車の技術デモを公開されていました。少し、ご説明いただけますか。


 松元 はい。このデモは「分散深層強化学習」という技術デモになっています。深層学習は先ほどご説明したので、まず「強化学習」を説明します。強化学習は「学習」と「行動」を繰り返すアルゴリズム(コンピュータの計算式)になります。今回の場合はロボット車が将来にわたって得られる報酬の和を最大化するために、何をすべきかを学習させる手法のことを言います。ロボット車の技術デモでは、道に沿って速い速度で進んだときにはプラスの報酬を、壁や他の車にぶつかったり、道を逆走したときには、マイナスの報酬(罰)を与えています。
 学習の初期の段階では、ロボット車は車自体の操作方法も知りません。どのボタンを押すとどういう結果が起こるか、まったくわかっておりません。そこで試行錯誤を繰り返します。しかし、車には周りの障害物、距離などを図るセンサーが何百とついていますので、しばらくすると、車の操作方法を理解し、どのような行動をすると罰を受け、どのような行動をしたときに報酬がもらえるのかがわかってくるのです。
 たとえば、センサー10の数字が85のときに、(1)のボタンを押すと壁にぶつかりマイナスの報酬になるとか、センサー3の数字からセンサー5の数字を引いた値が42のときに、(3)のボタンを押すと報酬がもらえるなど、ルールを自分で学習します。最終的には、最も多く報酬が得られそうな行動をすることで、結果的に最適な行動「障害物が何mの位置に来たら、どのボタンを何度押す」といったことができるようになります。
 次に「分散学習」について説明します。たとえば、それぞれ独自の脳を持つ、10台のロボット車があったとします。そのうち、3番目のロボット車の脳がある学習で進歩したとします。そうすると、自動的に残りの9台の車の脳もまったく同じレベルまで進歩するのです。イメージとしては、10台の脳が連結しているような感じです。
 ロボット車は24時間、365日休むことなく学習を続けることが可能なので、いろいろなことを短時間で学ぶことができます。今回のロボット車の技術デモでは、車同士がぶつからず、スムーズに進むことのできる学習時間はわずか1時間程度になっています。

(つづく)
【金木 亮憲】


<プロフィール>
松元 叡一(まつもと・えいいち)
筑波大学附属駒場高等学校、東京大学理学部物理学科卒業、2015年3月に東京大学大学院総合文化研究科修士課程卒業後、同年4月(株)Preferred Networksに入社。受賞歴として、(1)07年、国際情報オリンピック(クロアチア大会)日本代表銅メダル、(2)08年、国際情報オリンピック(エジプト大会)日本代表銅メダル、(3)08年、国際物理オリンピック(ベトナム大会)日本代表銀メダル、(4)11年、ACM国際大学対抗プログラミングコンテスト(ICPC)東大代表として国際大会(アメリカ)出場、アジア大会(フィリピン)優勝、(5)12年、iGEM(The International Genetically Engineered Machine competition)ソフトウェア部門でリーダーを務める。アジア予選金賞、国際大会本選で特別賞受賞など。

 

関連記事