作家
登录

神经网络理论基础及Python实现

作者: 来源: 2017-07-18 11:59:52 阅读 我要评论

权重更新:个中l为进修率

偏向更新:

3、终止前提

侧重的更新低于某个阈值;

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

达到预设必定的轮回次数;

4、非线性转化函数

膳绫擎提到的非线性转化函数f,一般情况下可以用两种函数:

(1)tanh(x)函数:

  • tanh(x)=sinh(x)/cosh(x)
  • sinh(x)=(exp(x)-exp(-x))/2
  • cosh(x)=(exp(x)+exp(-x))/2

(2)逻辑函数,本文膳绫擎用的就是逻辑函数

五、BP神经收集的python实现

须要先导入numpy模块

  1. import numpy as np 

定义非线性转化函数,因为还须要用到给函数的导数情势,是以一路定义

  1. def tanh(x): 
  2.  
  3.     return np.tanh(x) 
  4.  
  5. def tanh_deriv(x): 
  6.  
  7.     return 1.0 - np.tanh(x)*np.tanh(x) 
  8.  
  9. def logistic(x): 
  10.  
  11.     return 1/(1 + np.exp(-x)) 
  12.  
  13. def logistic_derivative(x): 
  14.  
  15.     return logistic(x)*(1-logistic(x))  

设计BP神经收集的情势(几层,每层若干单位个数),用到了面向对象,主如果选择哪种非线性函数,以及初始化权重。layers是一个list,琅绫擎包含每一层的单位个数。

  1. class NeuralNetwork: 
  2.  
  3.     def __init__(self, layers, activation='tanh'): 
  4.  
  5.         ""
  6.  
  7.         :param layers: A list containing the number of units in each layer. 
  8.  
  9.         Should be at least two values 
  10.  
  11.         :param activation: The activation function to be used. Can be 
  12.  
  13.         "logistic" or "tanh" 
  14.  
  15.         ""
  16.  
  17.         if activation == 'logistic'
  18.  
  19.             self.activation = logistic 
  20.  
  21.             self.activation_deriv = logistic_derivative 
  22.  
  23.         elif activation == 'tanh'
  24.  

      推荐阅读

      开发者自述:我是这样理解强化学习的

    【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! 定义强化进修是机械进修的一个重要分支,是多学科多范畴交叉的一个产品,它的本质是解决 decision making>>>详细阅读


    本文标题:神经网络理论基础及Python实现

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

关键词: 探索发现

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

网友点评
自媒体专栏

评论

热度

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