作家
登录

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

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

  •             self.activation = tanh 
  •  
  •             self.activation_deriv = tanh_deriv 
  •  
  •   
  •  
  •         self.weights = [] 
  •  
  •         for i in range(1, len(layers) - 1): 
  •  
  •             self.weights.append((2*np.random.random((layers[i - 1] + 1, layers[i] + 1))-1)*0.25) 
  •  
  •             self.weights.append((2*np.random.random((layers[i] + 1, layers[i + 1]))-1)*0.25)  
  • 实现算法

    1. def fit(self, X, y, learning_rate=0.2, epochs=10000): 
    2.  
    3.         X = np.atleast_2d(X) 
    4.  
    5.         temp = np.ones([X.shape[0], X.shape[1]+1]) 
    6.  
    7.         temp[:, 0:-1] = X 
    8.  
    9.         X = temp 
    10.  
    11.         y = np.array(y) 
    12.  
    13.   
    14.  
    15.         for k in range(epochs): 
    16.  
    17.             i = np.random.randint(X.shape[0]) 
    18.  
    19.             a = [X[i]] 
    20.  
    21.   
    22.  
    23.             for l in range(len(self.weights)): 
    24.  
    25.                 a.append(self.activation(np.dot(a[l], self.weights[l]))) 
    26.  
    27.             error = y[i] - a[-1] 
    28.  
    29.             deltas = [error * self.activation_deriv(a[-1])] 
    30.  
    31.   
    32.  
    33.             for l in range(len(a) - 2, 0, -1): 
    34.  
    35.                 deltas.append(deltas[-1].dot(self.weights[l].T)*self.activation_deriv(a[l])) 
    36.  
    37.             deltas.reverse() 
    38.  

    39.   推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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