本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com
概率神经网络与广义回归神经网络很像,只不过概率神经网络用于做分类,
简单的说,概率神经网络就是广义回归的基础上,加一层compet,把数值转为类别而已。
广义回归中,先算出属于各个样本的概率 exp,
然后再将属于各个样本的概率进行归一化得到归一化后的概率权重,
再对各个样本的y进行加权求和,即可得到新样本的y.
数学表达式
以2输出,3个样本为例,广义回归神经网络的数学表达式如下:
其中,
a为待定参数,
Esum则为三个径向基函数之和:
Esum的作用是把各个径向基的值进行归一化,将径向基转为概率权重.
类别的表示-onehot编码
类别一般用onehot编码的形式,例如,共3个类别,属于第二个类别表示成[0 1 0]。
概率神经网络的思想
概率神经网络与广义回归是类似的,只是概率神经网络用于做模式识别(分类),它的输出是onehot编码。
因此,概率神经网络只是在广义回归的基础上,把广义回归的输出做一层compet(竞争)转换。
例 子
广义回归的输出是[ 0.6 0.3 0.1 ]这样的格式 ,
由于概率神经网络是做分类,输出必须确定属于哪一类,
我们对只要选出[ 0.6 0.3 0.1 ]中最大的一个就可以了,
即compet([ 0.6 0.3 0.1 ]) = [ 1 0 0],即可得知属于类别1.
这样,我们也理解,为什么叫概率神经网络了,它的输出其实就是属于各个类别的概率。
这里我们仍然不写通式,仅以一个2输入,3样本的Demo举例:
● 形式一
(1) 计算属于各类别的概率
(2) 把类别概率进行compet,得到最终预测类别
其中,compet为竞争函数,即将p值最大的置1,其余置0.例如compet([0.2 0.5 0.3]) = [0 1 0]
● 形式二
(1) 计算判别值:
(2) 使用判别值进行compet得到预测类别:
其中,compet为竞争函数,即将p值最大的置1,其余置0.例如compet([0.2 0.5 0.3]) = [0 1 0]
备注:由于最后仅是比较各个类别的概率哪个更大,所以在计算上可以不除以Esum,这样不会影响后面的竞争结果
(不除以Esum得到的值一般称为判别值,这里用g表示)。
基本与广义神经网络一致,只是最后做一层compet.
● 训练阶段
W21(输入层-->隐层权重):用X作为w21即可
B2(隐层阈值):用spread生成,
W32(隐层-->输出层层权重):用y作为w32即可。
● 使用阶段
计算y的公式格式参考如下Demo:
1.计算各个隐节点的输出
即计算各个exp的值。
先计算它到各个W21(也即训练样本的X)的距离,再将距离乘以B2(即a),
再经激活函数转换(即套上径向基函数),
这样就得到隐节点的输出。
2.计算输出值
W32(即训练数据的y)乘以隐节点(即y乘以权重),compet后就是最终的输出。
概率神经网络与广义神经网络基本是同一回事,所以优缺点也是类似的。
● 优点
(1) 简单
(2) 有概率作为解析背景意义
● 缺点
(1) 隐节点过多,在实际应用中计算量大
End