机器学习西瓜书笔记:神经网络:BP算法公式推导

1、变量符号含义


机器学习西瓜书笔记:神经网络:BP算法公式推导_第1张图片
1、训练集 D = { ( x ⃗ 1 , y ⃗ 1 ) , ( x ⃗ 2 , y ⃗ 2 ) , . . . , ( x ⃗ m , y ⃗ m ) } D = \{(\vec{x}_1, \vec{y}_1), (\vec{x}_2, \vec{y}_2),..., (\vec{x}_m, \vec{y}_m)\} D={(x 1,y 1),(x 2,y 2),...,(x m,y m)},共m个样例

2、 x ⃗ i ∈ R d , y ⃗ i ∈ R d \vec{x}_i \in \mathbb{R}^d, \vec{y}_i \in \mathbb{R}^d x iRd,y iRd:输入样本由 d d d个属性描述,输出 l l l维( l l l个属性描述)实值向量 y ⃗ i \vec{y}_i y i

3、对应图中的神经网络

  • d个输入神经元:输入特征向量由d个属性描述
  • l个输出神经元:输出特征向量由y个属性描述
  • q个隐层神经元:拟合数据集线性不可分时的模型

4、连接权都如图所示

5、激活函数:sigmoid
机器学习西瓜书笔记:神经网络:BP算法公式推导_第2张图片

6、阈值:每个神经元都有自己的阈值

  • 输出层第 j j j个神经元 y i y_i yi的阈值: θ i \theta_i θi
  • 隐层第 h h h个神经元 b h b_h bh的阈值: γ h \gamma_h γh

7、第x个神经元的输入:FNN都是全连接,因此要求和

  • 输出层第j个神经元的输入: β j \beta_j βj
  • 隐层第h个神经元的输入: α h \alpha_h αh

2、损失函数:均方误差推导


1、训练样例 ( x ⃗ k , y ⃗ k ) (\vec{x}_k, \vec{y}_k) (x k,y k)

2、其经过神经网络的 l l l个输出记为 y ⃗ ^ k = ( y 1 ^ k , y 2 ^ k , . . . , y l ^ k ) \hat{\vec{y}}_k = (\hat{y_1}^k,\hat{y_2}^k, ...,\hat{y_l}^k ) y ^k=(y1^k,y2^k,...,yl^k),其中每个输出:
在这里插入图片描述
3、则对于这一个训练样例 ( x ⃗ k , y ⃗ k ) (\vec{x}_k, \vec{y}_k) (x k,y k),网络的均方误差为:

在这里插入图片描述


3、算法:求参数w和θ,BP算法,基于随机梯度下降


3.1 随机梯度下降的理解


参考
机器学习西瓜书笔记:神经网络:BP算法公式推导_第3张图片

梯度是有方向的:曲面上方向导数的最大值的方向就代表了梯度的方向

因此每次规定的步长 η \eta η固定,我们的参数就要朝着该参数对应函数梯度的方向(变化最快,如山最陡峭的方向)变化,才能让损失函数值最快地往极小值收敛。

理解:假设你初始在山顶,步长5m,朝着梯度最大(最陡峭的)方向,走5m(也就是当前点的梯度值*步长),能垂直距离下降4m,非最陡峭方向一次则垂直距离下降更少。


批量梯度下降:

  1. 对于权值 θ ⃗ \vec{\theta} θ 中的每个分量 θ j \theta_j θj(个数对应样本属性个数),每次 所有m个样本的第j个属性值都要参与更新 Δ 值 \Delta值 Δ
  2. 更新完所有分量,算作一次批量梯度下降结束。一般我们会重复梯度下降多次

机器学习西瓜书笔记:神经网络:BP算法公式推导_第4张图片
如图代码就是使用批量梯度下降,重复了iters次数,每一次所有样本参与对权值 θ ⃗ \vec{\theta} θ 中的每个分量 θ j \theta_j θj进行更新。那个np.sum
机器学习西瓜书笔记:神经网络:BP算法公式推导_第5张图片


随机梯度下降:

用样本中的一个随机选取的样本 x ⃗ i \vec{x}_i x i来近似我所有的样本,来调整θ

  1. 对于权值 θ ⃗ \vec{\theta} θ 中的每个分量 θ j \theta_j θj(个数对应样本属性个数),每次 只有样本 x ⃗ i \vec{x}_i x i 的第j个属性值 参与更新 Δ 值 \Delta值 Δ
  2. 更新完所有属性分量,算作一次随机梯度下降结束。一般我们会重复梯度下降多次

机器学习西瓜书笔记:神经网络:BP算法公式推导_第6张图片


3.2 公式推导


求偏导什么时候结果要求和:看连线
机器学习西瓜书笔记:神经网络:BP算法公式推导_第7张图片

  • 单独一条隐含层到输出层的连接权w只影响一个y,因此对其求偏导,无需求和。

  • 但是输入层到隐含层的连接权v,即使是一条,也会影响所有的y。

  • 看图中的连线即可知道。则其实从隐含层的神经元b开始,之后所有的参数,一个都会影响所有的y。故链式法则求偏导时要加上求和符号。

机器学习西瓜书笔记:神经网络:BP算法公式推导_第8张图片


3.3 BP算法


机器学习西瓜书笔记:神经网络:BP算法公式推导_第9张图片

你可能感兴趣的:(机器学习,机器学习,神经网络)