Main Content

dist

欧几里德距离权重函数

说明

示例

Z = dist(W,P) 接受一个 S×R 权重矩阵 W 和一个包含 Q 个输入(列)向量的 R×Q 矩阵 P,并返回一个由向量距离组成的 S×Q 矩阵 Z

权重函数对输入应用权重以获得加权输入。

dim = dist('size',S,R,FP) 接受层维度 S、输入维度 R 和函数参数 FP,返回权重大小 [S×R]。

dw = dist('dw',W,P,Z,FP) 返回 Z 关于 W 的导数。

dist 也是层距离函数,可用于找出一个层中神经元之间的距离。

D = dist(pos) 接受由神经元位置组成的 N×S 矩阵 pos,并返回由距离组成的 S×S 矩阵 D

示例

全部折叠

此示例说明在给定随机权重矩阵 W 和输入向量 P 的情况下,如何计算对应的加权输入 Z

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

在此处,您定义一个由在三维空间中排列的 10 个神经元的位置组成的随机矩阵,并找到这些神经元的距离。

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

输入参数

全部折叠

权重矩阵,指定为 S×R 矩阵。

输入矩阵,指定为一个由 Q 个输入(列)向量组成的 R×Q 矩阵。

层维度,指定为标量。

输入维度,指定为标量。

由神经元位置组成的矩阵,指定为 N×S 矩阵。

输出参量

全部折叠

向量距离,以 S×Q 矩阵形式返回。

权重大小,以行向量形式返回。

Z 关于 W 的导数,以元胞数组形式返回。

距离,以 S×S 矩阵形式返回。

详细信息

全部折叠

网络使用

您可以通过调用 newpnnnewgrnn 来创建使用 dist 的标准网络。

要更改网络以使输入权重使用 dist,请将 net.inputWeights{i,j}.weightFcn 设置为 'dist'。对于层权重,请将 net.layerWeights{i,j}.weightFcn 设置为 'dist'

要更改网络以使层的拓扑使用 dist,请将 net.layers{i}.distanceFcn 设置为 'dist'

在任一情况下,调用 sim 以使用 dist 对网络进行仿真。

有关仿真示例,请参阅 newpnnnewgrnn

算法

两个向量 XY 之间的欧几里德距离 d

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

版本历史记录

在 R2006a 之前推出

另请参阅

| | | | |