Main Content

newpnn

確率的ニューラル ネットワークの設計

構文

net = newpnn(P,T,spread)

説明

確率的ニューラル ネットワーク (PNN) は、分類問題に適した放射基底ネットワークの一種です。

net = newpnn(P,T,spread) は、2 つまたは 3 つの引数を取ります。

P

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

T

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

spread

放射基底関数の広がり (既定は 0.1)

これは、新しい確率的ニューラル ネットワークを返します。

spread が 0 に近い場合、このネットワークは最近傍分類器として動作します。spread が大きくなると、設計されたネットワークは、近傍にある複数の設計ベクトルを考慮に入れるようになります。

ここでは、一連の入力 P およびクラス インデックス Tc を使用して分類問題を定義します。

P = [1 2 3 4 5 6 7];
Tc = [1 2 3 2 2 3 1];

クラス インデックスをターゲット ベクトルに変換し、PNN を設計してテストします。

T = ind2vec(Tc)
net = newpnn(P,T);
Y = sim(net,P)
Yc = vec2ind(Y)

アルゴリズム

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

newpnn は、最初の層の重みを P' に設定し、最初の層のバイアスをすべて 0.8326/spread に設定します。これにより、重み付けされた入力が +/− spread のときに 0.5 となる放射基底関数が得られます。2 番目の層の重み W2T に設定されます。

参考文献

Wasserman, P.D., Advanced Methods in Neural Computing, New York, Van Nostrand Reinhold, 1993, pp. 35–55

バージョン履歴

R2006a より前に導入