主に数学の勾配と深層学習の勾配の関係を結び付けるため
グラデーションとは何ですか
勾配は大きさと方向の両方を持つベクトルです
サイズ: 勾配のモジュールはその点で得られる最大変化率に等しい
方向: この点で最大の変化が得られるときの方向
何に使われますか?
多次元変数関数の極値をすばやく見つけるために使用できます。深層学習では、一般に損失関数の最小値を見つけるために使用されます。
最小値や極値を求める問題では、微分方程式を解くことがまず思い浮かびますが、関数が非常に複雑になると解くのは容易ではありません。強力なコンピューティング能力により、多くのことを試行し、段階的に問題を解決できます。関数の値がテストされます。前の人々は、このテスト プロセスのルール - デルタ ルールを要約しました。これはヒューリスティック アルゴリズムです。中心となるアイデアは、次のことを使用します。勾配降下法アルゴリズムを使用して最大値を見つけ、ターゲットを最良の解に近い値に収束させます。
アルゴリズムの実際の方法は、重み w i を段階的に変更して、損失関数 l の最小値を徐々に見つけていくことです。
また、なぜ∂ l ∂ wi \frac{\partial l}{\partial w_i} を使用するのかという疑問も生じます。∂w _私は∂ l歩幅としては?実際、この問題は、勾配grad f = ( ∂ l ∂ x 1 , ∂ l ∂ x 2 , … ) の場合、 grad\ f=(\frac{\partial l}{\partial x_1},\frac{ \ 部分 l}{\部分 x_2},\ldots)グラデフ_ _ _ _ =(∂ ×1∂ l、∂ ×2∂ l、... )、なぜ勾配は次のシーケンスと等しく、最大変化率とその方向の特性を持つのでしょうか?
議論する前に、まず変化率とは何かについて言及する必要があります。
1 変数関数を例に挙げます。y = f ( x ) y=f(x)y=f ( x )の特定の
関数の変化率: △ y △ x = f ( x 0 + △ x ) − f ( x 0 ) △ x \frac{\triangle y}{\triangle x} = \frac {f( x_0 + \triangle x) - f(x_0)}{\triangle x}△ ×△ y=△ ×f ( x0+ △ x ) − f ( x0)
ある点における関数の変化率: lim △ x → 0 f ( x 0 + △ x ) − f ( x 0 ) △ x = f ′ ( x 0 ) \lim_{\triangle x\to 0 \frac{f (x_0 + \triangle x) - f(x_0)}{\triangle x} = f'(x_0)リム△ × → 0△ ×f ( x0+ △ x ) − f ( x0)=f' (x0)
変化率: 特定の方向における独立変数の増分に対する関数の増分比の限界 (1 変数関数では、特定の方向は x 軸方向です)
二項関数z = f ( x , y ) z=f(x, y)に展開します。z=f ( x ,y )
上記の変化率の定義によれば、独立変数にはある方向が必要となります。このときの方向は x と y の影響を受けます。そして、この方向の単位ベクトルを el ⃗ = ( cos α ,cos β ) \vec{e_l} = (\cos\alpha, \cos\beta)e私=( cos、_コスβ )、この方向の増分は t、増分ベクトル (独立変数) は( t cos α , t cos β ) (t\cos\alpha,t\cos\beta) となります。( tコス、_tコスβ ),则変化率 = lim t → 0 + f ( x 0 + t cos α , y 0 + t cos β ) − f ( x 0 , y 0 ) t = fx ( x 0 , y 0 ) cos α + fy ( x 0 , y 0 ) cos β 变化率=\lim_{t \to 0^{+}} \frac{f(x_0 + t\cos\alpha, y_0 + t\cos\beta) ) - f(x_0, y_0)}{t} = f_x(x_0, y_0)\cos\alpha + f_y(x_0, y_0)\cos\beta変化率=t → 0+リムtf ( x0+tコス、_y0+tコスb )−f ( x0、y0)=f×( ×0、y0)コスある+fはい( ×0、y0)コスb
導出プロセス:
変化率が最大となるときの方向αは何でしょうか?
変化率を 2 つのベクトルの内積として表現しましょう。g ⃗ = ( fx ( x 0 , y 0 ) , fy ( x 0 , y 0 ) ) 、 el ⃗ = ( cos α , cos β ) \vec{g} = (f_x(x_0, y_0), f_y(x_0, y_0)) , \vec{e_l} = (\cos\alpha, \cos\beta)g=( f×( ×0、y0)、fはい( ×0、y0)) 、e私=( cos、_コスβ )
は無限小です t → 0 + f ( x 0 + t cos α , y 0 + t cos β ) − f ( x 0 , y 0 ) t = fx ( x 0 , y 0 ) cos α + fy ( x 0 , y 0 ) cos β = g ⃗ ⋅ el ⃗ = ∣ g ⃗ ∣ ∣ el ⃗ ∣ cos θ \lim_{t \to 0^{+}} \frac{ f(x_0 + t\ cos\alpha, y_0 + t\cos\beta) - f(x_0, y_0)}{t} = f_x(x_0, y_0)\cos\alpha + f_y(x_0, y_0)\cos\ beta = \vec{g } \cdot \vec{e_l} = \lvert \vec{g} \rvert \vec{e_l} \rvert \cos \thetat → 0+リムtf ( x0+tコス、_y0+tコスb )−f ( x0、y0)=f×( ×0、y0)コスある+fはい( ×0、y0)コスb=g⋅e私=∣g∣ ∣e私∣コスθここで、 θ
は∣g ⃗ ∣ \lvert \vec{g}\rvert∣g∣和∣ el ⃗ ∣ \lvert \vec{e_l}\rvert∣e私ある点の座標がわかっている場合の∣間の角度 g ⃗ = ( fx ( x 0 , y 0 ) , fy ( x 0 , y 0 ) ) \vec{g} = (f_x(x_0, y_0) 、f_y (x_0, y_0))g=( f×( ×0、y0)、fはい( ×0、y0))値を決定できます。つまり、 ∣ g ⃗ ∣ \lvert \vec{g}\rvert∣g∣ はある値として得られ、単位ベクトル∣ el ⃗ ∣ = 1 \lvert \vec{e_l}\rvert=1∣e私∣=1の場合、cos θ = 1 \cos\theta=1コス私=変化率は、 g ⃗ ∥ el ⃗ \vec{g} \Parallel \vec{e_l}のとき1で最大になります。g∥e私
つまり、この方向 α はg ⃗ = ( fx ( x 0 , y 0 ) , fy ( x 0 , y 0 ) ) \vec{g} = (f_x(x_0, y_0), f_y(x_0, y_0)) となります。g=( f×( ×0、y0)、fはい( ×0、y0))方向、変化率が最も大きい
これは高次元関数に一般化できます。
関数f (a, b, c, …) f(a,b,c,\ldots)の場合f ( a ,b 、c 、… ),向量( ∂ f ∂ a , ∂ f ∂ b , ∂ f ∂ c , … ) (\frac{\partial f}{\partial a}, \frac{\partial f}{\partial b}, \ frac{\partial f}{\partial c}, \ldots)(∂a _∂f _、∂b _∂f _、∂c _∂f _、... )は、最大変化率の値と方向を伴うgrad f grad\ fg r a d f
grad f = ( ∂ f ∂ a , ∂ f ∂ b , ∂ f ∂ c , … ) grad \ f = (\frac{\partial f}{\partial a}, \frac{\partial f }{\partial b}、\frac{\partial f}{\partial c}、\ldots)グラデフ_ _ _ _ =(∂a _∂f _、∂b _∂f _、∂c _∂f _、… )
勾配grad f grad\ fg r a d f 方向、関数f ( a , b , c , … ) f(a,b,c,\ldots)f ( a ,b 、c 、… )
点( a 0 , b 0 , c 0 , … )数値変化が最も大きくなります( _0、b0、c0、… )たとえば、この点の勾配は( ∂ f ∂ a 0 , ∂ f ∂ b 0 , ∂ f ∂ c 0 , … ) (\frac{\partial f}{\partial a_0}, \frac{\部分 f}{\partial b_0}、\frac{\partial f}{\partial c_0}、\ldots)(∂a _0∂f _、∂b _0∂f _、∂c _0∂f _、… )、つまり( a 0 , b 0 , c 0 , … ) (a_0,b_0,c_0,\ldots)( _0、b0、c0、… )方向( a 0 + t ∂ f ∂ a 0 , b 0 + t ∂ f ∂ b 0 , c 0 + t ∂ f ∂ c 0 , … ) (a_0 + t\frac{\partial f}{\partial a_0}、b_0 + t\frac{\partial f}{\partial b_0}、c_0 + t\frac{\partial f}{\partial c_0}、\ldots)( _0+t∂a _0∂f _、b0+t∂b _0∂f _、c0+t∂c _0∂f _、... )移動とは、関数値 f の変化が最も大きい方向に移動することです。
勾配降下アルゴリズムでは、重みの更新は上記の例と同じで、損失関数 l の最小値を見つけたいので、重みを更新しますwi ← wi − η ∂ l ∂ wi w_{i}\leftarrow w_{ ステップバイステップ i} - \eta\frac{\partial l}{\partial w_{i}}w私は←w私は−の∂w _私は∂ l,使用∂ l ∂ wi \frac{\partial l}{\partial w_{i}}∂w _私は∂ l歩幅として
グラデーションの中に隠された情報
論文「Soteria: 表現の観点からのフェデレーション学習におけるプライバシー漏洩に対する証明可能な防御」の中で、著者は\frac{\partial l}{\partial w_{i}} に関する勾配 ∂ l ∂ をさらに調査しています。∂w _私は∂ lどのような情報が隠されているのか。この暗黙の情報により、盗聴者は勾配情報を盗聴した後、勾配に基づいて元のデータとラベルを復元できる可能性があります。
バッチの分割がクラスの分割と等しい場合、次の式が得られます。
式(1)と式(2)のバッチ分割を次の図に示します。各バッチのトレーニング データは、同じラベルおよび同じカテゴリに属します。
著者は主に線形接続層の暗黙情報を分析します
線形接続層は最後の層です
線形接続層が最後の層の場合、∂ l ∂ wi \frac{\partial l}{\partial w_{i}}∂w _私は∂ lさらに分割するには
、r はこの層の入力、b は出力、y は b を正規化した結果 (y のすべての項目の合計は 1)、実数のラベルと XOR 演算されて y c が生成されます。次に損失関数 l を計算します。
重み W は行列であり、∂ l ∂ W \frac{\partial l}{\partial W}を解きます。∂W _∂ l
W = [ W 1 , W 2 , … , W k ] W = [W_1, W_2, \ldots, W_k]W=[ W1、W2、…、Wk]
W 1 = [ w 11 , w 21 , … , wn 1 ] T W_1 = [w_{11}, w_{21}, \ldots, w_{n1}]^TW1=[ w11、w21、…、wn1 _】T
∂ l ∂ w 11 = ∂ l ∂ b 1 ∂ b 1 ∂ w 11 = ∂ l ∂ b 1 ∂ ( w 11 r 1 + w 12 r 2 + … ) ∂ w 11 = ∂ l ∂ b 1 r 1 \frac {\partial l}{\partial w_{11}} = \frac{\partial l}{\partial b_1}\frac{\partial b_1}{\partial w_{11}} = \frac{\partial l}{ \partial b_1}\frac{\partial (w_{11}r_1 + w_{12}r_2 + \ldots)}{\partial w_{11}} = \frac{\partial l}{\partial b_1}r_1∂w _11∂ l=∂b _1∂ l∂w _11∂b _1=∂b _1∂ l∂w _11∂ ( w11r1+ w12r2+ … )=∂b _1∂ lr1
∂ l ∂ w 21 = ∂ l ∂ b 2 ∂ b 2 ∂ w 21 = ∂ l ∂ b 2 ∂ ( w 21 r 1 + w 22 r 2 + … ) ∂ w 21 = ∂ l ∂ b 2 r 1 \frac {\partial l}{\partial w_{21}} = \frac{\partial l}{\partial b_2}\frac{\partial b_2}{\partial w_{21}} = \frac{\partial l}{ \partial b_2}\frac{\partial (w_{21}r_1 + w_{22}r_2 + \ldots)}{\partial w_{21}} = \frac{\partial l}{\partial b_2}r_1∂w _21∂ l=∂b _2∂ l∂w _21∂b _2=∂b _2∂ l∂w _21∂ ( w21r1+ w22r2+ … )=∂b _2∂ lr1
⋮ \ \ \ \ vdots ⋮
∂ l ∂ wn 1 = ∂ l ∂ bn ∂ bn ∂ wn 1 = ∂ l ∂ bnr 1 \frac{\partial l}{\partial w_{n1}} = \frac{\partial l}{\partial b_n}\ frac{\partial b_n}{\partial w_{n1}} = \frac{\partial l}{\partial b_n}r_1∂w _n1 _∂ l=∂b _ん∂ l∂w _n1 _∂b _ん=∂b _ん∂ lr1
積分その後
∂ l ∂ W 1 = [ ∂ l ∂ b 1 r 1 ∂ l ∂ b 2 r 1 ⋮ ∂ l ∂ bnr 1 ] = [ ∂ l ∂ b 1 ∂ l ∂ b 2 ⋮ ∂ l ∂ bn ] r 1 \frac{\partial l}{\partial W_1} = \begin{bmatrix} \frac{\partial l}{\partial b_1}r_1 \\ \frac{\partial l}{\partial b_2}r_1 \\ \vdots \\ \frac{\partial l}{\partial b_n}r_1 \end{bmatrix} = \begin{bmatrix} \frac{\partial l}{\partial b_1} \\ \frac{\partial l}{\partial b_2} \\ \vdots \\ \frac{\partial l}{\partial b_n} \end{bmatrix}r_1∂W _1∂ l=
∂b _1∂ lr1∂b _2∂ lr1⋮∂b _ん∂ lr1
=
∂b _1∂ l∂b _2∂ l⋮∂b _ん∂ l
r1
任意の行方向への推論
∂ l ∂ W i = [ ∂ l ∂ b 1 ri ∂ l ∂ b 2 ri ⋮ ∂ l ∂ bnri ] = [ ∂ l ∂ b 1 ∂ l ∂ b 2 ⋮ ∂ l ∂ bn ] ri = ∂ l ∂ ブライ \frac{\partial l}{\partial W_i} = \begin{bmatrix} \frac{\partial l}{\partial b_1}r_i \\ \frac{\partial l}{\partial b_2}r_i \\ \vdots \\ \frac{\partial l}{\partial b_n}r_i \end{bmatrix} = \begin{bmatrix} \frac{\partial l}{\partial b_1} \\ \frac{\partial l }{\partial b_2} \\ \vdots \\ \frac{\partial l}{\partial b_n} \end{bmatrix}r_i = \frac{\partial l}{\partial \mathbf{b}}r_i∂W _私は∂ l=
∂b _1∂ lr私は∂b _2∂ lr私は⋮∂b _ん∂ lr私は
=
∂b _1∂ l∂b _2∂ l⋮∂b _ん∂ l
r私は=∂b _∂ lr私は
次に、行ベクトルを行列に統合して、次の式を取得します。
∂ l ∂ W = [ ∂ l ∂ W 1 , ∂ l ∂ W 2 , … , ∂ l ∂ W k ] = [ ∂ l ∂ b 1 ∂ l ∂ b 2 ⋮ ∂ l ∂ bn ] [ r 1 , r 2 , … , rk ] = ∂ l ∂ b ( r ) T \frac{\partial l}{\partial W} = \begin{bmatrix} \frac{\partial l} {\partial W_1}, \frac{\partial l}{\partial W_2},\ldots,\frac{\partial l}{\partial W_k} \end{bmatrix} = \begin{bmatrix} \frac{ \partial l}{\partial b_1} \\ \frac{\partial l}{\partial b_2} \\ \vdots \\ \frac{\partial l}{\partial b_n} \end{bmatrix}\begin{bmatrix } r_1 ,r_2,\ldots,r_k \end{bmatrix} = \frac{\partial l}{\partial \mathbf{b}}(\mathbf{r})^T∂W _∂ l=[∂W _1∂ l、∂W _2∂ l、…、∂W _k∂ l】=
∂b _1∂ l∂b _2∂ l⋮∂b _ん∂ l
[r1、r2、…、rk】=∂b _∂ l( r )T
損失関数 l がクロスエントロピー損失関数を使用する場合 (カテゴリが c の場合): lossc = − log ebc ∑ k = 1 nebk loss_c = - \log\frac{e^{b_c}}{\sum_{k =1}^ {n}e^{b_k}}ロス_ _c=−ログ_∑k = 1んebkebc
すると、上の式では∂ l ∂ b \frac{\partial l}{\partial \mathbf{b}} となります。∂b _∂ l
データのラベルがクラス c の場合、∂
lc ∂ b 1 = ∂ ( − log ebceb 1 + … + ebc + … + ebn ) ∂ b 1 = ∂ ( − log ebc + log ( eb 1 + … + ebc + … + ebn ) ) ∂ b 1 = eb 1 eb 1 + … + ebc + … + ebn = y 1 \begin{align} \frac{\partial l_c}{\partial b_1} &= \frac{\partial (- \log \frac{e^{b_c}}{e^{b_1} + \ldots + e^{b_c} + \ldots + e^{b_n}})}{\partial b_1} = \frac{\partial ( - \log e^{b_c} + \log (e^{b_1} + \ldots + e^{b_c} + \ldots + e^{b_n}))}{\partial b_1} \nonumber \\ &= \frac{e^{b_1}}{e^{b_1} + \ldots + e^{b_c} + \ldots + e^{b_n}} = y_1 \nonumber \end{align }∂b _1∂ lc=∂b _1∂ ( −ログ_eb1+ … + ebc+ … + ebんebc)=∂b _1∂ ( −ログ_ebc+ログ( e _b1+…+ebc+…+ebん) )=eb1+…+ebc+…+ebんeb1=y1
∂ lc ∂ bc = ∂ ( − log ebceb 1 + … + ebc + … + ebn ) ∂ bc = ∂ ( − log ebc + log ( eb 1 + … + ebc + … + ebn ) ) ∂ bc = − 1 + ebceb 1 + … + ebc + … + ebn = yc − 1 \begin{align} \frac{\partial l_c}{\partial b_c} &= \frac{\partial (- \log \frac{e^{ b_c}}{e^{b_1} + \ldots + e^{b_c} + \ldots + e^{b_n}})}{\partial b_c} = \frac{\partial ( - \log e^{b_c} + \log (e^{b_1} + \ldots + e^{b_c} + \ldots + e^{b_n}))}{\partial b_c} \nonumber \\ &= -1 + \frac{e^{ b_c}}{e^{b_1} + \ldots + e^{b_c} + \ldots + e^{b_n}} = y_c - 1 \nonumber \end{align}∂b _c∂ lc=∂b _c∂ ( −ログ_eb1+ … + ebc+ … + ebんebc)=∂b _c∂ ( −ログ_ebc+ログ( e _b1+…+ebc+…+ebん) )=− 1+eb1+…+ebc+…+ebんebc=yc−1
∂ lc ∂ b = [ ∂ lc ∂ b 1 ⋮ ∂ lc ∂ bc ⋮ ∂ lc ∂ bn ] = [ y 1 ⋮ yc − 1 ⋮ yn ] % コード \frac{\partial l_c}{\partial \mathbf{b} } = \begin{bmatrix} \frac{\partial l_c}{\partial b_1} \\ \vdots \\ \frac{\partial l_c}{\partial b_c}\\ \vdots \\ \frac{\partial l_c} {\partial b_n} \end{bmatrix} = \begin{bmatrix} y_1 \\ \vdots \\ y_c - 1 \\ \vdots \\ y_n \end{bmatrix}∂b _∂ lc=
∂b _1∂ lc⋮∂b _c∂ lc⋮∂b _ん∂ lc
=
y1⋮yc−1⋮yん
そして、関係があります∣ yc − 1 ∣ = ∣ y 1 ∣ + … + ∣ yc − 1 ∣ + ∣ yc + 1 ∣ + … |y_c - 1| = |y_1| + \ldots + |y_{c-1 } | + |y_{c+1}| + \ldots∣ yc−1∣=∣ y1∣+…+∣ yc − 1∣+∣ yc + 1∣+…
因为 ∑ i y i = 1 \sum_{i} y_i = 1 ∑私はy私は=1
∂ lc ∂ b \frac{\partial l_c}{\partial \mathbf{b}} を観察することによって∂b _∂ lc訓練データが c の場合、行 c の振幅が最も大きく、すべての行に同じ行ベクトル(r) T (\mathbf{r})^T が乗算されることがわかります。( r )T時、∂ l ∂ W i = ∂ l ∂ b ( r ) T \frac{\partial l}{\partial W_i} = \frac{\partial l}{\partial \mathbf{b}}(\mathbf{ r})^T∂W _私は∂ l=∂b _∂ l( r )Tラインは依然として最大の振幅を持っています。次に、攻撃者が勾配情報を盗聴した後、振幅が最大の直線を見つけます。この直線は(yc − 1) (r) T (y_c - 1)(\mathbf{r})^T( yc−1 ) ( r )T、ここで( yc − 1 ) (y_c - 1)( yc−1 )は定数です、( yc − 1 ) ( r ) T (y_c - 1)(\mathbf{r})^T( yc−1 ) ( r )T は、近似的に( r ) T (\mathbf{r})^T と( r )T._ _ このようにして、この層のr \mathbf{r}r。
結論: 勾配∇ W \nbla Wを介して∇ Wはこの層の入力データr \mathbf{r}rは、このデータが属するカテゴリ クラス c も知っています。
中間層としてのリニア層
線形層を中間層として使用する場合、次のようなデータ変換が行われます。
簡略化すると以下のような式になります
活性化関数σ \sigmaσ は非常に重要な役割を果たします。その主な機能は、すべての隠れ層と出力層に非線形演算を追加することです。
3 層の完全線形接続ニューラル ネットワークを例にとります。
z 1 = W 1 x + B 1 z 2 = W 2 σ ( z 1 ) + B 2 z 3 = W 3 σ ( z 2 ) + B 3 { align} & z_1 = W_1x + B_1 \nonumber \\ & z_2 = W_2\sigma(z_1) + B_2 \nonumber \\ & z_3 = W_3\sigma(z_2) + B_3 \nonumber \end{align}z1=W1バツ+B1z2=W2s ( z1)+B2z3=W3s ( z2)+B3
すると、すべて∂ l ∂ W i \frac{\partial l}{\partial W_i}∂W _私は∂ l表現可能
ここでのWi は前のものと異なり、前のものはベクトルである重み行列の列を指しますが、ここでは行列であるどの層の重みを表します。
∂ l ∂ W 1 = ∂ l ∂ z 3 ∂ z 3 ∂ W 1 = ∂ l ∂ z 3 ( ∂ ( W 3 σ ( z 2 ) + B 3 ) ∂ σ ( z 2 ) ∂ σ ( z 2 ) ∂ z 2 ∂ ( W 2 σ ( z 1 ) + B 2 ) ∂ σ ( z 1 ) ∂ σ ( z 1 ) ∂ z 1 ∂ ( W 1 x + B 1 ) ∂ W 1 ) = ∂ l ∂ z 3 ( W 3 ⋅ σ ′ ( z 2 ) ⋅ W 2 ⋅ σ ′ ( z 1 ) ⋅ x ) ∂ l ∂ W 2 = ∂ l ∂ z 3 ∂ z 3 ∂ W 2 = ∂ l ∂ z 3 ( ∂ ( W 3 σ ( z 2 ) + B 3 ) ∂ σ ( z 2 ) ∂ σ ( z 2 ) ∂ z 2 ∂ ( W 2 σ ( z 1 ) + B 2 ) ∂ W 2 ) = ∂ l ∂ z 3 ( W 3 ⋅ σ ′ ( z 2 ) ⋅ σ ( z 1 ) ) ∂ l ∂ W 3 = ∂ l ∂ z 3 ∂ z 3 ∂ W 3 = ∂ l ∂ z 3 ∂ ( W 3 σ ( z 2 ) + B 3 ) ∂ W 3 = ∂ l ∂ z 3 σ ( z 2 ) \begin{align} & \frac{\partial l}{\partial W_1} = \frac{\partial l}{\partial z_3} \frac{\partial z_3}{\partial W_1} = \frac{\partial l}{\partial z_3}(\frac{\partial(W_3\sigma(z_2) + B_3)}{\partial \sigma(z_2)} \frac{\部分 \sigma(z_2)}{\partial z_2} \frac{\partial(W_2\sigma(z_1) + B_2)}{\partial \sigma(z_1)} \frac{\partial\sigma(z_1)}{\partial z_1} \frac{\partial(W_1x + B_1)}{\partial W_1}) = \frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) ) \cdot W_2 \cdot \sigma'(z_1) \cdot x) \nonumber \\ & \frac{\partial l}{\partial W_2} = \frac{\partial l}{\partial z_3} \frac{\部分 z_3}{\部分 W_2} = \frac{\部分 l}{\部分 z_3}(\frac{\partial(W_3\sigma(z_2) + B_3)}{\部分 \sigma(z_2)} \frac{ \partial \sigma(z_2)}{\partial z_2} \frac{\partial (W_2\sigma(z_1) + B_2)}{\partial W_2}) = \frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) \cdot \sigma(z_1)) \nonumber \\ & \frac{\partial l}{\partial W_3} = \frac{\partial l}{\partial z_3}\frac{\部分 z_3}{\部分 W_3} = \frac{\部分 l}{\部分 z_3} \frac{\partial(W_3\sigma(z_2) + B_3)}{\部分 W_3} = \frac{\部分 l} {\partial z_3}\sigma(z_2) \nonumber \end{align}\frac{\partial(W_1x + B_1)}{\partial W_1}) = \frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) \cdot W_2 \cdot \sigma'(z_1 ) \cdot x) \nonumber \\ & \frac{\partial l}{\partial W_2} = \frac{\partial l}{\partial z_3} \frac{\partial z_3}{\partial W_2} = \frac {\partial l}{\partial z_3}(\frac{\partial(W_3\sigma(z_2) + B_3)}{\partial \sigma(z_2)} \frac{\partial \sigma(z_2)}{\partial z_2} \frac{\partial (W_2\sigma(z_1) + B_2)}{\partial W_2}) = \frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) \cdot \ sigma(z_1)) \nonumber \\ & \frac{\partial l}{\partial W_3} = \frac{\partial l}{\partial z_3}\frac{\partial z_3}{\partial W_3} = \frac {\partial l}{\partial z_3} \frac{\partial(W_3\sigma(z_2) + B_3)}{\partial W_3} = \frac{\partial l}{\partial z_3}\sigma(z_2) \ nonumber \end{align}\frac{\partial(W_1x + B_1)}{\partial W_1}) = \frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) \cdot W_2 \cdot \sigma'(z_1 ) \cdot x) \nonumber \\ & \frac{\partial l}{\partial W_2} = \frac{\partial l}{\partial z_3} \frac{\partial z_3}{\partial W_2} = \frac {\partial l}{\partial z_3}(\frac{\partial(W_3\sigma(z_2) + B_3)}{\partial \sigma(z_2)} \frac{\partial \sigma(z_2)}{\partial z_2} \frac{\partial (W_2\sigma(z_1) + B_2)}{\partial W_2}) = \frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) \cdot \ sigma(z_1)) \nonumber \\ & \frac{\partial l}{\partial W_3} = \frac{\partial l}{\partial z_3}\frac{\partial z_3}{\partial W_3} = \frac {\partial l}{\partial z_3} \frac{\partial(W_3\sigma(z_2) + B_3)}{\partial W_3} = \frac{\partial l}{\partial z_3}\sigma(z_2) \ nonumber \end{align}\frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) \cdot W_2 \cdot \sigma'(z_1) \cdot x) \nonumber \\ & \frac{\partial l}{ \partial W_2} = \frac{\partial l}{\partial z_3} \frac{\partial z_3}{\partial W_2} = \frac{\partial l}{\partial z_3}(\frac{\partial(W_3 \sigma(z_2) + B_3)}{\partial \sigma(z_2)} \frac{\partial \sigma(z_2)}{\partial z_2} \frac{\partial (W_2\sigma(z_1) + B_2)} {\partial W_2}) = \frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) \cdot \sigma(z_1)) \nonumber \\ & \frac{\partial l}{ \partial W_3} = \frac{\partial l}{\partial z_3}\frac{\partial z_3}{\partial W_3} = \frac{\partial l}{\partial z_3} \frac{\partial(W_3\ sigma(z_2) + B_3)}{\partial W_3} = \frac{\partial l}{\partial z_3}\sigma(z_2) \nonumber \end{align}\frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) \cdot W_2 \cdot \sigma'(z_1) \cdot x) \nonumber \\ & \frac{\partial l}{ \partial W_2} = \frac{\partial l}{\partial z_3} \frac{\partial z_3}{\partial W_2} = \frac{\partial l}{\partial z_3}(\frac{\partial(W_3 \sigma(z_2) + B_3)}{\partial \sigma(z_2)} \frac{\partial \sigma(z_2)}{\partial z_2} \frac{\partial (W_2\sigma(z_1) + B_2)} {\partial W_2}) = \frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) \cdot \sigma(z_1)) \nonumber \\ & \frac{\partial l}{ \partial W_3} = \frac{\partial l}{\partial z_3}\frac{\partial z_3}{\partial W_3} = \frac{\partial l}{\partial z_3} \frac{\partial(W_3\ sigma(z_2) + B_3)}{\partial W_3} = \frac{\partial l}{\partial z_3}\sigma(z_2) \nonumber \end{align}\nonumber \\ & \frac{\partial l}{\partial W_2} = \frac{\partial l}{\partial z_3} \frac{\partial z_3}{\partial W_2} = \frac{\partial l} {\partial z_3}(\frac{\partial(W_3\sigma(z_2) + B_3)}{\partial \sigma(z_2)} \frac{\partial \sigma(z_2)}{\partial z_2} \frac{ \partial (W_2\sigma(z_1) + B_2)}{\partial W_2}) = \frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) \cdot \sigma(z_1)) \nonumber \\ & \frac{\partial l}{\partial W_3} = \frac{\partial l}{\partial z_3}\frac{\partial z_3}{\partial W_3} = \frac{\partial l} {\partial z_3} \frac{\partial(W_3\sigma(z_2) + B_3)}{\partial W_3} = \frac{\partial l}{\partial z_3}\sigma(z_2) \nonumber \end{align }\nonumber \\ & \frac{\partial l}{\partial W_2} = \frac{\partial l}{\partial z_3} \frac{\partial z_3}{\partial W_2} = \frac{\partial l} {\partial z_3}(\frac{\partial(W_3\sigma(z_2) + B_3)}{\partial \sigma(z_2)} \frac{\partial \sigma(z_2)}{\partial z_2} \frac{ \partial (W_2\sigma(z_1) + B_2)}{\partial W_2}) = \frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) \cdot \sigma(z_1)) \nonumber \\ & \frac{\partial l}{\partial W_3} = \frac{\partial l}{\partial z_3}\frac{\partial z_3}{\partial W_3} = \frac{\partial l} {\partial z_3} \frac{\partial(W_3\sigma(z_2) + B_3)}{\partial W_3} = \frac{\partial l}{\partial z_3}\sigma(z_2) \nonumber \end{align }\sigma(z_2)} \frac{\partial \sigma(z_2)}{\partial z_2} \frac{\partial (W_2\sigma(z_1) + B_2)}{\partial W_2}) = \frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) \cdot \sigma(z_1)) \nonumber \\ & \frac{\partial l}{\partial W_3} = \frac{\partial l} {\partial z_3}\frac{\partial z_3}{\partial W_3} = \frac{\partial l}{\partial z_3} \frac{\partial(W_3\sigma(z_2) + B_3)}{\partial W_3 } = \frac{\partial l}{\partial z_3}\sigma(z_2) \nonumber \end{align}\sigma(z_2)} \frac{\partial \sigma(z_2)}{\partial z_2} \frac{\partial (W_2\sigma(z_1) + B_2)}{\partial W_2}) = \frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) \cdot \sigma(z_1)) \nonumber \\ & \frac{\partial l}{\partial W_3} = \frac{\partial l} {\partial z_3}\frac{\partial z_3}{\partial W_3} = \frac{\partial l}{\partial z_3} \frac{\partial(W_3\sigma(z_2) + B_3)}{\partial W_3 } = \frac{\partial l}{\partial z_3}\sigma(z_2) \nonumber \end{align}\frac{\partial l}{\partial z_3}\sigma(z_2) \nonumber \end{align}\frac{\partial l}{\partial z_3}\sigma(z_2) \nonumber \end{align}∂W _1∂ l=∂z _3∂ l∂W _1∂z _3=∂z _3∂ l(∂ σ ( z2)∂ ( W3s ( z2)+B3)∂z _2∂ σ ( z2)∂ σ ( z1)∂ ( W2s ( z1)+B2)∂z _1∂ σ ( z1)∂W _1∂ ( W1バツ+B1))=∂z _3∂ l( W3⋅p' (z2)⋅W2⋅p' (z1)⋅× )∂W _2∂ l=∂z _3∂ l∂W _2∂z _3=∂z _3∂ l(∂ σ ( z2)∂ ( W3s ( z2)+B3)∂z _2∂ σ ( z2)∂W _2∂ ( W2s ( z1)+B2))=∂z _3∂ l( W3⋅p' (z2)⋅s ( z1))∂W _3∂ l=∂z _3∂ l∂W _3∂z _3=∂z _3∂ l∂W _3∂ ( W3s ( z2)+B3)=∂z _3∂ ls ( z2)
それを整理する
∂ l ∂ W 3 = ∂ l ∂ z 3 σ ( z 2 ) ∂ l ∂ W 2 = ∂ l ∂ z 3 ( W 3 ⋅ σ ′ ( z 2 ) ⋅ σ ( z 1 ) ) = ∂ l ∂ z 3 ( ∂ z 3 ∂ z 2 ′ ⋅ σ ′ ( z 2 ) ⋅ σ ( z 1 ) ) ∂ l ∂ W 1 = ∂ l ∂ z 3 ( W 3 ⋅ σ ′ ( z 2 ) ⋅ W 2 ⋅ σ ′ ( z 1 ) ⋅ x ) = ∂ l ∂ z 3 ( ∂ z 3 ∂ z 2 ′ ⋅ σ ′ ( z 2 ) ⋅ ∂ z 2 ∂ z 1 ′ ⋅ σ ′ ( z 1 ) ⋅ x ) \begin{align} & \frac{\partial l}{\partial W_3} = \frac{\partial l}{\partial z_3}\sigma(z_2) \nonumber \\ & \frac{\partial l}{\partial W_2} = \ frac{\partial l}{\partial z_3}(W_3 \cdot \sigma'(z_2) \cdot \sigma(z_1)) = \frac{\partial l}{\partial z_3}(\frac{\partial z_3} {\partial z'_2} \cdot \sigma'(z_2) \cdot \sigma(z_1)) \nonumber \\ & \frac{\partial l}{\partial W_1} = \frac{\partial l}{\部分 z_3}(W_3 \cdot \sigma'(z_2) \cdot W_2 \cdot \sigma'(z_1) \cdot x) = \frac{\partial l}{\partial z_3}(\frac{\partial z_3}{ \部分的z'_2} \cdot \sigma'(z_2) \cdot \frac{\partial z_2}{\partial z'_1} \cdot \sigma'(z_1) \cdot x) \nonumber \end{align}∂W _3∂ l=∂z _3∂ ls ( z2)∂W _2∂ l=∂z _3∂ l( W3⋅p' (z2)⋅s ( z1))=∂z _3∂ l(∂z _2「∂z _3⋅p' (z2)⋅s ( z1))∂W _1∂ l=∂z _3∂ l( W3⋅p' (z2)⋅W2⋅p' (z1)⋅× )=∂z _3∂ l(∂z _2「∂z _3⋅p' (z2)⋅∂z _1「∂z _2⋅p' (z1)⋅×)
方程式の他のすべての項が既知で、1 つの項だけが未知の場合、この項を見つけることができます。
青は既知を意味し、赤は見つけることができます。上記の式は、ニューラル ネットワークの入力データ x を徐々に見つけることができます。
ほとんどの活性化関数は同様の構造とスパース性を持っているため、この論文では、z を導出するときに z を使用して z' を近似します。
したがって、攻撃者が勾配情報を盗聴した後、計算によって元の訓練データを復元する可能性が高く、目的を達成するには訓練データや中間訓練過程にある程度の摂動を与える必要がある。元のデータを安全に保護します。