Main Content

mandist

マンハッタン距離重み関数

説明

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

mandist は、マンハッタン距離重み関数です。重み関数は、入力に重みを適用して重み付けされた入力を返します。

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

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

すべて折りたたむ

この例では、重み付き入力行列を計算する方法を示します。

ランダムな重み行列 W および入力ベクトル P を定義し、対応する重み付き入力 Z を計算します。

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

この例では、3 次元空間に配置された 10 個のニューロンの距離を計算する方法を示します。

3 次元空間に配置される 10 個のニューロンについて、その位置のランダムな行列を定義した後、その間の距離を求めます。

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

入力引数

すべて折りたたむ

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

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

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

出力引数

すべて折りたたむ

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

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

詳細

すべて折りたたむ

ネットワークの利用

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

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

いずれの場合も、sim を呼び出し、dist を使用してネットワークのシミュレーションを行います。シミュレーションの例については、newpnn または newgrnn を参照してください。

アルゴリズム

2 つのベクトル XY の間のマンハッタン距離 D は次のようになります。

D = sum(abs(x-y))

バージョン履歴

R2006a より前に導入

参考

| |