为啥神经网络里的BP算法花了那么久才被发明?

Roseblatt在五十年代就提出了感知机, 又过了将近30年, 多层神经网络的BP算法才得以普及。

而事实上这不过是微积分中链式法则的简单应用而已, 为什么要花这么久呢?

bengio在quora上这样回答道:

很多看似显而易见的想法只有在事后才变得显而易见。

在控制论中, 很早就开始应用链式反则来解决多层非线性系统。

但在80年代早期, 神经网络的输出是离散的, 这样就无法用基于梯度的方法来优化了。

这时Rumelhart和Hinton想到, 只要把输出做成平滑的(sigmoid), 就可以用链式法则来训练多层神经网络了。

所以这不仅仅是链式法则的问题, 而是要跳出离散输出的框框, 这种理念上变革并不容易。

本文作者:佚名

来源:51CTO

时间: 2024-09-20 14:01:38

为啥神经网络里的BP算法花了那么久才被发明?的相关文章

零基础入门深度学习(3) - 神经网络和反向传播算法

   神经元   神经元和感知器本质上是一样的,只不过我们说感知器的时候,它的激活函数是阶跃函数:而当我们说神经元时,激活函数往往选择为sigmoid函数或tanh函数.如下图所示:       sigmoid函数的定义如下:     将其带入前面的式子,得到     sigmoid函数是一个非线性函数,值域是(0,1).函数图像如下图所示     sigmoid函数的导数是:     可以看到,sigmoid函数的导数非常有趣,它可以用sigmoid函数自身来表示.这样,一旦计算出sigmoi

零基础入门深度学习(二):神经网络和反向传播算法

投稿:Intelligent Software Development 团队介绍:团队成员来自一线互联网公司,工作在架构设计与优化.工程方法研究与实践的最前线,曾参与搜索.互联网广告.共有云/私有云等大型产品的设计.开发和技术优化工作.目前主要专注在机器学习.微服务架构设计.虚拟化/容器化.持续交付/DevOps等领域,希望通过先进技术和工程方法最大化提升软件和服务的竞争力.   在上一篇文章<零基础入门深度学习:感应器.线性单元和梯度下降>中,我们已经掌握了机器学习的基本套路,对模型.目标函

新手请问,Matlab里有关于卷积神经网络的BP算法可直接调用的函数或文件吗?麻烦大神求告知

问题描述 新手请问,Matlab里有关于卷积神经网络的BP算法可直接调用的函数或文件吗?麻烦大神求告知 对Matlab不熟,在学习卷积神经网络BP算法,想请问Matlab里有没有可调用的文件或函数直接拿来用的 解决方案 内置有这个函数的,具体实现的话我不是很了解.

一文详解神经网络 BP 算法原理及 Python 实现

  什么是梯度下降和链式求导法则 假设我们有一个函数 J(w),如下图所示. 梯度下降示意图 现在,我们要求当 w 等于什么的时候,J(w) 能够取到最小值.从图中我们知道最小值在初始位置的左边,也就意味着如果想要使 J(w) 最小,w的值需要减小.而初始位置的切线的斜率a > 0(也即该位置对应的导数大于0),w = w – a 就能够让 w 的值减小,循环求导更新w直到 J(w) 取得最小值.如果函数J(w)包含多个变量,那么就要分别对不同变量求偏导来更新不同变量的值. 所谓的链式求导法则,

(转)神经网络和深度学习简史(第一部分):从感知机到BP算法

    深度|神经网络和深度学习简史(第一部分):从感知机到BP算法 2016-01-23 机器之心 来自Andrey Kurenkov 作者:Andrey Kurenkov 机器之心编译出品 参与:chenxiaoqing.范娜Fiona.杨超.微胖.汪汪.赵巍   导读:这是<神经网络和深度学习简史>第一部分.这一部分,我们会介绍1958年感知机神经网络的诞生,70年代人工智能寒冬以及1986年BP算法让神经网络再度流行起来.   深度学习掀起海啸     如今,深度学习浪潮拍打计算机语言

人工神经网络(Artificial Neural Netwroks)笔记-基本BP算法

单层的感知器并不能解决XOR问题 人工神经网络(Artificial Neural Netwroks)也因为这个问题而陷入了低潮,但是后来提出的多层感 知器却让人工神经网络(Artificial Neural Netwroks)再一次high起来 BP网络是最为广泛的一种.具体的原理介绍可以通过网络得到这里只描述算法流程 基本的BP算法 1 for k=1 toL do 初始化W^(k) 2初始化精度控制参数ε 3 E=ε+1 4 while E>ε do 4.1 E=0 4.2 对S中的每个样

神经网络seo研究之BP算法

BP网络结构 &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;  对于多层前馈神经网络,目前广泛采用的是Romclhert和McClclland与1985年提出的误差逆向传播算法,即BP算法.这种网络结构如图所示: 它实际上是一个多层感知器,由输入节点.输出节点以及隐层节点(一层或多层)组成.同层节点之间没有连接,前一层和后一层之间相互充分连接. 激活函数 对于输入信号,先前向传播到隐节点,经激活函数作用后,最后由

中国人工智能学会通讯——一张图看懂BP算法 1.3 神经网络的 BP 算法

1.3 神经网络的 BP 算法 它描述了网络输出和目标输出之间的距离,刻画了网络性能的好坏.显然,J越小,网络性能越好.寻求J的极小点是BP算法的目标. 这一关系式表明只要能计算出敏感性,即可据此计算出梯度. 删除中间过程,有 通过计算网络最后一层神经元的敏感性,然后在网络中反向逐层计算其他层神经元敏感性,这就是所谓BP. 图4非常容易记忆和理解,这就是我们所谓的一张图看懂BP算法.

20分钟搞懂神经网络BP算法

在学习深度学习过程中,无意间发现一篇介绍BP算法的文章,感觉非常直观,容易理解.这篇文章的最大亮点是:不像其他介绍BP算法的文章,用一堆数据符号和公式来推导.文中通过使用一条具体的样本数据,为我们展示了模型训练中的参数迭代计算过程,为我们理解BP算法提供了很直观的理解视角:其次,作者也给出了使用python来实现BP的算法.只要你了解过传统神经网络结构以及大学微积分的知识,都可以毫不费力的在20分钟内完全理解BP算法.这里整理出来,供大家学习参考.要看原文的同学,直接跳到文末点击原文链接. 在开