<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          機(jī)器學(xué)習(xí)與優(yōu)化基礎(chǔ)(Machine Learning and Optimization)

          共 7209字,需瀏覽 15分鐘

           ·

          2021-05-20 17:57

          點(diǎn)擊上方小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          本文轉(zhuǎn)自|新機(jī)器視覺(jué)
          引用大佬Pedro Domingos的說(shuō)法:機(jī)器學(xué)習(xí)其實(shí)就是由模型的表示,優(yōu)化和模型評(píng)估三部分組成。將一個(gè)實(shí)際問(wèn)題轉(zhuǎn)化為待求解的模型,利用優(yōu)化算法求解模型,利用驗(yàn)證或測(cè)試數(shù)據(jù)評(píng)估模型,循環(huán)這三個(gè)步驟直到得到滿(mǎn)意的模型。

          因此,優(yōu)化算法在機(jī)器學(xué)習(xí)中起著一個(gè)承上啟下的作用!

          一般機(jī)器學(xué)習(xí)中涉及的優(yōu)化命題可以表示為:

          比如:

          • 最小二乘回歸
          • 嶺回歸
          • LASSO:
          • 支持向量機(jī)
          • 正則化邏輯斯蒂回歸
          還有等等等等機(jī)器學(xué)習(xí)算法也是類(lèi)似的。

          優(yōu)化算法基礎(chǔ)

          優(yōu)化算法的階次

          所謂優(yōu)化算法的階次其實(shí)指的是優(yōu)化過(guò)程利用的是
          1. 目標(biāo)函數(shù)本身(零階) 
          2. 梯度信息(一階) 
          3. hessian信息(二階) 
          中的哪些信息。
          如果函數(shù)形式未知、梯度難以求或不存在的時(shí)候常常采用零階優(yōu)化算法;在機(jī)器學(xué)習(xí)領(lǐng)域中一般一階算法使用較多,二階算法可能收斂更快但計(jì)算花費(fèi)也更大。

          優(yōu)化算法的常見(jiàn)組成

          梯度下降

          在理解梯度下降法之前,再給大家復(fù)習(xí)一下幾個(gè)非常容易混淆的概念:導(dǎo)數(shù)是一元函數(shù)的變化率(斜率)。如果是多元函數(shù)呢?則為偏導(dǎo)數(shù)。偏導(dǎo)數(shù)是多元函數(shù)“退化”成一元函數(shù)時(shí)的導(dǎo)數(shù),這里“退化”的意思是固定其他變量的值,只保留一個(gè)變量,依次保留每個(gè)變量,則   元函數(shù)有   個(gè)偏導(dǎo)數(shù)。如果是方向不是沿著坐標(biāo)軸方向,而是任意方向呢?則為方向?qū)?shù)。換句話說(shuō),偏導(dǎo)數(shù)為坐標(biāo)軸方向上的方向?qū)?shù),其他方向的方向?qū)?shù)為偏導(dǎo)數(shù)的合成。而偏導(dǎo)數(shù)構(gòu)成的向量就稱(chēng)為梯度

          梯度方向是函數(shù)增長(zhǎng)速度最快的方向,那么梯度的反方向就是函數(shù)減小最快的方向。因此,如果想要計(jì)算函數(shù)的最小值,就可以用梯度下降的思想來(lái)做。假設(shè)目標(biāo)函數(shù)的梯度為  ,當(dāng)前點(diǎn)的位置為  ,則下一個(gè)點(diǎn)的選擇與當(dāng)前點(diǎn)的位置和它的梯度相關(guān)

          其中   為學(xué)習(xí)率,可以隨著每次迭代改變。(就拓展出了許多相關(guān)的算法AdaGrad、RMSProp、Adam等)

          近端映射(proximal operator)

          當(dāng)目標(biāo)函數(shù)存在不可微部分,常會(huì)采用近端梯度下降法。比如   ,其中  是凸的且可微,   是凸的但是不可微或者局部不可微。由于   不可微,我們不能直接用梯度下降法來(lái)尋優(yōu)(PS:次梯度算法可以,就是慢了點(diǎn)),因此近端算法考慮的是將   進(jìn)行近端映射。

          函數(shù)  的近端映射可以定義為

          拿個(gè)機(jī)器學(xué)習(xí)中常見(jiàn)的  范數(shù)給大家舉個(gè)例子,  (一范數(shù)就是各元素絕對(duì)值之和),對(duì)應(yīng)的近端映射表示為

          這個(gè)優(yōu)化問(wèn)題是可分解的!也就是對(duì)每一個(gè)維度求最小值

          對(duì)  的正負(fù)進(jìn)行分類(lèi)討論,然后利用一階最優(yōu)條件(求導(dǎo)令導(dǎo)數(shù)為零)可得

          這通常也被稱(chēng)作軟閾值(soft thresholding)。

          因此近端梯度算法也就是

          對(duì)偶(dual)

          在求解一個(gè)優(yōu)化命題時(shí),如果其對(duì)偶形式便于求解,常??梢酝ㄟ^(guò)求解對(duì)偶問(wèn)題來(lái)避免直接對(duì)原問(wèn)題進(jìn)行求解。比如機(jī)器學(xué)習(xí)中典型的SVM就涉及到對(duì)偶理論,以及拉格朗日乘子法、KKT條件等概念。首先簡(jiǎn)單通俗地說(shuō)說(shuō)這幾個(gè)概念是干嘛的
          1. 對(duì)偶理論:對(duì)偶也就是孿生雙胞胎,一個(gè)優(yōu)化命題也就有其對(duì)應(yīng)的兄弟優(yōu)化命題。
          2. 拉格朗日函數(shù):將原本優(yōu)化命題的目標(biāo)函數(shù)和約束整合成一個(gè)函數(shù)。
          3. KKT條件:函數(shù)的最優(yōu)值滿(mǎn)足的性質(zhì)。
          如果原問(wèn)題是凸問(wèn)題,則KKT條件為充要條件,也就是說(shuō)滿(mǎn)足KKT條件的點(diǎn)也就是原問(wèn)題和對(duì)偶問(wèn)題的最優(yōu)解,那就能夠在滿(mǎn)足KKT條件下用求解對(duì)偶問(wèn)題來(lái)替代求解原問(wèn)題。(具體推導(dǎo)和細(xì)節(jié)就不展開(kāi)了,下次可以單獨(dú)寫(xiě)一篇)

          隨機(jī)化

          當(dāng)遇到大規(guī)模問(wèn)題時(shí),如果使用梯度下降法(批量梯度下降法),那么每次迭代過(guò)程中都要對(duì)個(gè)樣本進(jìn)行求梯度,所以開(kāi)銷(xiāo)非常大,隨機(jī)梯度下降的思想就是隨機(jī)采樣一個(gè)樣本來(lái)更新參數(shù),那么計(jì)算開(kāi)銷(xiāo)就從 下降到 。

          無(wú)約束問(wèn)題的典型算法

          梯度下降法

          上面提到過(guò)了就不重復(fù)了。

          共軛梯度法

          梯度下降法可能存在的一個(gè)問(wèn)題是為了收斂到解附近,同樣的迭代方向可能走了不止一次(導(dǎo)致收斂慢)。共軛梯度就可以理解為選擇一系列線性無(wú)關(guān)的方向去求得最優(yōu)解。因此共軛梯度法把共軛性與最速下降方法相結(jié)合,利用已知點(diǎn)處的梯度構(gòu)造一組共軛方向,并沿這組方向進(jìn)行搜素,求出目標(biāo)函數(shù)的極小點(diǎn)。

          方向的構(gòu)造方法為:

          其中當(dāng)初始化的時(shí)候相當(dāng)于梯度下降法(因?yàn)槌跏紩r(shí)刻只有梯度方向)。這里未知項(xiàng)是這個(gè)系數(shù)  ,它的計(jì)算公式為

          有了搜索方向,那么每次次迭代為

          擬牛頓法

          在說(shuō)擬牛頓法前先簡(jiǎn)單介紹一下牛頓法,牛頓法最初是為了求解方程的根而推導(dǎo)出來(lái)的公式。它的主要思想是基于當(dāng)前位置的切線來(lái)確定下一次的位置。比如要求   的解,可以迭代求解
          如果對(duì)應(yīng)到求解優(yōu)化命題,我們要使得   取最小值,也就是函數(shù)的一階導(dǎo)數(shù)為零   ,帶入牛頓法求根公式就是
          由于牛頓法每次都要計(jì)算二階導(dǎo)數(shù)(Hessian矩陣)的逆,計(jì)算量太大了,因此有了擬牛頓法。簡(jiǎn)單的說(shuō),擬牛頓法其實(shí)就是用近似Hessian矩陣來(lái)進(jìn)行迭代
          比如說(shuō)令   ,再利用擬牛頓條件(對(duì)一階導(dǎo)數(shù)進(jìn)行泰勒展開(kāi))對(duì)近似矩陣進(jìn)行修正就可以避免Hessian矩陣的求逆了。因此每次迭代為
          在實(shí)際應(yīng)用當(dāng)中,使用最為廣泛的擬牛頓法應(yīng)該是L-BFGS算法了。

          Proximal gradient(近端梯度)

          上面提到過(guò)了就不重復(fù)了。

          約束問(wèn)題的經(jīng)典算法

          投影梯度下降法(Projected gradient descent)

          看名字可以知道這個(gè)方法的思想其實(shí)就是梯度下降再加上投影操作來(lái)滿(mǎn)足約束。可以理解為是一個(gè)兩階段的算法,

          第一階段先進(jìn)行梯度下降

          第二階段進(jìn)行投影

          也就是說(shuō)在約束范圍內(nèi)找一個(gè)與無(wú)約束條件下最近的解,或者說(shuō)將無(wú)約束解投影到約束范圍內(nèi)。

          罰函數(shù)法

          罰函數(shù)法的思想也可以從它的名字進(jìn)行解釋?zhuān)鋵?shí)就是將違反約束的代價(jià)放入目標(biāo)函數(shù)中,從而把約束問(wèn)題轉(zhuǎn)化為無(wú)約束問(wèn)題。轉(zhuǎn)化后的無(wú)約束問(wèn)題為
          其中   是連續(xù)函數(shù),且對(duì)于任意   罰函數(shù)非負(fù),當(dāng)   滿(mǎn)足約束,即   時(shí)  。

          Frank-Wolfe算法

          這個(gè)算法的思想和它的名字就不好聯(lián)系上了,基本思想是將目標(biāo)函數(shù)作線性近似,
          通過(guò)求解線性規(guī)劃
          求得可行下降方向
          因此每次迭代的公式為

          交替方向法ADMM

          ADMM的思想是以先分解再結(jié)合的形式求解問(wèn)題,即先把原問(wèn)題分解成若干個(gè)相對(duì)原問(wèn)題較簡(jiǎn)單的子問(wèn)題,再把子問(wèn)題的解結(jié)合起來(lái)得到原問(wèn)題的全局解。主要針對(duì)的問(wèn)題是可分塊優(yōu)化命題,如
          寫(xiě)出其增廣拉格朗日函數(shù)

          交替方法(只優(yōu)化一個(gè)變量,固定其他變量)的方式進(jìn)行優(yōu)化,即

          坐標(biāo)下降法

          坐標(biāo)上升法的思想和ADMM有點(diǎn)點(diǎn)類(lèi)似的地方,就是在每次優(yōu)化時(shí)只優(yōu)化一個(gè)或者一部分變量,然后固定其他變量,即
          這就有點(diǎn)像一個(gè)高維坐標(biāo)系,你一個(gè)維度一個(gè)維度按順序優(yōu)化。

          當(dāng)優(yōu)化問(wèn)題遇到大數(shù)據(jù)

          當(dāng)數(shù)據(jù)量較大的時(shí)候,簡(jiǎn)單的處理辦法就是利用隨機(jī)化的思想,比如梯度下降法就可以改為隨機(jī)梯度下降,坐標(biāo)上升法就可以改為隨機(jī)坐標(biāo)上升。

          加速優(yōu)化與展望

          所謂的加速優(yōu)化研究的是在不作出更強(qiáng)假設(shè)的情況下改進(jìn)算法提高收斂速度。常見(jiàn)的比如有重球法(Heavy-Ball method)、Nesterov的加速梯度下降法、加速近端梯度法(APG)、隨機(jī)方差減小梯度法等等。這些算法可能有點(diǎn)超綱了,感興趣或者專(zhuān)門(mén)研究這類(lèi)問(wèn)題的可以參考林宙辰老師的新書(shū)(參考書(shū)籍4)。

          對(duì)于大規(guī)模優(yōu)化的一些研究可以從以下幾個(gè)角度展開(kāi):隨機(jī)優(yōu)化、分布式優(yōu)化、異步優(yōu)化、基于學(xué)習(xí)的優(yōu)化等等。

          參考書(shū)籍推薦

          [1] Nesterov Y. Introductory lectures on convex optimization: A basic course[M]. Springer Science & Business Media, 2013.

          [2] Optimization for machine learning[M]. Mit Press, 2012.

          [3] Nocedal J, Wright S. Numerical optimization[M]. Springer Science & Business Media, 2006.

          [4] Zhouchen Lin. Accelerated Optimization for Machine Learning[M]. Springer, 2020.

          注:博客內(nèi)容主要根據(jù)林宙辰老師的講座內(nèi)容進(jìn)行梳理,在此表示感謝。


           End 


          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程,即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺(jué)、目標(biāo)跟蹤、生物視覺(jué)、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目52講
          小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目即可下載包括圖像分割、口罩檢測(cè)、車(chē)道線檢測(cè)、車(chē)輛計(jì)數(shù)、添加眼線、車(chē)牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺(jué)實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺(jué)。

          下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
          小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講,即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱(chēng)+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


          瀏覽 45
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精品福利导航网 | 国产91娱乐乱伦视频 | 老司机一区 | 极品色亚洲| SM无码|