1. 程式人生 > >機器學習-15:MachineLN之感知機

機器學習-15:MachineLN之感知機


你要的答案或許都在這裡

我想說:

其實感知機雖然原理簡單,但是不得不說他的意義重大,為什們呢? 他是SVM的前身,後面的SVM是由此進化來的,其實兩個結合起來學習會更好的,但是內容太多,SVM三境界,我可能還是停留在“昨夜西風調碧樹,獨上高樓,望盡天涯路”, 期待突破後面的兩重天:“衣帶漸寬終不悔,為伊消得人憔碎”, “眾裡尋他千百度,驀然回首,那人卻在,燈火闌珊處”。說起三境界不得不提佛家三境界:看山是山,看水是水;看山不是山,看水不是水;看山還是山,看水還是水。兩者相通互補吧,才疏學淺不敢瞎說,理解還是有點困難的,突然感覺很多事情都是相通的,分久必合,合久必分?亂了亂了,我整天就知道瞎說,別介意。另外最近開始想這麼一個問題:什麼樣的資料不適合用卷積? 什麼樣的資料不適合用池化? 什麼樣的資料只適合用全連線的結構?

 稍微有點眉目;感覺真的沒有通用的網路!!!真是悲哀,以前提通用AI差點被罵死,出來DL後沒人再提,只是說針對特定領域特定問題的AI;

看完文章記得最下面的原文連結,有驚喜哦!

說起感知機,那麼我的問題:(根據MachineLN之三要素:模型、策略、演算法)

(1)什麼是感知機?(模型)

(2)感知機是如何學習的?(策略)

(3)感知機學習演算法?(演算法)

看到這裡你的答案是什麼?下面是我的答案:

1. 什麼是感知機?

感知機是一個二類分類的線性分類模型。那麼說起線性與非線性請參考MachineLN之啟用函式;

感知機模型:


其中,wb為感知機引數,wRn叫做權值或權值向量,

bR叫做偏置,wx表示wx的內積。感知機學習的目的就在於確定引數wb的值。符號函式sign(x)不用多解釋吧:


看到這裡其實可以聯絡到兩個模型:(1)邏輯迴歸:把sign改為sigmoid就是邏輯迴歸表示式;(2)SVM:表示式可以定義為一樣;策略和演算法差不遠了去了(為了解決感知機的不足);

幾何解釋:

可以用下面的線性方程表示:


可以理解時一個特徵空間中的一個超平面,其中w是超平面的法向量(為什麼?),b是超平面的截距,這個超平面會把分成兩部分,將點分為正、負兩部分,看一下圖吧:


下面是w為什麼是超平面的法向量? (看書時候的筆記)


是的感知機就是在找這麼一個能夠將兩個類別資料分開的超平面;並且超平面不是唯一的(引數更新的時候:樣本的順序是很大因素);(SVM就是將感知機的不唯一變為唯一,後面我們會擼svm原始碼,使用拉格朗日直接求解引數,和使用tensorflow的梯度下降求解引數,這時候損失函式要重新定義)

2. 感知機是如何學習的?

其實這裡就是策略,就是常提的損失函式:用來衡量預測值和真實值的相似度的;有時候損失函式直接選擇誤分類點的總數更直觀,但是這個損失函式不是引數的連續可導的函式(那麼為什麼非要可導:好像無論梯度下降,最小二乘法等都得可導吧,那麼為什麼非得用梯度下降最小二乘法等?有人說你這是瞎搞,哦nonono,這才是真正要探索的東西,你如果有好的方法不用非讓損失函式可導,那麼你就厲害了);

先看一下下面的公式:應該很熟悉吧,點到直線的距離;


是L2範數應該很明白了。

但是,這裡很重要:要弄明白所關心的是什麼點到直線的距離作為函式,是分類正確的點?還是分類錯誤的點? 提醒到這裡大家就很明白,不說透的話是不是感覺雲裡霧裡!那麼說到誤分類點,它是滿足下面條件的:(為什麼呢? 因為我們預測的輸出為[-1, 1],誤分類點和真實值肯定異號,正確分類的點肯定同號)


