作家
登录

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

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

起首我们看到 l 层的第 i 个神经元与 l+1 层的所有神经元都有连接,那么我们可以将 δ 展开成如下的式子:

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

也等于说我们可以将 E 看做是 l+1 层所有神经元输入值的 z 函数,而膳绫擎式子的 n 表示的是 l+1 层神经元的数量,再进行化简后就可以获得膳绫擎所说的式子。

在这里的推导过程只说清楚明了关键的部分。别的也参考了周志华所写的机械进修中的神经收集部分的内容和 neural networks and deep learning的内容。

Python 源码解析

源率攀来自于 Michael Nielsen大年夜神的深度进修在线教程。

应用 Python 实现的神经收集的代码行数并不多,仅包含一个 Network 类,起首来看看该类的构造办法。

  1. def __init__(self, sizes): 
  2.         """ 
  3.         :param sizes: list类型,储存每层神经收集的神经元数量 
  4.                       譬如说:sizes = [2, 3, 2] 表示输入层有两个神经元、 
  5.                       隐蔽层有3个神经元以及输出层有2个神经元 
  6.         """ 
  7.         # 有几层神经收集  
  8.         self.num_layers = len(sizes) 
  9.         self.sizes = sizes 
  10.         # 除去输入层,随机产生每层中 y 个神经元的 biase 值(0 - 1) 
  11.         self.biases = [np.random.randn(y, 1for y in sizes[1:]] 
  12.         # 随机产生每条连接线的 weight 值(0 - 1) 
  13.         self.weights = [np.random.randn(y, x) 
  14.                         for x, y in zip(sizes[:-1], sizes[1:])] 
  1. def feedforward(self, a): 
  2.         """ 
  3.         前向传输计算每个神经元的值 
  4.         :param a: 输入值 
  5.         :return: 计算后每个神经元的值 
  6.         """ 
  7.         for

      推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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