AI資格ドリル
資格を選ぶ

用語比較

BPTTと誤差逆伝播法の違い|時間方向に展開するかどうか(G検定・RNN)

誤差逆伝播法は、出力の誤差を後ろの層から前の層へ順に伝えて、各重みの勾配を求める方法です。BPTTは、この誤差逆伝播法をリカレントニューラルネットワーク(RNN)に使うときの呼び名で、Back-Propagation Through Time(時間を通した誤差逆伝播法)の略です。

別の方法ではなく、適用の仕方の違いです。RNNを時間方向に展開して、展開した計算の図に誤差逆伝播法をそのまま適用したものがBPTTです。

この記事の根拠と出典

各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。

誤差逆伝播法とBPTTの要点

誤差逆伝播法

層をまたいで誤差を後ろから前へ伝え、重みの勾配を求める方法。多層のニューラルネットワーク全般で使う。

BPTT

RNNを時間方向に展開した図に、誤差逆伝播法を適用する方法。誤差は層だけでなく、時刻をさかのぼって伝わる。

違いを表で確認

比較軸誤差逆伝播法BPTT
対象のモデル誤差逆伝播法:多層のニューラルネットワーク全般BPTT:RNN(時系列を扱うモデル)
誤差が伝わる向き誤差逆伝播法:出力層から入力層へ(層の向き)BPTT:現在の時刻から過去の時刻へ(時間の向き)
重みの扱い誤差逆伝播法:層ごとに別の重みBPTT:全時刻で同じ重みを共有する
計算量の目安誤差逆伝播法:層の数に応じて増えるBPTT:系列の長さに応じて、計算時間も記憶する量も増える
試験での手掛かり誤差逆伝播法:「層」「出力から入力へ」BPTT:「RNN」「時間方向に展開」「過去の時刻へ」

どこで迷っているかを切り分ける

01

RNNの学習が別のアルゴリズムだと思っていた人

教科書『Deep Learning』は、RNNの勾配は展開した計算の図に誤差逆伝播法を適用するだけで求められ、専用のアルゴリズムは要らないと説明します。BPTTは別の仕組みではなく、その呼び名です。

02

長い文章でRNNの学習が遅くなる理由を知りたい人

BPTTでは、時刻を1つずつ順に計算し、前向きの計算で得た値を逆向きの計算まで記憶しておきます。系列が長いほど、時間も記憶量も増えます。

03

勾配消失問題とのつながりで止まっている人

BPTTは誤差を過去の時刻まで掛け合わせて伝えるので、系列が長いと勾配が小さくなる問題が起きやすくなります。この対策として作られたのがLSTMやGRUです。

具体例で使い分ける

例 1

3つの時刻に展開する場合(架空の例)

RNNに3つの入力(時刻1、2、3)を順に与え、時刻3で出力の誤差を求めたとします。

  • RNNを時間方向に展開すると、同じ重みを使う3つの層が横に並んだ図になります。
  • この図に誤差逆伝播法を適用し、時刻3から時刻2、時刻1の順に誤差を伝えます。
  • 同じ重みが3回使われているので、その重みの勾配は、各時刻から得られる勾配を足し合わせて求めます。

結論: 展開すれば、あとは通常の誤差逆伝播法と同じ計算です。違うのは、重みが共有されている点と、伝わる向きが時間であることです。

例 2

系列の長さが違う場合(架空の例)

長さ10の文章と長さ100の文章で、同じRNNを学習するとします。

  • 展開した図の横の長さが、10と100になります。
  • 前向きの計算は時刻を1つずつ順に行うので、並べて同時には計算できません。
  • BPTTの計算の手間も、記憶する値の量も、系列の長さに比例して増えます。

結論: 系列が10倍になれば、BPTTの手間と記憶量はおよそ10倍になります。

例 3

層の深い通常のネットワークの場合(架空の例)

