BLOG

个人博客,记录学习与生活

神经网络和误差反向传播算法

Published Dec. 9, 2019, 3:43 p.m. by kkk

简要介绍前向神经网络和误差反向传播算法

什么是前向神经网络?

概率其实很简单,首先,是神经网络的一种,哪一种呢?前向类型。下图比较直观

前向神经网络

再解释前向神经网络之前,先简单提一嘴神经网络,神经网路是模拟人的神经结构而来的一种理论模型,由若干单个神经元构成,每个神经元接收一个输入(多个输入时可以认为先将其按一定规则累加为一个输入),产生一个输出。若干神经元分层排列相连就构成了神经网络。

前向神经网络指的是这样一种神经网络:

  • 第$i$层的每个神经元与第$i+1$层的每个神经元都建立连接(全连接)
  • 任一连接都必须是从前一层神经元指向后一层的神经元(前向)

前向神经网络包括三部分:输入层、隐藏层和输出层,各连接(有向箭头)都是带有自身属性的——权重。

多层神经网络(也可以理解为是多层感知机)的好处:可模拟(拟合)非线性函数,实际上两层神经网络就可以模拟任意非线性函数(当然,每层可能需要较多的神经元)

反向误差传播算法

目的:更新权重参数值,使得神经网络最好地与问题拟合。

把握关键点之后很简单,由于反向误差传播算法的具体运用是通过借助梯度下降算法,那么,在反向误差传播算法中,实际上传播的误差并不是绝对误差值,而是:梯度

而梯度值的计算,是从后往前,所以称为反向,首先根据最后的损失函数,计算出终点的误差梯度值,然后通过简单的连续偏导数运算可以得到所有权重参数梯度值,按照选好的步长值$\lambda $进行更新:

$$w^l_{ij}(k+1) = w^l_{ij}(k) - \lambda \Delta^l_{ij}$$

注:

  • 式子中,$w^l_{ij}(k+1)$表示表示神经网络中第$l$层第$i$个神经元到下一层第$j$个神经元的权重参数值,迭代次数为$k+1$次
  • $\Delta^l_{ij}$上下标同上含义,表示该次迭代时该位置的权重参数所对应的误差梯度

Share this post
< Pre: 多元线性回归 Pos: Django建立和运行 >
No comments
Similar posts
Add a new comment