情報処理試験を勉強していると、「バックプロパゲーションって結局何をやっているの?」と手が止まりがちです。名前からして難しそうですが、やっていることはシンプルです。
対象試験と出題頻度
バックプロパゲーション(誤差逆伝播法)は、基本情報技術者・応用情報技術者で出題されるテーマです。
ニューラルネットワークやディープラーニングの学習手法として選択肢に登場するパターンが中心で、転移学習・過学習・強化学習との区別が問われます。
詳細をクリックして確認
基本情報技術者
応用情報技術者
★★★☆☆
ランクB(標準)覚えておくと有利
用語の定義
バックプロパゲーション(Back Propagation)とは、一言で言うと
「ニューラルネットワークの出力と正解のズレ(誤差)を、出力層から入力層へ逆方向にたどりながら各層の重みを修正する学習アルゴリズム」
のことです。日本語では「誤差逆伝播法(ごさぎゃくでんぱほう)」と呼びます。
イメージとしては、「答案の赤ペン添削を、最後の回答欄から最初の計算過程まで順にさかのぼって行う作業」です。
テストの採点で最終回答が間違っていたとき、「どの計算ステップでズレが生まれたのか」を最後の式から順に前へたどって赤ペンを入れていく作業に相当します。
📊 バックプロパゲーションの基本情報
| 項目 | 内容 |
|---|---|
| 英語名 | Back Propagation |
| 日本語別名 | 誤差逆伝播法 |
| 分類 | ニューラルネットワークの教師あり学習アルゴリズム |
| キーポイント | 誤差を「出力→入力」方向に伝え、各層の重みを更新する |
解説
ニューラルネットワークは入力データを受け取り、各ノード間の「重み」を使って計算を進め、最終的な出力を生成します。しかし、最初はランダムに設定された重みでは正しい出力は得られません。
そこで必要になるのが「重みの調整」です。
バックプロパゲーションは、この調整を効率的に行うために考案されました。
順伝播と逆伝播の流れ
学習は「順伝播(フォワードプロパゲーション)」と「逆伝播」の2ステップを繰り返します。
順伝播では入力層から中間層を経由して出力層まで計算を行い、予測値を出します。
次に、予測値と正解の差(誤差)を損失関数で数値化します。逆伝播では、この誤差を出力層から入力層へ逆方向にたどり、微分(偏微分)の連鎖律を使って「各重みが誤差にどれだけ影響したか」を計算します。
最後に、影響の大きかった重みほど大きく修正します。
順伝播 → 誤差計算 → 逆伝播 の流れ
算出
▲ 上段が順伝播(青・緑の→)、下段が逆伝播(赤の←)
連鎖律(チェインルール)がカギ
逆伝播の計算を支えているのが、微分の「連鎖律」です。合成関数の微分を分解して各層ごとに計算できるため、層が何層あっても誤差の影響度を効率的に求められます。
具体的には、出力層の誤差をE、ある重みをwとすると、∂E/∂w を各層の偏微分の積として分解します。これにより、層ごとに独立して計算し、結果を掛け合わせるだけで済みます。
連鎖律のイメージ
∂E/∂w₁ = (∂E/∂y) × (∂y/∂h) × (∂h/∂w₁)
出力の誤差 × 出力層の勾配 × 中間層の勾配 = w₁が誤差に与えた影響
勾配消失問題とは
逆伝播では各層の勾配(微分値)を掛け合わせていくため、層が深くなると勾配が極端に小さくなり、入力層付近の重みがほとんど更新されなくなることがあります。これが「勾配消失問題」です。
対策として、シグモイド関数の代わりにReLU関数などの活性化関数を使う方法が広く採用されています。試験範囲では「勾配消失問題=層が深いと発生する」「ReLU関数で緩和できる」というセットで押さえれば十分です。
| 用語 | 何をするか | 方向 |
|---|---|---|
| 順伝播 | 入力データから予測値を計算する | 入力→出力 |
| 逆伝播 | 誤差を元に各重みの修正量を計算する | 出力→入力 |
| 勾配降下法 | 計算した修正量に基づいて実際に重みを更新する | — |
では、この用語が試験でどのように出題されるか見ていきましょう。
💡 バックプロパゲーションの核心を3行で
・出力と正解の誤差を「出力層→入力層」へ逆順にたどり、各層の重みを修正する学習手法
・連鎖律(チェインルール)で層ごとの勾配を効率的に計算する
・層が深いと勾配消失問題が起きるため、ReLU関数などで対策する
試験ではこう出る!
バックプロパゲーション単独の正解選択肢として出題されるケースは少なく、ディープラーニングや過学習の問題のなかで「ひっかけ選択肢」または「正解選択肢の一部」として登場するパターンが主流です。
📊 過去問での出題実績
| 試験回 | 出題内容 | 問われたポイント |
|---|---|---|
| AP R4秋 午前 問4 |
過学習の説明を選ぶ問題。選択肢ウに「結果側から逆方向に学習させて差を少なくする」と誤差逆伝播法の記述が配置された。 | ・過学習と誤差逆伝播法の区別 ・転移学習・強化学習との識別 |
| FE R6年度 免除 問3 |
ディープラーニングに最も関連が深いものを選ぶ問題。解説文中で「損失関数や勾配法、誤差逆伝播法」が登場。 | ・ディープラーニング=多層ニューラルネットワーク ・エキスパートシステム・遺伝的アルゴリズムとの区別 |
| AP R6春 午前 問3 |
ディープラーニングの説明を選ぶ問題(R3秋問3の流用)。正解選択肢に「多層の処理を重ねる」が含まれる。 | ・データマイニング、エキスパートシステムとの区別 ・「多層+学習」がディープラーニングの特徴 |
📝 IPA試験での出題パターン
パターン1:「過学習の説明を選べ」の中にひっかけとして登場
AP R4秋 問4のように、「結果側から逆方向に学習させて差を少なくする」という記述がバックプロパゲーションの説明であり、正解ではない選択肢として登場する。「逆方向に学習=過学習」と勘違いさせる意図がある。
パターン2:ディープラーニングの説明文中に含まれる
ディープラーニングの正解選択肢や解説文の中で、「誤差逆伝播法で重みを調整する」という表現が使われる。単独で問われるのではなく、ディープラーニングの構成技術として理解できているかを確認する形式。
ここだけは確実に押さえてください。「誤差を出力側から入力側へ逆方向に伝え、重みを調整する」=バックプロパゲーションです。試験ではこの一文が読み取れれば得点できます。
【確認テスト】理解度チェック
ここまでの内容を理解できたか、簡単なクイズで確認してみましょう。
Q. ニューラルネットワークにおけるバックプロパゲーション(誤差逆伝播法)の説明として、最も適切なものはどれでしょうか?
- A. 学習に使った訓練データに対しては精度が高い結果となる一方で、未知のデータに対しては精度が下がる現象。
- B. 出力と正解の誤差を出力層から入力層へ逆方向にたどり、各層の重みを修正する学習手法。
- C. ある領域で学習した学習済みモデルを、別の領域に再利用して効率的に学習させる手法。
正解と解説を見る
正解:B
解説:
バックプロパゲーションは、出力と正解の差(誤差)を出力層から入力層方向に伝播させ、連鎖律を用いて各層の重みを更新する手法です。
選択肢Aは過学習(オーバーフィッティング)の説明です。訓練データへの過剰な適合を指す概念であり、重みの修正手法ではありません。選択肢Cは転移学習の説明です。学習済みモデルを別の領域に流用する技術であり、誤差の逆方向伝播とは関係がありません。
よくある質問(FAQ)
Q. バックプロパゲーションと勾配降下法は同じものですか?
別のものです。バックプロパゲーションは「各重みが誤差にどれだけ影響しているか(勾配)」を計算する手法です。勾配降下法は、その計算結果を使って「実際に重みをどの方向にどれだけ動かすか」を決定するアルゴリズムです。前者が”偵察”で後者が”実行”に当たります。実務や論文では両者をセットで使うため混同しやすいですが、役割は明確に異なります。
Q. バックプロパゲーションは教師なし学習でも使えますか?
原理的には「正解データとの誤差」を起点にするため、教師あり学習が前提です。ただし、オートエンコーダのように入力データ自体を正解として扱う構造では、教師なし学習的なタスクでもバックプロパゲーションが利用されます。IPA試験では「教師あり学習の手法」として理解しておけば得点に支障はありません。
Q. バックプロパゲーションはいつ提案された手法ですか?
概念自体は1970年代にPaul Werbosの博士論文(1974年)で示されました。その後、1986年にDavid Rumelhartらの論文で広く知られるようになり、ニューラルネットワーク研究の第2次ブームを牽引しました。現在のディープラーニングでも、基本的な学習の枠組みとして使われ続けています。
Q. 「エポック」「バッチサイズ」「学習率」との関係を教えてください。
バックプロパゲーションで重みを更新する際、全訓練データを1周させることを「1エポック」と呼びます。バッチサイズはデータを何個ずつまとめて処理するかを決めるパラメータで、ミニバッチ学習では小さなデータの塊ごとに逆伝播と重み更新を行います。学習率は重みを更新するときの「修正幅の大きさ」を制御するハイパーパラメータで、大きすぎると最適値を飛び越え、小さすぎると学習が遅くなります。