bp神經網路學習

2021-07-30 09:35:01 字數 901 閱讀 3991

import numpy as np

#使用邏輯回歸進行分類

defnonlin

(x,deriv=false):

if(deriv==true):

return x*(1-x)

return

1/(1+np.exp(-x))

#待分類的資料

x = np.array([ [0,0,1],

[0,1,1],

[1,0,1],

[1,1,1] ])

print(x)

#每一行所對應的類,用0,1來表示

y = np.array([[0,0,1,1]]).t

print(y)

#產生隨機種子

np.random.seed(1)

#隨機生成乙個三行一列的資料

syn0 = 2*np.random.random((3,1)) - 1

print('產生隨機權重')

print(syn0)

for iter in range(10000):

l0 = x

#待分類的資料跟權值相乘,並且使用邏輯回歸進行分類

l1 = nonlin(np.dot(l0,syn0))

#用標籤來計算分類的錯誤程度,計算出來負值說明要減小,計算出來正值說明要增大

l1_error = y - l1

#根據錯誤率來計算更改的幅度

l1_delta = l1_error * nonlin(l1,true)

#設定更改的值

syn0 += np.dot(l0.t,l1_delta)

print ("output after training:")

print (l1)

BP神經網路

基本bp神經網路演算法包括 訊號的前向傳播 誤差的反向傳播 也即計算實際輸出時按照輸入到輸出的方向進行,權值閾值調整則相反。bp是一種多層前饋神經網路,由輸入層 隱含層和輸出層組成。層與層之間有兩種訊號在流動 一種是從輸入流向輸出的工作訊號,是輸入和權值的函式 另一種是輸入流向輸出的訊號,即誤差。隱...

BP神經網路

x 為輸入向量,y為隱藏層的神經元,z 為輸出層,d為目標真實值,本文預設 z 不經過sigmod處理。x y的權重為 w,y z的權重為 v yj ix iwij 1 oyi f y j 2 其中激勵函式f x 1 1 e x f x f x 1 f x 3 z k j f yj vjk 此時系統...

BP神經網路

bp是back propagation bp神經網路主要的演算法在於誤差反向傳播error backpropagation 有三層 輸入層 input 隱含層 hidden 輸出層 output 輸入層 n個神經元 隱含層 p個神經元 輸出層 q個神經元 輸入向量 x x1,x2,x n 隱含層輸入...