老饼讲解-神经网络 机器学习 神经网络 深度学习
感知机神经网络

【原理】matlab工具箱的感知机原理

作者 : 老饼 发表日期 : 2022-06-21 15:52:50 更新日期 : 2023-03-01 02:22:39
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



本文在《感知机的原理》的基础上,

进一步介绍matlab工具箱中的感知机神经网络(newp)

通过本文,理解matlab感知机神经网络的用途、原理、求解方法




  01. matlab中的感知机神经网络  



本节介绍matlab中的感知机神经网络的模型结构和数学表达式

并辨析它与一般的感知机有什么区别

 


     matlab工具箱的感知机神经网络     


matlab中的感知机神经网络是由感知机演变而来,
它是一个两层的神经网络,只有输入层与输出层

 
感知机神经网络的拓扑结构
这里举例说明,
一个2输入3输出的感知机神经网络拓扑图如下:
 
 

输出层的激活函数支持hardlim和hardlims,两者的区别如下:

       

 
 当输出层的激活函数为hardlim每个输出的输出值是0或1
而当输出层的激活函数为hardlims每个输出的输出值是-1或1

  备注:mamtlab中默认激活函数为hradlim
 
 
   感知机神经网络的数学表达式   
 激活函数为hardlim时,
感知机神经网络的数学表达式为:

 

   
 激活函数为hardlims时
感知机神经网络的数学表达式为:
 
 
✍️  辨识:matlab工具箱的感知机神经网络与一般书箱介绍的感知机的区别  
 
(1) 上篇感知机介绍的为二分类,只有一个输出,而这里的感知机神经网络支持多输出。                  
(2) matlab感知机神经网络默认使用的激活函数为hardlim,而上篇的二分类感知机是hardlims         
 总的来说,matlab的感知机神经网络默认输出格式为one-hot编码,即[0 1 0 0]这类的格式     




      ✍️特别说明    



  由于matlab的默认激活函数为hardlim,
而hardlim和hardlims两者没有本质的区别
因此,下面下我们只介绍hardlim,即输出为{0,1}






  02. 感知机神经网络的损失函数  



本节介绍matlab中的感知机神经网络的损失函数

作为下节讲解感知机神经网络的训练的基础知识



   感知机神经网络的训练目标   


感知机的误差评估函数为预测错误样本个数的占比:


其中,
m:输出个数                                                 
n:样本个数                                                  
 :第i个样本的第j个输出。                         
:网络对第i个样本第j个输出的预测值        
感知机的训练目标就是找出一组w,b,使E最小化




   感知机神经网络的损失函数   


损失函数的思路
 感知机神经网络的训练可以使用梯度下降法,
但由于误差评估函数,不方便求导,
所以先构造一个与误差评估函数相关的损失函数,
然后用损失函数的梯度来引导w,b的调整

  
 损失函数表达式
可以用以下函数作为损失函数,来引导w,b的迭代方向
 
✍️补充:关于损失函数的意义
损失函数的意义如下:
 
(1) 当网络对第i个样本预测正确时:
 为正,为 1,即为1, 则为负
 为负,为 0,即为-1, 则 为负
 
(2) 当网络对第i个样本预测错误时:
 为正,为0,即为-1, 则为正
为负,为1,即为1, 则为正
  
总的来说,
预测正确时,为负,
预测错误时,为正,
即,网络越正确,L(w,b)越小,网络越错误,L(w,b)越大
则我们要令L更小,只要往w和b的负梯度方向调整即可






  03. 感知机神经网络的训练方法  



本节讲解感知机是如何训练的,及其梯度公式的推导



   感知机神经网络的训练  


感知机一般用单样本训练,即逐个样本训练w、b
 感知机的训练算法简述如下:
 逐样本训练                                                                     
 往当前样本的负梯度方向更新w,b                   
退出训练条件:达到最大训练次数或误差已极小
具体的训练细节参考《matlab工具箱的感知机算法流程》《matlab工具箱的感知机的代码复现》
 ✍️补充:关于梯度公式 
迭代过程需要用到单样本的损失函数对w,b的梯度,
梯度的公式为







    梯度公式的推导   


整体样本的梯度推导
 
可算得损失函数L中 w 和 b 的梯度如下:

 w的梯度

 
 b的梯度
   

单样本时w,b的梯度推导  
感知机一般用单样本训练,
由上可算得对于单个样本训练时,w,b的梯度为:
 
  

 
 
 
 
上式也可以改写成如下形式:
 
 


 
其中,是网络对的预测值









 End 








联系老饼