作家
登录

神经网络中 BP 算法的原理与 Python 实现源码解析

作者: 来源: 2017-06-01 08:55:31 阅读 我要评论

  •     self.weights = [w-(eta/len(mini_batch))*nw 
  •                     for w, nw in zip(self.weights, nabla_w)] 
  •     self.biases = [b-(eta/len(mini_batch))*nb 
  •                    for b, nb in zip(self.biases, nabla_b)] 
  • 下面这块代码是源码最核心的部分,也即 BP 算法的实现,包含了前向传输和逆向反馈,前向传输在 Network 里有零丁一个办法(膳绫擎提到的 feedforward 办法),那个办法是用于验证练习好的神经收集的精确度的,鄙人面有提到该办法。

    1. def backprop(self, x, y): 
    2.     """ 
    3.     :param x: 
    4.     :param y: 
    5.     :return: 
    6.     """ 
    7.     nabla_b = [np.zeros(b.shape) for b in self.biases] 
    8.     nabla_w = [np.zeros(w.shape) for w in self.weights] 
    9.     # 前向传输 
    10.     activation = x 
    11.     # 储存每层的神经元的值的矩阵,下面轮回会 append 每层的神经元的值 
    12.     activations = [x]  
    13.     # 储存每个未经由 sigmoid 计算的神经元的值 
    14.     zs = []  
    15.     for b, w in zip(self.biases, self.weights): 
    16.         z = np.dot(w, activation)+b 
    17.         zs.append(z) 
    18.         activation = sigmoid(z) 
    19.         activations.append(activation) 
    20.     # 求 δ 的值 
    21.     delta = self.cost_derivative(activations[-1], y) * \ 
    22.         sigmoid_prime(zs[-1]) 
    23.     nabla_b[-1] = delta 
    24.     # 乘于前一层的输出值 
    25.     nabla_w[-1] = np.dot(delta, activations[-2].transpose()) 
    26.     for

        推荐阅读

        PHP底层的运行机制与原理解析

      PHP说简单,然则要精晓也不是一件简单的事。我们除了会应用之外,还得知道它底层的工作道理。懂得PHP底层实现的目标是什么?动态说话要像用好起首得懂得它,内存治理、框架模型值得我们借鉴>>>详细阅读


      本文标题:神经网络中 BP 算法的原理与 Python 实现源码解析

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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