Chainerの基本オブジェクトについて書いています.
今回はlinksについてです.
#links
linksはfunctionsと似ていて,Variablesを変数に持つ関数を提供します.
違いはというと,functionsは関数にパラメータを持ちませんが,linksはパラメータを持ちます.
具体的に見ていきます.
#Linear
例えば,l層が3個のノード,l+1層が4個のノードから構成されているとします.
これは,l層の出力(l+1層の入力)をyとすると,その写像は
y = wx + b
という線形で表すことができます.
linksはこのように,層から層への写像を提供します.この場合,パラメータはwとbです.
これを(ノード3からノード4の層へ),linksで表現すると,
>>> from chainer import links as L
>>> y = L.Linear(3, 4)
wには適当な値が,bには0が入っています.
対してfunctionsは活性化関数や誤差関数などに用いる関数を提供しました.sigmoid関数を見てわかるように,
y = \frac{ 1 } { 1 + e^{-x} }
パラメータはありません.
ニューラルネットワークにおいて,このパラメータを推定することが鍵となります.
では,次回はそのパラメータ推定のために重要なChainオブジェクトについて書きます.
#参考
新納浩幸
Chainerによる実践深層学習~複雑なNNの実装方法~ オーム社