作家
登录

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

作者: 来源: 2017-07-07 08:50:32 阅读 我要评论

【编辑推荐】

  1. MIT 提出Network Dissection框架,全主动窥测神经收集练习的黑箱
  2. DeepMind解密黑箱第一步:本来神经收集的认知道理和仁攀类是一样的!
  3. R vs Python:R是如今最好的数据科学说话吗?
  4. 神经收集基本:七种收集单位,四种层连接方法
  5. 卷积神经收集不克不及处理“图”构造数据?这篇文┞仿告诉你谜底
【义务编辑:张子龙 TEL:(010)68476606】

逆向反馈(Back Propagation)

因为输出层的值与真实的值会存在误差,我们可以用均方误差来衡量猜测值和真实值之间的误差。

一文详解神经收集 BP 算法道理及 Python 实现

均方误差

逆向反馈的目标就是让E函数的值尽可能的小,而每个神经元的输出值是由该点的连接线对应的权重值和该层对应的偏好所决定的,是以,要让误差函数达到最小,我们就要调剂w和b值, 使得误差函数的值最小。

一文详解神经收集 BP 算法道理及 Python 实现

对目标函数 E 求 w 和 b 的偏导可以获得 w 和 b 的更新量,下面拿求 w 偏导来做推导。

一文详解神经收集 BP 算法道理及 Python 实现

个中 η 为进修率,取值平日为 0.1 ~ 0.3,可以懂得魏每次梯度所迈的办法。留意到 w_hj 的值先影响到第 j 个输出层神经元的输入值a,再影响到输出值y,根据链式求导轨则有:

一文详解神经收集 BP 算法道理及 Python 实现

使用链式轨则展开对权重求偏导

权重和偏置的更新公式

根据神经元输出值 a 的定义有:

一文详解神经收集 BP 算法道理及 Python 实现

对函数 z 求 w 的偏导

Sigmoid 求导数的式子如下,大年夜式子中可以发明其在计算机中实现也是异常的便利:

一文详解神经收集 BP 算法道理及 Python 实现

Sigmoid 函数求导

所以

一文详解神经收集 BP 算法道理及 Python 实现

则权重 w 的更新量为:

一文详解神经收集 BP 算法道理及 Python 实现

类似可得 b 的更新量为:

一文详解神经收集 BP 算法道理及 Python 实现

但这两个公式只可以或许更新输出层与前一层连接线的权重和输出层的偏置,原因是因为 δ 值依附了真实值y这个变量,然则我们肮脏道输出层的┞锋实值而不知道每层隐蔽层的┞锋实值,导致难以估计每层隐蔽层的 δ 值,所以我们欲望可以或许应用 l+1 层的 δ 值来计算 l 层的 δ 值,而恰好经由过程一些列数学转换后可以做到,这也就是逆向反馈名字的由来,公式如下:

一文详解神经收集 BP 算法道理及 Python 实现

大年夜式子中我们可以看到,我们只须要知道下一层的权重和神经元输出层的值就可以计算出上一层的 δ 值,我们只要经由过程赓续的应用膳绫擎这个式子就可以更新隐蔽层的全部权重和偏置了。

在推导之前请先不雅察下面这张图:

l 和 l+1 层的神经元


  推荐阅读

  大数据环境下该如何优雅地设计数据分层

发个牢骚,搞大年夜数据的也得扶植数据仓库吧。并且不管是传统行业照样如今的互联网公司,都须要对数据仓库有必定的看重,而不是谈一句本身是搞大年夜数据的就很厉害了。数据仓库更多代表>>>详细阅读


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

地址:http://www.17bianji.com/lsqh/36072.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)