了解概率神经网络

机器算法验证 机器学习 神经网络
2022-04-16 04:09:10

我想更好地理解概率神经网络的基本概念。不幸的是,到目前为止,我还没有找到可以回答我所有问题的资源。到目前为止,我的理解和我的问题如下:

  • 第一层(“输入层”)将每个特征表示为一个节点
  • 接下来的层是隐藏层:这里我们计算从我们要分类的数据样本(向量)到每个类的平均数据向量的距离
  • “求和层”:?? 这里到底发生了什么?隐藏层是否计算新数据向量与每个训练向量的距离,求和层是否计算每个类的所有距离......?或者..?
  • 如果我理解正确,每个类的数据都是由高斯分布建模的,并且高斯的参数在训练期间是合适的。那么计算一个新向量来自任一高斯的概率还不够吗?距离计算在这里有多重要?

非常感谢

1个回答

举个例子,PNN 很容易理解。所以假设我想用 2D 中的 PNN 点进行分类,我的训练点是图中的蓝点和红点:输入标记(蓝点和红点)和测试点(绿十字)

我可以将方差的高斯函数作为基函数,例如 0.1。一旦出现方差,PNN 中就没有训练σ高斯的系数是固定的,所以我们现在将通过这个固定来解决您问题的核心σ(你当然可以尝试找到一个最佳的σ...)。

所以我想把这个绿十字分类(x=1.2, y =0.8)。PNN 的作用如下:

  1. 输入层是特征向量 (x=1.2, y =0.8);
  2. 隐藏层由六个节点组成(对应于六个训练点):每个节点评估以其图为中心的高斯,例如,如果第一个节点是 (x0=1.2,y0=1.1),然后这个节点评估G0(x,y)exp(((xx0)2+(yy0)2)/2σ2). 最后,每个节点都输出他的绿色十字高斯值(当值太低时,通常是你的阈值)。
  3. 求和层由#(labels)节点。步骤 2 的每个实值输出都发送到相应的节点(三个红色节点将它们的值发送到求和红色节点,三个蓝色节点将它们的值发送到求和蓝色节点)。每个标签节点将它们收到的高斯值相加。
  4. 最后一个节点只是一个最大节点,它获取求和节点的所有输出并输出最大值,例如得分最高的标签节点。

在这里你可以看到每个蓝点都会有一个高斯(有方差σ=0.1) 等于 0,而红色的将具有相当高的值。然后所有蓝色高斯的总和将为 0(或几乎),红色为高,因此最大值为红色标签:绿色十字被归类为红色。

正如你所指出的,主要任务是找到这个σ. 有很多技术,您可以在互联网上找到很多培训策略。你必须采取σ小到足以捕获局部性,而不是小,否则你会过拟合。您可以想象交叉验证以在网格内获取最佳值!(另请注意,您可以分配不同的σi到每个标签,例如)。

这是一个做得很好的视频!