RBF放射基底関数(RBF)ニューラルネットワークは、1980年代後半にJ.MoodyとC.Darkenによって提案されたニューラルネットワークです。これは、単一の隠れ層を持つ3層のフィードフォワードネットワークです。RBFネットワークは、局所的に調整され、受容野(または受容野)をカバーする人間の脳のニューラルネットワーク構造をシミュレートするため、任意の精度で任意の連続関数を近似できることが証明されている局所近似ネットワークを作成します。 。
ネットワークの重み、しきい値、エラーを表示できる%RBFニューラルネットワーク近似プログラム(MATLABツールボックスを使用しない)
すべてクリア;
すべて閉じる;
xite = 0.5; %学習率
アルファ= 0.05; %運動量係数
ベータ= 0.01;
x = [1,0,0,0] '; %入力サンプル
ci = 30 * ones(4,6); %ネットワークノードの中心ベクトルを初期化します
bi = 10 * ones(6,1); %ネットワークのベース幅を初期化します
w = 0.10 * ones(6,1); %ネットワークの重みを初期化します
h = [0,0,0,0,0,0] '; %ネットワークの動径基底 ベクトルを初期化します
ci_1 = ci; ci_3 = ci_1; ci_2 = ci_1;
bi_1 = bi; bi_2 = bi_1; bi_3 = bi_2;
w_1 = w; w_2 = w_1; w_3 = w_1;
カウンター= 0; %トレーニング時間
yout = 2; %出力目標値
ym = 0; %トレーニング目標値
e = yout-ym; %近似誤差
while (abs(e)> = 0.0001)
counter = counter + 1;
以下のための1:6、J = 1
h(j)= exp(-norm(x-ci(:、j))^ 2 /(2 * bi(j)* bi(j)));
終わり
ym = w '* h;
d_w = 0 * w;
以下のための1:6、J = 1
d_w(j)= xite *(yout-ym)* h(j);
終わり
w = w_1 + d_w + alpha *(w_1-w_2);
d_bi = 0 * bi;
以下のための1:6、J = 1
d_bi(j)= xite *(yout-ym)* w(j)* h(j)*(bi(j)^-3)*ノルム(x-ci(:、j))^ 2;
終わり
bi = bi_1 + d_bi + alpha *(bi_1-bi_2);
以下のための1:6、J = 1
ため、私は= 1:1:4
d_ci(i、j)= xite *(yout-ym)* w(j)*(x(i)-ci(i、j))*(bi(j)^-2);
終わり
終わり
ci = ci_1 + d_ci + alpha *(ci_1-ci_2);
ci_3 = ci_2;
ci_2 = ci_1;
ci_1 = ci;
bi_3 = bi_2;
bi_2 = bi_1;
bi_1 = bi;
w_3 = w_2;
w_2 = w_1;
w_1 = w;
e = yout-ym;
終わり