機械学習・AI

ディープラーニングとは?できること・仕組み・アルゴリズム・実用例

AI(人工知能)技術が注目をあつめる昨今、機械学習のひとつである「ディープラーニング(深層学習)」という単語を耳にする機会も増えてきました。一方で、従来の機械学習との違いや詳細な仕組みはわからないという方も多いのではないでしょうか。

この記事では、ITエンジニア・プログラマー以外の方にもわかりやすく「ディープラーニングの仕組み」や「代表的なアルゴリズム」「Deep Learningの活用事例」など解説します。

ディープラーニングとは

ディープラーニング(Deep Learning)は、認識や推論、問題解決など人間の行う知的なふるまいをコンピュータに行わせる人工知能(AI)技術のひとつです。日本語では「深層学習」と呼ばれます。AIに学習させる際に、人間が特徴量を指定する機械学習に対して、ディープラーニングではAIが自動的にデータから特徴を抽出します。

ディープラーニングのアルゴリズムとしてもちいられる「ディープニューラルネットワーク(DNN)」は、人間の脳神経回路をモデルとした多層構造によるものです。画像・音声・言語などの領域で他の機械学習手法を圧倒する精度を示したことで急速に普及しました。ただし、十分な精度を出すためには大量のデータが必要とされています。

ディープラーニングは、近年目覚ましい勢いで発展する人工知能の研究を下支えする技術として、注目されています。その活用範囲は非常に広く、人工知能研究の中核であるコンピュータ業界はもちろん、自動車業界やロボット業界といった他の業界でも、ディープラーニングを活用した技術開発が行われています。

ディープラーニングが重要な理由

現在ディープラーニングは、人工知能を開発する上で欠かせない手法となっています。AlphaGo(アルファ碁)やIBM社のWatson(ワトソン)などディープラーニングを用いて学習させた人工知能は、他の手法で学習させたものに比べ非常に高いパフォーマンスを発揮する事が、広く実証されているためです。

特にディープラーニングによって作成された人工知能の画像認識能力(視覚での情報判断能力)は非常に卓越したものがあり、そのパフォーマンスは時に人間のそれを凌駕するほどにまで進化しています。

近年になって目覚ましい成果を上げているディープラーニングの研究ですが、実はその理論自体は1980年代に提唱された、かなり古いものです。昔からあった理論が、最近になって新たに脚光を浴びる事になったのには、多層ニューラルネットワークの研究が進んだことのほかに、いくつか理由があります。

学習に利用するデータを用意しやすくなった

ディープラーニングが最近になって着目されるようになった理由のひとつが、インターネットの発達などにより以前に比べ「学習に利用するデータ」を入手しやすくなった事です。データに意味合いを与えるラベル付けのリソースや画像、音声、テキストなど非構造化データ処理の技術も発展に寄与しました。

ある事柄についてのラベル付けがされた大量のデータは、ディープラーニングによる人工知能の学習に必要不可欠なものです。例えば自動運転の車に搭載する人工知能をディープラーニングの手法で学習させるためには、車の運転に関連する数百万種類もの静止画像に信号機、標識、車両、人などのラベルを付与し、さらには数千時間にも及ぶ運転中の動画が必要となってきます。

ディープラーニングの理論が提唱された1980年代では、それほど大規模なデータを集めて保存しておく事など、技術的に考えて到底実現不可能でした。しかし近年、データ記憶装置が進化していくにしたがって、ディープラーニングに必要な「大量のラベル付けされたデータ」を集める事が徐々にできるようになっていったのです。その結果、局所最適解や勾配消失などの技術的な問題を抱えていたディープラーニングも、十分実現可能なものと認識されるに至りました。

高度なコンピュータの処理能力

もうひとつディープラーニングを行う際に必要な要素が「高度なコンピュータの処理能力」です。ディープラーニングでは、人工知能が大量のデータを比較しながら学習していくため、多くの情報を並列して解析できる、高性能なGPUが必要不可欠です。そしてディープラーニングの理論が提唱された1980年代には、そこまで性能が良いGPUはまだ存在していませんでした。

しかし現在、GPUの進化と共に、ディープラーニングの効率、精度は飛躍的に高まっています。最近の高性能GPUは、ほとんどがディープラーニングを行う上で効率的な「並列構成」となっているため処理能力は十分。さらにGPUを、クラスターやクラウドといった別の手段と掛け合わせて使用する事で、以前では考えられなかった短時間で処理が行えるようになっています。

数週間かけて行っていた処理を、数日、数時間の内に行えるようになったのは、ディープラーニングが発展していく上で非常に重要な要素となっています。

ディープラーニングでできること

ディープラーニングが一般的に行われるようになった事で、画期的な進歩があった分野がいくつかあります。代表的なのが「画像認識」「音声認識」「自然言語処理」「レコメンデーション」の分野です。

画像認識

ディープラーニングでの人工知能学習が一般的になる以前、人工知能の「画像認識」は非常に難しい課題でした。例えば人間が猫の画像を見て「これは猫だ」と判断するのは簡単な事ですが、行動に逐一プログラムが必要となっていた頃の人工知能にとっては、それすらほぼ不可能と言って良い難しさだったのです。

