作家
登录

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

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

向前传输(FreedForward)的代码

假设我们有一个函数 J(w),如下图所示。

函数 J(w)

如今,我们请求当 w 等于什么的时刻,J(w) 可以或许取到最小值。大年夜图中我们知道最小值袈溱初始地位的左边,也就意味着如不雅想要使 J(w) 最小,w的值须要减小。而初始地位的切线的斜率a > 0(也即该地位对应的导数大年夜于0),w = w – a 就可以或许让 w 的值减小,轮回求导更新w直到 J(w) 取得最小值。如不雅函数J(w)包含多个变量,那么就要分别对不合变量求偏导来更新不合变量的值。

所谓的链式求导轨则,就是求复合函数的导数:

梯度降低示意图

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

链式求导轨则

放个例题,会加倍明白一点:

应用范畴:

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

链式求导的例子

神经收集的构造

神经收集由三部分构成,分别是最左边的输入层,隐蔽层(实际应用中远远不止一层)和最右边的输出层。层与层之间用线连接在一路,每条连接线都有一个对应的权重值 w,除了输入层,一般来说每个神经元还有对应的偏置 b。

神经收集的构造图

除了输入层的神经元,每个神经元都邑有加权乞降获得的输入值 z 和将 z 经由过程 Sigmoid 函数(也等于激活函数)非线性转化后的输出值 a,他们之间的计算公式如下

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

神经元输出值 a 的计算公式

个中,公式琅绫擎的变量l和j表示的是第 l 层的第 j 个神经元,ij 则表示大年夜第 i 个神经元到第 j 个神经元之间的连线,w 表示的是权重,b 表示的是偏置,后面这些符号的含义大年夜体上与这琅绫氰述的类似,所以不会再解释。下面的 Gif 动图可以加倍清跋扈每个神经元输入输出值的计算方法(留意,这里的动图并没有加上偏置,但应用中都邑加上)

动图显示计算神经元输出值

sigmoid 函数

可以看到 Sigmoid 函数的值域为 (0,1) ,若对于多分类义务,输出层的每个神经元可以表示是该分类的概率。当然还存在其他的激活函数,他们的用处和优缺点也都各别。

BP 算法履行的流程(前向传递和逆向更新)

但其实想要练习好一个神经收集还面对着很多的坑(譬如下面四条):

  • 若何选择超参数的值,譬如说神经收集的层数和每层的神经元数量以及进修率;
  • 既然对初始化权重敏感,那该若何避免和修改;
  • Sigmoid 激活函数在深度神经收集中会见临梯度消掉问题该若何解决;
  • 避免 Overfitting 的 L1 和 L2正则化是什么。

参考

在手工设定了神经收集的层数,每层的神经元的个数,进修率 η(下面会提到)后,BP 算法会先随机初始化每条连接线权重和偏置,然后对于练习集中的每个输入 x 和输出 y,BP 算法都邑先履行前向传输获得猜测值,然后根据真实值与猜测值之间的误差履行逆向反馈更新神经收集中每条连接线的权重和每层的偏好。在没有达到停止前提的情况下反复上述过程。

个中,停止前提可所以下面这三条

● 权重的更新低于某个阈值的时刻

● 猜测的缺点率低于某个阈值

● 达到预设必定的迭代次数

譬如说棘手写数字辨认中,一张手写数字1的图片储存了28*28 = 784个像素点,每个像素点储存着灰度值(值域为[0,255]),那么就意味着有784个神经元作为输入层,而输出层有10个神经元代表数字0~9,每个神经元取值为0~1,代表着这张图片是这个数字的概率。

每输入一张图片(也就是实例),神经收集会履行前向传输一层一层的计算到输出层神经元的值,根据哪个输出神经元的值最大年夜来猜测输入图片所代表的手写数字。

然后根据输出神经元的值,计算出猜测值与真实值之间的误差,再逆向反馈更新神经收集中每条连接线的权重和每个神经元的偏好。

比来这段时光体系性的进修了 BP 算法后写下了这篇进修标记,因为才能有限,如有明显缺点,还请斧正。

什么是梯度降低和链式求导轨则

前向传输(Feed-Forward)

大年夜输入层=>隐蔽层=>输出层,一层一层的计算所有神经元输出值的过程。

 1/8    1 2 3 4 5 6 下一页 尾页

  推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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