Main Content

elliotsig

Elliot 対称シグモイド伝達関数

構文

A = elliotsig(N)

説明

伝達関数は、ニューラル ネットワーク層の正味入力を正味出力に変換します。

A = elliotsig(N) は、正味入力の (列) ベクトルから成る SQ 列の行列 N を取り、出力ベクトルから成る SQ 列の行列 A を返します。ここで、N の各要素は、"S 型" 関数を使用して区間 [-inf inf] から区間 [-1 1] にスカッシングされます。

この伝達関数は、指数関数や三角関数を必要としないため、シンプルなコンピューティング ハードウェアでの計算が他のシグモイドと比べて高速であるという利点があります。欠点としては、大規模な入力のみをフラットにするため、他のシグモイド関数ほど影響が局所的にならないという点が挙げられます。その結果、学習の反復回数が増えたり、同じ精度を得るのにより多くのニューロンが必要になったりする場合があります。

単一の正味入力ベクトルから層の出力を計算します。

n = [0; 1; -0.5; 0.5];
a = elliotsig(n);

伝達関数をプロットします。

n = -5:0.01:5;
plot(n, elliotsig(n))
set(gca,'dataaspectratio',[1 1 1],'xgrid','on','ygrid','on')

既に定義したネットワークについて、i 番目の層の伝達関数を変更します。

 net.layers{i}.transferFcn = 'elliotsig';

バージョン履歴

R2012b で導入