バックプロパゲーション(誤差逆伝播法)とは?


ニューラルネットワークの学習方法

2021/04/16

執筆:フリーライター 三津村直貴

 最近ではニュースやビジネスシーンでAI(人工知能)という単語を聞くのが当たり前になってきました。

しかし、2000年代には、AIはそこまで一般に認識されるキーワードではありませんでした。当時は、まだまだSF感の漂う技術として広まっていたのです。

こうした世間の認識が変わったキッカケとなったのが、ここ十年の間に進んだ「第3AIブーム」です。

中でも、AIの機械学習の手法の1つである「ディープラーニング」のインパクトは計りしれません。 

今回は、ディープラーニングに関わる基本的な技術について簡単に解説していきます。


ディープラーニングとは

「ディープラーニング」とは、人間の神経系を参考に作られた「ニューラルネットワーク」と呼ばれるアルゴリズムを使った機械学習アルゴリズムのことです。
ニューラルネットワーク自体は、1950年代から形式ニューロンやパーセプトロンという形で話題になり第1AIブームの立役者となりますが、1960年代後半には原理的な限界が指摘され、1970年代には終わった手法として一度は忘れ去られてしまいますそれでも一部の研究者たちは研究を続け、2000年代までにいくつかの重要な技術が考案されました。

その中でも、ディープラーニングの登場に一役買ったのが「ニューラルネットワークの多層化」、「バックプロパゲーション(誤差逆伝播法)」、「オートエンコーダ」です。
今回は、ニューラルネットワークの多層化と、バックプロパゲーションについて説明します。


「ニューラルネットワークの多層化」とは

 まず、ニューラルネットワークにおける重要な進化が「多層化(深層化)」です。

人間の脳もそうですが、神経ネットワークは巨大で複雑な方が高度な思考を実現できます。

ニューラルネットワークの層が増えることによって、扱える次元や軸が増えると考えると良いでしょう。
たとえば、二次元の図形や直線の数値でしか物事を理解できなかったAI三次元や曲線の数値も扱えるようになるというイメージです。
これによって、研究初期の原理的な限界を超えることに成功し、新しいステップに進むことに成功しました。
ただ、実を言うと「多層化すればニューラルネットワーク限界は超えられる」というのは最初から分かっていました。

しかし、ニューラルネットワークの誕生当時はコンピュータの性能に限界があり、小規模なネットワークしか実現できなかったのです。

そのため、多層化の可能性を検証するには、コンピュータの性能が向上する1980年代まで待たなければなりませんでした。

 

「バックプロパゲーション」とは

 しかし、多層化によってニューラルネットワークが複雑で巨大になったことである問題が発生します。
ニューラルネットワークは情報ネットワークの核にあたる「ニューロン」同士のつながりにそれぞれ重みを設定し、その数値を上手に調整しながら、計算に最適なネットワークを作り出し、問題に対して最適な回答を出すという仕組みのアルゴリズムです。
この重みの数値を変更する作業を「重み付け」と呼ぶのですが、この重み付けが多層化によって難しくなってしまったのです。
 要するに、ニューラルネットワークの学習能力のキモである「重み付けを最適化することによって性能が向上する仕組み」が多層化すると、機能しなくなるということです。

それでは本末転倒なのですが、それを解決したのが「バックプロパゲーション」と呼ばれるアルゴリズムでした。

バックプロパゲーション(誤差逆伝播法)は、伝言ゲームをイメージすると、理解しやすくなるかもしれません

 バックプロパゲーションは、誤差逆伝播法とも呼ばれ、問題に対する正解とAIの回答にどれくらいの誤差あったのか、いわゆる「何を間違ったのか」という情報を回答側に近い「出力層」から問題側に近い「入力層」へ、本来の向きとは逆向きに流しながら重み付けを行う手法です。
 これは、伝言ゲームで先生が回答者から順に間違った人を探していくアプローチをイメージすると良いでしょう。

 バックプロパゲーションは画期的な学習法でした。しかし、その真の有効性が確認されるには長い年月が必要でした。

この手法が考案されたのは1960年代で、例によって当時はまだニューラルネットワークは小型なものしかありませんでしたので、そこまで重要な手法だとは考えられていなかったのです。


バックプロパゲーションのイメージ

 それがニューラルネットワークの多層化によって重要性が再認識されます。

そして、手法が繰り返し改良されることで1980年代には画期的な手法として注目されるに至りました。
 ただ、これにも限界がありました。一定以上の規模(1980年当時は4層程度)の多層ニューラルネットワークになると出力層から入力層までの距離が遠くなり、誤差の修正情報が入力層近くのネットワークまでしっかり届かず、効果が減じてしまったのです。

 これは層が増えることによって伝言ゲームに関わる人数が増え、伝言を歪めた犯人が分かりにくくなるというイメージです。


改良が続けられたニューラルネットワーク

 こうして、ディープラーニングを完成させるには「ニューラルネットワークの多層化」と「バックプロパゲーション(誤差逆伝播法)」だけでは足りないことが分かりました。
 この状況の打開に寄与した「オートエンコーダ」については次回解説しますが、今回紹介した2つの技術は現代でも改良が続けられているニューラルネットワークの中でも非常に重要な要素です。
 ニューラルネットワークの層は数百層を越えるのが当たり前になっており、非常に複雑な情報を扱える一方で、計算に必要なリソースは莫大なものになっています。

 また、バックプロパゲーションも進化し続けています。誤差を修正するための関数やアルゴリズムが多数登場し、問題に応じて適切な誤差の修正法を選ぶことでさまざまな問題に応用できるようになっています。
 ディープラーニングにおいてはどちらも非常に重要な技術となりますので、ある種の常識として頭に入れておきたいところですね。


メール・BLOG の転送厳禁です!!   よろしくお願いします。