PReLU¶
バージョン名: PReLU-1
カテゴリー: アクティベーション関数
簡単な説明: パラメトリック整流線形単位の要素ごとのアクティベーション関数。
詳細説明:
PReLU の操作については、この記事で紹介されています。
PReLU は、次の数式に基づいて、指定された入力テンソルに対して要素ごとのパラメトリック ReLU 操作を実行します。
\[\begin{split}\text{PReLU}(x) = \begin{cases}
x & \text{if } x \geq 0 \\
\alpha x & \text{if } x < 0
\end{cases}\end{split}\]
ここで、α は学習可能なパラメーターであり、2 番目の入力 slope
によって定義される負の勾配に対応します。
他の参考文献に記載されている別の数学的表現:
\[PReLU(x) = \max(0, x) + \alpha\cdot\min(0, x)\]
属性: PReLU 操作には属性がありません。
入力:
1:
data
。タイプ T の任意の形状のテンソル。必須。2:
slope
。タイプ T でランク 1 以上のテンソル。負の傾き値を持つテンソル。必須。注: チャネル次元は、
data
入力テンソルの 2 番目の次元に対応します。slope
入力ランクが 1 で、その次元がdata
入力の 2 番目の次元と等しい場合、チャネルごとのブロードキャストが適用されます。それ以外の場合、slope
入力は numpy ルールでブロードキャストされます。説明は要素ごとの操作のブロードキャスト・ルールで参照できます。
出力:
1:
slope
入力テンソルからの負の傾き値を持つdata
入力テンソルに適用された要素ごとの PReLU 操作の結果。タイプ T のテンソルで、data
入力テンソルと同じ形状です。
タイプ:
T: サポートされている任意の浮動小数点タイプ。
例:
例: 1D 入力テンソル data
<layer ... type="Prelu">
<input>
<port id="0">
<dim>128</dim>
</port>
<port id="1">
<dim>1</dim>
</port>
</input>
<output>
<port id="2">
<dim>128</dim>
</port>
</output>
</layer>
例: 2D 入力テンソル data
<layer ... type="Prelu">
<input>
<port id="0">
<dim>20</dim>
<dim>128</dim>
</port>
<port id="1">
<dim>128</dim>
</port>
</input>
<output>
<port id="2">
<dim>20</dim>
<dim>128</dim>
</port>
</output>
</layer>
例: 4D 入力テンソル data
<layer ... type="Prelu">
<input>
<port id="0">
<dim>1</dim>
<dim>20</dim>
<dim>128</dim>
<dim>128</dim>
</port>
<port id="1">
<dim>20</dim>
</port>
</input>
<output>
<port id="2">
<dim>1</dim>
<dim>20</dim>
<dim>128</dim>
<dim>128</dim>
</port>
</output>
</layer>