神经网络理论

      神经网络是由具有适应性的简单单元组成的广泛并互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。
0.简单介绍
      在机器学习和认知科学领域,人工神经网络(artificial neural network,缩写ANN),简称神经网络(neural network,缩写NN),是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统。现代神经网络是一种非线性统计性数据建模工具。典型的神经网络具有以下三个部分:
      ①结构 (Architecture):结构指定了网络中的变量和它们的拓扑关系。例如,神经网络中的变量可以是神经元连接的权重(weights)和神经元的激励值(activities of the neurons)。
      ②激励函数(Activity Rule):大部分神经网络模型具有一个短时间尺度的动力学规则,来定义神经元如何根据其他神经元的活动来改变自己的激励值。一般激励函数依赖于网络中的权重(即该网络的参数)。
      ③学习规则(Learning Rule):学习规则指定了网络中的权重如何随着时间推进而调整。这一般被看做是一种长时间尺度的动力学规则。一般情况下,学习规则依赖于神经元的激励值。它也可能依赖于监督者提供的目标值和当前权重的值。
1.神经元模型
      神经网络中最基本的成分就是神经元模型,即上述的“简单单元”。下面介绍一下“M-P神经元模型”,如下图:
在这里插入图片描述
      在这个模型中,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将与神经元的阈值进行比较,然后通过“激活函数”处理以产生神经元的输出。
      说到激活函数,下面我将介绍三种激活函数:
      ①阶跃函数:它将输入值映射为输出值“0”或“1”,显然“1”对于神经元兴奋,“0”对应于神经元抑制。然而阶跃函数具有不连续、不光滑等不太好的性质,因此出现了sigmoid函数。 在这里插入图片描述
s g n ( x ) = { 1 , x ≥ 0 0 , x &lt; 0 sgn \left( x \right)=\left\{ \begin{matrix} 1,x\ge 0 \\ 0,x&lt;0 \\ \end{matrix} \right. sgn(x)={ 1,x00,x<0
      ②sigmoid函数:它把可能在较大范围内变化的输入值挤压到(0,1)输出值范围内,因
此有时也被称为“挤压函数”。然而sigmoid函数具有计算量大,反向传播求误差梯度时,求导涉及除法,并且反向传播时,很容易就会出现梯度消失的情况,从而无法完成深层网络的训练,因此出现了RELU函数。 在这里插入图片描述
s i g m o i d ( x ) = 1 1 + e − x sigmoid\left( x \right)=\frac{1}{1+{ {e}^{-x}}} sigmoid(x)=1+ex1
      ③RELU函数:输入信号 <0 时,输出都是0,>0 的情况下,输出等于输入。RELU的
随机梯度下降的收敛速度会比sigmoid快很多。 在这里插入图片描述
r e l u ( x ) = { x , x ≥ 0 0 , x &lt; 0 relu\left( x \right)=\left\{ \begin{matrix} x,x\ge 0 \\ 0,x&lt;0 \\ \end{matrix} \right. relu(x)={ x,x00,x<0
2.感知机与多层网络
      感知机由两层神经元组成,如下图: 在这里插入图片描述
      输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”。需要注意的是,感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力非常有限,一般用于解决线性问题。
      如果要解决非线性问题,需要考虑多层神经元,如下图:
在这里插入图片描述
      输出层和输入层之间有一层神经元,被称为隐层或者隐含层,隐含层和输出层的都是拥有激活函数的功能神经元。感知机的学习规则非常贱但,对训练数据 ,若当前感知机的输出为 ,则感知机的权重这样调整
w i ← w i + △ w i ( 1 ) { {w}_{i}}\leftarrow { {w}_{i}}+\vartriangle { {w}_{i}}(1) wiwi+wi(1)
△ w i = η ( y − y ^ ) x i \vartriangle { {w}_{i}}=\eta \left( y-\widehat{y} \right){ {x}_{i}} wi=η(yy )xi
      更一般的,常见的神经网络是下图所示的层级结构:
在这里插入图片描述
      每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。这样的神经网络结构称为“多层前馈神经网络”。其中输入层神经元接受外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出;换言之,输入层神经元仅是接收输入,不进行函数处理,隐层与输出层包含功能神经元。因此通常被称为“两层网络”。神经网络的学习过程就是根据训练数据来调整神经元之间的连接权以及每个功能神经元的阈值;换言之,神经网络学到的东西,蕴含在连接权与阈值中。
3.误差逆传播算法(反向传播算法或BP算法)
      多层网络的学习能力比单层感知机强得多,欲训练多层网络,简单感知机学习规则显然不够,需要更强大的学习算法。BP算法就是最杰出的代表。显示任务中使用神经网络时,大多是在使用BP算法进行训练。值得指出的是,BP算法不仅可用于多层前馈神经网络,还可用于其他类型的神经网络(例如递归神经网络)。
      给定训练集 。即输入示例由d个属性描述,输出l维实值向量。为便于讨论给出下图: 在这里插入图片描述
      对训练实例 ( x k , y k ) \left( { {x}_{k}},{ {y}_{k}} \right) (xk,yk),假定神经网络的输出为 y ^ k = ( y ^ 1 k , y ^ 2 k , . . . , y ^ l k ) { {\widehat{y}}_{k}}=\left( \widehat{y}_{1}^{k},\widehat{y}_{2}^{k},...,\widehat{y}_{l}^{k} \right) y k=(y 1k,y 2k,...,y lk),即
y ^ 1 k = f ( β j − θ j ) ( 2 ) \widehat{y}_{1}^{k}=f\left( { {\beta }_{j}}-{ {\theta }_{j}} \right)(2) y

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值