神经网络-专题教程

【原理】BP神经网络应用于模式识别

作者 : 老饼 发表日期 : 2022-08-29 21:40:38 更新日期 : 2024-11-10 23:20:32
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



BP神经网络可以较好地应用于模式识别问题,也即分类问题

本文介绍BP神经网络应用于模式识别问题时的原理,包括模型结构、损失函数等

最后,本文讲解在matlab中如何使用patternnet函数来建立BP神经网络模式识别的模型




    01. 什么是模式识别问题    




本节讲解BP神经网络应用于分类时的模型结构




    什么是模式识别问题   


模式识别问题也称为分类问题,就是预测样本所属的类别
分类问题的每个训练样本都对应一个类别标签,代表该样本属于哪个类别

分类问题的类别表示:one-hot向量
在机器学习中,一般使用one-hot向量来表示样本的类别,
 one-hot向量的格式与含义如下:
 
one-hot向量的长度与类别个数一致,只有一个元素的值为1,其余为0,
one-hot向量第i个元素为1时,就表示样本为第i类
 分类问题的模型输出:概率向量
 
分类问题可以直接输出样本的所属类别,但更一般地,是输出样本属于每个类别的概率,
所以分类问题的模型输出的是一个概率向量,如下:
 
概率向量的第i个元素代表样本属于第i个类别的概率








    02. BP神经网络应用于模式识别问题    





本节讲解BP神经网络应用于模式识别问题时的网络结构以及损失函数





     BP神经网络模式识别-网络结构    


BP神经网络应用于分类时的结构
BP神经网络应用于分类时,一般用的仍然是三层结构,相对特别的有如下两点:
1. 有多少个类别,网络就有多少个输出                                           
2. 网络的输出进行softmax转换,把网络的结果归一化为类别的概率
 BP神经网络应用于分类时的具体结构示例如下:
 
如图所示,第一层是输入层,第二层是隐层,第三层是输出层
输出层的神经元个数与类别个数一致,并且输出层加入了softmax函数
其中,softmax的计算公式如下:
      
 也就是对最后一层的每个输出值先进行指数转换,再进行归一化
softmax的意义就在于把数值转换为概率




     BP神经网络模式识别-损失函数    


BP神经网络应用于模式识别时,损失函数一般使用交叉熵损失函数
交叉熵损失函数计算公式-定义形式:
   
  其中, :样本个数            
                                      
:模型判断第i个样本属于类别k的概率,k是样本的真实标签







    03. matlab如何实现用于模式识别的BP神经网络   




本节讲解BP神经网络应用于模式识别时,在matlab中应该如何实现




     matlab的patternnet函数    


matlab中使用patternnet函数来构建一个用于模式识别的BP神经网络
net = patternnet(hiddenSizes,trainFcn,performFcn)
patternnet和newff是类似的,只是在输出层会加上softmax函数,此外,patternnet的一些默认参数与newff有所不同,
 例如newff的损失函数是mse,而patternnet用的是交叉熵crossentropy,其它不再赘述,依照newff的相关应用即可
 
patternnet的使用示例如下:
x = -5:5;                        % 生成x
y = [x<0;x>=0];                  % 生成y,注意,y是one-hot格式
net = patternnet(3);             % 建立模式识别网络,隐层设为3个隐节点
[net,tr] = train(net,x,y);       % 将数据放到网络中训练
py = sim(net,x)                  % 用网络进行预测
运行结果如下: 
 
  
可以看到,网络已经较好地预测x所属的类别












  End  









联系老饼