本文へ移動
世界と暮らしの疑問を整理する知識ポータル
人工知能の仕組みと歴史

誤差逆伝播法とは何か ニューラルネットワーク復活の歴史

公開日

計算を何段も重ねれば、単純な一段の計算では表せない関係を扱えます。ところが、最後の答えが間違っていたとき、途中のどこをどれほど直せばよいのでしょうか。最終的な正解を示すだけでは、膨大な内部の重みに、それぞれの修正量は届きません。

この問題を効率よく扱う中心的な方法が、誤差逆伝播法、バックプロパゲーションです。1986年の研究は、多層のニューラルネットワークを学習させる方法として大きな転機になりました。ただし、その年に何もないところから突然発明され、直ちに現在の深層学習が完成したわけではありません。

答えの間違いを、途中の重みまでさかのぼる方法

入力xに重みaを掛け、その結果に重みbを掛ける小さなモデルなら、予測はb×a×xです。aを少し変える影響も、その後で掛けるb次第。正解との差を小さくするには、途中の数値を単独で眺めるのではなく、後の計算まで含めた影響を求めなければなりません。

逆伝播では、出力側から順に、後の計算への影響を前の計算へ伝えていきます。頼りになるのは、合成された関数の変化を計算する連鎖律。各部分の小さな変化をつなげることで、複雑なネットワークの各重みが誤りの大きさへ与える影響も求められるのです。

「誤差を後ろへ流す」と聞くと、間違った答え自体を入力へ戻すように感じるかもしれません。実際に計算するのは、誤りを測る量が各重みに対してどの方向へ、どの程度変わるかです。この傾きが勾配であり、重みを修正するための手がかりになります。

予測は入力から出力へ、勾配は逆向きへ
順伝播入力 → 中間の計算 → 予測
損失を計算予測と目標のずれを数値化
逆伝播出力側 → 中間 → 各重みの勾配

重みの更新は、求めた勾配を使う最適化手法が行います。逆伝播と更新は役割が異なります。

逆伝播と、重みを更新する最適化の違い

逆伝播は、勾配を効率よく計算する方法です。その勾配を使って重みをどう動かすかは、最適化手法の役割になります。両者は一緒に使われるため混同されがちですが、道の傾きを測ることと、歩幅を決めて歩くことは同じではありません。

たとえば坂を下る場面なら、傾きが分かっても一歩を大きくしすぎれば、谷を通り越して反対側へ行ってしまうでしょう。小さすぎれば、目的の場所へ近づくまで時間がかかります。学習でも、更新の大きさや過去の更新の利用方法によって、速さと安定性が変わります。

また、勾配を使うことは、最善の答えが必ず見つかる保証ではありません。現実のネットワークでは、多数の変数が関わる複雑な地形に相当する問題を扱います。初期値やデータの順序も結果に影響するため、学習法の存在と、望む性能への到達は分けて考える必要があるのです。

二つの重みで確かめる、修正量の違い

先ほどの小さなモデルで、xを1、aを2、bを3とすると、予測は6になります。正解を4とし、差の二乗を損失にするなら、損失は4。同じ予測の誤りでも、aとbのどちらを動かすかで影響は変わります。

aを少し増やした影響は、後ろのb=3によって3倍されます。一方、bの変化が受ける倍率はa×x=2です。微分で求めた損失の傾きは、この時点ではaについて12、bについて8。したがって同じ学習率を使っても、修正量は同じにはなりません。

たとえば学習率を0.01とし、同じ時点の勾配で両方を更新すれば、aは1.88、bは2.92になります。新しい予測は5.4896で、正解4へ近づきました。これは仕組みを確かめるための簡単な数値例であり、この更新幅がどんな問題でも適切という意味ではありません。

重みが二つなら一つずつ確かめられますが、何百万、何十億となれば、その都度モデルを計算し直す方法は重すぎるでしょう。計算のつながりを逆向きに一度たどり、多数の勾配を効率よく得る点に、逆伝播の価値があります。

1986年の研究が広めた、中間表現を学ぶ力

デイヴィッド・ラメルハート、ジェフリー・ヒントン、ロナルド・ウィリアムズらの1986年の論文は、出力の誤りをもとに、隠れ層を含むネットワークの重みを調整できることを示しました。重要なのは、最後の分類だけでなく、途中でどんな表現を作るかまで学習に含められる点です。

写真を分類するなら、人が「縦線の本数」「丸い部分の数」といった特徴をすべて決める代わりに、正解に役立つ中間の計算を獲得させられます。ただし、各中間要素が人間の言葉で説明できる概念に一対一で対応するとは限りません。内部表現の有用さと、その分かりやすさは別です。

