ディープラーニング

ディープラーニングまたは深層学習とは、対象の全体像から細部までの各々の粒度の概念を階層構造として関連させて学習する手法のことである。深層学習は複数の独立した機械学習手法の総称であり、その中でも最も普及した手法は、多層の人工ニューラルネットワークによる機械学習手法である。

要素技術としてはバックプロパゲーションなど、20世紀のうちに開発されていたものの、4層以上の深層ニューラルネットについて、局所最適解や勾配消失などの技術的な問題によって十分学習させられず、性能も芳しくなかった。しかし、ジェフリー・ヒントンの研究チームが2006年に多層ニューラルネットワークを用いたオートエンコーダを発表したことをきっかけに、多層ニューラルネットワークの学習の研究が進展し、同時に学習に必要な計算機の能力向上とインターネットの発展による学習データの流通が相まって、十分に学習させられるようになった。その結果、音声・画像・自然言語を対象とする諸問題に対して他の手法を圧倒する高い性能を示し、2000年代末から2010年代にかけて急速に普及した。

深層学習が機械学習分野に与えた影響は非常に大きく、2015年に発表された拡散モデルに代表される生成モデルの多くに組み込まれたほか、2017年に発表されたTransformerをはじめとする大規模言語モデルなどの基盤にもなっている。しかし、深層学習によって行われたパターン認識がどのような根拠に基づいているかを解析することは難しく、ブラックボックス問題を引き起こしている。また、開発競争がきわめて激しく、最新の手法が数ヶ月で古くなるような事もあり得る状況であるため、常に最先端の技術を追いかけ続けることは容易ではない。

1. 概要
-----

ディープラーニングは、学習に用いる具体的な数学的概念はどうであれ、対象の全体像から細部までの各々の粒度の概念を階層構造として関連させて学習する手法を指す。21世紀に入って、オートエンコーダを始めとするジェフリー・ヒントンらによる多層ニューラルネットワークによる学習の研究や、学習に必要な計算機の能力向上、および、インターネットの発展による学習データの流通により、多層ニューラルネットによる手法が最初に確立された。その結果、音声・画像・自然言語を対象とする諸問題に対し、他の手法を圧倒する高い性能を示し、2010年代に普及した。結果として多層の人工ニューラルネットワークによる機械学習手法が広く知られるようになったが、ニューラルネットワーク以外でも深層学習は構成可能であり、現在はニューラルネットワークよりも抽象的な深層学習の数学的概念が模索されている最中にある。ビジネスの現場では多層ニューラルネットワークの応用が盛んであり、「ディープラーニング=ニューラルネットワーク」などと解釈される事が多いが、学界ではニューラルネットワーク以外の手法も含めた抽象的な概念として説明される。

2. 歴史
-----

ディープラーニングはニューラルネットワークの分野で最初に実現されたため、歴史はニューラルネットワークの発展から順次記載する。

2.1. 前史
-------

ニューラルネットワークの構成要素となるパーセプトロンが考案されたのは1957年であるが、計算機の性能の大幅な不足や、2層からなる単純パーセプトロンでは排他的論理和の認識ができないなどの欠点があったため、研究が大きく続けられることはなかった小林雅一。その後、1980年代より、排他的論理和の問題を扱うことができる3層からなる多層パーセプトロンの学習を可能にするバックプロパゲーションが開発されたが、非効率的なメカニズムや、動詞の過去形など複雑な認識ができないなどの要因により、1990年代後半には沈静化した小林雅一。

2.1.1. ネオコグニトロン
---------------

ディープラーニングのような多層ニューラルネットワークを志向する先駆的研究として、日本の福島邦彦によって1979年に発表されたネオコグニトロンが挙げられる。ネオコグニトロンには自己組織化機能があり、自ら学習することによってパターン認識能力を獲得していく。応用例として、福島らは手書き文字データベースから自己学習によって手書き文字認識能力が獲得されることを実証した。しかし、当時は「手書き文字認識方式の一つ」と誤解され、その重要性についての認識が世間に広がらなかった小林雅一。この当時はネオコグニトロンを検証する上ではデジタルコンピュータが貧弱過ぎたため、ソフトウェアでの検証が不可能であり、回路素子を繋ぎ合わせてネオコグニトロンを実装して検証が行われた。学習方法に誤差逆伝播法ではなくadd-if silentを使用している以外は畳み込みニューラルネットワークと同じであり、時代を考えると非常に先見性があった。