時系列でない画像分類の多層ネットワークを学習するとします。

  • 時刻の概念がないので、時間方向への展開は要りません。
  • 出力層から入力層へ層の順に誤差を伝える、通常の誤差逆伝播法を使います。

結論: BPTTという呼び方は、RNNのように時間方向に展開する場面で使います。

問題文から答えを選ぶ手順

  1. 1

    モデルの種類を見る

    時系列を扱うRNNの話ならBPTT、層の深いネットワーク一般の話なら誤差逆伝播法です。

  2. 2

    誤差が伝わる向きを読む

    「過去の時刻へさかのぼる」ならBPTT、「出力層から入力層へ」なら誤差逆伝播法です。

  3. 3

    重みの共有を確かめる

    全時刻で同じ重みを使い、勾配を時刻ごとに足し合わせるのはBPTTの特徴です。

  4. 4

    関係を押さえる

    BPTTは誤差逆伝播法の別名ではなく、RNNを展開して誤差逆伝播法を適用したものです。

試験での見分け方

  • 1BPTTは、RNNを時間方向に展開した計算の図に誤差逆伝播法を適用したもの。
  • 2BPTTでは全時刻で同じ重みを共有し、重みの勾配は各時刻の寄与を足し合わせる。
  • 3BPTTの計算時間と記憶量は、系列の長さに比例して増える。
  • 4系列が長いと勾配が消えやすい。対策にLSTMやGRUがある。

誤答しやすい選択肢

BPTTを誤差逆伝播法とは別の学習法だと考える

修正: BPTTは誤差逆伝播法を、時間方向に展開したRNNに適用したものです。計算の原理は同じで、図の形が違います。

RNNの重みが時刻ごとに別だと考える

修正: RNNは全時刻で同じ重みを使います。展開した図で別の層に見えても、重みは共有されています。

BPTTは系列の長さに関係なく同じ手間で済むと考える

修正: 系列が長いほど展開した図が長くなり、計算時間も記憶量も増えます。

確認問題

Q1RNNを時間方向に展開して誤差逆伝播法を適用する学習方法は?

答え: BPTT(時間を通した誤差逆伝播法)

誤差が層だけでなく、現在から過去の時刻へさかのぼって伝わります。

Q2BPTTで、全時刻にわたって共有されているものは?

答え: 重み(パラメータ)

展開した図では別の層に見えますが、同じ重みを使い、勾配は各時刻の分を足し合わせます。

Q3BPTTの計算の手間と記憶量は、何に比例して増える?

答え: 系列の長さ

時刻を1つずつ順に計算し、前向きの計算の値を後ろ向きの計算まで保存するためです。

Q4BPTTで系列が長いときに起きやすい問題は?

答え: 勾配消失問題

誤差を過去の時刻まで掛け合わせて伝えるので、勾配が小さくなりやすくなります。LSTMやGRUが対策として使われます。

到達チェック

  • BPTTを誤差逆伝播法のRNNへの適用として説明できる
  • 全時刻で重みを共有し、勾配を足し合わせることが分かる
  • 系列が長いと手間と記憶量が増えると説明できる
  • 勾配消失問題とLSTM・GRUのつながりが分かる

同じ資格で次に知りたいこと

よくある質問

QBPTTと誤差逆伝播法は何が違う?

A

BPTTは、RNNを時間方向に展開した図に誤差逆伝播法を適用したものです。誤差が層ではなく時刻をさかのぼって伝わり、全時刻で同じ重みを共有する点が、通常のネットワークと違います。

QBPTTの正式名称は?

A

Back-Propagation Through Time、日本語では時間を通した誤差逆伝播法です。

QG検定にBPTTは出る?

A

JDLAの公式シラバスのリカレントニューラルネットワークの項目に、BPTTが挙がっています。実際の出題の形は公表されていないので、誤差逆伝播法との関係を言葉で説明できるようにしておくと安心です。

次に見る比較

執筆: AI資格ドリル編集部(運営者情報を見る)