歴史的には、逆向きに微分を計算する発想や関連する学習の先行研究がありました。1986年を唯一の発明日とするより、多層ネットワークの有効な学習法として広く認識される重要な転機とする方が正確です。科学の進歩は、数学の方法、実験、普及が別々の時期に起こることがあります。

層を深くすると小さくなる、勾配の信号

多層化できると分かっても、何十段も重ねれば簡単に学べるわけではありません。逆向きに影響を伝える途中で、小さな値が何度も掛け合わされると、前の層へ届く勾配が極端に小さくなる場合があります。これが勾配消失と呼ばれる問題です。

説明用に、影響が一段ごとに半分になるとしましょう。10段では最初の約1000分の1、20段では約100万分の1。実際のモデルの性能値ではありませんが、小さな減衰も重なると無視できないことが分かります。逆に大きな値が重なれば、勾配が膨らんで学習が不安定になる場合もあるのです。

したがって、深いネットワークには、計算の構造、使う関数、初期値、正規化などの工夫が必要でした。「層が多いほど賢い」という説明では、その層を実際に学習させる難しさを飛ばしてしまいます。

LSTMが設けた、情報を保つ経路と出し入れの仕組み

文章や音声のような連続するデータでは、遠く離れた情報の関係が重要になります。文章の最初に登場した人物が、何文も後の「彼」の意味を決めることがあるでしょう。単純な再帰型ネットワークでは、時間をさかのぼる学習の信号が弱まり、遠い依存関係を獲得しにくい問題がありました。

1997年にゼップ・ホッホライターとユルゲン・シュミットフーバーが提案したLSTMは、情報を保つ経路と、その出し入れを制御する仕組みを導入しました。すべての新しい入力で古い情報を無条件に上書きするのではなく、必要な情報を維持する方向を作ったのです。

ただし、LSTMは人間と同じ記憶を持つ装置という意味ではありません。長い依存関係を学習しやすくする計算上の構造です。また、現在よく使われるLSTMの形には、原論文以後の改良も含まれます。名前が同じだから、1997年の設計とすべて同一だとは限りません。

2000年代の事前学習と、深いモデルへの足場

深いモデルを最初からまとめて調整するのが難しいなら、層ごとに準備をしてから全体を調整できないか。2006年のヒントンらによる深い信念ネットワークの研究は、この方向で重要な成果を示しました。正解ラベルだけに頼らず、入力の構造を学ぶことも利用しています。

この考え方は、楽器の合奏をいきなり始める前に、それぞれが基本の動きを練習する場面に少し似ています。ただし、各層が独立した人間の奏者なのではありません。全体を学びやすい状態へ近づけるため、部分的な学習を使うという対応です。

後の深層学習では、別の初期化や構造、活性化関数などの改善によって、この方式の事前学習が必須ではなくなりました。だからといって、当時の研究が無意味だったわけではありません。深いモデルを実際に学習できるという実験的な見通しを強め、次の研究を促したのです。

誤差を減らす目標と、人が求める能力の距離

逆伝播が扱うのは、指定された損失を減らす方向です。損失に含めなかった目的まで、自動的に満たしてくれるわけではありません。写真の分類で正解率が上がっても、物体そのものではなく背景の模様を利用している場合があります。

説明用に、赤い机の上で撮った商品をすべて種類A、青い机の上の商品を種類Bとして学習させたらどうでしょう。背景色を見るだけでも、学習用データにはよく当たるかもしれません。机を変えた瞬間に失敗するなら、最適化は進んでいても、欲しかった区別は身に付いていなかったことになります。

学習が成功したかを判断するには、計算の誤りが減ったことだけでなく、条件を変えたデータでも目的の能力を示すかを確かめなければなりません。学習法の進歩は、この評価の問題をなくしませんでした。

数学の方法が実用の転機になるまで

逆伝播の普及から、画像認識で深層学習が大きく注目される2012年までには長い時間があります。その間には、文字認識などの応用、構造の改良、計算機の進歩、データの整備が積み重なりました。優れた式が見つかれば、その翌年に社会が変わるとは限らないのです。

この時間差は、AI史を考えるうえで重要です。ある発想が早すぎた場合、データや計算資源が整うまで能力を十分に示せないことがあります。一方、後で成功したからといって、当時の障害が小さかったわけでもありません。

深層学習の発展は、多層の表現力、勾配を求める方法、学習を安定させる工夫、それを支える資源が合流した結果です。その合流が目に見える大きな転機となった例が、ImageNetとAlexNetでした。

参考資料

人工知能の仕組みと歴史

人工知能の仕組みと歴史