<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>

          簡(jiǎn)單的梯度下降算法,你真的懂了嗎?

          共 1135字,需瀏覽 3分鐘

           ·

          2022-01-24 06:02

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

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


          梯度下降算法的公式非常簡(jiǎn)單,”沿著梯度的反方向(坡度最陡)“是我們?nèi)粘=?jīng)驗(yàn)得到的,其本質(zhì)的原因到底是什么呢?為什么局部下降最快的方向就是梯度的負(fù)方向呢?也許很多朋友還不太清楚。沒(méi)關(guān)系,接下來(lái)我將以通俗的語(yǔ)言來(lái)詳細(xì)解釋梯度下降算法公式的數(shù)學(xué)推導(dǎo)過(guò)程。


          下山問(wèn)題

          假設(shè)我們位于黃山的某個(gè)山腰處,山勢(shì)連綿不絕,不知道怎么下山。于是決定走一步算一步,也就是每次沿著當(dāng)前位置最陡峭最易下山的方向前進(jìn)一小步,然后繼續(xù)沿下一個(gè)位置最陡方向前進(jìn)一小步。這樣一步一步走下去,一直走到覺(jué)得我們已經(jīng)到了山腳。這里的下山最陡的方向就是梯度的負(fù)方向



          首先理解什么是梯度?通俗來(lái)說(shuō),梯度就是表示某一函數(shù)在該點(diǎn)處的方向?qū)?shù)沿著該方向取得最大值,即函數(shù)在當(dāng)前位置的導(dǎo)數(shù)。



          上式中,θ?是自變量,f(θ)?是關(guān)于?θ?的函數(shù),θ?表示梯度。


          如果函數(shù)?f(θ)?凸函數(shù),那么就可以使用梯度下降算法進(jìn)行優(yōu)化。梯度下降算法的公式我們已經(jīng)很熟悉了:



          其中,θo?是自變量參數(shù),即下山位置坐標(biāo),η?學(xué)習(xí)因子,即下山每次前進(jìn)的一小步(步進(jìn)長(zhǎng)度),θ?是更新后的?θo,即下山移動(dòng)一小步之后的位置。


          一階泰勒展開(kāi)式


          這里需要一點(diǎn)數(shù)學(xué)基礎(chǔ),對(duì)泰勒展開(kāi)式有些了解。簡(jiǎn)單地來(lái)說(shuō),一階泰勒展開(kāi)式利用的就是函數(shù)的局部線性近似這個(gè)概念。我們以一階泰勒展開(kāi)式為例:



          不懂上面的公式?沒(méi)有關(guān)系。我用下面這張圖來(lái)解釋。



          凸函數(shù)?f(θ)?的某一小段 [θo,θ] 由上圖黑色曲線表示,可以利用線性近似的思想求出?f(θ)?的值,如上圖紅色直線。該直線的斜率等于?f(θ)?在?θo?處的導(dǎo)數(shù)。則根據(jù)直線方程,很容易得到?f(θ)?的近似表達(dá)式為:



          這就是一階泰勒展開(kāi)式的推導(dǎo)過(guò)程,主要利用的數(shù)學(xué)思想就是曲線函數(shù)的線性擬合近似。


          梯度下降數(shù)學(xué)原理


          知道了一階泰勒展開(kāi)式之后,接下來(lái)就是重點(diǎn)了!我們來(lái)看一下梯度下降算法是如何推導(dǎo)的。


          先寫(xiě)出一階泰勒展開(kāi)式的表達(dá)式:



          其中,θ?θo?是微小矢量,它的大小就是我們之前講的步進(jìn)長(zhǎng)度?η,類比于下山過(guò)程中每次前進(jìn)的一小步,η?為標(biāo)量,而?θ?θo?的單位向量用?v?表示。則?θ?θo?可表示為:



          特別需要注意的是,θ?θo?不能太大,因?yàn)樘蟮脑挘€性近似就不夠準(zhǔn)確,一階泰勒近似也不成立了。替換之后,f(θ)?的表達(dá)式為:



          重點(diǎn)來(lái)了,局部下降的目的是希望每次?θ?更新,都能讓函數(shù)值?f(θ)?變小。也就是說(shuō),上式中,我們希望?f(θ)。則有:



          因?yàn)?η?為標(biāo)量,且一般設(shè)定為正值,所以可以忽略,不等式變成了:



          上面這個(gè)不等式非常重要!v?和??f(θo)?都是向量,?f(θo)?是當(dāng)前位置的梯度方向,v?表示下一步前進(jìn)的單位向量,是需要我們求解的,有了它,就能根據(jù)?vθ?θo=ηv?確定?θ?值了。


          想要兩個(gè)向量的乘積小于零,我們先來(lái)看一下兩個(gè)向量乘積包含哪幾種情況:



          A?和?B?均為向量,α?為兩個(gè)向量之間的夾角。A?和?B?的乘積為:



          ||A|| 和 ||B|| 均為標(biāo)量,在 ||A|| 和 ||B|| 確定的情況下,只要 cos(α)=?1,即?A?和?B?完全反向,就能讓?A?和?B?的向量乘積最小(負(fù)最大值)。


          顧名思義,當(dāng)?v?與??f(θo)?互為反向,即?v?為當(dāng)前梯度方向的負(fù)方向的時(shí)候,能讓?v??f(θo)?最大程度地小,也就保證了?v?的方向是局部下降最快的方向。


          知道 v 是??f(θo)?的反方向后,可直接得到:



          之所以要除以??f(θo)?的模 ||?f(θo)||,是因?yàn)?v?是單位向量。


          求出最優(yōu)解?v?之后,帶入到?θ?θo=ηv?中,得:



          一般地,因?yàn)?||?f(θo)|| 是標(biāo)量,可以并入到步進(jìn)因子?η?中,即簡(jiǎn)化為:



          這樣,我們就推導(dǎo)得到了梯度下降算法中?θ?的更新表達(dá)式。


          總結(jié)


          我們通過(guò)一階泰勒展開(kāi)式,利用線性近似和向量相乘最小化的思想搞懂了梯度下降算法的數(shù)學(xué)原理。也許你之前很熟悉梯度下降算法,但也許對(duì)它的推導(dǎo)過(guò)程并不清楚。看了本文,你是否有所收獲呢?


          下載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è)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(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)加群,備注:”昵稱+學(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女人18毛片水多国产 |