一、 線性回歸與邏輯回歸: 機(jī)器學(xué)習(xí)中的監(jiān)督部分大多從樣本數(shù)據(jù)開始,首先構(gòu)建滿足一定假設(shè)且邏輯合理、理論完備的“帶參”假設(shè)函數(shù),定義該假設(shè)函數(shù)下評(píng)價(jià)模型好壞的損失函數(shù),然后代入樣本使用迭代更新(牛頓或梯度下降法)或代數(shù)法(直接求解最優(yōu)參數(shù)表達(dá)式),求解最小化損失函數(shù)下的參數(shù)取值,最終使用該假設(shè)函數(shù)預(yù)測(cè)新樣本數(shù)值或類別。線性回歸是最簡(jiǎn)單的機(jī)器學(xué)習(xí)算法,它最重要的假設(shè)是定義自變量x無(wú)誤差(噪聲),同時(shí)因變量y的誤差e滿足均值為0的正態(tài)分布,方差齊性,且與自變量無(wú)關(guān),在此假設(shè)下構(gòu)建線性假設(shè)函數(shù),求解最小化時(shí)的參數(shù)向量a,最終利用對(duì)新輸入特征作預(yù)測(cè)。但線性回歸預(yù)測(cè)的結(jié)果是連續(xù)的,并不能解決監(jiān)督學(xué)習(xí)中最普遍的分類問題。那有沒有辦法利用回歸的思想來(lái)構(gòu)建分類模型呢?答案是邏輯回歸:使用logit變換的回歸算法。其實(shí)算法本身很簡(jiǎn)單,無(wú)非是將樣本數(shù)據(jù)代入后,再,最后根據(jù)g(z)的大小來(lái)決定類別歸屬,閾值通常取0.5。仔細(xì)思考整個(gè)學(xué)習(xí)過程,有4個(gè)顯而易見的問題: 1、為什么它是一個(gè)回歸問題; 2、為什么要構(gòu)建回歸方程后才代入g(z),即sigmoid函數(shù); 3、為什么要使用g(z)而不使用別的; 4、為什么使用最大似然而不是最小二乘求解系數(shù)。 首先介紹廣義線性模型對(duì)其概率函數(shù)的3個(gè)假設(shè):(3)指數(shù)分布集中的參數(shù),即滿足回歸條件。前3個(gè)問題,從理論上講,線性回歸模型認(rèn)為誤差項(xiàng)e服從均值為0的正態(tài)分布,因此,在給定x和時(shí),因變量y也服從均值為的正態(tài)分布。邏輯回歸模型假定y服從伯努利分布,兩者均滿足廣義線性模型第一條假設(shè)。于是,將兩者的概率密度函數(shù)寫成指數(shù)分布集的形式并對(duì)應(yīng)各部分,同時(shí)利用正態(tài)分布和伯努利分布的特點(diǎn),前3個(gè)問題迎刃而解,具體可參考吳恩達(dá)廣義線性模型部分的筆記。直觀上,邏輯回歸建立的初衷是如何使用回歸方法求解二分類問題,如何將無(wú)窮定義域上的x映射為y=1的概率,如何使得y屬于正類時(shí)p(y|x)盡可能趨近于1,屬于負(fù)類時(shí)趨近于0才是問題的關(guān)鍵。正巧sigmoid函數(shù)滿足上述一切條件,僅此而已。 第4個(gè)問題,線性回歸模型可以從最大似然的角度解釋,只是它從誤差項(xiàng)e服從0均值正態(tài)分布的假定出發(fā),構(gòu)建誤差項(xiàng)的最大似然函數(shù),同樣可以得到與最小二乘法一模一樣的最優(yōu)解。而邏輯回歸的目的是確定y的類別歸屬,屬于二分類問題,因此就無(wú)法使用經(jīng)典回歸連續(xù)y的最小二乘法,改用最大似然或重新構(gòu)建損失函數(shù)的方法了,最終發(fā)現(xiàn)又是殊途同歸,求解同一個(gè)最優(yōu)化問題。 需要注意的是,在邏輯回歸中,由于sigmoid函數(shù)的特殊性,平方誤差非凸,因此只能考慮其他的損失函數(shù)類型,即log誤差,來(lái)構(gòu)建損失函數(shù)。特別的,任何一個(gè)樣本數(shù)據(jù)都可以通過添加其他特征或提升特征的冪次等提升特征維度的方式完美擬合,但這極易產(chǎn)生過擬合,模型范化能力丟失,俗稱“維度詛咒”。因此,任何優(yōu)雅的最優(yōu)化問題都不應(yīng)該僅僅是使誤差最小化,還要考慮模型的范化能力,避免過擬合,所以損失函數(shù)通常會(huì)在基本誤差函數(shù)的基礎(chǔ)上添加一個(gè)正則化項(xiàng)。其中,L1正則化lasso,它有棱有角的凸集可以稀疏模型特征系數(shù),即在參數(shù)估計(jì)的同時(shí)完成模型選擇,但缺點(diǎn)在于無(wú)法直接得到解析解,只能通過數(shù)值迭代求解。L2正則化ridge則是剛好相反,它可以快速得到參數(shù)的解析解,但參數(shù)估計(jì)完成后還需要額外處理模型選擇。 最后就是如何從邏輯回歸的二分類問題擴(kuò)展到多分類。通常可以使用one vs. one和one vs. rest方式來(lái)擴(kuò)展。前者關(guān)注將多類別中的任意2類分開,而不管其他,再重復(fù)迭代;后者關(guān)心將1類從其他類別中分開,再反復(fù)處理。 二、 深入理解SVM: 機(jī)器學(xué)習(xí)理論中首先要明確一個(gè)方法的Big Ideas,正如在編程領(lǐng)域中先將算法思想可以用偽代碼的方式描述出來(lái)一樣,Big Ideas表示整個(gè)學(xué)習(xí)方法的Intuition,而數(shù)學(xué)僅僅是描述這種Intuition的工具而已。因此,機(jī)器學(xué)習(xí)中數(shù)學(xué)的作用在于,先要知道什么問題可以用數(shù)學(xué)解決并大致了解如何解決。 因?yàn)镚arbage In, Garbage Out的古話,機(jī)器學(xué)習(xí)關(guān)注最多的一個(gè)問題就是如何預(yù)處理原始數(shù)據(jù),將樣本特征有效提取出來(lái)喂給模型。比如,神經(jīng)網(wǎng)絡(luò)模型就是利用卷積的方法優(yōu)化了原始數(shù)據(jù)的特征表示。若某一種機(jī)器學(xué)習(xí)算法能比其他方法在某一類現(xiàn)實(shí)問題上有更強(qiáng)的表現(xiàn),即Killer App,通常就會(huì)大受歡迎。在神經(jīng)網(wǎng)絡(luò)最熱的時(shí)間里,能更有效解決手寫識(shí)別問題的SVM橫空出世。 監(jiān)督學(xué)習(xí)和決策邊界:不同的機(jī)器學(xué)習(xí)算法有各自不同的決策邊界,即在特征空間中區(qū)分樣本的方式不同。比如,決策樹算法中通常選取與特征空間坐標(biāo)軸平行的線面為決策邊界,而KNN通常會(huì)以一個(gè)大致單調(diào)的線面區(qū)分。決策邊界也大致奠定了學(xué)習(xí)模型背后的數(shù)學(xué)思路,所以SVM就新提出了一種決策邊界的區(qū)分方式— 最大間隔! 假設(shè)在線性可分的樣本空間中,如何定義模型對(duì)樣本區(qū)分的優(yōu)劣呢?以二維特征空間的二分類問題為例,SVM提出在分割線兩側(cè),最接近的樣本要離該分割線最遠(yuǎn)。即,分割線兩側(cè)存在這樣一個(gè)閾值,閾值內(nèi)無(wú)任何其他樣本,同時(shí)該閾值越大越好。數(shù)學(xué)上表示為為正樣本,為負(fù)樣本。w表示與分割線垂直的法向量,u為特征空間中的坐標(biāo),b代表分割線上任意點(diǎn)在w方向上的投影,1為增強(qiáng)模型魯棒性的歸一化指標(biāo),算法目標(biāo)就是求解w與b。 決策公式:上述兩個(gè)最大間隔表示為,其中(y=1:正樣本; y=-1:負(fù)樣本)。所以,當(dāng) 時(shí),表示樣本正好落在最大間隔上,即為最大間隔上的樣本點(diǎn)。(請(qǐng)注意,這里并不一定是支持向量?。?/p> 目標(biāo)函數(shù):目標(biāo)是最大間隔上樣本點(diǎn)的投影差最大,即距離最遠(yuǎn)。投影差= ,其中w為與分割線垂直的法向量,u和u’分別為y=1和-1的最大間隔點(diǎn)。將決策公式代入投影差化簡(jiǎn)= 。因此,要使投影差最大,即|w|最小,考慮到凸函數(shù)與優(yōu)化的方便性,最終的目標(biāo)函數(shù)= 。 優(yōu)化理論:最優(yōu)化拉格朗日L=,分別求出w和b偏導(dǎo)=0的極值條件得: ,將其反代入L求得L’,因此原問題就轉(zhuǎn)換為求解各自樣本點(diǎn)所對(duì)應(yīng) 的對(duì)偶問題,原問題的定義域是樣本空間內(nèi)的所有點(diǎn),而可行域是最大間隔樣本點(diǎn)。機(jī)器學(xué)習(xí)的意義之一就是拿著最優(yōu)化的結(jié)論代入機(jī)器學(xué)習(xí)的目標(biāo)中,有時(shí)會(huì)窺見某些專屬于機(jī)器學(xué)習(xí)新世界里的東西。 比如這里:1,L’中,表示在SVM里并不關(guān)心樣本點(diǎn)x本身,而是關(guān)注不同樣本點(diǎn)間的內(nèi)積。2,將其代入到?jīng)Q策公式中,我們又發(fā)現(xiàn),當(dāng)新樣本到來(lái)時(shí),只需要將其與最大間隔上的樣本點(diǎn)做內(nèi)積再附上各自的權(quán)重系數(shù)求和,即可判斷樣本的類別,其中的權(quán)重系數(shù)為對(duì)應(yīng)的,Duang!原來(lái)只要寥寥幾個(gè)的支撐向量就能分類!此處的內(nèi)積又被稱作核函數(shù),當(dāng)我們拍腦袋將內(nèi)積變換為新的核函數(shù)時(shí),就變換成另外一種形式的決策邊界,它或許可以有效解決其他問題,這就是核函數(shù)在SVM中大行其道的原因。SMO算法:由于原始求w和b的問題經(jīng)L->L’,轉(zhuǎn)變?yōu)榈膯栴},它可以使用SMO算法求解。SMO本質(zhì)上是一種“變化了的”梯度上升算法。傳統(tǒng)梯度上升假設(shè)固定其他所有的,將且僅將當(dāng)作變量,求解問題最優(yōu)值,反復(fù)迭代直至所有的被解出。但由于L’限制條件為的特殊性,必須要保持兩個(gè)和變化才能迭代求解!但需要特別注意的是,有時(shí)對(duì)于同一組支撐向量,會(huì)求出不唯一的,這是因?yàn)橹蜗蛄繕颖镜娜哂?,此時(shí)數(shù)據(jù)矩陣的秩小于樣本個(gè)數(shù),核矩陣也半正定,SMO算法輸出的是第一個(gè)被找到的點(diǎn),但好消息是,對(duì)SVM這類凸優(yōu)化問題來(lái)說(shuō),由不同的反推出的w和b是唯一的,專門有一篇NIPS論文討論了這個(gè)問題。與邏輯回歸的關(guān)系:當(dāng)SVM相對(duì)成熟以后,人們發(fā)現(xiàn)SVM與前文介紹的邏輯回歸有一定關(guān)聯(lián)。邏輯回歸通常設(shè)定為閾值,但SVM認(rèn)為,這還不夠,必須在p=0.5對(duì)應(yīng)的左右兩側(cè)再設(shè)置一個(gè)margin,使得當(dāng)且僅當(dāng)特別大時(shí)為正樣本,特別小時(shí)為負(fù)樣本。因此,從邏輯回歸出發(fā),又能推得SVM損失函數(shù)的另一種形式,俗稱Hinge Loss。但本質(zhì)上,它與上文所介紹的方法完全等價(jià)??偨Y(jié):在大數(shù)據(jù)橫行的今天,時(shí)間復(fù)雜度的SVM或許已不太重要,當(dāng)數(shù)據(jù)量在3萬(wàn)以上時(shí)普通PC無(wú)法完成,但為何SVM仍然是研究機(jī)器學(xué)習(xí)的初學(xué)者都應(yīng)該掌握的算法呢? 因?yàn)?span>SVM僅僅根據(jù)“最大間隔”就將如此美妙的數(shù)學(xué)推導(dǎo)與機(jī)器學(xué)習(xí)理論完美的糅合在一起,實(shí)在讓人嘆為觀止。 |
|