單層感知器適用於解決線性可分問題,這是前文反複提到的分類問題的一種。簡單地說,當平麵上的兩類數據可以用一條直線(稱為決策邊界)分開時,就稱其為線性可分的,如圖6-3所示。在這一節,將以一個簡單的線性分類問題為例,介紹感知器的學習算法。
圖6-3
這個實例所采用的數據集來自機器學習領域的經典數據集——鳶尾花數據集(Iris數據集)。在各種分類問題中,經常會采用這個數據集作為訓練數據和測試數據。相應的數據可從教材的資源平台下載。
下載數據後打開,會發現該數據集包括3類共150條數據,其中每類各含50條數據。這3類數據描述了山鳶尾(iris setosa)、雜色鳶尾(iris versicolour)和弗吉尼亞鳶尾(iris virginica)3種鳶尾花的4個特征屬性,分別是花萼長度(Sepal Length)、花萼寬度(Sepal Width)、花瓣長度(Petal Length)和花瓣寬度(Petal Width)。數據形式如表6-1所示。
表6-1
接下來的目標是使用感知器,通過在這個數據集上進行訓練,給出一個分類器。分類器根據一個未知類型的鳶尾花數據可以自動識別出它所屬的鳶尾種類。
神經網絡的學習過程,就是根據訓練數據學習合適的連接權重,從而可以使用合適的連接權重來提取正確的類別特征。什麽叫作合適的連接權重呢?當然是當一組連接權重可以通過特征屬性輸出正確的類別時,就是合適的。
為了更簡單地說明神經網絡的學習法則,接下來隻考慮兩類鳶尾——山鳶尾和雜色鳶尾,把問題變成一個二分類問題。用-1表示山鳶尾,用1表示雜色鳶尾。每一個輸入信息(即每一條數據)包含4個特征屬性值和1個類別值。兩類數據一共有100條,可以寫成
Χ={(x1,C1 ),(x2,C2 ),…,(x100,C100)}