2.1.2. LeNet-5
--------------

1998年には畳み込みニューラルネットワークの直系の元祖となるLeNet-5が提案された。論文の中で、ニューラルネットワークの層構造を板状の図形で図示する方法が初めて用いられた。

2.2. 多層ニューラルネットワークの実現
---------------------

初期のディープラーニングはジェフリー・ヒントンによる貢献が大きいため、ニューラルネットワークによる理論実証の過程を記載する。

単層パーセプトロンの「線型分離不可能な問題」を解けない、という限界は、多層パーセプトロンの機械学習がバックプロパゲーションにより実現されたことで、ある程度は解決された。しかし、層数を増やした多層ニューラルネットの学習は、局所最適解や勾配消失などの技術的な問題によって、十分に学習させられず、性能も芳しくないとして、1990年代を中心とした時期には研究なども退潮気味にあった。また、これら理論の不備以前の問題として、発展的な機械学習を行うにはコンピュータの計算性能が大幅に不足しており、大量のデータの入手も難しかったため、研究の大きな障害になっていた。しかし、インターネットが広く普及し、コンピュータの性能が向上した2006年にニューラルネットワークの代表的な研究者であるジェフリー・ヒントンらの研究チームが、制限ボルツマンマシンによるオートエンコーダの深層化に成功し、再び注目を集めるようになった。この時発明された手法は積層自己符号化器と呼ばれた。この際、発表した論文から、これまでの多層ニューラルネットよりもさらに深いネットワーク構造を意味する、ディープネットワークの用語が定着した。元々はジェフリー・ヒントンらの開発したディープネットワークは層が直列された単純な構造をしていたが、現在のアルゴリズムは複数の分岐やループのある複雑なグラフ構造を持つ。そのため、基本技術をまとめて複雑なグラフ構造を簡単に実現できるようにしたライブラリも公開されている。2012年には物体の認識率を競うILSVRCにおいてジェフリー・ヒントン率いるトロント大学のチームがAlexNetによって従来の手法に比べてエラー率17%と実に10%もの劇的な進歩を遂げたことが機械学習の研究者らに衝撃を与えた。その後もILSVRCでは毎年上位はディープラーニングを使ったチームが占めるようになり、エラー率は2014年時点で5%程度にまで改善した。

2.3. 学習モデルの複雑化・数学的抽象化の時代
------------------------

コンピュータのハード性能の急激な進歩、インターネット普及によるデータ収集の容易化、CPUよりも単純な演算の並列処理に優れたGPUの低価格化、また、それらの計算資源の拡張を礎として、画像処理におけるディープラーニングの有用性が競技会で世界的に認知された2012年頃からは急速に研究が活発となり、第三次人工知能ブームが到来したとされている。これ以後は様々なアプリに人工知能が組み込まれ、ユーザーに最適な回答を返す事が出来るようになって行った。

2016年、グーグル翻訳はディープラーニングを利用して、従来の統計的翻訳から、ほぼ人間レベルの翻訳へと変貌を遂げた。その結果、人間にとって機械翻訳は日常生活での常識となり、計算神経科学などを研究する学者が揺るがされる時代となった。2022年には、Stable Diffusionなどにおけるディープラーニングの利用がPixivのような画像投稿サイトを変革し、ディープラーニングを利用したChatGPTなどが世界に革命をもたらした。

3. 利用
-----

ディープラーニングは物体認識を中心にさまざまな分野で活用されている。また、Googleをはじめとした多くのIT企業が研究開発に力を入れている。国家の経済成長を大きく左右する技術であるため、国家間の研究開発競争は経済戦争を引き起こしている。

