算法简介
百度百科:
BP算法(即反向传播算法)适合于多层神经元网络的一种学习算法,它建立在梯度下降法的基础上。BP网络的输入输出关系实质上是一种映射关系:一个n输入m输出的BP神经网络所完成的功能是从n维欧氏空间向m维欧氏空间中一有限域的连续映射,这一映射具有高度非线性。它的信息处理能力来源于简单非线性函数的多次复合,因此具有很强的函数复现能力。这是BP算法得以应用的基础。
什么是反向传播?
反向传播是神经网络中最基本的学习算法,他是可以根据输出层的误差来更新每一层的参数。
看了很多博客,说反向传播就是链式求导,这句话很好理解。可是我对这个生僻的词语还是很难产生一个形象的理解。阅读了大量博客后我知道这是一个学习算法,可以用来更新参数。有人把它跟逻辑回归的梯度下降做对比,把逻辑回归看做是一个没有隐层的神经网络。意思是说,“梯度下降”可以看做是“没有隐层的神经网络”的反向传播算法。这么说我不知道是不是准确,但是我对反向传播有了一个大致的理解了:“反向传播就是一个类似梯度下降的算法嘛。”
可是用最普通的梯度下降不可以吗,梯度下降和反向传播有什么区别?那我来回顾一下梯度下降是什么,用白话说,梯度下降就是计算出预测结果与真实结果的误差,然后计算当时参数下误差的梯度是什么,然后沿着梯度,把误差“下降”下来,这就是梯度下降。公式这么写:
误差(损失函数)可以写为:
对误差求导(梯度):