举个例子,PNN 很容易理解。所以假设我想用 2D 中的 PNN 点进行分类,我的训练点是图中的蓝点和红点:
我可以将方差的高斯函数作为基函数,例如 0.1。一旦出现方差,PNN 中就没有训练σ高斯的系数是固定的,所以我们现在将通过这个固定来解决您问题的核心σ(你当然可以尝试找到一个最佳的σ...)。
所以我想把这个绿十字分类(x = 1.2, y =0.8)。PNN 的作用如下:
- 输入层是特征向量 (x = 1.2, y =0.8);
- 隐藏层由六个节点组成(对应于六个训练点):每个节点评估以其图为中心的高斯,例如,如果第一个节点是 (X0= - 1.2,是的0= - 1.1),然后这个节点评估G0( x , y) ≈ exp( - ( ( x -X0)2+ (是-是的0)2) / 2σ2). 最后,每个节点都输出他的绿色十字高斯值(当值太低时,通常是你的阈值)。
- 求和层由# ( l a b e l s )节点。步骤 2 的每个实值输出都发送到相应的节点(三个红色节点将它们的值发送到求和红色节点,三个蓝色节点将它们的值发送到求和蓝色节点)。每个标签节点将它们收到的高斯值相加。
- 最后一个节点只是一个最大节点,它获取求和节点的所有输出并输出最大值,例如得分最高的标签节点。
在这里你可以看到每个蓝点都会有一个高斯(有方差σ= 0.1) 等于 0,而红色的将具有相当高的值。然后所有蓝色高斯的总和将为 0(或几乎),红色为高,因此最大值为红色标签:绿色十字被归类为红色。
正如你所指出的,主要任务是找到这个σ. 有很多技术,您可以在互联网上找到很多培训策略。你必须采取σ小到足以捕获局部性,而不是小,否则你会过拟合。您可以想象交叉验证以在网格内获取最佳值!(另请注意,您可以分配不同的σ一世到每个标签,例如)。
这是一个做得很好的视频!