那麼我們可以重新定義損失函式:就是 誤分類點的點到超平面的距離,注意是誤分類!!!下一篇程式碼實現可以格外注意一下;用下面的式子定義:


那麼所有誤分類點到超平面的總距離可以定義為:


不考慮,得到感知機的損失函式為:


那麼問題又來了,為什麼不考慮呢??? 這也正是它的分類超平面不唯一的原因之一!(在SVM中為什麼又考慮呢?)

個人理解:因為感知機任務是進行二分類工作,最終並不關心得到的超平面點的距離有多少(SVM格外關心哦!)(所以我們才可以不去考慮L2正規化;)只是關心最後是否正確分類(也就是隻考慮誤分類點的個數)正如下面這個圖(有點糙)x1,x2是一類,x3是一類,對於感知機來說是一樣好的,而SVM就是那麼最求完美的人,我只要最好!


好了,策略有了,該研究通過什麼方法來是損失函式最小了,下面介紹演算法;

3. 感知機學習演算法?

其實我們機器學習演算法就是在求損失函式的最值,用數學表示式表示為:


下面就是隨機梯度下降的過程(隨機梯度下降就是在極小化損失函式的過程中,每次只選一個誤分類點,不使用所有的點):

下面是損失函式的導數:也就是我們梯度下降中的那個梯度:


隨機選一個誤分類點,進行引數更新:


式中η(0<η≤1)是步長,又稱為學習率,通過迭代的方式可以不斷減小損失函式;(如果是看成數學問題,那麼就嚴重了,說話得有根據,這裡還要證明演算法的收斂性。。。)

那麼感知機原始演算法的形式可以總結為:


演算法的對偶形式:(對偶?)

對偶形式的基本想法是,將w,b表示成為例項xi和標記yi的線性組合的形式,通過求解其係數而得到w和b。不失一般性,將初始值w0,b0設為0.對誤分類點(xi,yi)通過


逐步修該w,b,設修改了n次,則w,b關於(xi,yi)的增量分別為aiyixi和aiyi,這裡ai=niη最終學習到的w,b可以表示為


例項點更新次數越多,意味著它距離分離超平面越近,也就越難正確分類。換句話說,這樣的例項對學習結果影響很大。

那麼感知機演算法的對偶形式可以總結為:


好好理解一下對偶,SVM也需要對偶一下的;

好了感知機理論說到這裡,有疑惑留言哦,下一遍我們上感知機原始碼!


推薦閱讀:


我想說:

其實感知機雖然原理簡單,但是不得不說他的意義重大,為什們呢? 他是SVM的前身,後面的SVM是由此進化來的,其實兩個結合起來學習會更好的,但是內容太多,SVM三境界,我可能還是停留在“昨夜西風調碧樹,獨上高樓,望盡天涯路”, 期待突破後面的兩重天:“衣帶漸寬終不悔,為伊消得人憔碎”, “眾裡尋他千百度,驀然回首,那人卻在,燈火闌珊處”。說起三境界不得不提佛家三境界:看山是山,看水是水;看山不是山,看水不是水;看山還是山,看水還是水。兩者相通互補吧,才疏學淺不敢瞎說,理解還是有點困難的,突然感覺很多事情都是相通的,分久必合,合久必分?亂了亂了,我整天就知道瞎說,別介意。另外最近開始想這麼一個問題:什麼樣的資料不適合用卷積? 什麼樣的資料不適合用池化? 什麼樣的資料只適合用全連線的結構? 稍微有點眉目;感覺真的沒有通用的網路!!!真是悲哀,以前提通用AI差點被罵死,出來DL後沒人再提,只是說針對特定領域特定問題的AI;

看完文章記得最下面的原文連結,有驚喜哦!

