涉及的公式較多,直接以圖片形式展示,不足之處請指教。

1、推導過程

1.1 前向傳播

1.2 誤差反向調參

2、程式碼實現

可以得到各層之間的權重。(PS:程式碼有許多可以完善的地方,此處僅為一種實現的思路)

# -*- coding: utf-8 -*-
import numpy as np
import random

def sigmoid(x):
   return 1/(1+np.exp(-x))

def dsigmoid(y):   # sigmoid函式的導數
   return np.exp(y)/(1+np.exp(y))/(1+np.exp(y))

d = 0.5 # 期望輸出值
Z_1 = 0.35 # 表示節點1的輸入
Z_2 = 0.9 # 表示節點2的輸入
Y_1 = sigmoid(Z_1) # 表示節點1的輸出
Y_2 = sigmoid(Z_2) # 表示節點2的輸出

def Bp_self(W_13 = 0.1,W_14 = 0.4,W_23 = 0.8,W_24 = 0.6,W_35 = 0.3,W_45 = 0.9):
   Z_3 = Y_1 * W_13 + Y_2 * W_23
   Z_4 = Y_1 * W_14 + Y_2 * W_24
   Y_3 = sigmoid(Z_3)
   Y_4 = sigmoid(Z_4)
   Z_5 = Y_3 * W_35 + Y_4*W_45
   Y_5 = sigmoid(Z_5)
   C = 0.5 * (Y_5-d)*(Y_5-d)
   print ('誤差為:',C)
   '''反向調節權值引數'''
   t = 0
   while (C > 0.00001):
      W_35 = W_35 - (Y_5 - 0.5) * np.exp(Z_5)*Y_3/(1+np.exp(Z_5))/(1+np.exp(Z_5))
      W_45 = W_45 - (Y_5 - 0.5) * np.exp(Z_5)*Y_4/(1+np.exp(Z_5))/(1+np.exp(Z_5))
      W_13 = W_13 - (Y_5 - 0.5) * np.exp(Z_5)*W_35*np.exp(Z_3)*Y_1/(np.exp(Z_5)+1)/(np.exp(Z_5)+1)/(np.exp(Z_3)+1)/(np.exp(Z_3)+1)
      W_14 = W_14 - (Y_5 - 0.5) * np.exp(Z_5)*W_45*np.exp(Z_4)*Y_1/(np.exp(Z_5)+1)/(np.exp(Z_5)+1)/(np.exp(Z_4)+1)/(np.exp(Z_4)+1)
      W_23 = W_23 - (Y_5 - 0.5) * np.exp(Z_5)*W_35*np.exp(Z_3)*Y_2/(np.exp(Z_5)+1)/(np.exp(Z_5)+1)/(np.exp(Z_3)+1)/(np.exp(Z_3)+1)
      W_24 = W_24 - (Y_5 - 0.5) * np.exp(Z_5)*W_45*np.exp(Z_4)*Y_2/(np.exp(Z_5)+1)/(np.exp(Z_5)+1)/(np.exp(Z_4)+1)/(np.exp(Z_4)+1)

      Z_3 = Y_1 * W_13 + Y_2 * W_23
      Z_4 = Y_1 * W_14 + Y_2 * W_24
      Y_3 = sigmoid(Z_3)
      Y_4 = sigmoid(Z_4)
      Z_5 = Y_3 * W_35 + Y_4 * W_45
      Y_5 = sigmoid(Z_5)
      C = 0.5 * (Y_5 - d) * (Y_5 - d)
      t = t +1
      print ('實際輸出:',Y_5,' 誤差為:', C,'迴圈執行第:',t,'次')
print (Bp_self(random.uniform(0,1),random.uniform(0,1),random.uniform(0,1),random.uniform(0,1),random.uniform(0,1),random.uniform(0,1)))

 

 

更多相關推薦

python包實現bp神經網路_基於pyt...

BP神經網路是最簡單的神經網路模型了,三層能夠模擬非線性函式效果。難點:如何確定初始化引數...

繼續閱讀

BP神經網路——Python 實現

關於BP演算法的原理和推導過程網上有很多部落格已經寫的十分清楚了,這裡不再贅述,下面使用python...

繼續閱讀

bp神經網路預測案例python_詳細B...

1.具體應用例項。根據表2,預測序號15的跳高成績。表2 國內男子跳高運動員各項素質指標序號跳...

繼續閱讀

BP神經網路從推導到實現

目錄一.ANN的基本要素 二.BP神經網路原理及流程1.原理2.流程1、網路的初始化2、隱含層的輸出3...

繼續閱讀

BP神經網路的實現

一BP神經網路的基本結構在神經網路中,輸入層由資料集的某個向量x和一個偏置b構成,該向量需要...

繼續閱讀

bp神經網路matlab程式碼_4層bp神經...

模型結構:4層bp模型如下程式碼:執行結果如下:推導一共4層:x,h,m,y模型公式為:(@表示矩陣乘...

繼續閱讀

BP神經網路python程式碼實現

首先直接上程式碼,後面有時間再把程式碼裡面的詳解寫出來,接下來利用MINIST的數字手寫圖片資料進...

繼續閱讀

python包實現bp神經網路_BP神經...

人工神經網路是一種經典的機器學習模型,隨著深度學習的發展神經網路模型日益完善.聯想大家熟...

繼續閱讀

bp神經網路python原始碼_神經網...

importnumpyasnp#定義tanh函式deftanh(x):returnnp.tanh(x)#tanh函式的導數deftan_deriv(x):re...

繼續閱讀

bp神經網路演算法原理python_神經...

本文例項為大家分享了Python實現神經網路演算法及應用的具體程式碼,供大家參考,具體內容如下首先...

繼續閱讀