しかし、人工知能をディープランニングの手法で学習させる事ができるようになってから、人工知能の画像認識タスクは格段の進歩を遂げました。画像を見て、それが何の画像なのか判断できるようになったのはもちろん、顔認証システムなど精密な判定を必要とする分野では、時に人間の画像認識能力を凌ぐケースさえ見受けられるようになっています。

音声認識

もともと「音声データを元に音程の高さ・周波数の長短などを解析し、声を出した人物を特定する」などの作業(声紋認証)は、人間でも道具なしで行うのは難しい事でした。しかしディープラーニングで学習させた人工知能を用いる事で、声紋認証はかなりの精密さで行う事ができるようになっています。さらには声をかける事によって機械に指示を出す「音声認識」の技術も、ディープラーニングの発展と共に大きな進歩を遂げています。

自然言語処理

「自然言語処理」とは、会話や文章のやり取りなどにおいて人が自然に使用している言語(自然言語)を、コンピュータに処理させる技術をいいます。自然言語処理はディープラーニングが一般的に使われるようになって急速に発展してきた分野です。

自然言語処理を活用する作業の例としては、「画像データ上にある文字を人工知能に判別させ、文字データに起こす作業」や、「会話内容を人工知能に判別させ、文字データに起こす作業」などが挙げられます。

レコメンデーション

「レコメンデーション」とは、顧客の好みを分析し、顧客それぞれの需要にあった情報を提供するサービスの事です。ディープラーニングを用いたレコメンデーションは既に実用化されており、主にネット上で提供されています。

サービス例としては、利用者の閲覧履歴・検索履歴などを元に、利用者の目的に応じた検索候補を表示させやすくするサービス、利用者の好みに合ったWeb広告を表示させるサービスなどが挙げられます。

ディープラーニングの仕組み

ディープラーニングは、「ニューラルネットワーク」と呼ばれるネットワーク構造を組み合わせる事で、構築されています。

ニューラルネットワーク

「ニューラルネットワーク」とは、人の神経構造を模したネットワーク構造です。同じような構造を持った人工知能そのものを指して、ニューラルネットワークと呼ぶ事もあります。ニューラルネットワークは人の神経細胞を模した、パーセプトロンと呼ばれる小さな計算機の組み合わせで出来ています。ディープラーニングではニューラルネットワークに、ある事柄に対する計算処理を行わせる事で、その事柄はどういうものなのか、どういう処理をすれば良いのかを、人工知能に学習させていきます。

ニューラルネットワークは「入力層」「出力層」「隠れ層」の3層構造で構成されるのが一般的です。「入力層」は「外部からのデータを受け取る層」です。例えば人工知能に「猫の画像をスキャンすると、それが猫の画像だと結果が表示される」処理をさせる場合、「猫の画像をスキャンする」部分が、入力層の仕事となります。

「出力層」は「データの処理結果を出力する層」です。先に述べた処理の場合、「猫の画像だと結果が表示される」部分が出力層の仕事です。

「隠れ層」は入力層と出力層の間にある「受け取ったデータを分析する層」です。ディープラーニングを行う上で最も重要なのが、この隠れ層です。

ディープラーニングは、隠れ層が積み重なり出力層が深い

ディープラーニングの手法で用いられるニューラルネットワークは、「ディープニューラルネットワーク」と呼ばれる種別のものが、多くを占めます。ディープニューラルネットワークの特徴はその名の通り、隠れ層が積み重なり、出力層が「深く」にある点です。

従来のニューラルネットワークの隠れ層は、2層から3層なのが一般的でした。しかしディープニューラルネットワークの場合、100層以上もの隠れ層が積み重なっているものも珍しくありません。出力層の深さは出力結果の精密さにつながります。

即ち、ディープニューラルネットワークを用いて行われるディープラーニングは、人工知能に、非常に精度の高い学習を行わせる事ができるのです。

FNNとRNN

ディープラーニングで用いられるニューラルネットワークは、大きく分けて二つあります。

その一つが「FNN(フィードフォワード・ニューラルネットワーク)」です。FNNは日本語で「順伝播型ニューラルネットワーク」とも訳され、入力層で受け取ったデータが出力層へ向け、一方通行で処理されていくのが特徴です。上位の隠れ層から下位の隠れ層に、順番にデータが受け渡されていく事から「順伝搬型」と名付けられています。

もう一つが「RNN(リカレント・ニューラルネットワーク)」です。日本語では「再帰型ニューラルネットワーク」と呼ばれます。その名の通り隠れ層内をデータが行ったり来たりして処理されていくのが特徴で、出力したいデータが時系列を持っていたり、データの大きさが一定で無い場合、FNNより対応しやすいのが特徴です。

ディープラーニングのアルゴリズム

ディープラーニングでは、「大量のラベル付けされたデータ」と「ニューラルネットワーク」の仕組みを利用した、人工知能の学習アルゴリズムが組まれています。

CNN(畳み込みニューラルネットワーク)

