python實現(xiàn)BackPropagation算法
實現(xiàn)神經(jīng)網(wǎng)絡的權重和偏置更新,很重要的一部就是使用BackPropagation(反向傳播)算法。具體來說,反向傳播算法就是用誤差的反向傳播來計算w(權重)和b(偏置)相對于目標函數(shù)的導數(shù),這樣就可以在原來的w,b的基礎上減去偏導數(shù)來更新。其中我上次寫的python實現(xiàn)梯度下降中有一個函數(shù)backprop(x,y)就是用來實現(xiàn)反向傳播的算法。(注:代碼并非自己總結,github上有這個代碼的實現(xiàn)https://github.com/LCAIZJ/neural-networks-and-deep-learning)
def backprop(self,x,y): nabla_b = [np.zeros(b.shape) for b in self.biases] nabla_w = [np.zeros(w.shape) for w in self.weights] # 通過輸入x,前向計算輸出層的值 activation = x activations = [x]# 存儲的是所以的輸出層 zs = [] for b,w in zip(self.biases,self.weights): z = np.dot(w,activation)+b zs.append(z) activation = sigmoid(z) activations.append(activation) # 計算輸出層的error delta = self.cost_derivative(activations[-1],y)*sigmoid_prime(zs[:-1]) nabla_b[-1] = delta nabla_w[-1] = np.dot(delta,activations[-2].transpose()) #反向更新error for l in xrange(2,self.num_layers): z = zs[-l] sp = sigmoid_prime(z) delta = np.dot(self.weight[-l+1].transpose(),delta)*sp nabla_b[-l] = delta nabla_w[-l] = np.dot(delta,activations[-l-1].transpose()) return (nabla_b,nabla_w)
其中,傳入的x和y是一個單獨的實例。
def cost_derivative(self,output_activation,y): return (output_activation-y) def sigmoid(z): return 1.0/(1.0+np.exp(z)) def sigmoid_prime(z): return sigmoid(z)*(1-sigmoid(z))
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- MySQL數(shù)據(jù)庫事務隔離級別介紹(Transaction Isolation Level)
- spring事物傳播propagation類別含義詳解
- spring事務Propagation及其實現(xiàn)原理詳解
- JavaScript中使用stopPropagation函數(shù)停止事件傳播例子
- js中的preventDefault與stopPropagation詳解
- 關于event.cancelBubble和event.stopPropagation()的區(qū)別介紹
- Jquery阻止事件冒泡 event.stopPropagation
- 阻止JavaScript事件冒泡傳遞(cancelBubble 、stopPropagation)
- 淺談spring中isolation和propagation的用法
相關文章
Python實現(xiàn)簡單的HttpServer服務器示例
本篇文章主要介紹了Python實現(xiàn)簡單的HttpServer服務器示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09一文搞懂Python的hasattr()、getattr()、setattr()?函數(shù)用法
python中的getattr()、setattr()、hasattr()函數(shù)均是對類屬性或方法的操作,其中getattr()用于獲取類或實例中指定方法獲取屬性的值,setattr()用于設置類或實例中屬性或方法,hasattr()用于判斷類或實例中是否存在指定的屬性或方法,本文通過例子給大家詳解,一起看看吧2022-04-04Python利用pandas處理Excel數(shù)據(jù)的應用詳解
這篇文章主要介紹了Python利用pandas處理Excel數(shù)據(jù)的應用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-06-06tensorflow實現(xiàn)將ckpt轉pb文件的方法
這篇文章主要介紹了tensorflow實現(xiàn)將ckpt轉pb文件的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04python實現(xiàn)合并多個list及合并多個django QuerySet的方法示例
這篇文章主要介紹了python實現(xiàn)合并多個list及合并多個django QuerySet的方法,結合實例形式分析了Python使用chain合并多個list以及合并Django中多個QuerySet的相關操作技巧,需要的朋友可以參考下2019-06-06