說起感知機,那麼我的問題:(根據MachineLN之三要素:模型、策略、演算法)

(1)什麼是感知機?(模型)

(2)感知機是如何學習的?(策略)

(3)感知機學習演算法?(演算法)

看到這裡你的答案是什麼?下面是我的答案:

1. 什麼是感知機?

感知機是一個二類分類的線性分類模型。那麼說起線性與非線性請參考MachineLN之啟用函式;

感知機模型:

其中,wb為感知機引數,wRn叫做權值或權值向量,bR叫做偏置,wx表示wx的內積。感知機學習的目的就在於確定引數wb的值。符號函式sign(x)不用多解釋吧:

看到這裡其實可以聯絡到兩個模型:(1)邏輯迴歸:把sign改為sigmoid就是邏輯迴歸表示式;(2)SVM:表示式可以定義為一樣;策略和演算法差不遠了去了(為了解決感知機的不足);

幾何解釋:

可以用下面的線性方程表示:

可以理解時一個特徵空間中的一個超平面,其中w是超平面的法向量(為什麼?),b是超平面的截距,這個超平面會把分成兩部分,將點分為正、負兩部分,看一下圖吧:

下面是w為什麼是超平面的法向量? (看書時候的筆記)

是的感知機就是在找這麼一個能夠將兩個類別資料分開的超平面;並且超平面不是唯一的(引數更新的時候:樣本的順序是很大因素);(SVM就是將感知機的不唯一變為唯一,後面我們會擼svm原始碼,使用拉格朗日直接求解引數,和使用tensorflow的梯度下降求解引數,這時候損失函式要重新定義)

2. 感知機是如何學習的?

其實這裡就是策略,就是常提的損失函式:用來衡量預測值和真實值的相似度的;有時候損失函式直接選擇誤分類點的總數更直觀,但是這個損失函式不是引數的連續可導的函式(那麼為什麼非要可導:好像無論梯度下降,最小二乘法等都得可導吧,那麼為什麼非得用梯度下降最小二乘法等?有人說你這是瞎搞,哦nonono,這才是真正要探索的東西,你如果有好的方法不用非讓損失函式可導,那麼你就厲害了);

先看一下下面的公式:應該很熟悉吧,點到直線的距離;

是L2範數應該很明白了。

但是,這裡很重要:要弄明白所關心的是什麼點到直線的距離作為函式,是分類正確的點?還是分類錯誤的點? 提醒到這裡大家就很明白,不說透的話是不是感覺雲裡霧裡!那麼說到誤分類點,它是滿足下面條件的:(為什麼呢? 因為我們預測的輸出為[-1, 1],誤分類點和真實值肯定異號,正確分類的點肯定同號)

那麼我們可以重新定義損失函式:就是 誤分類點的點到超平面的距離,注意是誤分類!!!下一篇程式碼實現可以格外注意一下;用下面的式子定義:

那麼所有誤分類點到超平面的總距離可以定義為:

不考慮,得到感知機的損失函式為:

那麼問題又來了,為什麼不考慮呢??? 這也正是它的分類超平面不唯一的原因之一!(在SVM中為什麼又考慮呢?)

個人理解:因為感知機任務是進行二分類工作,最終並不關心得到的超平面點的距離有多少(SVM格外關心哦!)(所以我們才可以不去考慮L2正規化;)只是關心最後是否正確分類(也就是隻考慮誤分類點的個數)正如下面這個圖(有點糙)x1,x2是一類,x3是一類,對於感知機來說是一樣好的,而SVM就是那麼最求完美的人,我只要最好!

好了,策略有了,該研究通過什麼方法來是損失函式最小了,下面介紹演算法;

3. 感知機學習演算法?

其實我們機器學習演算法就是在求損失函式的最值,用數學表示式表示為:

下面就是隨機梯度下降的過程(隨機梯度下降就是在極小化損失函式的過程中,每次只選一個誤分類點,不使用所有的點):

下面是損失函式的導數:也就是我們梯度下降中的那個梯度:

