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 隱含層輸入...