最近、人工知能(AI)関連のニュースでキーワードとしてよく取り上げられる深層学習(ディープラーニング)について解説します。

2010年代から、コンピューターの性能向上とともに、人工知能が盛り上がりを見せています(第3次人工知能ブーム)。この人工知能の盛り上がりのきっかけとなったのが、深層学習(ディープラーニング)という技術です。人工知能の実態を知るためにも深層学習(ディープラーニング)技術の理解は欠かせないでしょう。

深層学習(ディープラーニング)とはどのような技術か、実際にどのようなサービスに使われているのか、ぜひ知っておきましょう。

 

なお本記事は、TechAcademyのAIオンライン講座の内容をもとに作成しています。

 

目次

 

田島悠介

今回は深層学習(ディープラーニング)について解説するよ。

大石ゆかり

田島メンター!深層学習というのは具体的にどのような技術なんですか〜?

田島悠介

人工知能の学習方法の1つなんだ。詳しく見ていこう。

大石ゆかり

分かりました!

 

深層学習(ディープラーニング)とは

人工知能(AI)を活用したテクノロジーが次々と発表されています。例えば以下の事例はニュースとして聞いた方も多いのではないでしょうか。

  • 囲碁AIのAlphaGo(アルファ碁)が囲碁チャンピオンを破った
  • 自動運転技術の発展
  • グーグルのAIが動画を見て猫の概念を学習した

これらに共通して使われているのが深層学習(ディープラーニング)という技術です。

人工知能とは、「コンピューターが物事やルールを理解するための仕組み」の様々な技術の総称です。コンピューターが物事やルールを理解するためには、人間が学習するプロセスと同様に、情報を与えて物事の特徴やルールを学習させなくてはなりません。

この学習方法のことを機械学習(マシーンラーニング)と呼び、その中でも、より人間の脳に近い学習手法の1つが、深層学習(ディープラーニング)という技術です。

 

深層学習(ディープラーニング)の仕組み、原理とは

深層学習(ディープラーニング)とは、人や動物の脳の神経回路をモデルにした、多層のニューラルネットワーク(ディープニューラルネットワーク)による機械学習の手法です。

「神経回路」「ニューラルネットワーク」「多層」、いろんなキーワードが出てきましたね。

まずは、神経回路から確認していきましょう。

神経細胞(Wikipedia)

こちらが神経細胞です。神経回路は、この神経細胞が複数接続されたものです。

神経細胞は、他の細胞からの入力を樹状突起(左側の紫色の部分)で受け、他の細胞に軸索(右側の紫色の部分)で出力します。このとき神経細胞では、複数の細胞からの入力を受けたり、内部で入力信号を変化させることで、情報の修飾が行われます。

この情報の修飾が、神経回路全体として行われることで、感覚の伝達、視覚の認識、そして脳の知覚、すなわち知能が実現されています。

例えば、人間が「0」や「1」といった数字を目で見たとしましょう。この時、1つ1つの視覚細胞では、入力された視覚信号をもとに情報を修飾し、他の細胞に伝達することが行われています。この時の情報の修飾により、「0」であれば「丸い円」、「1」であれば「縦方向の直線」といった「特徴」が認識されます。

また人間は、その視覚情報に対して、「0」や「1」といった概念(正解、機械学習ではラベルといいます)を教えてもらうことで、「数字の特徴」と「数字」という概念を対応づける「学習」を行うことができます。

この学習を繰り返すことで、人間は、少し違った形の数字であっても、視覚情報から得られる特徴から「数字」と認識できるようになります。

 

では次に、神経回路をモデルにしたニューラルネットワークについて確認します。

こちらはニューラルネットワークにおいて、神経細胞と同等の役割を果たすものです。パーセプトロンと呼ばれます。

個々のパーセプトロンでは、人間の神経細胞と同様に、他のパーセプトロンからの入力を左側のInputで受け、他のパーセプトロンに右側のOutputで出力します。また、複数のパーセプトロンからの入力を、内部で変化(数学的な計算)させることで、情報の修飾を行っています。

ニューラルネットワーク(Wikipedia)

パーセプトロンを複数接続したのがニューラルネットワークです。個々のパーセプトロンでは、人間の神経細胞と同様に、入力された値をもとに情報の修飾(数学的な計算)を行い、他のパーセプトロンに伝達することが行われています。この情報の修飾により、入力された情報の「特徴」が認識されます。

ただしこれまでは、コンピューターの能力に限界があり、ニューラルネットワークの層(左から右に伝達する間に存在するパーセプトロン群)を増やすことができませんでした。そのため、パーセプトロン同士の接続が(人間の神経回路に比べて)単純であり、特徴を十分に学習させることができない問題がありました。

ディープニューラルネットワーク(Wikipedia)

しかし近年のコンピューターの著しい能力向上、そして情報修飾(数学的な計算)方法におけるブレークスルーなどがあり、ニューラルネットワークの層を増やしたモデルの構築が可能となりました。それがディープニューラルネットワークです。

ディープニューラルネットワークでは、より人間の神経回路に近いパーセプトロンの接続を行うことができます。これにより入力された情報から、多くの特徴を認識できるようになり、機械学習の精度が飛躍的に向上しました。

 

深層学習(ディープラーニング)の事例

