2016年3月、コンピュータが囲碁のプロ棋士に勝利しました。成績は4勝1敗と圧勝でした。 この「アルファ碁」と呼ばれる囲碁プログラムの勝利に、世界中が衝撃を受けました。
囲碁は、チェスとは違って遙かに複雑なゲームで、人工知能が人間に勝つのは困難だと考えられていました。 しかし、その壁を打ち破り、コンピュータを勝利に導いたものは、ディープラーニングという人工知能の技術でした。
今では、人の声を理解させる音声認識や、画像に何が写っているのかを判断させる画像認識の分野で、盛んに活用されています。とりわけ画像認識で、ディープラーニングの技術が使われるようになってからは、飛躍的に認識力がアップしました。ここでは、画像認識を例にしてディープラーニングの説明をしていきます。
一例として、街の中、人々が行き交う場面を防犯カメラで撮っているとします。顔の写り方は、カメラを横切る方向はさまざまで、昼間、夜、照明の具合によって影のでき方も違います。ある人物がこのカメラに写ったときに、コンピュータが自動的に特定してくれるシステムを作るとき、人間以上の認識能力をもつシステムを、ディープラーニングを使った人工知能ならば可能になるのです。
従来の人工知能では、人が写る角度や光の当たり方によっては、十分に判定することができず、認識率が下がるという欠点がありました。しかしディープラーニングでは、人物のさまざまな角度の画像データを、何枚も見せることにより、自動的に特徴を見つけ出し、違った角度に写る顔でも認識することができるのです。
今までの、人工知能プログラムでは、顔の特徴を人間が考えて、それをプログラムに教えて、学習させる方法でした。しかし、人の顔のように複雑な形になるほど、特徴を考え出すことはとても難しく、設計者を悩まし続けました。出来上がっても不完全なものが多く、認識率は高く上がりませんでした。ディープラーニングでは、この特徴を人間が教えることなく、人工知能自らが特徴を発見する仕組みになっています。人間がすることは画像データを沢山見せ、学習させてあげることなのです。
人間の脳は、ニューロンと呼ばれる単位でできており、それが複雑に結び付いています。このニューロン同士が電気信号のやり取りをして、目で見た映像、耳で聞いた音などの処理を行っています。この脳のニューロンのネットワークを真似たものを、コンピュータプログラムで再現します。何層にもニューロンの層を重ねた構造をしていて、ニューラルネットワークやニューラルネットと呼ばれています。
画像認識に利用されるニューラルネットは、ニューロンの層を何層にも重ねたものに、画像データに計算を加えながら、次の層から次の層へと渡してゆきます。はじめは、部分的な輪郭や色の特徴を捉え、次の層へと進むにつれて、もう少し大きな範囲で輪郭や色を捉えてゆき、最後には全体の特徴を把握します。
最初の層である入力層のニューロンの数は、画像の画素数分あります。入力層と出力層の間には、部分的な認識から全体的な認識をできるようにするために、畳み込み層とプーリング層を、何層も繰り返し置くことで実現しています。最後の出力層には、判別したいものの数だけニューロンがあり、判別結果を表現します。この画像認識に特化されたニューロンネットワークを、畳み込みニューラルネットと呼んでいます。
同じ人物でも角度や光の異なる画像を用意し、それが誰なのかという「答え」とともに、ニューラルネットに入力してゆきます。何枚もコンピュータに見せるなか、ニューロン同士の結びつきの強さを調節し、共通に反応するニューロンを見つけます。多少の違いを吸収して、共通する特徴を認識する仕組みを獲得します。
ここで、情報は数多くのニューロン層を通過し学習してゆくので、ディープラーニングと呼ばれます。日本語では深層学習と呼んでいます。
ディープラーニングによる、ニューラルネットワークの調節が完了すると、後は、人物の画像を入力するだけで、それが誰なのかを判別して返してくれるのです。
画像認識の発達により、自動運転システムの進歩で無人で走行する自動車や、ロボットがものを見てつかんだり、歩行時に障害物や段差などを見分けて歩くロボットが登場するでしょう。オンラインで相手と対戦できるゲームの世界では、コンピュータが手強い相手となることは違いありません。 また、介護では、身体介助の助けとなるシステムも登場するでしょう。怖い感じもしますが、今まで人がやってきたことを、コンピュータができるようにする技術なのです。