隨機選一個誤分類點,進行引數更新:

式中η(0<η≤1)是步長,又稱為學習率,通過迭代的方式可以不斷減小損失函式;(如果是看成數學問題,那麼就嚴重了,說話得有根據,這裡還要證明演算法的收斂性。。。)

那麼感知機原始演算法的形式可以總結為:

演算法的對偶形式:(對偶?)

對偶形式的基本想法是,將w,b表示成為例項xi和標記yi的線性組合的形式,通過求解其係數而得到w和b。不失一般性,將初始值w0,b0設為0.對誤分類點(xi,yi)通過

逐步修該w,b,設修改了n次,則w,b關於(xi,yi)的增量分別為aiyixi和aiyi,這裡ai=niη最終學習到的w,b可以表示為

例項點更新次數越多,意味著它距離分離超平面越近,也就越難正確分類。換句話說,這樣的例項對學習結果影響很大。

那麼感知機演算法的對偶形式可以總結為:

相關推薦

機器學習-15MachineLN感知

你要的答案或許都在這裡: 我想說: 其實感知機雖然原理簡單,但是不得不說他的意義重大,為什們呢? 他是SVM的前身,後面的SVM是由此進化來的,其實兩個結合起來學習會更好的,但是內容太多,SVM

機器學習-23MachineLN樸素貝葉斯

你要的答案或許都在這裡:小鵬的部落格目錄 學習樸素貝葉斯需要清楚下面幾個概念: 貝葉斯模型是指模型引數的推斷用的是貝葉斯估計方法,也就是需要指定先驗分佈,再求取後驗分佈。 貝葉斯分類是一類演算

機器學習-2MachineLN模型評估

​你要的答案或許都在這裡:小鵬的部落格目錄 開篇廢話: 很多文章其實都是將書中的東西、網上課程、或者別人的論文的東西總結一下,發出來,但是個人感覺還是加入個人的理解,然後加上一些工程中遇到的

機器學習-11MachineLN過擬合

你要的答案或許都在這裡:小鵬的部落格目錄 我想說: 其實很多時候大家都想自己做一些事情,但是很多也都是想想而已,其實有了想法自己感覺可行,就可以去行動起來,去嘗試,即使最後敗了,也無怨無悔,有句

機器學習-21MachineLNSVM原始碼

你要的答案或許都在這裡:小鵬的部落格目錄 我想說: 其實很多事情一定要找好自己的節奏,因為你會發現你不會的東西太多了,千萬不要被帶跑了。 ,講述了SVM的原理,今天看一下帶詳細註釋的原始碼 和 tensorflow使用梯度下降求解svm引數:切記好程式碼都是敲出來的,

機器學習-1MachineLN三要素

你要的答案或許都在這裡:小鵬的部落格目錄 開篇廢話: 機器學習解決的問題和李航老師統計學習方法所描述的統計學問題不謀而合。李老師定義為統計學習三要素:方法=模型+策略+演算法。這不光是統計學習必

機器學習——15分鐘透徹理解感知

前言 隨著17年阿爾法狗(AlphaGo)擊敗人類職業圍棋選手、戰勝圍棋世界冠軍,AI、人工智慧等詞彙也成為了時下人們追求的一個潮流,各種相關產業和人工智慧為主題的創業公司也如雨後春筍般相繼湧現,因此人工智慧也成為了2017年的關鍵詞。關於人工智慧的概念從計算

機器學習-19MachineLNSVM(1)

你要的答案或許都在這裡:小鵬的部落格目錄 我想說: 其實很多事情,只要你想做,是肯定有方法做的,並且可以做好; 說起SVM很多人都會感覺頭疼,無非就是公式多一個,其實很多時候你真是用的話,都不用你手動

機器學習-10MachineLN樣本不均衡

