導言
濃縮就是精華。想要把書寫厚很容易配喳,想要寫薄卻非常難±掖現在已經有這么多經典的機器學習算法,如果能抓住它們的核心本質晴裹,無論是對于理解還是對于記憶都有很大的幫助被济,還能讓你更可能通過面試。在本文中涧团,SIGAI將用一句話來總結每種典型的機器學習算法只磷,幫你抓住問題的本質,強化理解和記憶泌绣。下面我們就開始了钮追。
貝葉斯分類器
核心:將樣本判定為后驗概率最大的類
貝葉斯分類器直接用貝葉斯公式解決分類問題。假設樣本的特征向量為x阿迈,類別標簽為y畏陕,根據貝葉斯公式,樣本屬于每個類的條件概率(后驗概率)為:
分母p(x)對所有類都是相同的仿滔,分類的規(guī)則是將樣本歸到后驗概率最大的那個類,不需要計算準確的概率值犹芹,只需要知道屬于哪個類的概率最大即可崎页,這樣可以忽略掉分母。分類器的判別函數為:
在實現貝葉斯分類器時腰埂,需要知道每個類的條件概率分布p(x|y)即先驗概率飒焦。一般假設樣本服從正態(tài)分布。訓練時確定先驗概率分布的參數,一般用最大似然估計牺荠,即最大化對數似然函數翁巍。
貝葉斯分分類器是一種生成模型,可以處理多分類問題休雌,是一種非線性模型灶壶。
決策樹
核心:一組嵌套的判定規(guī)則
決策樹在本質上是一組嵌套的if-else判定規(guī)則,從數學上看是分段常數函數杈曲,對應于用平行于坐標軸的平面對空間的劃分驰凛。判定規(guī)則是人類處理很多問題時的常用方法,這些規(guī)則是我們通過經驗總結出來的担扑,而決策樹的這些規(guī)則是通過訓練樣本自動學習得到的恰响。下面是一棵簡單的決策樹以及它對空間的劃分結果:
訓練時,通過最大化Gini或者其他指標來尋找最佳分裂涌献。決策樹可以輸特征向量每個分量的重要性胚宦。
決策樹是一種判別模型,既支持分類問題燕垃,也支持回歸問題枢劝,是一種非線性模型(分段線性函數不是線性的)。它天然的支持多分類問題利术。
kNN算法
核心:模板匹配呈野,將樣本分到離它最相似的樣本所屬的類
kNN算法本質上使用了模板匹配的思想。要確定一個樣本的類別印叁,可以計算它與所有訓練樣本的距離被冒,然后找出和該樣本最接近的k個樣本,統(tǒng)計這些樣本的類別進行投票轮蜕,票數最多的那個類就是分類結果昨悼。下圖是kNN算法的示意圖:
在上圖中有紅色和綠色兩類樣本。對于待分類樣本即圖中的黑色點跃洛,尋找離該樣本最近的一部分訓練樣本率触,在圖中是以這個矩形樣本為圓心的某一圓范圍內的所有樣本。然后統(tǒng)計這些樣本所屬的類別汇竭,在這里紅色點有12個葱蝗,圓形有2個,因此把這個樣本判定為紅色這一類细燎。
kNN算法是一種判別模型两曼,即支持分類問題,也支持回歸問題玻驻,是一種非線性模型悼凑。它天然的支持多分類問題。kNN算法沒有訓練過程,是一種基于實例的算法户辫。
PCA
核心:向重構誤差最薪タ洹(方差最大)的方向做線性投影
PCA是一種數據降維和去除相關性的方法,它通過線性變換將向量投影到低維空間渔欢。對向量進行投影就是讓向量左乘一個矩陣得到結果向量墓塌,這是線性代數中講述的線性變換:
y = Wx
降維要確保的是在低維空間中的投影能很好的近似表達原始向量,即重構誤差最小化膘茎。下圖是主分量投影示意圖:
在上圖中樣本用紅色的點表示桃纯,傾斜的直線是它們的主要變化方向。將數據投影到這條直線上即完成數據的降維披坏,把數據從2維降為1維态坦。計算最佳投影方向時求解的最優(yōu)化問題為:
最后歸結為求協方差矩陣的特征值和特征向量:
PCA是一種無監(jiān)督的學習算法,它是線性模型棒拂,不能直接用于分類和回歸問題伞梯。
LDA
核心:向最大化類間差異、最小化類內差異的方向線性投影
線性鑒別分析的基本思想是通過線性投影來最小化同類樣本間的差異帚屉,最大化不同類樣本間的差異谜诫。具體做法是尋找一個向低維空間的投影矩陣W,樣本的特征向量x經過投影之后得到的新向量:
y = Wx
同一類樣投影后的結果向量差異盡可能小攻旦,不同類的樣本差異盡可能大喻旷。直觀來看,就是經過這個投影之后同一類的樣本進來聚集在一起牢屋,不同類的樣本盡可能離得遠且预。下圖是這種投影的示意圖:
上圖中特征向量是二維的,我們向一維空間即直線投影烙无,投影后這些點位于直線上锋谐。在上面的圖中有兩類樣本,通過向右上方的直線投影截酷,兩類樣本被有效的分開了涮拗。綠色的樣本投影之后位于直線的下半部分,紅色的樣本投影之后位于直線的上半部分迂苛。
訓練時的優(yōu)化目標是類間差異與類內差異的比值:
最后歸結于求解矩陣的特征值與特征向量:
LDA是有監(jiān)督的機器學習算法三热,在計算過程中利用了樣本標簽值。這是一種判別模型三幻,也是線性模型就漾。LDA也不能直接用于分類和回歸問題,要對降維后的向量進行分類還需要借助其他算法赌髓,如kNN。
LLE(流形學習)
核心:用一個樣本點的鄰居的線性組合近似重構這個樣本,將樣本投影到低維空間中后依然保持這種線性組合關系
局部線性嵌入(簡稱LLE)將高維數據投影到低維空間中锁蠕,并保持數據點之間的局部線性關系夷野。其核心思想是每個點都可以由與它相近的多個點的線性組合來近似,投影到低維空間之后要保持這種線性重構關系荣倾,并且有相同的重構系數悯搔。
算法的第一步是求解重構系數,每個樣本點xi可以由它的鄰居線性表示舌仍,即如下最優(yōu)化問題:
這樣可以得到每個樣本點與它鄰居節(jié)點之間的線性組合系數妒貌。接下來將這個組合系數當做已知量,求解下面的最優(yōu)化問題完成向量投影:
這樣可以得到向量y铸豁,這就是投影之后的向量灌曙。
LLE是一種無監(jiān)督的機器學習算法,它是一種非線性降維算法节芥,不能直接用于分類或者回歸問題在刺。
等距映射(流形學習)
核心:將樣本投影到低維空間之后依然保持相對距離關系
等距映射使用了微分幾何中測地線的思想耻台,它希望數據在向低維空間映射之后能夠保持流形上的測地線距離次乓。所謂測地線,就是在地球表面上兩點之間的最短距離對應的那條弧線负间。直觀來看相艇,就是投影到低維空間之后颖杏,還要保持相對距離關系,即投影之前距離遠的點坛芽,投影之后還要遠留储,投影之前相距近的點,投影之后還要近靡馁。
我們可以用將地球儀的三維球面地圖投影為二維的平面地圖來理解:
投影成平面地圖后為:
在投影之前的地球儀上欲鹏,美國距離中國遠,泰國距離中國近臭墨,投影成平面地圖之后赔嚎,還要保持這種相對遠近關系。
等距映射是一種無監(jiān)督學習算法胧弛,是一種非線性降維算法尤误。
人工神經網絡
核心:一個多層的復合函數
人工神經網絡在本質上是一個多層的復合函數:
它實現了從向量x到向量y的映射。由于使用了非線性的激活函數f结缚,這個函數是一個非線性函數损晤。
神經網絡訓練時求解的問題不是凸優(yōu)化問題。反向傳播算法由多元復合函數求導的鏈式法則導出红竭。
標準的神經網絡是一種有監(jiān)督的學習算法尤勋,是一種非線性模型喘落,它既可以用于分類問題,也可以用于回歸問題最冰,天然的支持多分類問題瘦棋。
支持向量機
核心:最大化分類間隔的線性分類器(不考慮核函數)
支持向量機的目標是尋找一個分類超平面,它不僅能正確的分類每一個樣本暖哨,并且要使得每一類樣本中距離超平面最近的樣本到超平面的距離盡可能遠赌朋。
訓練時求解的原問題為:
對偶問題為:
對于分類問題,預測函數為:
如果不使用非線性核函數篇裁,SVM是一個線性模型沛慢。使用核函數之后,SVM訓練時求解的對偶問題為:
對于分類問題达布,預測函數為:
如果使用非線性核团甲,SVM是一個非線性模型。
訓練時求解的問題是凸優(yōu)化問題往枣,求解采用了SMO算法伐庭,這是一種分治法,每次挑選出兩個變量進行優(yōu)化分冈,其他變量保持不動圾另。選擇優(yōu)化變量的依據是KKT條件,對這兩個變量的優(yōu)化是一個二次函數極值問題雕沉,可以直接得到公式解集乔。
SVM是一種判別模型。它既可以用于分類問題坡椒,也可以用于回歸問題扰路。標準的SVM只能支持二分類問題,使用多個分類器的組合倔叼,可以解決多分類問題汗唱。
logistic回歸
核心:直接從樣本估計出它屬于正負樣本的概率
通過先將向量進行線性加權,然后計算logistic函數丈攒,可以得到[0,1]之間的概率值哩罪,它表示樣本x屬于正樣本的概率:
正樣本標簽值為1,負樣本為0巡验。訓練時际插,求解的的是對數似然函數:
這是一個凸優(yōu)化問題,求解時可以用梯度下降法显设,也可以用牛頓法框弛。
logistic回歸是一種判別模型,需要注意的是它是一種線性模型捕捂,用于二分類問題瑟枫。
隨機森林
核心:用有放回采樣的樣本訓練多棵決策樹斗搞,訓練決策樹的每個節(jié)點是只用了無放回抽樣的部分特征,預測時用這些樹的預測結果進行投票
隨機森林是一種集成學習算法慷妙,它由多棵決策樹組成榜旦。這些決策樹用對訓練樣本集隨機抽樣構造出樣本集訓練得到。隨機森林不僅對訓練樣本進行抽樣景殷,還對特征向量的分量隨機抽樣,在訓練決策樹時澡屡,每次分裂時只使用一部分抽樣的特征分量作為候選特征進行分裂猿挚。
對于分類問題,一個測試樣本會送到每一棵決策樹中進行預測驶鹉,然后投票绩蜻,得票最多的類為最終分類結果。對于回歸問題隨機森林的預測輸出是所有決策樹輸出的均值室埋。
假設有n個訓練樣本办绝。訓練每一棵樹時,從樣本集中有放回的抽取n個樣本姚淆,每個樣本可能會被抽中多次孕蝉,也可能一次都沒抽中。用這個抽樣的樣本集訓練一棵決策樹腌逢,訓練時降淮,每次尋找最佳分裂時,還要對特征向量的分量采樣搏讶,即只考慮部分特征分量佳鳖。
隨機森林是一種判別模型,既支持分類問題媒惕,也支持回歸問題系吩,并且支持多分類問題。這是一種非線性模型妒蔚。
AdaBoost算法
核心:用多棵決策樹的線性組合來預測穿挨,訓練時重點關注錯分的樣本,準確率高的弱分類器權重大
AdaBoost算法的全稱是自適應boosting(Adaptive Boosting)面睛,是一種用于二分類問題的算法絮蒿,它用弱分類器的線性組合來構造強分類器。弱分類器的性能不用太好叁鉴,僅比隨機猜測強土涝,依靠它們可以構造出一個非常準確的強分類器。強分類器的計算公式為:
其中x是輸入向量幌墓,F(x)是強分類器但壮,ft(x)是弱分類器冀泻,at是弱分類器的權重,T為弱分類器的數量蜡饵,弱分類器的輸出值為+1或-1弹渔,分別對應正樣本和負樣本。分類時的判定規(guī)則為:
強分類器的輸出值也為+1或-1溯祸,同樣對應于正樣本和負樣本肢专。
訓練時,依次訓練每一個若分類器焦辅,并得到它們的權重值博杖。在這里,訓練樣本帶有權重值筷登,初始時所有樣本的權重相等剃根,在訓練過程中,被前面的弱分類器錯分的樣本會加大權重前方,反之會減小權重狈醉,這樣接下來的弱分類器會更加關注這些難分的樣本。弱分類器的權重值根據它的準確率構造惠险,精度越高的弱分類器權重越大苗傅。
AdaBoost算法從廣義加法模型導出,訓練時求解的是指數損失函數的極小值:
L(y, F(x)) = exp(-yF(x))
求解時采用了分階段優(yōu)化班巩,先得到弱分類器金吗,然后確定弱分類器的權重值。
標準的AdaBoost算法是一種判別模型趣竣,只能支持二分類問題摇庙。它的改進型可以處理多分類問題。
卷積神經網絡
核心:一個共享權重的多層復合函數
卷積神經網絡在本質上也是一個多層復合函數遥缕,但和普通神經網絡不同的是它的某些權重參數是共享的卫袒,另外一個特點是它使用了池化層。訓練時依然采用了反向傳播算法单匣,求解的問題不是凸優(yōu)化問題夕凝。
和全連接神經網絡一樣,卷積神經網絡是一個判別模型户秤,它既可以用于分類問題码秉,也可以用用于回歸問題,并且支持多分類問題鸡号。
循環(huán)神經網絡
核心:綜合了復合函數和遞推數列的一個函數
和普通神經網絡最大的不同在于转砖,循環(huán)神經網絡是一個遞推的數列,因此具有了記憶功能鲸伴「幔回憶我們高中時所學的等差數列:
一旦數列的首項a0以及公差d已經確定晋控,則后面的各項也確定了,這樣后面各項完全沒有機會改變自己的命運姓赤。循環(huán)神經網絡也是這樣一個遞推數列赡译,后一項由前一項的值決定,但除此之外還接受了一個次的輸入值不铆,這樣本次的輸出值既和之前的數列值有關蝌焚,由于當前時刻的輸入值有關,有機會通過當前輸入值改變自己的命運:
和其他類型的神經網絡一樣誓斥,循環(huán)神經網絡是一個判別模型综看,既支持分類問題,也支持回歸問題岖食,并且支持多分類問題。
K均值算法
核心:把樣本分配到離它最近的類中心所屬的類舞吭,類中心由屬于這個類的所有樣本確定
k均值算法是一種無監(jiān)督的聚類算法泡垃。算法將每個樣本分配到離它最近的那個類中心所代表的類,而類中心的確定又依賴于樣本的分配方案羡鸥。這是一個先有雞還是先有蛋的問題蔑穴。
在實現時,先隨機初始化每個類的類中心惧浴,然后計算樣本與每個類的中心的距離存和,將其分配到最近的那個類,然后根據這種分配方案重新計算每個類的中心衷旅。這也是一種分階段優(yōu)化的策略捐腿。
k均值算法要求解的問題是一個NPC問題,只能近似求解柿顶,有陷入局部極小值的風險茄袖。
原創(chuàng)聲明:本文為SIGAI原創(chuàng)文章,僅供個人學習使用嘁锯,未經允許宪祥,不得轉載,不能用于商業(yè)目的家乘。
推薦閱讀
[1]機器學習-波瀾壯闊40年SIGAI2018.4.13.
[2]學好機器學習需要哪些數學知識蝗羊?SIGAI2018.4.17.
[3]人臉識別算法演化史SIGAI2018.4.20.
[4]基于深度學習的目標檢測算法綜述SIGAI2018.4.24.
[5]卷積神經網絡為什么能夠稱霸計算機視覺領域?SIGAI2018.4.26.
[6]用一張圖理解SVM的脈絡?SIGAI2018.4.28.
[7]人臉檢測算法綜述SIGAI2018.5.3.
[8]理解神經網絡的激活函數SIGAI2018.5.5.
[9]深度卷積神經網絡演化歷史及結構改進脈絡-40頁長文全面解讀SIGAI???????2018.5.8.
[10]理解梯度下降法SIGAI2018.5.11
[11]循環(huán)神經網絡綜述—語音識別與自然語言處理的利器SIGAI2018.5.15
[12]理解凸優(yōu)化SIGAI 2018.5.18
[13]【實驗】理解SVM的核函數和參數SIGAI2018.5.22
[14]【SIGAI綜述】 行人檢測算法SIGAI 2018.5.25
[15]機器學習在自動駕駛中的應用—以百度阿波羅平臺為例(上)SIGAI 2018.5.29
[16]理解牛頓法SIGAI2018.5.31
[17]【群話題精華】5月集錦—機器學習和深度學習中一些值得思考的問題?SIGAI 2018.6.1
[18]大話Adaboost算法SIGAI 2018.6.1
[19]FlowNet到FlowNet2.0:基于卷積神經網絡的光流預測算法SIGAI 2018.6.4
[20]理解主成分分析法(PCA)SIGAI 2018.6.6
[21]人體骨骼關鍵點檢測SIGAI 2018.6.8
[22]理解決策樹SIGAI 2018.6.11
作者:SIGAI
鏈接:http://www.reibang.com/p/6dbb57e41ed0
來源:簡書
簡書著作權歸作者所有仁锯,任何形式的轉載都請聯系作者獲得授權并注明出處耀找。