CNN-重み共有を伴う逆伝播はどのように正確に機能しますか?
画像分類のために畳み込みニューラルネットワーク(CNN)を検討してください。ローカルフィーチャを検出するために、同じ畳み込み層内のユニット間で重み共有が使用されます。このようなネットワークでは、カーネルの重みは逆伝播アルゴリズムによって更新されます。 レイヤーカーネルの重みの更新は次のようになります。hjhjh_jlll hlj=hlj−η⋅δRδhlj=hlj−η⋅δRδxLj⋅δxLjδxL−1j⋅...⋅δxljδhljhjl=hjl−η⋅δRδhjl=hjl−η⋅δRδxjL⋅δxjLδxjL−1⋅...⋅δxjlδhjlh_j^l = h_j^l - \eta \cdot \frac{\delta R}{\delta h_j^l} = h_j^l - \eta \cdot \frac{\delta R}{\delta x_j^{L}} \cdot \frac{\delta x_j^{L}}{\delta x_j^{L - 1}} \cdot ... \cdot \frac{\delta x_j^{l}}{\delta h_j^l} カーネルの重みをどのように更新しても、同じ(=共有)にすることができますか? 私は2つの考えられる説明があります: 同じ値に初期化された同じレイヤーの重みは、(入力に関係なく)同じままです。これは、式がこれらの重みからすべてで同じであることをます。はjごとに異なるため、これは意味がありません。または、ここで何か不足していますか?δRδhljδRδhjl\frac{\delta R}{\delta h_j^l}hl1h1lh_1^lhlJhJlh_J^lxljxjlx_j^l トリックがあります。たとえば、バックプロパゲーションの更新後、共有の重みは平均に設定されます。 編集 私が混乱したのは、重みが共有されている場合、そのパラメーターが損失関数に数回現れることを考慮していなかったことでした。微分するとき、いくつかの項(対応する入力を考慮する)は「存続」します。したがって、更新は同じになります。hljhjlh_j^lhljhjlh_j^l