class RSDNFunction
{
public:
staticconst NeuronType Type = ETYPE_RSDN;
public:
double F(double x)
{
// coeffs were added to adjust this function to bisigmoid for values from -5 to 5return5*x/(5*sqrt(abs(5*x) ) + 5);
}
double dF(double x)
{
double root = sqrt(5*abs(5*x) ) + 1;
return (root + 1)/(2*root*root); // derived function
}
};
ラジアルベースラインネットワークを構築するか?
学習が早い反面、未知のデータに対する予測能力が低いという強いバグがある。
一般コース (http://www.intuit.ru/department/expert/neuro/ からは、そこで登録する必要があります。登録したくない場合は、ニックネームはNic_Touch paszdraste01)
講演会 http://www.softcraft.ru/neuro/ni/p00.shtml
マッピング例 http://www.statsoft.ru/home/products/version6/snn.htm
モデルや トレーニング方法に関する書籍
u- アクティベータ入力
y- 追加の力率。
指数がある場合は、32ビットを超える大きな数値が出ないように、正の数の指数を計算しないようにする必要があります。例えば,シグマを計算する場合は,次のようにするとよいでしょう。
double x = -y*u;
double e=exp(-|x|);
if(x<=0)return(1./(1.+e))
if(x>0)return(e/(1.+e));
これらの式は非常にシンプルに導き出される。指数引数が負の場合は、数式を変更しないままとする。正の場合は、分子と分母に同じ引数の指数を掛けるが、符号は負とする。
指数がある場合は、32ビットを超える大きな数値が出ないように、正の数の指数を計算しないようにする必要があります。例えば、シグマの計算はこのようにするのがよいでしょう。
double x = -y*u;
double e=exp(-|x|);
if(x<=0)return(1./(1.+e))
if(x>0)return(e/(1.+e));
これらの式は非常にシンプルに導き出される。指数引数が負の場合は、数式を変更しないままとする。正の場合は、分子と分母に同じ引数の指数を掛けるが、符号は負とする。
不思議なことに、シグモイド自体は大きな負の入力でも正しく動作しますが、ハイパータンジェント関数は失敗するので、古典的なアルゴリズムに加えて、シグモイドシフトを 追加しています。この関数はハイパータンジェントと同じ極限で動作するが、より高速で、#INDの問題もない。
同様に、迎え角の調整では(係数yが小さい場合)ハイパータンジェントが-1;1にならないが、シフトシグモイドではそのような問題はない。
一般的に誰がハイパータンジェントを確定したいが、私は関数が期待できないと思う、私は指数が2回使用されているため、結果を保存する必要があることだけでなく、まだチェックを必要とする、さらに攻撃を調整するときに限界に到達するために失敗の問題。
私の結論は、ハイパータンジェントはダメで、シフトしたシグモイドがルールということです。
私の結論は、ハイパータンジェントはダメで、シグモイドの法則にシフトすることです。
を出向させた。
1;1]極限のシグモイドをより単純に実装することが可能です。
が、この実装でも#INDの問題があるので、多数のチェックを書くより、簡単な操作をいくつか追加する方が良いだろう
ここでは、+ - / を追加しているので、3つの余分な操作と多くのチェックがあります。
作業範囲[-1;1]の使い勝手と操作スピードの両面から、最適な選択肢といえます。定義域は、数値行全体である。
私が最近使っている活性化関数は、まさにこのものです。
そして、エコーグリッドで一番気に入っているのがこの1枚です。
ちなみに。
シグモイド関数が必要です。
必要なのは、関数そのものとその導関数の正規形(計算はそれほど難しくない)、逆関数とその導関数の正規形である。