ディープラーニング

概要

深層学習の登場以前、2層構造のパーセプトロン、3層構造の階層型ニューラルネットよりも多くの層を持つ、4層以上の多層ニューラルネットの学習は、局所最適解や勾配消失などの技術的な問題によって、十分に学習させられず、性能も芳しくない冬の時代が長く続いた。しかし、2006年にニューラルネットワークの代表的な研究者であるジェフリー・ヒントンらの研究チームが、制限ボルツマンマシンによるオートエンコーダの深層化に成功し、再び注目を集めるようになった。この際、発表した論文から、これまでの多層ニューラルネットよりもさらに深いネットワーク構造を意味する、ディープネットワークの用語が定着した。元々はジェフリー・ヒントンらの開発したディープラーニングは層が直列されたシンプルな構造をしていたが、現在のアルゴリズムは複数の分岐やループのある複雑なグラフ構造を持つ。そのため、基本技術をまとめて複雑なグラフ構造を簡単に実現できるようにしたライブラリも公開されている。
1979年に提唱されたネオコグニトロンなど、ニューラルネットワークの多層化の発想自体はコンピュータ黎明期からあり続けたものの、莫大な計算コストが問題となって研究は遅々として進まず、長らく低迷していた。
しかし、コンピュータのハード性能の急激な進歩，インターネット普及によるデータ収集の容易化，CPUよりも単純な演算の並列処理に優れたGPUの低価格化、また、それらの計算リソースの拡張を礎として、画像処理におけるディープラーニングの有用性がコンテストで世界的に認知された2012年頃からは急速に研究が活発となり、第三次人工知能ブームが到来したとされている。

利用

ディープラーニングは物体認識を中心にさまざまな分野で活用されている。また、Googleをはじめとした多くのIT企業が研究開発に力を入れている。また、自動運転車の障害物センサーにも使われている
GoogleのAndroid 4.3は、音声認識にディープラーニング技術を活用することで、精度を25から50パーセント向上させた。2012年、スタンフォード大学との共同研究であるグーグル・ブレイン(Google brain)は、1,000のサーバーの16,000のコアを使い、3日間で猫の画像に反応するニューラルネットワークを構築したと発表して話題となった。この研究では、200ドット四方の1,000万枚の画像を解析させている。ただし、人間の脳には遠く及ばないと指摘されている。GoogleLeNetと呼ばれるチームによるトロント大学との共同研究では、画像の説明文を自動で生成できる「Image to Text」と呼ばれるシステムを開発した。これは、コンピュータビジョンと自然言語処理を組み合わせ、ユーザーがアップロードした画像を認識し、説明文を表示するものである。2015年3月、Schroffらは800万人の2億枚の画像を99.6%の精度で判定した（22層）。2016年1月、AlphaGoと呼ばれるシステムが中国系フランス人のヨーロッパ囲碁王者である樊麾と2015年10月に対局し、5戦全勝の成績を収めていたことが発表された。主に開発に携わったのは2013年にGoogleが買収したDeepMind。囲碁はチェスよりも盤面が広いために打てる手数の多さは比較にならないほどで人間のプロと互角に打てるようになるまでさらに10年はかかるという予測を覆した点と、囲碁に特化したエキスパートマシンではなく汎用的にも用いることができるシステムを使っている点に注目が集まった。2016年から2017年にかけては、いずれも世界トップクラスの棋士である韓国の李世乭と中国の柯潔と対戦し、2016年の李世ドルとの5番勝負では4勝1敗、2017年の柯潔との3番勝負では3連勝を収めた。
中国では天網に代表されるようにディープラーニングが国民に対する当局の監視強化を目的に急速に普及しており、世界のディープラーニング用サーバーの4分の3を占めているとされる。米国政府によれば2013年からディープラーニングに関する論文数では中国が米国を超えて世界一となっている。ヒントンらと並んで「ディープラーニングの父」と呼ばれているヨシュア・ベンジオは中国が市民の監視や独裁政治の強化に人工知能を利用していることに警鐘を鳴らした。
Facebookは、ユーザーがアップロードした画像を、ディープラーニングによって認識させ、何が写っているかの判別精度を向上させている。また、人工知能研究ラボを2013年に立ち上げ、その成果としてディープラーニング開発環境を2015年1月16日にオープンソースで公開した。これは、GPU環境において、従来のコードの23.5倍の速度を実現しており、ディープラーニングの研究開発の促進が期待されている。
ニューラルネットワークによるディープラーニングを使ったニューラル機械翻訳（NMT）が登場したことで、翻訳の品質が大幅に向上した。

ネットワークモデル

ネットワークモデルは現在も盛んに研究されており、毎年新しいものが提案されている。

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

