AUGRUCell#
バージョン名: AUAUGRUCell
カテゴリー: シーケンス処理
簡単な説明: AUGRUCell は単一の AUGRU セル (注目度更新ゲートを備えた GRU) を表します。
詳細な説明: AUGRUCell と GRUCell の主な違いは、更新ゲートの乗数である追加の注目度スコア入力 A
です。AUGRU 式は論文 arXiv:1809.03672 に基づいています。
AUGRU 式: * - 行列乗算
(.)- アダマール積 (要素ごと)
f、 g - 活性化関数
z - 更新ゲート、 r - リセットゲート、 h - 隠しゲート
a - 注目度スコア
rt = f(Xt*(Wr^T) + Ht-1*(Rr^T) + Wbr + Rbr)
zt = f(Xt*(Wz^T) + Ht-1*(Rz^T) + Wbz + Rbz)
ht = g(Xt*(Wh^T) + (rt (.)Ht-1)*(Rh^T) + Rbh + Wbh) # 'linear_before_reset' は False
zt' = (1 - at) (.) zt # 注目度スコアによる乗算
Ht = (1 - zt') (.) ht + zt' (.) Ht-1
属性
hidden_size
説明: hidden_size は隠れ状態のサイズを指定します。
値の範囲: 正の整数
タイプ:
int
必須: はい
activations
説明: ゲートの活性化関数
値の範囲: sigmoid、tanh
タイプ: 文字列のリスト
デフォルト値: f は sigmoid、g は tanh
必須: いいえ
activations_alpha、activations_beta
説明: activations_alpha, activations_beta 関数の属性。この属性の適用性と意味は、選択した活性化関数によって異なります
値の範囲: []
タイプ:
float[]
デフォルト値: []
必須: いいえ
clip
説明: clip は、テンソル・クリッピングの境界値 [-C, C] を指定します。クリッピングはアクティブ化の前に実行されます。
値の範囲:
0.
タイプ:
float
デフォルト値:
0
- クリッピングが適用されていないことを意味します必須: いいえ
linear_before_reset
説明: linear_before_reset フラグは、隠しゲートの出力が線形変換の前または後にリセットゲートで乗算されるかどうかを示します。
値の範囲: 偽
タイプ:
boolean
デフォルト値: 偽
必須: いいえ
入力
1:
X
- タイプ T および形状[batch_size, input_size]
の 2D テンソル、入力データ。必須。2:
H_t
- タイプ T および形状[batch_size, hidden_size]
の 2D テンソル。初期の隠し状態データを入力します。必須。3:
W
- タイプ T および形状[3 * hidden_size, input_size]
の 2D テンソル。行列乗算の重み、ゲート順序は zrh になります。必須。4:
R
- タイプ T および形状[3 * hidden_size, hidden_size]
の 2D テンソル。行列乗算の再帰重み、ゲート順序は zrh になります。必須。5:
B
- タイプ T の 2D テンソル。バイアス。linear_before_reset がFalse
に設定されている場合、形状は[3 * hidden_size]
、ゲート順序は zrh になります。それ以外の場合、形状は[4 * hidden_size]
- z ゲートと r ゲートのバイアス (重みと再帰重み) の合計であり、h ゲートのバイアスは個別に配置されます。必須。6:
A
- タイプ T および形状[batch_size, 1]
の 2D テンソル、注目度スコア。必須。
出力
1:
Ho
- タイプ T[batch_size, hidden_size]
の 2D テンソル、隠し状態の最後の出力値。
タイプ
T: サポートされている浮動小数点タイプ。
例
<layer ... type="AUGRUCell" ...>
<data hidden_size="128"/>
<input>
<port id="0"> <!-- `X` 入力データ -->
<dim>1</dim>
<dim>16</dim>
</port>
<port id="1"> <!-- `H_t` 入力 -->
<dim>1</dim>
<dim>128</dim>
</port>
<port id="3"> <!-- `W` 重み入力 -->
<dim>384</dim>
<dim>16</dim>
</port>
<port id="4"> <!-- `R` 再帰重み入力 -->
<dim>384</dim>
<dim>128</dim>
</port>
<port id="5"> <!-- `B` バイアス入力 -->
<dim>384</dim>
</port>
<port id="6"> <!-- `A` 注目度スコア入力 -->
<dim>1</dim>
<dim>1</dim>
</port>
</input>
<output>
<port id="7"> <!-- `Y` 出力 -->
<dim>1</dim>
<dim>4</dim>
<dim>128</dim>
</port>
<port id="8"> <!-- `Ho` 出力 -->
<dim>1</dim>
<dim>128</dim>
</port>
</output>
</layer>