「CNN(畳み込みニューラルネットワーク)」は、ディープニューラルネットワークで最も頻繁に使われているネットワーク形式です。CNNでは、大量のラベル付けされたデータから学び取った内容を一緒くたに畳み込み、蓄積していく事で、人工知能に学習を施します。

例えば「画像認識」の場合、CNNでは、ラベル付けされた画像データから数々の特徴を抽出し、それら特徴を持つのは○○(ラベル)だと、特徴とラベルを一緒に畳み込み、情報化します。また別の画像データからも、その特徴とラベルを畳み込んで情報を抽出し、そうして大量(数万、数百万枚レベル)の畳み込んだ情報を比較、照合していく事で、そのラベルがどういった特徴を持つ画像データなのか、人工知能に学習させていきます。

LSTM(Long Short Term Memory)

「LSTM(Long Short Term Memory)」は、人工知能がある程度長い時系列データに関しても学習できるよう考案された、RNNの拡張モデルです。日本語では「長・短期記憶」と呼ばれる事もあります。

複数の積み重なった隠れ層を行ったり来たりさせる事で情報の精度を高めるRNNは、動画や音声など、時系列のあるデータを学習させるのに向いたネットワーク形式ですが、長時間のデータを処理しようとすると、誤差が大きくなったり、情報量が爆発的に多くなったりする問題を持っていました。LSTMはそれらの問題を、「隠れ層の構造を簡素化する事」で解決したものといえます。

LSTMの理論自体は1990年代に提唱された古いものですが、近年のディープラーニングの流行と共に、急速に注目を集めています。

GAN(敵対的生成ネットワーク)

人工知能に学習させる際、重要なのが「境界線の引き方」です。どういう事かというと、例えば「猫の識別」を人工知能に学習させる場合、どういった特徴を持っていれば猫で、どういった特徴を持っていなければ猫でないのか、どこかに境界線を引いておかなければ学習の意味自体なくなってしまいます。「GAN(敵対的生成ネットワーク)」は、この境界線を定める方法として用いられる技術です。

GANは生成モデルと呼ばれるネットワークの一種で、複数のデータを合成し、実在しないデータを作る働きを持ちます。GANを用いて境界線を引く仕組みは、非常にシンプルなものです。例えば「猫の画像識別」を学習させる場合、GANは複数の猫の画像を合成し、そのデタラメな合成画像を「猫のものである」と、人工知能に誤認させようとします。一方人工知能は、いくつかの画像から得た情報を元に「その画像は猫ではない」と判断します。

それを受けてGANは、人工知能が誤認するようさらなる合成画像の改善を行います。人工知能はその画像に騙されないよう学習を深めていきます。そうした作業を無数に繰り返していく事で、GANの合成画像は「本物の猫の画像に非常に近しい画像」となり、また人工知能の「猫の画像識別能力(=境界線の引き方)」も非常に精度の高いものになっていきます。

GANを用いたディープラーニングの手法は、人工知能に「自動的に」学習させる非常に画期的な方法として、多くの注目を集めています。

ディープラーニングの実用例

ディープラーニングの手法を用いて学習した人工知能の中には、実用化の目途が立っているものや、既に商品として売り出されているものも少なくありません。

自動運転

車の自動運転技術は、ディープラーニングを利用して作られた技術の中で、最も期待されているものの一つです。標識や信号、他の車や歩行者の検知を人工知能に任せる事で、事故の減少や渋滞の緩和に繋がると考えられています。

ロボット工学

ロボット工学は、ディープラーニングの進歩と共に、大きく発展した分野です。人工知能の発達は、ロボットが自ら周囲の環境を理解し、行動を判断する、大きな助けとなっています。これから先の人工知能の更なる進化によって、ロボットの活用範囲は、ますます広がっていく事でしょう。

農業

人工知能の進化は農業に影響を与える可能性も秘めています。例えば農薬の散布を行うロボットや、雑草と作物を識別するロボットは、既に実用化されており農家への導入が進んでいます。この先の研究次第では、農地の灌漑から肥料の使用、収穫までもロボットに任せておける、「農業の自動化」も夢ではないかもしれません。

航空宇宙・防衛

人工衛星から得た画像をディープラーニングの手法を用いて解析する事で、地上の物体認識・検出をする事が可能です。例えば軍事・防衛行動を行う際、地上を移動する部隊が安全な状態にあるかどうか、調査するのに役立ちます。

医療画像処理とヘルスケア

医療現場でディープラーニングは、「がん細胞の検出」などに用いられています。高精度な顕微鏡と組み合わせて用いる事で、人間の目では見つけられない微細ながんの兆候などを、正確に検出する事が期待されています。

産業オートメーション

産業オートメーションにおいてディープラーニングは、現場の安全性を高めるために利用されています。動作中の重機の周囲に人やものなどが侵入した時など、それを自動的に検出し、安全に動作を停止する機能などが実用化されています。

家電製品

人の声に反応し、命令に応じた動作や提案をする「ホームアシスタントデバイス」は、ディープラーニングを用いた家電の中でも代表的なものです。他にも、会話を同時翻訳する翻訳機の開発など、ディープラーニングの特性を活かした家電の研究がされています。

関連記事Related Posts