單層感知器(附demo)

2021-08-14 23:32:40 字數 1762 閱讀 8168

一 引言

感知器神經網路是一種典型的前饋神經網路,具有分層結果,資訊叢輸入層進入網路,逐層向前傳遞至輸出層。根據感知器神經元轉移函式、隱層數以及權值調整規則的不同,可以形成具有各種功能特點的神經網路

二 定義與理解

單層感知器:2023年,美國心理學家frank rosenblatt 提出一種具有單層計算單元的神經網路,成為perceptron,即感知器。

單層感知器的結構和功能非常簡單,以至於目前在解決實際問題時很少被採用,但由於它是神經網路的基礎,適合作為神經網路學習的起點。

三  感知器模型

單層感知器:只有一層處理單元的感知器,如果包括輸入層在內,應為兩層。

結構圖如下圖一:圖中輸入層也稱為感知層,有n個神經元節點,這些節點只負責引入外部資訊,自身沒有資訊處理能力。每個節點接收乙個輸入訊號,n個輸入訊號構成輸入列向量x。

輸出層也稱為處理層,有m個神經元節點,每個節點均具有資訊處理能力,m個節點向外部輸出處理資訊,構成輸出列向量o。兩層之間的連線權值用權值列向量wj表示,m個權向量構成單層感知器權值矩陣w。

三種列向量分別表示為圖二:

x :輸入列向量, o輸出列向量, w 權列向量

離散型單計算層感知器的轉移函式一般採用符號函式(或單極性閥值函式)。公式如下

感知器的輸出,計算公式為:

四 感知器給鴛尾花資料分類

1 感知器的轉移函式為符號函式,它適用於做離散型的分類問題,鴛尾花資料集是乙個很出名的資料集,在r語言中也有這個資料報。這裡我們引入的鴛尾花資料為,4種型別的花,每種花有4個屬性。我們這裡直取兩種花,給兩種花做分類。

2  程式如下:

1> 引入鴛尾花資料集:

from sklearn.datasets import load_iris

2> 只取兩種花的資料,給引入的資料做處理:

dataset = load_iris()

x = np.array(dataset.data) #獲取花的屬性

y = np.array(dataset.target) #獲取花的種類

x = x[0 : 75, :] #只取兩類花

y = y[: 75]

3> 把代表型別的值0替換為-1,這裡為了配合單層感知器的啟用函式

array_index = np.where(y == 0)

y[array_index] = -1

4 >鳶尾花資料有4個屬性,那麼輸入層有4個輸入節點,因為每個輸入的值要乘以權向量,所以輸入節點變為5個,增加權向量項。

x1= np.ones(x.shape[0]) #神經網路對應的輸入x[0]

x = np.insert(x, 0, values=x1.t, axis=1) #把1插入到屬性資料的第0列

5> 計算每個節點的輸出:

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

w_c = lr * ((y - o.t).dot(x))/int(x.shape[0])

w = w + w_c

學習筆記 感知器 單層感知器舉例

在人體神經網路中,神經細胞是有著基本處理訊號功能的基本單元,單層感知器就是人工神經網路中模擬人體神經細胞的基本單元。單層感知器 單層感知器是最簡單的神經網路,它包含輸入層和輸出層,訊號先經過線性組合器處理然後再經過啟用函式,最後輸出結果。1 輸入節點 input 輸入節點是訊號的輸入端,感知器可以有...

單層感知器python 深度學習之單層感知器(一)

當我們最初學習機器學習時候,了解到最簡單的神經網路可能便是單層感知器,他也是監督學習的最簡單一種。本文章就通過 人工神經網路理論 設計及應用 書中介紹的單層感知器一節,進行python的 實現。單層感知器的網路結構如下 上圖便是乙個單層感知器,很簡單的乙個結構,圖中說明我們有個3維的輸入值分別是x1...

深度學習PART I 單層感知器

單層感知器的原始形式如下 如果把偏置項當作特殊權值,則單層感知器可以改為如下形式 感知器的學習規則 學習率 1 學習率太大,容易造成權值調整不穩定。2 學習率太小,權值調整太慢,迭代次數太多。收斂條件 1 誤差小於某個預先設定的較小的值。2 兩次迭代之間的權值變化已經很小。3 設定最大迭代次數,當迭...