你要的答案或許都在這裡:小鵬的部落格目錄 我想說: 其實很多時候,有競爭是好的事情,可以促進你的成長,可以磨練你的耐性,可以提升你的魅力,可以表現你的豁達,可以體驗成功的喜悅,可以感受失敗其實並

機器學習-17MachineLN邏輯迴歸

你要的答案或許都在這裡:小鵬的部落格目錄 我想說: 其實....整天其實,感覺沒啥好說的了,好好GAN吧。 邏輯迴歸可以這樣理解: 和感知機比較著來看或許更好,將感知機的表示式中的sign函式換成

機器學習筆記(1) 感知演算法 實戰篇

我們在上篇筆記中介紹了感知機的理論知識,討論了感知機的由來、工作原理、求解策略、收斂性。這篇筆記中,我們親自動手寫程式碼,使用感知機演算法解決實際問題。 先從一個最簡單的問題開始,用感知機演算法解決OR邏輯的分類。 import numpy as np import matplotlib.pyplot as

機器學習7SVM(支援向量)

支援向量機 優化目標 大間距分類器 數學原理 核函式一 核函式二 使用 優化目標 對於邏輯迴歸的假設函式而言,在y=1的情況下,我們希望假設函式約等於1,且z遠大於0;在y=0的情況下,我們希望假設函式約等於

機器學習15半監督學習semi-supervised

一、why semi-supervised dataset中只有部分資料進行了lable標註,即,有的資料成對出現{輸入,輸出},有的資料只有輸入{輸入}; Transductive learning(直推試學習):unlabled資料作為測試集; Inductive learning(

機器學習15why deep?

一、Deep更有效率 1、90年代的Universality Theorem指出任何連續函式都可以用一層隱藏層表示出來(可能需要用到較多的神經元);然而,實際的應用表明,Deep層更有效率。 2、對於下面的例子 圖1直接使用一層網路對長髮女、長髮男、短髮女、短髮男四種類型進行分類;

Python機器學習庫sklearn裡利用感知進行三分類(多分類)的原理

from IPython.display import Image %matplotlib inline # Added version check for recent scikit-learn 0.18 checks from distutils.vers

機器學習-6DeepLNCNN原始碼

你要的答案或許都在這裡:小鵬的部落格目錄 我想說: 可能一直關注我更新文章的童鞋,可能看出我的佈局,基本是先搭一個框架然後挖坑去填,這可能是我做事情一個優點,當接觸到新事物總是能快速建立一個框架

機器學習-5DeepLNCNN權重更新(筆記)

​你要的答案或許都在這裡:小鵬的部落格目錄 我想說: 學習dl不去深層的扒扒,沒有理論的支撐是不行的,今天分享一篇筆記,另加讀者的心得,很棒。 讀者分享資料探勘心得: 我跟你講一下在實際

機器學習感知學習筆記第一篇求輸入空間R中任意一點X0到超平面S的距離

我的學習資料是“統計學習方法”,作者是李航老師,這本書很著名,百度有很多關於它的PDF。 作為學習筆記,就說明我還是屬於學習中,所以,這個分類中我暫時不打算討論詳細的演算法,這個分類會講到我在學習遇到的問題和我自己解決這些問題的思路。 今天這個問題(見題目)是在學習李航老師

Hulu機器學習問題與解答系列 | 十五多層感知與布爾函數

功能 目標 機器學習 分享圖片 研究 vue gic per 發展 今天沒有別的話,好好學習,多多轉發! 本期內容是 【多層感知機與布爾函數】 場景描述 神經網絡概念的誕生很大程度上受到了神經科學的啟發。生物學研究表明,大腦皮層的感知與計算功能是通過分多層實現的

機器學習感知

今天,我將和大家一起學習機器學習中的感知機演算法。感知機(perceptron)是二類分類的線性分類模型,其輸入為例項的特徵向量,輸出為例項的類別,取+1和-1二值。感知機對應於輸入空間(特徵空間)中將例項劃分為正負兩類的分離超平面。因此,感知機學習旨在求出將訓練資料進行線性