深層学習には、前出のAlphaGo(アルファ碁)や自動運転技術の他、多くの場面で利用されています。ここでは代表的な例を見ていきましょう。

 

画像認識、映像解析

ディープラーニングが大きく注目されるようになったきっかけは、2012年に開催された「ILSVRC2012」という画像認識の大会です。この大会では、ImageNetという大量のラベル付き画像(画像と写っている物の名前のセット)を基に画像認識率を競い会います。前年度までの正解率は、高くても70%台前半でした。

ところが2012年、ディープラーニングを使ったモデルが、一気に約85%の正解率を叩き出します。翌年からは、ディープラーニングを使ったモデル同士が競い合うようになり、正解率もどんどん向上して行きました。現在では正解率95%以上、人間を超えるレベルにまで到達しています。

現在は、この画像認識/映像解析の技術が、多くの製品で実装されています。

 

音声解析

日本でも、「LINE Clova」や「Google Home」、「Amazon Echo」といったスマートスピーカーが次々と発売されています。また、iPhone/Macの「Siri」やAndroidの「Googleアシスタント」、Windows10の「Cortana」などといった音声入力システム。これらには、ディープラーニングを使った音声解析技術が用いられています。

音声解析は、リアルタイムに大量のデータを処理しなければなりません。

また、一般用途向け製品、スマートフォンやスマートスピーカー、パソコン等、多くのコンシュマーデバイスから日々情報が入力されています。

各社とも、具体的な規模は明らかにしていませんが、サーバ数万台が連携した音声解析のクラウドシステムを構築し、対応しているものと思われます。

 

翻訳、言語解析

2016年の秋、Googleはディープラーニングを用いた、Google Neural Machine Translation(GNMT)と呼ばれる新しい翻訳システムを導入しました。これは、これまでの語句レベルでの翻訳から、文章全体を見た、より適切な翻訳を行うシステムです。

実際、Google翻訳を使用すると、ほとんどの文章において、自然な文章で翻訳されているのが実感できると思います。

また、翻訳の研究は、日本でも古くから行われています。NICT(独立行政法人 情報通信研究機構)が開発した音声翻訳アプリには、NICTが開発した多言語翻訳エンジンが使われています。

もう一つの事例として、Googleの絶滅危惧言語プロジェクトを紹介しましょう。これは、世界で絶滅の危機に瀕している言語の保存、ドキュメント化を目的としています。

これまでの翻訳では、多数の人力を必要としていました。ところがディープラーニング技術を用いると、翻訳例をもとに、モデル自らが学習を進めていきます。そのため、より低コストで質の高い翻訳を行うことが可能になり、従来は費用などの制約から行われてこなかった、利用者の少ない言語の翻訳も行えるようになりました。

 

深層学習(ディープラーニング)のライブラリ

では最後に、深層学習(ディープラーニング)のライブラリをいくつか紹介しましょう。

TensorFlow

世界で最も使われている(であろう)深層学習のライブラリです。チュートリアルや解説本も多く、初心者が入門するには最適のライブラリです。

TensorFlow

Chainer

Preferred Networks(プリファード・ネットワークス、PFN)社が開発した、日本製のライブラリです。日本ではよく使われています。

Chainer

Caffe/Caffe2

画像認識に特化しており、高速な処理が可能です。

Caffe / Caffe2

NNabla

SONYが開発したライブラリ。Neural Network ConsoleというGUIツールを用いてモデルを作成できるのが特徴です。

NNabla

Keras

こちらは深層学習を、より便利に使うためのライブラリです。深層学習は層が増えてくると、コードの記述が面倒になりがちですが、それらを解消するためのライブラリです。TensorFlowの他、CNTKやTheanoといったライブラリにも対応しています。

Keras

 

 

田島悠介

深層学習について、理解は深まったかな?

大石ゆかり

仕組みや活用事例など、勉強になりましたー!

田島悠介

深層学習は、これからエンジニアの必須の知識として必要になってくるよ。機械学習や画像認識、自然言語処理については、また別のところで勉強するね。

大石ゆかり

了解です。ありがとうございました!

 

今回は、深層学習(ディープラーニング)について解説しました。

これから深層学習を勉強したい、深層学習を使って何か作ってみたいという方は最初に理解しておきたい内容でしょう。

 

また、オンラインのプログラミングスクールTechAcademyでは、AIオンライン講座を開催しています。

AI(人工知能)の構築に必要な機械学習・ディープラーニングについて実践的に学習することができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

この記事を監修してくれた方

太田和樹(おおたかずき)
ITベンチャー企業のPM兼エンジニア

普段は主に、Web系アプリケーション開発のプロジェクトマネージャーとプログラミング講師を行っている。守備範囲はフロントエンド、モバイル、サーバサイド、データサイエンティストと幅広い。その幅広い知見を生かして、複数の領域を組み合わせた新しい提案をするのが得意。

開発実績:画像認識技術を活用した駐車場混雑状況把握(実証実験)、音声認識を活用したヘルプデスク支援システム、Pepperを遠隔操作するアプリの開発、大規模基幹系システムの開発・導入マネジメント

地方在住。仕事のほとんどをリモートオフィスで行う。通勤で消耗する代わりに趣味のDIYや家庭菜園、家族との時間を楽しんでいる。

情報提供元:TechAcademyマガジン
記事名:「概念を理解しよう!深層学習(ディープラーニング)とは