シアムネットワークにおける誤差逆伝播(バックプロパゲーション)の実装詳細。[D]

Reddit r/MachineLearning / 2026/4/13

💬 オピニオンIdeas & Deep AnalysisModels & Research

要点

  • Redditのスレッドで、シアムネットワークに対してバックプロパゲーションを正しく実装する方法が質問されており、1993年の元論文には学習手順の詳細なガイダンスが欠けている点が指摘されている。
  • 質問では、2つの学習アプローチを比較している。すなわち、入力を順に流して最後のペアで損失を計算した後に重みを更新する方法と、バイエンコーダのように2つの入力を並列に処理して損失を共同でバックプロパゲーションする方法である。
  • 双方向(ツイン)ネットワークが同じパラメータを使用する必要がある中で、勾配をどのように(あるいは共有するのか)について、中心的な懸念が強調されている。
  • この議論は、新しい手法を提案したり、新しく公開されたシステムの報告をしたりするものではなく、正しい学習ループの明確化として位置づけられている。

みなさん、
対称(Siamese)ネットワークにおけるバックプロパゲーションの正しい実装方法を共有してもらえませんか? 元の論文 の説明は、あまり詳しくありません。

githubで偶然見つけたこのような実装がありました。 参照。 入力は1つずつ順に渡され、損失は最後の2つの入力に対して計算され、その後で重みが更新されます。これは正しい実装でしょうか?

別の実装として考えられるのは、Bi-encoderのように同じネットワークを2つ用意する方法です。2つの入力を同時に渡し、損失をバックプロパゲーションして、両方のネットワークに対して重みを更新します。そして次のフォワードパスの前に、両方のネットワークの重みをそれらの集約(平均)で置き換えます。

どちらが正しいですか?
確認させてください。

投稿者: /u/red_dhinesh_it
[link] [comments]