畳み込みニューラルネットワーク (Convolutional Neural Networks: CNN) とは、全結合していない順伝播型ニューラルネットワークの一種。特に2次元の畳込みニューラルネットワークは人間の視覚野のニューロンの結合と似たニューラルネットワークであり、人間の認知とよく似た学習が行われることが期待される。結合がスパース（疎）であるため、全結合しているニューラルネットワークに比べて学習が高速である。
1979年に福島邦彦が発表したネオコグニトロンから発展し、1988年にHomma Toshiteruらが音素の認識に、1989年にYann LeCunらが文字画像の認識に使用し、1998年にLeCunらが発表したLeNet-5へと続き、2012年にILSVRCでの物体カテゴリ認識で優勝したアルゴリズムも深層畳み込みニューラルネットワークである。ネオコグニトロンの時から深層であったが、近年は深層であることを強調するため、深層が頭につき、深層畳み込みニューラルネットワークと呼ばれることもある。自然言語処理に対する応用もなされはじめた。

スタックドオートエンコーダ

まず3層のオートエンコーダで学習を行い、学習が完了したら次の層(4層目)をオートエンコーダとして学習する。これを必要な分だけ繰り返していき、最後に全層の学習を行う。事前学習とも呼ばれる。類似技術にディープビリーフネットワーク、ディープボルツマンマシンなどがある。

Residual network

入力データを出力に変える変換を学習するのではなく、残差を学習する。通常の多層ニューラルネットより勾配消失がおきにくく、はるかに多層化できる。実験的には1000層まで学習されたものもある。欠点としては、入力次元数と出力次元数を変えることができない。

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

2つのネットワークが相反した目的のもとに学習するネットワークモデル。discriminatorが損失関数の役目を担う。二乗誤差最小化などでは、ピークが一つしか無いことを仮定しているが、discriminatorはニューラルネットであるのでピークを複数持つ確率分布を近似でき、より一般の確率分布を扱うことができる。

ボルツマンマシン

統計的な変動をもちいたホップフィールド・ネットワークの一種。

制限ボルツマンマシン

同一層間では接続を持たないボルツマンマシン。

回帰型ニューラルネットワーク

回帰型ニューラルネットワーク (Recurrent Neural Network: RNN) とは、有向閉路を持つニューラルネットワークのこと。それ以前の入力によって変化する状態を保持する（オートマトン）。動画像、音声、言語など、入力データの順序によって出力が変わる場合に有効である。また、順伝播型ニューラルネットワークでは、近似できるピーク数が中間層の素子数に依存するのに対して、回帰型ニューラルネットワークでは無限の周期性を持つ関数を近似することが可能である。
1980年代から研究が始まり、1982年に発表されたホップフィールド・ネットワークが初期の研究。その後ElmanネットワークやJordanネットワークが発表され、1997年にS. HochreiterおよびJ. SchmidhuberらがLSTMネットワーク（長・短期記憶、Long short-term memory）を発表した。

勾配消失問題

確率的勾配法は誤差から勾配を計算して中間層のウェイトを修正するが、シグモイド関数などは見てすぐにわかる通り、勾配が0に近い領域が存在する。偶然その領域に進むと勾配が0に近くなり、ウェイトがほぼ修正されなくなる。多層NNでは一カ所でも勾配が0に近い層が存在すると、それより下の層の勾配も全て0に近くなるため、確率的には層数が増えるほど学習が難しくなる。詳しくはバックプロパゲーション、活性化関数も参照のこと。

過学習

トレーニングデータでは高識別率を達成しながら、テストデータでは識別率が低い現象。過剰適合も参照のこと。

局所最適解へのトラップ

学習が、大域的な最適解ではなく、局所的には適した解へと収束し、抜け出せなくなること。

データ拡張

深層学習以外でも広く使われているが、入力データが画像など、どのようなテストデータが来るかあらかじめある程度の想定（モデル化）ができる場合は、たとえば画像の回転や引き延ばしを行うことで入力データ数を増やすことも昔から行われている。

活性化関数

古くからニューラルネットワークにおいてはシグモイド関数がよく使われていたが、勾配消失問題などにより、近年では別の関数が使われるようになった。詳しくは活性化関数を参照。

maxout

複数の次元の最大値を出力する関数。CNNのプーリングと同じ計算である。高性能と言われるが、性質上、次元が減少する。特徴選択も兼ねていると言える。

ドロップアウト (Dropout)

ドロップアウトはランダムに任意のニューロン（次元）を何割か無視してしまう技術である。入力データを増やせずとも、次元を減らすことで解の有意性を上げることができる。ドロップアウトして得た学習結果は、テスト時には同時に使用し、結果は平均して用いる。これはRandom forestと同様、検出率の低い識別器でも並列化することで信頼度を上げることができるためである。

スパースコーディング

Lasso回帰とも呼ばれる。辞書行列と係数行列の内積（線形結合）で入力データ(列ベクトル)を近似するとき、係数行列は疎行列（非零の要素が僅かしかない行列）になる。L1正則化のこと。

バッチ正則化 (Batch Normalization)

バッチ学習を行う際に、バッチ正則化層を設け、白色化 (入力データを平均 0、分散 1 に正則化) する。従来は、内部共変量シフト (internal covariance shift) を抑えることで、学習が効率的に進むとされていたが、現在では単に内部共変量シフトだけによるものではないと考えられている。