Main Content

newrb

放射基底ネットワークの設計

説明

net = newrb(P,T,goal,spread,MN,DF) は、次のうち 2 つの引数を取ります。

  • PQ 個の入力ベクトルから成る RQ 列の行列

  • TQ 個のターゲット クラス ベクトルから成る SQ 列の行列

  • goal — 平均二乗誤差の目標値

  • spread — 放射基底関数の広がり

  • MN — ニューロンの最大数

  • DF — 表示間に追加するニューロンの数

放射基底ネットワークを使用して関数を近似できます。newrb は、指定された平均二乗誤差の目標値を満たすまで、放射基底ネットワークの隠れ層にニューロンを追加します。

spread が大きいほど、関数近似がスムーズに行われます。広がりが大きすぎると、急速に変化する関数に多くのニューロンを当てはめる必要があります。広がりが小さすぎると、滑らかな関数に多くのニューロンを当てはめる必要があり、ネットワークが適切に汎化しない場合があります。さまざまな広がりを指定して newrb を呼び出し、与えられた問題に対して最適な値を求めます。

すべて折りたたむ

この例では、放射基底ネットワークを設計する方法を示します。

入力 P とターゲット T を持つ放射基底ネットワークは次のようになります。

P = [1 2 3];
T = [2.0 4.1 5.9];
net = newrb(P,T);

新しい入力に対してネットワークのシミュレーションを行います。

P = 1.5;
Y = sim(net,P)

入力引数

すべて折りたたむ

入力ベクトル。RQ 列の行列として指定します。

ターゲット クラスのベクトル。SQ 列の行列として指定します。

平均二乗誤差の目標値。スカラーとして指定します。

放射基底関数の広がり。スカラーとして指定します。

ニューロンの最大数。スカラーとして指定します。

表示間に追加するニューロンの数。スカラーとして指定します。

出力引数

すべて折りたたむ

新しい放射基底ネットワーク。ネットワーク オブジェクトとして返されます。

アルゴリズム

newrb は 2 層ネットワークを作成します。最初の層には radbas ニューロンがあり、dist で重み付けされた入力を計算し、netprod でその正味入力を計算します。2 番目の層には purelin ニューロンがあり、dotprod で重み付けされた入力を計算し、netsum でその正味入力を計算します。どちらの層にもバイアスがあります。

最初は、radbas 層にはニューロンがありません。ネットワークの平均二乗誤差が goal より小さくなるまで、次の手順が繰り返されます。

  1. ネットワークのシミュレーションを行います。

  2. 誤差が最大になる入力ベクトルを求めます。

  3. そのベクトルに等しい重みを使用して radbas ニューロンを追加します。

  4. 誤差が最小化されるように purelin 層の重みを再設計します。

バージョン履歴

R2006a より前に導入

参考

| | |