GoogleのAndroid 4.3は、音声認識にディープラーニング技術を活用することで、精度を25から50パーセント向上させた小林雅一。2012年、スタンフォード大学との共同研究であるグーグル・ブレインは、1,000のサーバーの16,000のコアを使い、3日間で猫の画像に反応するニューラルネットワークを構築したと発表して話題となった小林雅一。この研究では、200ドット四方の1,000万枚の画像を解析させている。ただし、人間の脳には遠く及ばないと指摘されている。GoogleLeNetと呼ばれるチームによるトロント大学との共同研究では、画像の説明文を自動で生成できる「Image to Text」と呼ばれるシステムを開発した。これは、コンピュータビジョンと自然言語処理を組み合わせ、ユーザーがアップロードした画像を認識し、説明文を表示するものである。2015年3月、Schroffらは800万人の2億枚の画像を99.6%の精度で判定した。2016年1月、AlphaGoと呼ばれるシステムが中国系フランス人のヨーロッパ囲碁王者である樊麾と2015年10月に対局し、5戦全勝の成績を収めていたことが発表された。主に開発に携わったのは2013年にGoogleが買収したDeepMind。囲碁はチェスよりも盤面が広いために打てる手数の多さは比較にならないほどで人間のプロと互角に打てるようになるまでさらに10年はかかるという予測を覆した点と、囲碁に特化したエキスパートマシンではなく汎用的にも用いることができるシステムを使っている点に注目が集まった。2016年から2017年にかけては、いずれも世界トップクラスの棋士である韓国の李世乭と中国の柯潔と対戦し、2016年の李世ドルとの5番勝負では4勝1敗、2017年の柯潔との3番勝負では3連勝を収めた。

Facebookは、ユーザーがアップロードした画像を、ディープラーニングによって認識させ、何が写っているかの判別精度を向上させている小林雅一。また、人工知能研究ラボを2013年に立ち上げ、その成果としてディープラーニング開発環境を2015年1月16日にオープンソースで公開した。これは、GPU環境において、従来のコードの23.5倍の速度を実現しており、ディープラーニングの研究開発の促進が期待されている。

ニューラルネットワークによるディープラーニングを使ったニューラル機械翻訳が登場したことで、翻訳の品質が大幅に向上した。

エンターテインメントにおいても、NPCのAIはメタ解析によるディープラーニングが主流となり、ゲームデザインには人間とAIの協調が求められるようになった。また、自動運転車の障害物センサーや医療にも使われている。

利点が多い一方で、倫理date=2023年5月}}的な問題や犯罪も発生している。例えば、中国では天網に代表されるようにディープラーニングが国民に対する当局の監視強化を目的に急速に普及しており、世界のディープラーニング用サーバーの4分の3を占めているとされる。米国政府によれば2013年からディープラーニングに関する論文数では中国が米国を超えて世界一となっている。ヒントンらと並んで「ディープラーニングの父」と呼ばれているヨシュア・ベンジオは中国が市民の監視や独裁政治の強化に人工知能を利用していることに警鐘を鳴らした。また、ディープフェイクという、本物と区別の付かない偽画像生成技術が登場し、特定の有名人の顔や声を使って事実と異なる発言やポルノを収めた動画が多数流通するようになってからは、重大な名誉毀損や人格権の侵害の可能性があることから、警察が作成者やサイト運営者の摘発に動いている。さらに、偽の画像や音声を用いて様々な無人制御システムを撹乱する攻撃が想定されるため、被害を未然に防ぐ観点から対策が行われている。

4. ネットワークモデル
------------

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

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

畳み込みニューラルネットワーク  とは、全結合していない順伝播型ニューラルネットワークの一種。特に2次元の畳込みニューラルネットワークは人間の視覚野のニューロンの結合と似たニューラルネットワークであり、人間の認知とよく似た学習が行われることが期待される。結合がスパースであるため、全結合しているニューラルネットワークに比べて学習が高速である。

1979年に福島邦彦が発表したネオコグニトロンから発展し、1988年にHomma Toshiteruらが音素の認識に、1989年にYann LeCunらが文字画像の認識に使用し、1998年にLeCunらが発表したLeNet-5へと続き、2012年にILSVRCでの物体カテゴリ認識で優勝したAlexNetも深層畳み込みニューラルネットワークである。ネオコグニトロンの時から深層であったが、近年は深層であることを強調するため、深層が頭につき、深層畳み込みニューラルネットワークと呼ばれることもある。自然言語処理に対する応用もなされはじめた。

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

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

4.3. Residual network
---------------------

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

4.4. 敵対的生成ネットワーク
----------------

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

4.5. Transformer
----------------

Self-Attention機構を利用したモデルである。再帰型ニューラルネットワークの代替として考案された。

4.6. MLP-mixer
--------------

