神經網路 單層感知器

2021-10-05 14:20:33 字數 1871 閱讀 2634

神經網路是非常重要的且用途廣泛,通過模擬人體的處理資訊方式來解決問題,下面就來介紹一下單層感知器。

import numpy as np

import matplotlib.pyplot as plt

#輸入資料

x = np.array([[

1,3,

3],[

1,4,

3],[

1,1,

1],[

1,0,

2]])

#標籤y = np.array([[

1],[

1],[

-1],

[-1]

])#權值初始化,3行1列,取值範圍-1到1

w =(np.random.random([3

,1])

-0.5)*

2print

(w)#學習率設定

lr =

0.11

#神經網路輸出

o =0

#除以x.shape()防止每次更新權值過大

#給x轉置是為了符合矩陣乘法的規範

defupdate()

:global x,y,w,lr

o = np.sign(np.dot(x,w)

) w_c = lr*

(x.t.dot(y-o))/

int(x.shape[0]

) w = w + w_c

每次都會隨機出來三個權值:

[[ 0.00716618]

[ 0.09579097]

[ 0.86859556]]

for i in

range

(100):

update(

)#更新權值

print

(w)#列印當前權值

print

(i)#列印迭代次數

o = np.sign(np.dot(x,w)

)#計算當前輸出

#all函式意思是當o與y結果完全符合時,才返回true

if(o == y)

.all()

:print

("finished"

)print

("epoch"

,i)break

#正樣本

x1 =[3

,4]y1 =[3

,3]#負樣本

x2 =[1

,0]y2 =[1

,2]#計算分界線的斜率以及截距

k =-w[1]

/w[2

]d =

-w[0

]/w[2]

print

('k='

,k)print

('d='

,d)xdata =(0

,5)plt.figure(

)plt.plot(xdata,xdata*k+d,

'r')

plt.scatter(x1,y1,c=

'b')

plt.scatter(x2,y2,c=

'y')

plt.show(

)

因為每次隨機數的權值都不同,所以迭代次數也有所不同,這裡就只po出最終。

這章的總結沒有太多,主要有乙個公式需要明白:

明白這個公式之後,也就明白了k和b的計算方法。

神經網路(單層感知器)

感知器是神經網路中的乙個概念,在1950s由frank rosenblatt第一次引入。單層感知器是最簡單的神經網路。它包含輸入層和輸出層,而輸入層和輸出層是直接相連的。與最早提出的mp模型不同,神經元突觸權值可變,因此可以通過一定規則進行學習。可以快速 可靠地解決線性可分的問題。單層感知器由乙個線...

神經網路之 感知器

在神經網路中,我們主要使用的是一種稱為s型神經元的神經元模型。感知器就是我們所謂的 人工神經元 那麼感知器怎麼工作的呢,接下來我們來談談。1.感知器工作機制 上圖中有x1,x2和x3輸入,一般情況下我們可以引入權重w1,w2和w3來表示輸入對輸出的重要性,這時可以計算w1 x1 w2 x2 w3 x...

感知器演算法與神經網路

感知器作為人工神經網路中最基本的單元,有多個輸入和乙個輸出組成。雖然我們的目的是學習很多神經單元互連的網路,但是我們還是需要先對單個的神經單元進行研究。感知器演算法的主要流程 首先得到n個輸入,再將每個輸入值加權,然後判斷感知器輸入的加權和最否達到某一閥值v,若達到,則通過sign函式輸出1,否則輸...