予測符号化の数式
古典的階層予測符号化(Classical hPC)
Classical hPC(古典的階層予測符号化)は、予測と予測誤差を別々の神経集団(予測ユニットと誤差ユニット)で表現する。各階層のユニットは、上位階層からの予測と下位階層からの誤差信号を双方向にやり取りしながら活動を更新する。
https://scrapbox.io/files/67e4ff60b3a661b2b8430f62.png
生成モデル(上位から下位への予測)
これは上位階層の活動 $ r_i をもとに、下位階層の観測値 $ r_{i-1} を再構成するモデル:
$ r_{i-1} = D_i r_i + n_{i-1}, \quad n_{i-1} \sim \mathcal{N}(0, \sigma_{i-1}^2)
ここで $ D_i は予測のための結合重み、$ n_{i-1} はガウス雑音です。
予測誤差の計算
下位からの誤差(ボトムアップ):
$ e_{i-1} = r_{i-1} - D_i r_i
上位からの誤差(トップダウン):
$ e_i = r_i - D_{i+1} r_{i+1}
予測ユニットの動的更新式
予測ユニット $r_i$ は、上下からの誤差信号に基づいて更新される:
$ \tau_r \frac{d r_i}{dt} = \frac{1}{\sigma_{i-1}^2} D_i^\top e_{i-1} - \frac{1}{\sigma_i^2} e_i
誤差ユニットの更新式
誤差ユニット $e_i$ は、現在の予測と上位からの予測との不一致を反映して活動を変化させる:
$ \tau_e \frac{d e_i}{dt} = - e_i + r_i - D_{i+1} r_{i+1}
学習則(シナプス可塑性)
誤差と予測の外積に比例して、結合重み $D_i$ が更新される:
$ \frac{d D_i}{dt} \propto \frac{1}{\sigma_{i-1}^2} e_{i-1} r_i^\top
変数の説明:
- $ r_i:階層 $ i の予測ユニットの活動
- $ e_i:階層 $ i の誤差ユニットの活動
- $ D_i:階層 $ i から $ i-1 への予測結合重み
- $ \sigma_i^2:階層 $ i における予測誤差の分散(予測の不確実性)
- $ \tau_r, \tau_e:各ユニットの時定数(応答速度)
予測符号化(Predictive Coding:PC)