従来のニューラルネットワークとは異なり、本来ディープラーニングには使われないはずの純粋な多層パーセプトロンのみで構成された画像認識モデルである。画像を多数のパッチに分け、それらのパッチごとにパラメータ共有された層とパッチ間での変換を行う層を用意することで大幅な精度の向上がされている。欠点としては、固定されたサイズの画像しか入力が出来ない。

4.7. ボルツマンマシン
-------------

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

4.7.1. 制限ボルツマンマシン
-----------------

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

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

回帰型ニューラルネットワークとは、有向閉路を持つニューラルネットワークのこと。それ以前の入力によって変化する状態を保持する。動画像、音声、言語など、入力データの順序によって出力が変わる場合に有効である。また、順伝播型ニューラルネットワークでは、近似できるピーク数が中間層の素子数に依存するのに対して、回帰型ニューラルネットワークでは無限の周期性を持つ関数を近似することが可能である。

1980年代から研究が始まり、1982年に発表されたホップフィールド・ネットワークが初期の研究。その後ElmanネットワークやJordanネットワークが発表され、1997年にS. HochreiterおよびJ. SchmidhuberらがLSTMネットワークを発表した。

5. 特有の問題
--------

5.1. 勾配消失問題
-----------

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

5.2. 過学習
--------

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

5.3. 局所最適解へのトラップ
----------------

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

6. テクニック
--------

6.1. データ拡張
----------

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

6.2. 活性化関数
----------

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

6.2.1. ReLU
-----------

ReLU

出力が0.0 - 1.0に規格化されないため勾配消失問題が起きにくく、またシグモイド関数に比べると単純であるために計算量が小さく学習が速く進む等のメリットがある。

6.2.2. maxout
-------------

複数の次元の最大値を出力する関数。入力値のどれか一つでも大きい値を持っていれば良いので勾配消失問題が生じる確率が極めて低くなる。CNNのプーリングと同じ計算である。高性能と言われるが、性質上、次元が減少する。特徴選択も兼ねていると言える。

6.3. ドロップアウト
------------

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

6.4. スパースコーディング
---------------

ラッソ回帰とも呼ばれる。辞書行列と係数行列の内積で入力データを近似するとき、係数行列は疎行列になる。L1正則化のこと。

6.5. バッチ正則化
-----------

バッチ学習を行う際に、バッチ正則化層を設け、白色化  する。従来は、内部共変量シフト  を抑えることで、学習が効率的に進むとされていたが、現在では単に内部共変量シフトだけによるものではないと考えられている。

6.6. 量子化
--------

深層学習における量子化は活性化値の連続-離散変換である。

情報科学一般における量子化と同様に、連続値を離散値へ変換・近似する。深層学習では誤差逆伝播に勾配連続性が必要であるため、中間層で量子化を採用するには何らかの工夫が必要である。

以下は勾配生成アルゴリズムの一例である：

以下は量子化を深層学習モデルへ組み込む技法の一例である：



6.7. ミニバッチ法
-----------

6.8. 蒸留
-------

6.9. 事前学習 
------------------------

6.10. AdaGrad
-------------

6.11. Adam
----------

7. ライブラリ
--------

section=1

Caffe - Python, C++
torch - Lua
Theano - Python。関数型言語。並列化に特化し、GPUのコードが自動的に生成される。
Pylearn2 - Python
Blocks - Python
Keras - Python。TensorFlowのラッパー。Theanoでも動作可能。
Lasagne - Python
deepy - Python
cuDNN - NVIDIAが提供するCUDAベース  のDNN用プリミティブライブラリ。
Deeplearning4j - Java、Scalaが使用されている。
EBlearn - C++で書かれているCNN用ライブラリ。
cuda-convnet - C++/CUDA実装のCNN。基本的な機能はEBlearnと同じ。
Chainer - Python
TensorFlow - Python, C++
ReNom - Python
PyTorch
Microsoft Cognitive Toolkit - Python, C++, C#。以前はCNTKと呼ばれていた。
DyNet - Python, C++

8. 脚注
-----

8.1. 注釈
-------

8.2. 出典
-------

9. 参考文献
-------

園田翔：「深層ニューラルネットの積分表現理論」、早稲田大学博士論文。
[1]

10. 関連項目
--------

ニューラルネットワーク
機械学習
音声認識
画像認識
顔認識
自然言語処理
毒性学
顧客関係管理
レコメンダシステム
バイオインフォマティックス
医療画像分析 
モバイル広告 
画像復元 

11. 外部リンク
---------