神经网络-BP算法
对于初学者来说,知道一个算法的意义,往往会把他的注意力吸引到算法本身。BP算法具有重大的历史和现实意义。
1969年,作为人工神经网络的创始人,马林·M·insky和帕佩特共同出版了《感知器》一书,论证了简单的线性感知器功能有限,无法解决异或等基本问题,同时对多层网络也持悲观态度。这些争论对神经网络的研究造成了沉重的打击,许多科学家相继离开了这一领域,神经网络的研究走向了10年的低潮。
因此,BP算法的历史意义:明确否定了明斯基等人的错误观点,对神经网络的第二次高潮具有决定性意义。
这一点意味着BP算法在神经网络领域的地位和意义。
BP算法是迄今为止最成功的神经网络学习算法。神经网络在实际任务中使用时,大多采用BP算法进行训练[2],包括最近深度学习这个热门概念下的卷积神经网络(CNN)。
BP神经网络就是这样一种神经网络模型,它由一个输入层、一个输出层和一个或多个隐含层组成。其激活函数采用sigmoid函数,采用BP算法训练多层前馈神经网络。
BP算法的全称叫做误差反向传播算法。算法的基本思想是:在2.1描述的前馈网络中,输入信号通过输入层输入,通过隐层计算输出,输出值与标记值进行比较。如果有任何错误,错误会从输出层以相反的方向传播到输入层。在这个过程中,采用梯度下降算法来调整神经元的权重。
BP算法中的核心数学工具是微积分的链导数法则。
BP算法的第一个缺点是局部极小问题。
BP算法本质上是梯度下降,它要优化的目标函数非常复杂,导致BP算法效率低下。
[1],BP算法的哲学思考,程素梅、郝中华。
[2],《机器学习》,作者周志华
[3],深度学习论文笔记(CNN卷积神经网络的推导与实现
第一次发布
2016-06-04大幅修改,完善了推导过程,修改了文章名称。
2016-07-23修改了一个公式推导错误和一个表达式错误。