ケータイ用語の基礎知識

第714回:ディープラーニングとは

 ディープラーニングは、最近、人工知能の分野で非常に大きな注目を集めている技術です。

 人工知能とは、簡単に言うと、あるインプットに対し、人間のような知能のある生き物が行うようなアウトプットを出す機器のことです。本誌ニュースでは、ソフトバンクモバイルが、IBM製のディープラーニングを使った人工知能「Watson」を活用し、「学習塾で学ぶ学生の適正にあわせた勉強法などのアドバイス」「遺伝子情報、身体の状態から見たヘルスケアのアドバイス」「食生活情報を元にしたアドバイス」といったサービスを2015年度中に提供する方針だと伝えています。

人工知能の一大ブレイクスルー

 ディープラーニングが注目されるようになったのは、2012年、コンピューターによる物体認識の精度を競う国際コンテスト「ImageNet Large Scale Visual Recognition Challenge(ILSVRC) 2012」で、トロント大学のSuperVisionチームが写真データに写っている物体を特定する人工知能をディープラーニングで構成し、「タスク1:分類」「タスク2:局所化と分類」部門で優勝したあたりからでしょうか。他のチームがエラー率26%前後のところ、エラー率17%弱とダントツの認識率をマークしたのです。

 同じく2012年、米Googleがディープラーニングで構成された人工知能にYouTubeの画像を見せ続け学習させた結果、猫の画像を猫と認識できるようになった、と発表したのも大きなきっかけになっています。1万6千CPUコアのPCクラスタに、300万以上のノード、1億以上のエッジからなる多層ニューラルネットワークを構築し、YouTubeからランダムに抽出した1000万枚の画像をまる3日かけて学習させたところ、人が教えなくても、コンピュータが猫の画像を猫、他のものを他のものと実に2万個もの物体を写真の中から認識できるようになった、というのです。

 これまではこのような「実世界の画像に対して、その中に含まれる物体を名称で認識する」機械を作るためには「特徴量をベクトル表現で抽出」「学習器によるパターン認識」といったいくつかの人工知能技術を組み合わせて実現していました。しかも、たとえば、画像からどのような特徴量を取り出すかといった部分は人手によるチューニングが必要となっていたのです。ところが「ディープラーニング」ではひとつのアルゴリズムを使い、しかもこれまでの方法よりダントツに高い認識率で実現してしまいました。このことからディープラーニングは人工知能にとって、非常に大きなブレイクスルーとなりました。

 2015年現在、ディープラーニングは、米国のGoogleはじめ、IBM、マイクロソフト、Facebookや中国の百度など先端企業が競って研究を進めており、先に挙げた画像認識や音声認識、また自然言語解析などに応用され始めています。

 また、オープンソフトウェアとしてカリフォルニア大学バークレー校による「Caffe」や、トロント大学のSuperVisionのメンバーであるAlex Krizhevsky氏が公開している「Cuda convnet2」といったPCで使えるディープラーニングフレームワークも提供されており、個人がディープラーニングを使ったソフトウェアやサービスを作り、公開することも可能となっています。

ディープラーニングを使ったパソコン用ソフトのひとつ「waifu2x_caffe」。アニメ調の画像を多層ニューラルネットワークによって推測、復元することでノイズやジャギーの少ないハイクオリティな拡大を可能とする
著者近影画像を16倍に拡大してみた。真ん中の画像は単純にズームした場合で、右がディープラーニングを使った画像拡大ソフト「waifu2x_caffe」で拡大した場合。waifu2x_caffeは、まるでペンで描いたようにきれいに画像を拡大できることがわかる

ディープラーニング=「多層ニューラルネットワーク」を使った機械学習技術の総称

 人工知能を作るにはいくつかの技法があります。ディープラーニングはその中でも「多層ニューラルネットワーク」という技法に関する技術です。

 生物の脳は、ニューロンと呼ばれる神経細胞の、「樹状突起」という他のニューロンからの入力を受け持つ部分と、「軸索」という他のニューロンへの出力を受け持つ部分が、互いに連結し、ネットワークを作ることで知的活動を行っています。

 ニューラルネットワークは、生物の脳の神経回路の構造をソフトウェアで模しており、ソフトウェア中の「ユニット」が脳内のニューロンと同じようにネットワークを作っていますちなみに、ユニットの樹状突起に相当する部分をノード、軸索に相当する部分をエッジ、と呼んだりもします。

