機器學習可行性
在銀行評估貸款申請人的授信請求前,會進行風險評估。符合申請則經過,反之駁回。長時間的數據和申請使得銀行從中找到了一些規律並開始learning,因此風險評估就是一個learning的過程,流程圖以下: git
首先target function咱們是未知的,須要求解的。D就是咱們的訓練數據,hypothesis set就是咱們的假設集合,也就是說咱們的最佳函數g就是要從裏面選擇,learing algorithm咱們稱爲演算法,使用這個演算法來選擇最好的g,最後達到g ≈ f的結果。
先介紹一個Perceptron Algorithm---感知機
爲每個特徵向量設置一個w,因此的wx相加若是大於某一個閾值,咱們就設置爲正例,approve credit;不然就deny了。 算法
但其實咱們通常會把閾值加進來一塊兒預測,由於若是分開的話求導計算或者其實算法計算要分兩部分。 以下變換:
設置一個X0,咱們稱爲是1。 對於這個perceptron,對於不一樣的權值集合,咱們就有多少種不一樣的線段,而這些不一樣的線段,其實就是假設集合,剛剛所說的hypothesis set。
perceptron的學習
一開始咱們的權值確定是一個隨機值,那麼學習的過程就是一個轉變方向的過程了。咱們經過第一個錯誤進行逐步的修正: app
當發現了一個錯誤,那麼這個錯誤確定和咱們預知的範圍是相反的,好比一個mistake,wx < 0 ,意味着是在圖像的下方,而w是法向量,那麼就會出現w和mistake的夾角就是大於90度的了,因此須要小於90度,則只須要加上yx便可,y表明要旋轉的方向。 可是每一次的改變有可能使得correct的點變成mistake,可是沒有關係,迭代下去總能夠找到最好的一個g。
perceptron的中止條件
對於一個集合D,若是是線性可分的,天然就分開了,但若是是線性不可分的,大家感知機就不會中止,一直迭代下去,由於只要有錯誤就一直進行迭代而不會找到最佳的g ≈ f。 固然對於非線性的狀況咱們不考慮,對於線性可分的狀況,咱們能夠用公式代表W在變化的過程當中確實是愈來愈接近Wf的。 當一個向量越接近一個向量的時候,若是這兩個向量是單位向量,那麼越接近天然越大,因此若是W*Wf變大,就能夠證實percetron確實是能夠學習的。 機器學習
YnWfXn>0。由於y就是根據WX來分類的,這兩的正負號確定是同樣的。 可是增大的可能性其實還有多是這逼長度變化了,致使增大,因此咱們要證實 函數
是不斷增大的。 推導流程以下:
因此能夠證實W是隨着時間的增加不斷的靠近Wf的,perceptron的學習就被證實是有效的了。
回到咱們要講的機器學習可行性
舉一個例子,如今有一個九宮格要咱們來找規律推測出第三個九宮格里面的內容: 工具
不一樣的學習方法找到的規律是不同的,獲得的g(x)也不同。給出的這個例子裏面的六個九宮格其實就是機器學習裏面的數據D,咱們能夠找到而且看見的,而那個咱們須要預測的就是咱們看不見而且要預測的大數據。好比剛剛的credit card,咱們要預測的其實就是全部人,而不是僅僅的只是數據集裏面的。
在機器學習基石裏面老師用了一個bin的例子: 在訓練集D之外的樣本上,機器學習的模型是很難,彷佛作不到正確預測或分類的。那是否有一些工具或者方法可以對未知的目標函數f作一些推論,讓咱們的機器學習模型可以變得有用呢? 好比裝有一個不少球的罐子: 學習
其實這個罐子就是hypothesis set裏面的一個h(x) 。罐子裏面的球其實原本是沒有顏色的,咱們依照h(x) 的分佈,把這裏面的求都用油漆塗成orange and green。orange表明錯誤,而green表明正確。抽樣抽出來的小球其實就是咱們的數據集set,就是已經拿到而且是帶了label那種。 咱們如今就是要肯定可否用抽樣的比例來肯定罐子裏面的比例呢? u是罐子裏面orange的比例,而v則是抽樣抽到的orange的比例。那麼根據霍夫丁不等式有:
P[|v−u|>ϵ]≤2exp(−2ϵ2N) 當N很大的時候其實兩個都是差很少的。
咱們把u ≈ v稱爲probably approximately correct(PLA),近似相等。
聯繫到機器學習上面
咱們將罐子的內容對應到機器學習的概念上來。機器學習中hypothesis與目標函數相等的可能性,類比於罐子中橙色球的機率問題;罐子裏的一顆顆彈珠類比於機器學習樣本空間的x;橙色的彈珠類比於h(x)與f不相等;綠色的彈珠類比於h(x)與f相等;從罐子中抽取的N個球類比於機器學習的訓練樣本D,且這兩種抽樣的樣本與整體樣本之間都是獨立同分布的。因此呢,若是樣本N夠大,且是獨立同分布的,那麼,從樣本中h(x)≠f(x)的機率就能推導在抽樣樣本外的全部樣本中h(x)≠f(x)的機率是多少。 測試
理解的關鍵是咱們須要經過抽樣來知道h(x)的錯誤機率是多少,經過局部推廣到全局。大數據
這裏要引入兩個值:Ein值的是抽樣的錯誤率,Eout指的是全局的錯誤率,這裏就是指h的錯誤率了。 使用霍夫丁不等式:
P[|Ein(h)−Eout(h)|>ϵ]≤2exp(−2ϵ2N) inequalty代表:在h肯定了,N很打的狀況下,Ein ≈ Eout,但這並不表明g≈f,由於咱們後面還要知道Ein ≈ 0才行。
類比到機器學習上面
hypothesis set裏面有多少個h就有多少個罐子。 可是在抽樣過程當中還有可能抽到壞的數據,bad sample。好比你丟一個硬幣,三次向上一次向下,這並不能說明這個硬幣正反面不均勻。 因此抽樣也有可能抽到壞樣本。
這麼多個數據集,根據霍夫丁不等式,在大多數狀況下,抽樣獲得的數據其實都是好數據,Ein ≈ Eout的,可是會有極小的狀況下會出現Ein 和 Eout相差很大的狀況。也就是說,不一樣的數據集Dn,對於不一樣的hypothesis,有可能成爲Bad Data。只要Dn在某個hypothesis上是Bad Data,那麼Dn就是Bad Data。只有當Dn在全部的hypothesis上都是好的數據,才說明Dn不是Bad Data,能夠自由選擇演算法A進行建模。那麼,根據Hoeffding’s inequality,Bad Data的上界能夠表示爲連級(union bound)的形式:
意味着,若是M是有限的,N很大,那麼咱們出現bad sample的機率會很小,Ein ≈ Eout就能夠成立,再選取一個合理的演算法,就能夠獲得g ≈ f,機器學習就有效了。這樣就有了不錯的泛化能力。
要解決的問題已經M的處理
上面的講解事後機器學習的流程: 3d
因而就回歸到了兩個問題:
①Ein ≈ Eout
②Ein ≈ 0
M就是表明hypothesis set裏面h的數量,M小,能夠達到bad sample機率小可是選擇就少了,而大的話就有可能變成大機率了。因此M須要不大不小的。 但事實上不少機器學習的hypothesis set都是M無限大的,好比SVM,linear regression,logitic regression他們的M都是無限大的,但他們的學習都是有效的,因此,很明顯這裏的M是能夠被替換掉的。替換成一個有限的mH。
對M的處理
hypothesis set是無限的,但他的種類確定是有限的,好比2D-perceptron要分類一個數據點:
在這個分類裏面,hypothesis set是無限多個的,由於不一樣的w集合就不一樣的直線,但他的分類種數卻只有兩種,要不X要不O,就兩種,因此可見,不少的H是有重疊的。 若是有兩個點:
就四種狀況。 到了三個點的時候,狀況有所不同:
這樣是8種狀況。
這樣就是六種狀況。 咱們天然是要找最多的了,因此3個點2分類就是8種狀況。 四個點就是14種狀況。
因此咱們的M其實能夠被有限個替代的。若是能夠保證是小於2^n次方,也就算是無限大的,他的種類也是有限的。
成長函數 成長函數的定義是:對於由N個點組成的不一樣集合中,某集合對應的dichotomy最大,那麼這個dichotomy值就是mH(H),它的上界是2N:
而咱們剛剛的例子:
咱們如今要作的就是要討論如何限制成長函數,獲得表達式或者是找到上界。
成長函數的討論
對於一維的positive rays(正射線):
當N = 1 mH(1) = 2 當N = 2 mH(2) = 3 因此他的mH(N) = N + 1
對於一維的positive intervals:
下面推導能夠獲得:
而對於一個凸集合: 他的成長函數就是2^n次方了。
因此能夠看到在某些狀況下,成長函數增加到必定狀況下,會被限制,也就是在那個地方會小於2^n。 而這個點,咱們就稱爲
break point。在這個點和這個點之後,任何兩點都不能被shatter。 shatter的意思:好比你有一把散彈槍,要求你每一關都要一槍打死全部人,第一關的時候,你一槍能夠打死全部人,第二關也能夠,第三關不行了,那麼3就是break point了。 positive rays:N = 1的時候,shatter的狀況就是 這個點等於x,o,而很明顯能夠達到。N = 2的時候,shatter的狀況就是xx ,oo,xo ,ox,而ox是達不到的,因此2就是break point了,而N = 3的時候,就更加不能被shatter了。若是是三分類,那就要求任何三個點都不能被shatter。 其餘的狀況也是同樣:
能不能shatter,就是看他能不能有2^n種分類,三分類就是3^n種了。
mH(N)的限制
如今咱們肯定了,break point絕逼是mH(N)的一個限制,由於在那個點開始就再也不是2^n的規律了。
咱們如今要證實的就是,上界是plot(N)。 對於mH(N),由於不一樣的模型對應的mH(N)不同的,因此直接討論mH(N)是很困難的,咱們能夠找一個上界,要討論mH(N)就直接討論上界就行了。上界咱們設爲B(N , K)。
第一列確定是1了。 當N < K的時候,確定是2^n次方 當N = k的時候,這個時候是第一次不能被shatter的狀況,小於2^n,那就設爲2^n-1吧。其實就是算在N個點K個點不能被shatter的狀況下,有多少種mH(N)。
填上三角其實很簡單,如今填下三角了。 先寫出B(4,3)的因此狀況:
把他劃分下:
上面橙色的做爲a,下面紫色的做爲b,有:
因此咱們能夠獲得:
進一步推廣:
因此整個就是:
最後根據遞推公式,能夠獲得:
因此B(N ,K)的上界知足多項式。
最後咱們就獲得M的上界是一個多項式。 正常的想法是帶回原式:
但這樣是不行的,由於一個M就對應這一個Ein,可是Eout是無限個的,而替換了M成mH(N)以後,這個Ein就是有限的了,兩個級數不一樣是不能夠進行計算的。因此正確的公式:
怎麼證實就不說了。最後的結果咱們叫作
VC bound:
總結一下流程:首先,咱們的M是無限的,如今想要替換成有限個,因而咱們找上界,找到了break point,發現這個點能夠打破指數增加的規律;而對於不一樣的維度模型mH(N)是不一樣的,因而,準備一個上界函數B(N , K),這樣就不用再考慮維度問題了,直接找上界函數便可;以後又找到B(N , K)的上界函數是一個多項式。因而就保證了這個M是可控制的。
VC dimension
順便說一下邊界。 這樣,不等式就只和K,N有關係了。
根據VCbound理論:若是空間H有break point k,且N足夠大,則根據VC bound理論,算法有良好的泛化能力;若是在H空間中有一個g可使得Ein ≈ 0,則全集數據集的錯誤率會偏低。
下面介紹一個新名詞:VC dimension VC Dimension就是某假設集H可以shatter的最多inputs的個數,即最大徹底正確的分類能力。其實就break point - 1。由於break point是最小任何兩個點都不可被shatter的點。 來看一下以前的幾個例子,他們的VC dimension是多少:
其實減1就好了。 如今咱們用VC dimension來代替K,那麼VC bound的問題就轉換成了VC dimension和N的問題,天然就解決了第一個問題——Eout ≈ Ein。
VC dimension of perceptron
已知Perceptrons的k=4,即dvc=3。根據VC Bound理論,當N足夠大的時候,Eout(g) ≈ Ein(g)。若是找到一個g,使Ein(g)≈0,那麼就能證實PLA是能夠學習的。
這是在2D的狀況的狀況下,若是是多維的呢? 1D perceptron , dvc = 2;2D perceptron , dvc = 3,咱們假設,和維度有關,d維,那就是d+1。 要證實只要分兩步: dvc >= d+1 dvc <= d+1
證實dvc >= d+1 在d維裏面,咱們只要找到某一類的d+1個輸入能夠被shatter就能夠了。由於找到一個符合的,其餘就能夠獲得dvc >= d+1。 咱們構造一個可逆的X矩陣:
shatter的本質是假設空間H對X的全部狀況的判斷都是對的,意味着能夠找到權值W知足W*X = Y,而W = X^-1 * Y,因此能夠獲得對於d+1個輸入是能夠被shatter的。
證實dvc <= d+1 在d維裏,若是對於任何的d+2個inputs,必定不能被shatter,則不等式成立。 咱們構造一個任意的矩陣X,其包含d+2個inputs,該矩陣有d+1列,d+2行。這d+2個向量的某一列必定能夠被另外d+1個向量線性表示,例如對於向量Xd+2,可表示爲: Xd+2=a1∗X1+a2∗X2+⋯+ad+1∗Xd+1。因此他的自由度只有d+1,由於肯定了d+1個,d+2個就知道了。 因此綜上所述dvc = d+1
VC dimension的理解
在perceptron中的W,被稱爲是features。W就像按鈕同樣能夠隨意調節,因此也叫自由度。VC Dimension表明了假設空間的分類能力,即反映了H的自由度,產生dichotomy的數量,也就等於features的個數。
好比,2D的perceptron,VC dimension是3,而W就是{W0,W1,W2}。
回到VC bound
上面的VC維告一段落了,回到VC bound。
這是咱們以前推導獲得的VC bound。 根據以前的霍夫丁不等式,若是|Ein−Eout|>ϵ,那麼他發生的機率就不會超過δ;反過來,發生好的機率就是1-δ。 咱們從新推導一下:
因而咱們能夠獲得:
事實上前面的那個咱們並不會太關注他,因此有:
Ω咱們稱爲是模型的複雜度,其模型複雜度與樣本數量N、假設空間H(dvc)、ϵ有關。下面是他們的圖像:
該圖能夠獲得以下結論:
dvc越大,Ein越小,Ω越大(複雜)。
dvc越小,Ein越大,Ω越小(簡單)。
隨着dvc增大,Eout會先減少再增大。 因此並非越複雜的模型越好,這其實就是
過擬合的理論基礎,在訓練集上表現的很好,可是在測試集上就很糟糕。看到這我就知道差很少理解了,舒服!
理解實際問題linear regression to linear lassification
線性迴歸是用來作迴歸擬合的,能不能作分類呢?學習過程也就是找到g ≈ f的過程能夠不用擔憂,由於regression已經證實是可行的了,如今要解決的就是第一個問題---Eout ≈ Ein。 迴歸模型的錯誤是err = (y - y^)^2,而分類模型的錯誤無非就是0和1。
當y = 1:
當y = -1
很明顯,迴歸錯誤大於分類錯誤。 原來的有:
天然根據VC bound原理了。 固然上界更加寬鬆一點了,效果能夠沒有以前的好,可是保證了Eout ≈ Ein的機率。