<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ì)算機(jī)視覺(jué)那些事 | 深度學(xué)習(xí)基礎(chǔ)篇

          共 3558字,需瀏覽 8分鐘

           ·

          2022-05-28 11:10


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

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



          1.寫在前面


          隨著人工智能尤其是深度學(xué)習(xí)的快速發(fā)展,計(jì)算機(jī)視覺(jué)成為了這些年特別熱門的研究方向。在這里我們將開(kāi)啟一個(gè)全新的系列【計(jì)算機(jī)視覺(jué)那些事】,來(lái)分享我們這些年在計(jì)算機(jī)視覺(jué)上的一些認(rèn)識(shí)和經(jīng)驗(yàn)。在這個(gè)系列中,我們主要會(huì)圍繞計(jì)算機(jī)視覺(jué)中的深度學(xué)習(xí)算法展開(kāi),包含圖像分類、目標(biāo)檢測(cè)、圖像分割和視頻理解等諸多領(lǐng)域的理論和應(yīng)用。

          ?

          下面開(kāi)始該系列的第一篇文章,在這篇文章中我們會(huì)對(duì)深度學(xué)習(xí)具體以深度神經(jīng)網(wǎng)絡(luò)為主的基礎(chǔ)知識(shí)進(jìn)行深入淺出的介紹,希望從零開(kāi)始和大家一起一步步走進(jìn)計(jì)算機(jī)視覺(jué)的世界。


          2.神經(jīng)網(wǎng)絡(luò)的起源:感知機(jī)

          ?

          在談深度學(xué)習(xí)之前,我們首先來(lái)回顧一下感知機(jī)模型。感知機(jī)是深度神經(jīng)網(wǎng)絡(luò)的起源算法,學(xué)習(xí)和掌握感知機(jī)是通向深度學(xué)習(xí)的必經(jīng)之路。

          ?

          感知機(jī)是第一個(gè)從算法上完整描述的神經(jīng)網(wǎng)絡(luò)模型,也是應(yīng)用于二分類任務(wù)的最簡(jiǎn)單的模型之一,模型的輸入為樣本的特征向量,輸出為樣本的類別,分別用 1 和 -1 表示。感知機(jī)的目標(biāo)是將輸入空間(特征空間)中的樣本劃分為正負(fù)兩類分離的超平面,它的數(shù)學(xué)描述下式所示:

          其中,wi表示輸入樣本的第i個(gè)特征xi所對(duì)應(yīng)的權(quán)值,b表示模型具有的偏置量,f表示激活函數(shù),這里使用sign階躍函數(shù),即大于0為1,其余為-1,y表示輸入樣本預(yù)測(cè)的標(biāo)簽。

          ?

          在實(shí)際應(yīng)用中,權(quán)值w和偏置b需要在訓(xùn)練過(guò)程中經(jīng)過(guò)多次迭代來(lái)更新。為了便于表示,我們采用X來(lái)表示輸入特征,W表示權(quán)值矩陣,將X和W改寫為如下形式:

          那么感知機(jī)就可以改寫為


          直觀的計(jì)算流程如下圖所示。

          在感知機(jī)訓(xùn)練的過(guò)程中,我們針對(duì)分類錯(cuò)誤的樣本不斷進(jìn)行權(quán)值修正,逐步迭代直至最終分類符合預(yù)定標(biāo)準(zhǔn),從而確定權(quán)值。具體地,我們一般采用基于誤分類的損失函數(shù),通過(guò)梯度下降算法來(lái)進(jìn)行權(quán)值的更新,更新過(guò)程如下式所示:

          其中,d(n)表示第n次輸入X(n)所對(duì)應(yīng)的實(shí)際標(biāo)簽,y(n)表示第n次輸入時(shí)感知機(jī)輸出的預(yù)測(cè)標(biāo)簽,η表示學(xué)習(xí)率。


          以圖像二分類為例,假設(shè)我們已經(jīng)有了每張圖像的特征x和其對(duì)應(yīng)的類別y,利用上述介紹的感知機(jī)就能夠快速構(gòu)建出一個(gè)圖像二分類模型,然而感知機(jī)在分類過(guò)程中只能確定一個(gè)超平面,適合處理線性可分問(wèn)題,但在復(fù)雜的非線性場(chǎng)景中并不擅長(zhǎng)。


          3.多層感知機(jī)


          上一節(jié)我們介紹了處理簡(jiǎn)單二分類數(shù)據(jù)的單個(gè)感知機(jī),在這一節(jié)中我們將從單個(gè)感知機(jī)過(guò)渡到多層感知機(jī)(MLP)。多層感知機(jī)是一種經(jīng)典的神經(jīng)網(wǎng)絡(luò)模型,可以廣泛地應(yīng)用于復(fù)雜的非線性分類場(chǎng)景。下圖展示了一個(gè)典型的多層感知機(jī),也被稱為全連接神經(jīng)網(wǎng)絡(luò),其中每個(gè)藍(lán)色的神經(jīng)元代表一個(gè)感知機(jī)。

          多層感知機(jī)將多個(gè)感知機(jī)(神經(jīng)元)排列組成一個(gè)神經(jīng)網(wǎng)絡(luò),與上一節(jié)介紹的感知機(jī)相比,增加了多個(gè)隱藏層,隨著隱藏層數(shù)量的增加,模型的表達(dá)能力也不斷增強(qiáng),但同時(shí)也會(huì)增加網(wǎng)絡(luò)的復(fù)雜度。此外,多層感知機(jī)可以有多個(gè)輸出,這樣模型可以靈活的應(yīng)用于多分類任務(wù)。


          在多層感知機(jī)中,每個(gè)神經(jīng)元都會(huì)經(jīng)過(guò)一個(gè)激活函數(shù),激活函數(shù)給神經(jīng)元引入了非線性因素,使得神經(jīng)網(wǎng)絡(luò)可以任意逼近任何非線性函數(shù),這樣神經(jīng)網(wǎng)絡(luò)就可以應(yīng)用到眾多的非線性模型中。試想一下如果沒(méi)有激活函數(shù)每一層輸出都是上層輸入的線性函數(shù),無(wú)論神經(jīng)網(wǎng)絡(luò)有多少層,輸出都是輸入的線性組合,這樣的神經(jīng)網(wǎng)絡(luò)也就沒(méi)有實(shí)際意義了。


          4.反向傳播


          多層感知機(jī)隨著隱藏層數(shù)量的增加,使得網(wǎng)絡(luò)最優(yōu)權(quán)值的搜索空間變得很大。因此多層感知機(jī)的訓(xùn)練過(guò)程變得十分復(fù)雜。一般我們使用梯度下降來(lái)進(jìn)行網(wǎng)絡(luò)的訓(xùn)練,在訓(xùn)練過(guò)程中通過(guò)反向傳播實(shí)現(xiàn)梯度的計(jì)算,其中包含兩個(gè)階段:


          • 前向階段,網(wǎng)絡(luò)的權(quán)值固定,輸入樣本一層一層向前傳播直到輸出端


          • 反向階段,通過(guò)損失函數(shù)計(jì)算網(wǎng)絡(luò)輸出結(jié)果與實(shí)際結(jié)果之間的誤差,并將得到的誤差反向傳播并按照鏈?zhǔn)椒▌t求導(dǎo),通過(guò)梯度下降算法更新網(wǎng)絡(luò)的權(quán)值

          ?

          神經(jīng)網(wǎng)絡(luò)訓(xùn)練的基本流程如下:

          1. 給定訓(xùn)練集同時(shí)設(shè)置學(xué)習(xí)率,并初始化網(wǎng)絡(luò)連接中的所有權(quán)值;

          2. 將訓(xùn)練集樣本作為網(wǎng)絡(luò)輸入,計(jì)算網(wǎng)絡(luò)輸出值;

          3. 根據(jù)損失函數(shù)計(jì)算網(wǎng)絡(luò)輸出值與實(shí)際標(biāo)簽值之間的誤差;

          4. 根據(jù)鏈?zhǔn)角髮?dǎo)法則計(jì)算各個(gè)權(quán)重對(duì)輸出誤差的導(dǎo)數(shù);

          5. 根據(jù)梯度下降算法更新各個(gè)權(quán)值;

          6. 重復(fù)2-5,直到達(dá)到收斂條件結(jié)束訓(xùn)練。


          下面我們以一個(gè)具體的網(wǎng)絡(luò)來(lái)展示多層感知機(jī)的前向和反向傳播過(guò)程。

          上圖是一個(gè)兩層神經(jīng)網(wǎng)絡(luò),輸入為i1和i2,輸出為o1和o2。

          上面的式子展示了網(wǎng)絡(luò)前向傳播的計(jì)算過(guò)程,那么反向傳播的過(guò)程是什么樣呢?在這之前我們首先介紹反向傳播的核心鏈?zhǔn)椒▌t。鏈?zhǔn)椒▌t是求取復(fù)合函數(shù)導(dǎo)數(shù)的一個(gè)法則,對(duì)于一個(gè)復(fù)合函數(shù)f(g(x)),它對(duì)x的導(dǎo)數(shù)可以由以下方式計(jì)算得到:


          對(duì)于一個(gè)復(fù)合函數(shù)z=f(u,v),其中u=h(x,y),v=g(x,y),那么z對(duì)x和y的導(dǎo)數(shù)計(jì)算如下:

          在熟悉了鏈?zhǔn)椒▌t后,我們開(kāi)始計(jì)算在反向傳播中各權(quán)值的梯度。我們假設(shè)o1和o2輸出端的梯度分別為g0和g1。首先根據(jù)鏈?zhǔn)椒▌t我們可以計(jì)算出從輸出到w5,w6和b20的梯度如下所示:

          同理,我們可以進(jìn)一步通過(guò)鏈?zhǔn)椒▌t計(jì)算出從輸出到網(wǎng)絡(luò)的其他權(quán)值的梯度如下所示:

          得到各個(gè)權(quán)值的梯度之后,我們?cè)龠M(jìn)一步根據(jù)梯度下降算法對(duì)權(quán)值進(jìn)行計(jì)算,從而實(shí)現(xiàn)權(quán)值的更新。


          5.激活函數(shù)


          在上面介紹的內(nèi)容中,我們都多次提到激活函數(shù)。激活函數(shù)的使用讓神經(jīng)網(wǎng)絡(luò)變得更加強(qiáng)大,能夠表示輸入輸出之間非線性的復(fù)雜任意函數(shù)映射。在感知機(jī)的介紹中我們已經(jīng)提到了sign激活函數(shù),在這一節(jié)中我們將介紹更常用的三種激活函數(shù)Sigmoid、tanh和ReLU。


          Sigmoid激活函數(shù),數(shù)學(xué)表示和對(duì)應(yīng)的導(dǎo)數(shù)形式如下:

          該激活函數(shù)的輸出在0-1之間,在輸入為較大的正值時(shí),輸出為1;輸入為較小的負(fù)值時(shí),輸出為0。

          此外,由于它的導(dǎo)數(shù)在0-0.25之間,如果將這個(gè)激活函數(shù)應(yīng)用在深度神經(jīng)網(wǎng)絡(luò)中,前向傳播經(jīng)過(guò)一次Sigmoid激活層,反向傳播時(shí),其梯度的衰減的最小值都為0.25,當(dāng)采用多個(gè)Sigmoid激活函數(shù)時(shí),其反向梯度會(huì)接近為0,這很容易導(dǎo)致梯度消失的情況出現(xiàn)。


          tanh激活函數(shù),數(shù)學(xué)表示和對(duì)應(yīng)的導(dǎo)數(shù)形式如下:

          該激活函數(shù)的輸出為-1到1之間的連續(xù)值,在輸入為特別大的正值時(shí),輸出為1;輸入為較小的負(fù)值時(shí),輸出為-1。

          由其導(dǎo)數(shù)表達(dá)式可知,該激活函數(shù)的梯度最大值為1,分布在0到1之間。輸入的值越偏離0,其梯度越小,所以仍舊存在梯度消失的問(wèn)題。


          ReLu激活函數(shù),數(shù)學(xué)表示和對(duì)應(yīng)的導(dǎo)數(shù)形式如下:

          ReLU激活函數(shù)在輸入大于0的時(shí)候?qū)?shù)為1,這種情況下則不會(huì)出現(xiàn)梯度消失的問(wèn)題。

          同時(shí)與指數(shù)運(yùn)算的Sigmod和tanh相比,ReLU的計(jì)算量大大減少,所以ReLU當(dāng)前被廣泛應(yīng)用于各式各樣的深度神經(jīng)網(wǎng)絡(luò)中。然而當(dāng)輸入小于0時(shí)其導(dǎo)數(shù)為0,反向傳播過(guò)程中不會(huì)進(jìn)行梯度更新,可能會(huì)出現(xiàn)部分神經(jīng)元永遠(yuǎn)不激活的情況。


          上面列出了最為常見(jiàn)的三種激活函數(shù),近些年還出現(xiàn)了不少性能優(yōu)越的激活函數(shù),在后續(xù)的文章中我們會(huì)一一介紹。在實(shí)際應(yīng)用中,激活函數(shù)通常關(guān)系到網(wǎng)絡(luò)的性能,所以要仔細(xì)選取使用。

          ?

          6.寫在最后

          ?

          我們從基本的神經(jīng)網(wǎng)絡(luò)開(kāi)始,介紹了從單個(gè)感知機(jī)到多層感知機(jī)(MLP),從前向傳播到反向傳播,以及常用激活函數(shù)的相關(guān)內(nèi)容。


          在下一篇文章中,我們將會(huì)進(jìn)一步從MLP過(guò)渡到卷積神經(jīng)網(wǎng)絡(luò)(CNN),同時(shí)也會(huì)介紹常見(jiàn)的梯度下降優(yōu)化算法和損失函數(shù)。我們希望通過(guò)對(duì)神經(jīng)網(wǎng)絡(luò)基礎(chǔ)知識(shí)的介紹,讓大家能夠更好地開(kāi)啟豐富多彩的計(jì)算機(jī)視覺(jué)之旅。


          下載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)出群,謝謝理解~


          瀏覽 56
          點(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>
                  欧美成人无码在线 | 在线播放国产精品 | 亚洲天堂7777 | 人妻A√无码一区三级无套 | 九九色在线播放 |