1. 程式人生 > >(三)機器學習——感知機模型(附完整程式碼)

(三)機器學習——感知機模型(附完整程式碼)

感知機是這一種二類線性分類模型,其輸入例項的特徵向量,輸出為例項的類別,取+1和-1二值。感知機模型和LR模型(https://blog.csdn.net/u014571489/article/details/83387681 ) 一樣都是二分模型,但是目標函式(損失函式)不一樣。

感知機解釋及定義

在講怎麼構建目標函式之前,先說一下感知機怎麼將資料點分為兩類。在邏輯迴歸中是通過啟用函式來計算點屬於某一類的概率,哪個類的概率大就屬於哪一類。感知機也是通過預測值的大小來決定點屬於哪一類,不同點在於感知機是通過線性函式來預測,或者是感知機的啟用函式就是線性的。很多個線性的感知機就構成了神經網路,這也是為什麼感知機被稱為神經網路的基礎,有興趣可以去了解一下AI歷史

https://blog.csdn.net/sunfoot001/article/details/51126360 )。
在這裡插入圖片描述
如上圖所示,感知機和邏輯迴歸一樣,都是為了得到圖中的直線方程來構建線性分類器,這個直線方程就叫做超平面,所有在直線上的點都滿足wx+b=0。也叫做超平面。

在這裡插入圖片描述
有了超平面,通過構建如下的符號函式,wx+b>0時,f(x)=1,否則f(x)=-1.

在這裡插入圖片描述
該符號函式也就是感知機。

感知機模型的目標函式

有了感知機,剩下要做的就是根據感知機構建目標函式。順便提一下,邏輯迴歸是根據啟用函式構建的目標函式,這也是感知機和邏輯迴歸不一樣的地方。
接下來就講講感知機模型的目標函式的構建思想。假設現有了超平面,現在點可以被分為兩類,一類是分類正確的點,一類是分類錯誤的點,感知機的目標函式就是根據分類錯誤的點集來計算目標函式,分類正確的點是不算在目標函式內的。感知機的目標函式如圖所示:
在這裡插入圖片描述


其中M就是分類錯誤的點集,當有錯誤點存在的時候,目標函式值一定是正整數,當全部分類正確時,目標函式值為0,這也是感知機模型的缺陷,在資料點可二分的前提下,滿足目標函式值為0的超平面是有無數個的。其中有個問題需要注意的是,這個模型一定是可收斂的嗎?因為M集合是不斷變化的。這個問題是可以證明的,看懂證明過程也不難,參照部落格(https://blog.csdn.net/weixin_41911765/article/details/81811231 ) ,具體的迭代方法分為感知機的原始形式感知機的對偶形式

感知機的原始形式

在這裡插入圖片描述
感知機的原始形式,對誤分類點只迭代一次。當資料量很大,只有極少數的點分類錯誤的時候,即使迭代很多次,感知機的原始形式也沒辦法完全分類正確。

感知機的對偶形式

在這裡插入圖片描述

最後附上一份感知機原始形式的python3原始碼:
https://download.csdn.net/download/u014571489/10771251
在這裡插入圖片描述