アダマール積の導出例

1 つの質問

x ∈ R n × 1 \mathbf{x} \in \mathbb{R}^{n \times 1} が与えられるとします。バツRn × 1A ∈ R n × n \mathbf{A} \in \mathbb{R}^{n \times n}Rn × n ,f ( x ) = ( A x ) ⊙ ( A x ) \mathbf{f}(\mathbf{x})=\sqrt{(\mathbf{x}) \odot(\ mathbf{Ax}) }f ( x )=( Ax ) _( Ax ) _ ここで( ⋅ ) \sqrt{(\cdot)}( ) アダマール ルート (要素ごとの平方根)、つまり行列要素の項目ごとの平方根を表します。∂ f ∂ x \frac{\partial \mathbf{f}}{\partial \mathbf{x}} を求めます×∂f _


2 解決する

2.1 まずアダマール積を使用して平方根を解きます

例: b = A x \mathbf{b} = \mathbf{A} \mathbf{x}b=A x,有:db = d ( A x ) = A dxd\mathbf{b} = d(\mathbf{A} \mathbf{x}) = \mathbf{A} d\mathbf{x}db _=d ( A x )=アド× _

2.2 行列から行列の導出 一般に、行列は最初にベクトル化されます。

f ⊙ f = ( A x ) ⊙ ( A x ) = b ⊙ b \begin{aligned} \mathbf{f} \odot \mathbf{f} &=(\mathbf{A} \mathbf{x}) \odot (\mathbf{A} \mathbf{x}) \\ &=\mathbf{b} \odot \mathbf{b} \end{aligned}ff=( Ax ) _( Ax ) _=bb

微分アダマール積の性質によるとd ( x ⊙ Y ) = x ⊙ d Y + dx ⊙ Y d(\mathbf{x} \odot \mathbf{Y})=\mathbf{x} \odot d \mathbf {Y }+d \mathbf{x} \odot \mathbf{Y}d ( x=バツd Y+dx _Y
有:
d ( f ⊙ f ) = f ⊙ df + df ⊙ f = f ⊙ df + f ⊙ df = 2 f ⊙ dfdiag ( f ) vec(df) ⁡ ⁡ = diag ( b ) vec(db) ⁡ ⁡ ( としましょう : vec ⁡ ( A ⊙ X ) = diag ⁡ ( A ) vec ⁡ ( X ) ) \begin{aligned} d(\mathbf{f} \odot \mathbf{f}) &=\mathbf{f} \ odot d \mathbf{f}+d \mathbf{f} \odot \mathbf{f} \\ &=\mathbf{f} \odot d \mathbf{f}+\mathbf{f} \odot d \mathbf { f} \\ &= 2\mathbf{f} \odot d \mathbf{f} \\ \オペレーター名{diag(\mathbf{f})\オペレーター名{vec(d\mathbf{f})}} &= \演算子名{diag(\mathbf{b})\演算子名{vec(d\mathbf{b})}} \quad (定義:\演算子名{vec}(\mathbf{A} \odot \mathbf{X})= \演算子名{diag}(\mathbf{A}) \演算子名{vec}(\mathbf{X})) \end{aligned}d ( ff )ダイアグ( f ) _ _ _v e c ( d f )=fd f+d ff=fd f+fd f=2f _d f=ディ( b ) _in e c ( d b )(性質:in e c ( A× )=ダイアグ( A ) _ _ _e c ( X ) )
ここで、diag ⁡ ( f ) \operatorname{diag}(\mathbf{f})d i a g ( f )n × nn \times nn×nの対角行列、対角要素は行列f \mathbf{f}fは列ベクトル化によって配置されます;diag ⁡ ( b ) \operatorname{diag}(\mathbf{b})d i a g ( b )も同じです。

vec(df) ⁡ = diag(f) ⁡ − 1 diag ⁡ ( b ) vec ⁡ ( db ) \operatorname{vec(d\mathbf{f})} = \operatorname{diag(\mathbf{f})}^ {-1} \オペレーター名{diag}(\mathbf{b}) \オペレーター名{vec}(d\mathbf{b})v e c ( d f )=ダイアグ( f ) _ _ _1ディ( b ) _in e c ( d b )

b ∈ R n × 1 ⟹ vec(db) ⁡ = db \mathbf{b} \in \mathbb{R}^{n\times 1} は \operatorname{vec(d\mathbf{b})} = d \ を意味します数学{b}bRn × 1in e c ( d b )=db _

∴ diag(f) ⁡ df = diag(b) ⁡ A dx \therefore \operatorname{diag(\mathbf{f})} d \mathbf{f} = \operatorname{diag(b)} \mathbf{A} d \mathbf{x}ダイアグ( f ) _ _ _d f=ディ( b ) _アド× _

vec(df) ⁡ = diag(f) ⁡ − 1 diag(b) ⁡ A dx \operatorname{vec(d\mathbf{f})} = \operatorname{diag(\mathbf{f})}^{-1 } \演算子名{diag(\mathbf{b})} \mathbf{A} d \mathbf{x}v e c ( d f )=ダイアグ( f ) _ _ _1ディ( b ) _アド× _

分母レイアウトが使用される場合の行列から行列への導出:
vec ⁡ ( df ) = ( ∂ f ∂ x ) T vec ⁡ ( dx ) \operatorname{vec}(d \mathbf{f})=\left(\frac { \partial \mathbf{f}}{\partial \mathbf{x}}\right)^{T} \operatorname{vec}(d \mathbf{x})v e c ( d f )=(×∂f _)Tv e c ( d x )
が分子配置を採用する場合、
vec ⁡ ( df ) = ( ∂ f ∂ x ) vec ⁡ ( dx ) \operatorname{vec}(d \mathbf{f})=\left(\ frac{\partial \mathbf{f}}{\partial \mathbf{x}}\right) \operatorname{vec}(d \mathbf{x})v e c ( d f )=(×∂f _)v e c ( d x )

したがって、この問題について、分母レイアウトを使用すると、次のようになります。
∂ f ∂ x = ( diag(f) ⁡ − 1 diag(b) ⁡ A ) T \frac{\partial \mathbf{f}}{\partial \mathbf {x }} = \left(\演算子名{diag(\mathbf{f})}^{-1} \演算子名{diag(\mathbf{b})} \mathbf{A}\right)^{T}×∂f _=( d i a g ( f )1ディ( b ) _T が
分子レイアウトを採用する場合:
∂ f ∂ x = diag(f) ⁡ − 1 diag(b) ⁡ A \frac{\partial \mathbf{f}}{\partial \mathbf{x}} = \operatorname{diag( \mathbf{f})}^{-1} \演算子名{diag(\mathbf{b})} \mathbf{A}×∂f _=ダイアグ( f ) _ _ _1ディ( b ) _

おすすめ

転載: blog.csdn.net/lyh458/article/details/121963469