寫這篇部落格的時候,我頭暈腦脹的。晚上11點多,特別想睡覺,但是一種深深的負罪感把我從床上拉了起來。世界上最遙遠的距離,就是明明非常喜歡那張床,卻還得假裝絲毫沒有把它放在心上。為什麼要寫感知機呢?這麼乙個老古董。因為我正好看到了《統計學習方法》的那一課。欲生欲死、死不足惜、夕陽西下、夏天真的特別容易困。
關於感知機的正兒八經的部落格一大堆,如果一味的重複別人的套路就太無聊了。所以這篇我打算以問題驅動的方式,來解釋這個演算法。就當提前面試演練吧!
感知機模型是做什麼的?分類的。幾分類?二分類。怎麼分的?使用乙個超平面分的。什麼叫做超平面?如果輸入變數是二維的可以用一條直線分開,如果輸入是三維的那就是乙個平面,如果是n維的那就是n-1維的乙個超平面,為了一致我們統一叫做超平面。超平面是怎麼來的?梯度下降得到的。可以具體解釋一下嗎?我可以拒絕嗎?那我只好拒絕給你發offer。好吧,當我沒問。
1.您看上面的圖,美嗎?首先我們的資料集必須是線性可分的(不可分你讓我分個毛啊),你仔細聽我上面說的那句話,有沒有發現什麼秘密?線性可分,對、這是重點。那它就滿足我們的模型要麼是一條線,要麼是多條直線組成的平面或者超平面。
2.怎麼算呢?這就賊簡單了。首先隨便畫一條直線wx+b=0(此處的w,x都是向量,wx表示的是內積,即對應位置元素相乘),知道為什麼要隨機嗎?有本事你不隨機乙個給我看看。然後選擇乙個分錯的點,把直線往誤分的點方向調節,不斷的調直到所有的點都分對了,模型的活就幹完了(所以你知道為什麼人們每天有幹不完的活了吧,因為模型就是為了幹活才被訓練的)
3.怎麼知道分錯了呢?
分對了是這樣:wx+b>=0表示為正例1,wx+b<0表示為負例-1;如果不符合就是分錯了;比如正例算出來小於0,負例算出來大於0;
4.如何去調節分錯的點?
這個問題比較麻煩,聊完估計得半個小時,如果你聽懂了offer估計也就到手了。因為是梯度下降,所以我們分為四步,第一步選擇乙個分錯的點,第二步求損失loss(也就是分錯的點到超平面的距離,機器學習跟我們的應試教育不同的一點是:我們的滿分是100分,錯題扣分。機器的滿分是0分,對乙個扣乙個分數,在這裡學渣輕鬆考清華。);第三步求梯度;第四步使用梯度調節引數w和b;
1.選擇乙個分錯的點
2.損失loss
點xi到超平面wx+b=0的距離,可以這麼表示,
對於分錯的點來說yi和wxi+b的符號是相反的;所以我們又可以寫成這樣
3.求梯度
損失函式關於引數w和b的梯度分別為:
4.使用梯度調節引數w和b
5.最後當所有點都正確分類,就停止訓練,得到的w和b就是最終模型。
基於上面的感知機模型,對偶模型進行了一些改進。初始的w為0,那麼n時刻的w就是所有的點對w的更新之和,每個點更新的次數可以表示為這個點被分錯的次數,b也是一樣。基於此就得出了w和b的新表示式,其中α為點i對應的w更新的次數*學習率η;一般離超平面越近分錯的次數也就越多;η*yi*xi表示乙個點一次對w的更新,η*yi表示乙個點一次對b的更新
更新的流程為:
我們的**就變成了下面這樣,其中xi*x的內積我們可以提前計算好格拉姆矩陣(內積矩陣),這樣訓練的速度會有所提公升,所以在通常情況下對偶形式的速度會比隨機梯度下降法要快一些。
我們介紹了感知機模型,其核心思想是尋找乙個超平面對資料進行二分類。使用點到超平面的距離來度量損失。其中有兩種常用模型,一種隨機梯度下降法,每次選擇乙個分錯的點計算loss,更新w;另一種是對偶演算法,使用所有的點歷史對w和b的更新來表示w和b,每次更新本次分錯的點對應的次數,優點是可以提前計算x的格拉姆矩陣,提公升訓練速度。
詹青雲:趁著年輕,我偏要勉強——2018華語辯論世界盃決賽,哈佛耶魯聯隊vs中國人民大學
統計學習方法之感知機
在翻閱知乎時,得知李航所著的 統計學習方法 一書,於是就買了一本,看到csdn上已有大牛都發了相關的部落格,再次贅述就顯得囉嗦了,就直接上乾貨吧,自己用matlab寫的 和一些自己再看書時的小小的理解。感知機是一種二類分類的線性模型模型,是乙個將輸入空間 特徵空間 分成正負兩類的分離超平面。它的更多...
統計學習方法 感知機模型筆記
感知機的思想是將所有的資料簡單地分成兩類,一類對應乙個輸出類別,例如是 否 正負 男女等。這要求感知機模型處理的資料集是線性可分的,即存在乙個超平面能夠將所有的資料分在超平面兩側,每側對應乙個輸出結果。通過判斷測試點在超平面的哪一側,來 測試點屬於哪一類。每個樣本點的特徵向量為x x1,x2,xj ...
感知機 統計學習方法
一 感知機適用問題以及它的輸入,輸出,求解方法 1 感知機 perceptron 適用於二類分類問題 該分類問題是線性可分問題 2 感知機模型是線性分類模型 3 感知機的幾何解釋,感知機對應的是乙個超平面 4 輸入 例項的特徵向量 5 輸出 例項的類別,取 1和 1二值 6 求解方法 有監督學習 給...