NetPortGradient
NetPortGradient["port"]
指定された入力ポートの値に対するネットの出力の勾配を表す.
NetPortGradient["param"]
param という名前の学習されたパラメータに対する出力の勾配を表す.
NetPortGradient[{layer1,layer2,…,"param"}]
ネットの特定の位置のパラメータに対する勾配を表す.
すべての入力とパラメータについての勾配を表す.
詳細
- NetPortGradientは,通常,ネットワークの学習されたパラメータとネットワークへの入力の両方に対する勾配を計算するために使われる.
- net[data,NetPortGradient[iport]]を使って,特定のデータに適用されたネットの入力ポート iport に対する勾配を得ることができる.
- net[<…,NetPortGradient[oport]ograd >,NetPortGradient[iport]]を使って,iport における勾配を計算するために後方伝播だれる出力ポート oport に勾配を強制する.
- 単一のスカラー出力ポートを持つネットの場合,NetPortGradientを使った場合に返される勾配は通常の数学的な意味の勾配である.つまり, がその勾配が計算されている配列であり, が他のすべての配列を表す を計算するネットの場合,勾配は成分が で与えられる と同じ階数の配列である.直感的に, の特定の値における勾配は,ゴールが を増加させることであるなら を摂動させる「最良の方向」であることが分かる.勾配の大きさは における変化に対する の感度に比例する.
- ベクトル出力または配列出力のあるネットについては,NetPortGradientを使った場合に返される勾配は全出力のスカラー和の通常の勾配である.構文<…,NetPortGradient[oport]ograd >を使って出力における勾配を強制することは,このスカラー和を出力と ograd の間のドット積で置換することに等しい.
- NetPortGradientを使って,ネットの学習済みのパラメータについて勾配を計算すると,入力バッチに渡る勾配の合計が返される.
例題
すべて開くすべて閉じる例 (3)
LinearLayerをランダムに初期化し,特定の入力値についての入力に対する出力の微分係数を返す:
入力がターゲットより小さいので,入力の微分係数は負である(入力を大きくすると損失は小さくなる):
スコープ (2)
特定の入力値について,最初の層の重みとバイアスに対する出力の微分係数を返す:
PoolingLayerを,赤い色チャンネルを抽出するPartLayerに繋ぐ:
勾配を可視化すると,既存の赤や白い部分から離れた画素が赤みがかっている場合にのみこのネットの全出力が増加することが分かる:
特性と関係 (1)
テキスト
Wolfram Research (2017), NetPortGradient, Wolfram言語関数, https://reference.wolfram.com/language/ref/NetPortGradient.html (2022年に更新).
CMS
Wolfram Language. 2017. "NetPortGradient." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022. https://reference.wolfram.com/language/ref/NetPortGradient.html.
APA
Wolfram Language. (2017). NetPortGradient. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NetPortGradient.html