ディープラーニングとは、図のような「多層ニューラルネットワーク」を使った機械学習の技術のことだ。多層ニューラルネットワークは、ユニットの層をが「入力層」「中間層」「出力層」と3層以上から構成されている

 たとえば、人間が画像の中の猫を発見したとき、脳の中のニューロンの「猫」に関する部分が活性化するのですが、画像の中の猫を認識できるニューラルネットワークでは、画像中に猫を発見すると活性化するユニットができており、画像の中の猫を発見したときにそのユニットが活性化するというような造りになっています。

 ただ、本物の脳の中ではニューロン同士は非常に複雑なネットワークを形成しますが、人工知能では計算機でシミュレートできる程度に計算量を抑えるために構造を単純化し、「入力層→中間層→出力層」と入力されたデータが一方向に出力側に向かい、出力から入力方向へは戻らないようにされているのが普通です。このタイプのニューラルネットワークを、「フィードフォワードニューラルネットワーク」などと呼びます。

 多層ニューラルネットワークは、このフィードフォワードニューラルネットワークの一種で、各ユニットの層が「入力層」「中間層」「出力層」と3層以上に重ねて作られたものを言います。たとえば、先のGoogleの「猫画像を猫と認識した」人工知能の実験では、9階層に重ねた多層ニューラルネットワークが使われています。

 生き物の脳が、目に映るさまざまなものから学習をしていくように、コンピュータによる人工知能である「ニューラルネットワーク」もまた、入力される多くのデータから、そのデータの中に明示的には示されていない規則や判断基準を内部で作り出していく「機械学習」を行います。ディープラーニングとは、この「多層ニューラルネットワーク」における機械学習の技術の総称です。ディープに、つまり、何段にも重なったニューラルネットワークの奥深くの層までデータがユニットを活性化/不活性化し、機械学習が行われます。

コンピューターの発展で実用的に

 多層ニューラルネットワークやディープラーニングといった概念は、その流行が始まる2012年以前からあったのですが、ディープラーニングに関連する技術の未熟さやコンピュータの性能の低さのために、人工知能に使うにはあまり実用的とは考えられていませんでした。

 そうした課題は、「オートエンコーダー」や「制限ボルツマンマシン」といった事前学習の仕組みをはじめとするディープラーニング関連技術の進化、コンピューターの能力の発展によってクリアになり、多層ニューラルネットワークを基にした人工知能を基にしたサービスやアプリが増えてきています。

 ちなみにオートエンコーダーとは、あるユニットにデータを入力、そして出力した結果から再び入力したデータを復元できるようであれば、そのユニットは途中で必要な情報を失わない、優れたユニットであると仮定して事前学習を行う仕組みです。この仕組みによって多層ニューラルネットワーク内の各層ごとに効率的に事前学習をさせることができるようになります。これにより、「一度与えられたことのある問題に対してはよい答えを出すが、一度も解いたことのない問題を解かせると見当はずれな答えをするようになる」というニューラルネットワークに起きがちな「過学習」と呼ばれる障害を解決できるようになりました。

 「制限ボルツマンマシン」は、 オートエンコーダーとはまた別の事前学習のための仕組みで、簡単に言うと、後で似たようなデータを入力すると先に覚えたよく似たデータを思い出すことができるというものです。この制限ボルツマンマシンのよく知られる実装方法(コントラスティブダイバージェンス法)では、基本構造が可視ニューロン、隠れニューロンからなるひとつの層になっていて、この層を何重かに組み合わせ、事前学習を数多く繰り返すことでディープラーニングを行うことができます。

 そしてコンピューターの能力の発展という点では、近年のトレンドである分散化やマルチコア化も多層ニューラルネットワークやディープラーニングの実用化によい影響を与えました。現在のコンピューターは、ひとつのCPUに複数の計算器を内蔵するマルチプロセッサ化や、コンピュータ同士を結合して1台の並列計算機として使うクラスタ化というように、並列につながった計算機で複数の計算を同時に行うという方向で進化してきています。たとえばグラフィック処理をつかさどるGPUには、計算機である「コア」を数百も搭載していたりしますし、あるいはパーソナルコンピューターを何十台、何百台も結合して同時に計算できるようにしたシステムなどが作られています。

 ニューロネットワークでは多数のユニットが同時並行で、他のユニットから刺激を受け活動することを繰り返します。そこで、多くのCPU、GPU内の計算機に処理を割り当て、平行して計算することで、かつては非常に時間のかかっていたディープラーニングを現実的な時間で使うことが可能になったのです。

大和 哲

1968年生まれ東京都出身。88年8月、Oh!X(日本ソフトバンク)にて「我ら電脳遊戯民」を執筆。以来、パソコン誌にて初歩のプログラミング、HTML、CGI、インターネットプロトコルなどの解説記事、インターネット関連のQ&A、ゲーム分析記事などを書く。兼業テクニカルライター。ホームページはこちら
(イラスト : 高橋哲史)