作家
登录

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

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

向前传输(FreedForward)的代码。

  1. def feedforward(self, a): 
  2.     """ 
  3.     前向传输计算每个神经元的值 
  4.     :param a: 输入值 
  5.     :return: 计算后每个神经元的值 
  6.     """ 
  7.     for b, w in zip(self.biases, self.weights): 
  8.         # 加权乞降以及加上 biase 
  9.         a = sigmoid(np.dot(w, a)+b) 
  10.     return a 

源率攀里应用的是随机梯度降低(Stochastic Gradient Descent,简称 SGD),道理与梯度降低类似,不合的是随机梯度降低算法每次迭代只取数据集一一部分的样本来更新 w 和 b 的值,速度比梯度降低快,然则,它不必定会收敛到局部极小值,可能会在局部极小值邻近彷徨。

  1. def SGD(self, training_data, epochs, mini_batch_size, eta, 
  2.         test_data=http://ai.51cto.com/art/201705/None): 
  3.     """ 
  4.     随机梯度降低 
  5.     :param training_data: 输入的练习集 
  6.     :param epochs: 迭代次数 
  7.     :param mini_batch_size: 小样本数量 
  8.     :param eta: 进修率  
  9.     :param test_data: 测试数据集 
  10.     """ 
  11.     if test_data: n_test = len(test_data) 
  12.     n = len(training_data) 
  13.     for j in xrange(epochs): 
  14.         # 搅乱练习集,让其排次序序产生变更 
  15.         random.shuffle(training_data) 
  16.         # 按照小样本数量划分练习集 
  17.         mini_batches = [ 
  18.             training_data[k:k+mini_batch_size] 
  19.             for k in xrange(0, n, mini_batch_size)] 
  20.         for mini_batch 

      推荐阅读

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

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


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

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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