以下は、NeurIPS 2022でのジェフリーヒントンの講演で発表されたFFアルゴリズムの私の理解です。
従来のバックプロップは、目的関数からパラメータまで、連鎖律の連続した適用によって勾配を計算します。ただし、FFはローカル目的関数を使用して勾配をローカルに計算するため、エラーを逆伝播する必要はありません。
ローカル目的関数は、レイヤーの出力を、正のサンプルの場合は閾値より大きい値に、負のサンプルの場合は閾値より小さい値にプッシュするように設計されています。
正のサンプル$s$は、トレーニング分布の下に大きな$P$を持つ実際のデータポイントです。
負のサンプル$s'$は、トレーニング分布の下に小さな$P(s')$を持つ偽のデータポイントです。
ポジティブ/ネガティブサンプルを生成する多くの方法の中で、MNISTの場合、次のものがあります。
ポジティブサンプル$s = merge(x, y)$、画像とそのラベル ネガティブサンプル $s' = merge(x, y_{random})$、画像、ランダムラベル
すべてのレイヤーをトレーニングした後、テスト画像$x$を予測するために、ネットワークの全体的なアクティブ化を最大化するすべての$0 \leq y < 10$のペア$s = (x, y)$を見つけます。
この実装では、MNISTでのトレーニングとテストの精度は次のようになります。
> python main.py
train error: 0.06754004955291748
test error: 0.06840002536773682