Main Content

dist

ユークリッド距離重み関数

説明

Z = dist(W,P) は、SR 列の重み行列 W、および入力 (列) ベクトル QRQ 列の行列 P を取り、ベクトル距離の SQ 列の行列 Z を返します。

重み関数は、入力に重みを適用して重み付けされた入力を返します。

dim = dist('size',S,R,FP) は、層次元 S、入力次元 R、および関数パラメーター FP を取り、重みサイズ [SR 列] を返します。

dw = dist('dw',W,P,Z,FP) は、W に対する Z の微分を返します。

dist は層の距離関数でもあり、これを使用して層内のニューロン間の距離を求めることができます。

D = dist(pos) は、NS 列のニューロンの位置行列 pos を取り、SS 列の距離行列 D を返します。

すべて折りたたむ

この例では、ランダムな重み行列 W と入力ベクトル P が与えられたときに、対応する重み付き入力 Z を計算する方法を説明します。

W = rand(4,3);
P = rand(3,1);
Z = dist(W,P)

以下では、3 次元空間に配置される 10 個のニューロンの位置のランダムな行列を定義し、それらの間の距離を求めます。

pos = rand(3,10);
D = dist(pos)

入力引数

すべて折りたたむ

重み行列。SR 列の行列として指定します。

入力行列。Q 個の入力 (列) ベクトルから成る RQ 列の行列として指定します。

層次元。スカラーとして指定します。

入力次元。スカラーとして指定します。

ニューロンの位置の行列。NS 列の行列として指定します。

出力引数

すべて折りたたむ

ベクトル距離。SQ 列の行列として返されます。

重みのサイズ。行ベクトルとして返されます。

W に関する Z の導関数。cell 配列として返されます。

距離。SS 列の行列として返されます。

詳細

すべて折りたたむ

ネットワークの利用

newpnn または newgrnn を呼び出すことによって、dist を使用する標準的なネットワークを作成できます。

入力の重みによって dist が使用されるようにネットワークを変更するには、net.inputWeights{i,j}.weightFcn'dist' に設定します。層の重みの場合には、net.layerWeights{i,j}.weightFcn'dist' に設定します。

層のトポロジによって dist が使用されるようにネットワークを変更するには、net.layers{i}.distanceFcn'dist' に設定します。

いずれの場合も、sim を呼び出し、dist を使用してネットワークのシミュレーションを行います。

シミュレーションの例については、newpnn または newgrnn を参照してください。

アルゴリズム

2 つのベクトル XY の間のユークリッド距離 d は次のようになります。

d = sum((x-y).^2).^0.5

バージョン履歴

R2006a より前に導入