chainer.functions.
bilinear
(e1, e2, W, V1=None,
V2=None, b=None)[source]¶
バイリニア関数に与えられたパラメータを適用する。
ニューラル・テンソル・ネットワークのビルディングブロックです。(下記の論文も参照してください)この関数は2つの入力Variableと1つもしくは4つのパラメータをとり、Variableを1つ出力します。
正確には、6角入力配列は数学的に \(e^1\in \mathbb{R}^{I\cdot J}\), \(e^2\in \mathbb{R}^{I\cdot K}\), \(W\in \mathbb{R}^{J \cdot K \cdot L}\), \(V^1\in \mathbb{R}^{J \cdot L}\), \(V^2\in \mathbb{R}^{K \cdot L}\), and \(b\in \mathbb{R}^{L}\)で表されます。ただし、 \(I\) はミニバッチのサイズです。このドキュメントで、 \(V^1\)、 \(V^2\)、 \(b\) をリニアパラメータと呼びます。
順伝播の出力は下記のように表されます。
V1, V2, b はオプションですので注意してください。これらが指定されていないとき、この関数は上記の式からこの3項を省略します。
e1
もしくは行列ではないデータ e2
を受け入れます。この場合、先頭にくる次元はバッチ次元として扱われ、他の次元は1次元に縮小されます。
Parameters: | |
---|---|
Returns: |
出力値 |
Return type: |