笔记 神经网络、BP算法推导

1. 神经网络的数学模型

一个多层神经网络通常由L层神经元组成,分别为输入层、隐藏层、输出层。
输入层:神经网络的第一层,表示一列或多列矩阵的输入
输出层:神经网络的最后一层,表示网络最终的输出结果,通常是一列矩阵
隐藏层:神经网络的中间层,有L-2层,表示每一层神经元通过前向传播算法计算的结果矩阵
神经网络的数学模型从理论上可以学习模拟出任意的映射函数,通过不断的更新权值和偏重的值,最终搭建出一个预期系统的神经网络,从而可以对数据进行分类或者回归。
前向传播算法
前向传播算法是指依次向前计算相邻隐藏层之间的连接输出,直到模型的最终输出值,其特点是作用于相邻层的两个神经元之间的连接计算,前一层的输出是后一层神经元的输入。计算公式为:
在这里插入图片描述
f为激活函数
激活函数的作用是保证整个神经元模型为非线性,个人理解是一方面生活中大多数问题都是非线性的,用线性函数去处理问题达不到理想的效果。另一方面,若没有这个非线性函数,那么层与层之间仅通过w和b这个线性函数对数据进行估计,由于线性系统具有叠加性,无论模型有多少层,通过公式代入数值化简计算,最后一定会得到一个y=W*h+B的函数形式,也就等效于一层神经网络,单层神经网络是无法处理绝大数问题的。
神经网络中常用的几种非线性函数为:sigmod函数及其倒数:
在这里插入图片描述
双曲正切函数及其倒数:
在这里插入图片描述
3. 神经网络的优化过程
神经网络的优化步骤可以分为下面两个阶段:
(1)通过前向传播算法,通过矩阵乘法计算出输出值,并将真实值和输出值对比得到两者之间的差距
(2)通过反向传播算法,计算损失函数对模型中每个参数的梯度,通过梯度下降算法来更新每一个参数。至此我们可以看到反向传播算法的艺术为:反向计算出损失函数对每一层隐藏层的突触的梯度,并更新优化其上一层隐藏层的突触。使得神经网络每一次学习到的模型都变得更加聪明,最终得到所要求学习的最终模型。
通过梯度下降算法更新权值与偏重的公式为:
在这里插入图片描述

衰减学习率一般设置为:
在这里插入图片描述
其目的是在配合梯度下降优化的过程中,如果学习率设置过大,则容易导致模型过拟合;如果设置过小,会使得模型优化的速度变得很缓慢。加入衰减因子和学习次数来计算模型每次学习的学习率,这样就会使得刚开始时学习率较大,可以快速的逼近目标,随着学习次数的增加,学习率依次降低,避免过拟合的情况发生。
BP算法核心是求解代价函数C相对于权重w和偏置b的偏导,即改变参数w和b时代价函数C的变化程度,揭示改变w和b如何影响网络的整体行为。
梯度可看作该神经元训练误差的表征。即梯度大表明还没训练好,稍微扰动下神经元激励就能造成代价C的较大变化;梯度小表明训练较好,扰动神经元的激励值对代价C的改变影响微弱。
BP算法四大公式(一)
输出层误差公式(An equation for the error in the output layer)
在这里插入图片描述
输出层误差等于代价函数C相对于输出层第j个神经元激励后的变化程度乘以激励相对于加权输入的变化程度
BP算法公式(二)
由后层误差推导本层误差的公式(An equation for the error in terms of the error in the next layer)
在这里插入图片描述
知道第l+1层的误差后,通过相邻两层之间的权值矩阵w,将误差回传就能得到第l层的误差。所以该公式表达的意思为第l层的误差等于第l+1层的误差乘以它们之间的权值矩阵w再乘以第l层激励相对于加权输入的变化程度。
有了公式1和公式2,就能推算出网络每一层的误差。
BP算法公式(三)
代价函数C相对于网络中任意偏置(b)梯度(即变化率)的公式(An equation for the rate of change of the cost with respect to any bias in the network)
在这里插入图片描述
BP算法公式(四)
在这里插入图片描述
由此,得到BP算法步骤

  1. 输入训练样本集
  2. 设置激励函数,利用前向传播算法得到各层加权输入和输出
  3. 利用公式(一)计算输出层误差
  4. 利用公式(二)由后层向前计算回传误差
  5. 利用公式(三)(四),求取w和b的梯度,并利用梯度下降算法更新w和b

BP算法只需要一次网络前传和一次误差回传,两次复杂度相同,极大的提高了梯度计算效率。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值