一弟孟、前言
? ? 熟悉機(jī)器學(xué)習(xí)的童靴會(huì)發(fā)現(xiàn)汁咏,機(jī)器學(xué)習(xí)中許多算法都是如下思路:問題提出亚斋、建立損失函數(shù)(loss function)、求出最優(yōu)解攘滩。最優(yōu)解的求解過程帅刊,往往是個(gè)迭代過程,使損失函數(shù)達(dá)到最優(yōu)(或一定閾值范圍內(nèi))漂问。這里列舉幾類機(jī)器學(xué)習(xí)常見優(yōu)化問題:
? ??可見赖瞒,最優(yōu)化方法在機(jī)器學(xué)習(xí)中的重要地位。本文介紹幾種常用的導(dǎo)數(shù)優(yōu)化方法级解,希望對(duì)更加深入(cui)學(xué)(niu)習(xí)(bi)機(jī)器學(xué)習(xí)有所幫助冒黑。
二、最優(yōu)化問題及凸優(yōu)化問題
2.1 最優(yōu)化問題(optimization)
這里我先直接上度娘
如果對(duì)以上的解釋還有些迷糊勤哗,那看一下如下例題:
例1.
? ? 看完抡爹,我們基本上就都熟悉了,上面的例題是我們在高中一口氣做20道都不會(huì)錯(cuò)的題目(如果忘了怎么解芒划,請(qǐng)翻看《5年高考3年模擬精裝版》)
? ? 以上例1便是一個(gè)典型的最優(yōu)化問題冬竟,更準(zhǔn)確地說,是一個(gè)線性規(guī)劃問題民逼。這里泵殴,我給出最優(yōu)化問題的大白話解釋:
最優(yōu)化問題:
? ? ? ? ? ? ? 1.根據(jù)應(yīng)用場景找到目標(biāo)函數(shù)(如例1中的盈利),這個(gè)目標(biāo)函數(shù)將是你要優(yōu)化的
? ? ? ? ? ? ? 2.找到一個(gè)能讓目標(biāo)函數(shù)最優(yōu)的方法
? ? ? ? ? ? ? 3.利用這個(gè)方法進(jìn)行求解
2.2 最優(yōu)化問題定義及分類
? ? 2.2.1 最優(yōu)化問題定義
? ? 這里,給出最優(yōu)化問題數(shù)學(xué)上形式化的定義:
? ? 其中x為n維向量拼苍,也是我們最終要求出的解;subject to (s.t.)為受限于笑诅,第一項(xiàng)為不等式約束,第二項(xiàng)為等式約束
2.2.1 最優(yōu)化問題的分類
最優(yōu)化問題有多種多樣的分類方法,主要依據(jù)不同的分類角度吆你,這里列舉最簡單的兩種分類
? ? ? ? 1.根據(jù)約束函數(shù)分類:無約束優(yōu)化弦叶、等式約束優(yōu)化、不等式約束優(yōu)化
? ? ? ? 2.根據(jù)目標(biāo)函數(shù)是否為凸:凸優(yōu)化妇多、非凸優(yōu)化
? ? 后面講到的都是無約束+凸的問題伤哺,無約束的凸優(yōu)化是比較好求解(一定有最優(yōu)解)同時(shí)很容易掌握的。
2.3 凸優(yōu)化問題(convex optimization)
? ? 可以看到者祖,凸優(yōu)化問題只是在優(yōu)化問題上加上了凸的限制立莉。之所以要研究凸優(yōu)化問題,是因?yàn)橥箖?yōu)化是一類特別“優(yōu)”的優(yōu)化問題七问,它的優(yōu)體現(xiàn)在:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.凸優(yōu)化問題的可行域是凸集
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2.凸優(yōu)化問題的局部最優(yōu)解均是全局最優(yōu)解
? ? 有關(guān)凸集蜓耻、凸函數(shù)的數(shù)學(xué)解釋不展開講,在求解最優(yōu)化問題時(shí)記住以下形象比喻即可:
? ? ? ? ? ? ? ?1.凸優(yōu)化問題烂瘫,好比你面對(duì)的是一個(gè)峽谷媒熊,只要你一直往下走,一定能達(dá)到峽谷的最低點(diǎn)(最優(yōu)解)
? ? ? ? ? ? ? 2.非凸優(yōu)化坟比,你可能面對(duì)的是一個(gè)坑坑洼洼的大草原芦鳍,你可能走到了某個(gè)低洼地帶(局部最優(yōu)),但這不是整個(gè)草原的最低點(diǎn)(全局最優(yōu))
? ? 常用的線性回歸葛账、邏輯回歸都是凸問題柠衅。值得指出的是,很多童鞋認(rèn)為k-means也是凸問題籍琳,其實(shí)k-means的目標(biāo)函數(shù)是非凸的菲宴,所以k-means不保證能找到全局最優(yōu)解,但每次都能找到局部最優(yōu)解趋急,所以k-means受初始點(diǎn)影響很大喝峦,一般都是多次計(jì)算取最優(yōu)(相當(dāng)于在幾個(gè)局部最優(yōu)解選最優(yōu))。
三呜达、導(dǎo)數(shù)優(yōu)化問題
? ? 前面兩個(gè)章節(jié)谣蠢,我們從最優(yōu)化問題講到了凸優(yōu)化問題,主要還是提綱挈領(lǐng)地講了一些概念性的知識(shí)點(diǎn)查近。那么眉踱,如何具體求解凸優(yōu)化問題呢,本節(jié)主要介紹無約束條件下的導(dǎo)數(shù)優(yōu)化方法霜威。
? ? 導(dǎo)數(shù)優(yōu)化方法的套路都是下降方法(descent method)谈喳,通俗的說,就是以一定的步長戈泼、一定的方向往最優(yōu)解(峽谷底部)靠近婿禽。下降方法的形式化定義如下:
? ? 以上的套路是比較通用的赏僧,不同方法的差異僅僅在搜索方向上。值得說明的是谈宛,如果遵循步子邁太大容易扯著蛋的原則次哈,同時(shí)最優(yōu)步長可計(jì)算的情況下,可以在每次迭代時(shí)選擇最優(yōu)步長吆录,但在實(shí)際應(yīng)用中我們往往也使用固定步長。
? ? ? ? 依據(jù)搜索方向的不同琼牧,可以細(xì)分為許多不同的方法:
? ? 上述(1)~(4)為非常常用的幾類方法恢筝,(1)、(2)巨坊、(3)選擇了三種不同的搜索方向撬槽,(4)在(3)的基礎(chǔ)上做了改進(jìn),主要避免了Hesse矩陣逆的計(jì)算趾撵。由于篇幅所限侄柔,主要講解(1)和(2)
3.1 梯度下降法(Gradient descent/Steepest descent)
例2.
3.2 牛頓法
? ? 在梯度下降法中,我們看到占调,該方法主要利用的是目標(biāo)函數(shù)的局部性質(zhì)暂题,具有一定的“盲目性”。牛頓法則是利用局部的一階和二階偏導(dǎo)信息究珊,推測整個(gè)目標(biāo)函數(shù)的形狀薪者,進(jìn)而可以求得出近似函數(shù)的全局最小值,然后將當(dāng)前的最小值設(shè)定近似函數(shù)的最小值剿涮。相比梯度下降法言津,牛頓法帶有一定對(duì)全局的預(yù)測性,收斂性質(zhì)也更優(yōu)良取试。
對(duì)牛頓方向的推導(dǎo):
? ? 將上述最后一項(xiàng)與下降方法一般式進(jìn)行比較悬槽,會(huì)發(fā)現(xiàn),牛頓法是以牛頓方向?yàn)樗阉鞣较颍?為固定步長進(jìn)行迭代計(jì)算:
? ? ? ? ?優(yōu)點(diǎn):二次終止性瞬浓。對(duì)于二次凸函數(shù)初婆,經(jīng)過有限次迭代必達(dá)到極小點(diǎn)
? ? ? ? ?缺點(diǎn):步長恒等于1,并不能保證函數(shù)值穩(wěn)定的下降
牛頓法迭代步驟:
例3.
? ? 牛頓法適用的情形:要求目標(biāo)函數(shù)具有連續(xù)的一瑟蜈、二階導(dǎo)數(shù)烟逊;Hesse矩陣非奇異。但現(xiàn)實(shí)情況是铺根,就算是滿足以上條件宪躯,由于要求解二階偏導(dǎo)及其逆矩陣,計(jì)算所需資源會(huì)很大位迂,這時(shí)候DFP访雪、BFGS等會(huì)是很好的替代方法详瑞。
四、小結(jié)
? ? 最優(yōu)化方法是機(jī)器學(xué)習(xí)的重要基礎(chǔ)臣缀,上述的方法能很好的解決相關(guān)算法問題坝橡。比如【茫可以利用梯度下降法求解線性回歸以及矩陣分解問題计寇,LR問題也可由牛頓法求解,后續(xù)會(huì)介紹相關(guān)應(yīng)用脂倦。