1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        深度學(xué)習(xí)以及卷積基礎(chǔ)

        共 18355字,需瀏覽 37分鐘

         ·

        2021-11-30 16:44

        點(diǎn)擊下方卡片,關(guān)注“新機(jī)器視覺”公眾號(hào)

        視覺/圖像重磅干貨,第一時(shí)間送達(dá)

        作者:石文華

        編輯:龔   賽


        介    紹




        深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)分支,是基于數(shù)據(jù)來學(xué)習(xí)表示數(shù)據(jù)的一組算法。下面我們列出最受歡迎的一些深度學(xué)習(xí)算法。

        • 卷積神經(jīng)網(wǎng)絡(luò)

        • 深度信念網(wǎng)絡(luò)

        • 自動(dòng)編碼器

        • 遞歸神經(jīng)網(wǎng)絡(luò)(RNN / LSTM / GRU)

        • 對(duì)抗生成網(wǎng)絡(luò)(GAN) 

        深度學(xué)習(xí)的目的之一是他們將取代手工制作的特征提取。這個(gè)想法是,他們將從給定的數(shù)據(jù)中“學(xué)習(xí)”到所需的最佳特征。 




        層與層



        深度學(xué)習(xí)模型由多層構(gòu)成,在人工神經(jīng)網(wǎng)絡(luò)的情況下,具有2個(gè)以上隱藏層的多層感知器(MLP)已經(jīng)是深度模型。 
        作為一個(gè)經(jīng)驗(yàn)法則,深層模型有可能比淺層模型表現(xiàn)更好。但是,越深的神經(jīng)網(wǎng)絡(luò)你需要越多的數(shù)據(jù)來避免過擬合。 




        層類型



        這里列出一些最常用的圖層:
        1. 卷積層 

        2. 最大/平均池化層 

        3. Dropout層 

        4. 批量標(biāo)準(zhǔn)化層 

        5. 全連接層 

        6. Relu,Tanh,Sigmoid層(非線性層) 

        7. Softmax,交叉熵,SVM,歐幾里得(損失層)



        避免過擬合(正則化)



        除了獲得更多的數(shù)據(jù)之外,還有一些技巧用于解決過度擬合問題,這里列出了一些最常見的技術(shù):

        • Dropout

        • L2正則化

        • 數(shù)據(jù)增強(qiáng)



        Dropout



        這是一種在訓(xùn)練期間隨機(jī)關(guān)閉全連接層中一些神經(jīng)元的技術(shù)。 



        Dropout迫使全連接層以不同的方式學(xué)習(xí)相同的概念。



        L2正則化



        最常見的正則化形式是L2正則化,L2正則化是給損失函數(shù)添加一個(gè)額外的懲罰項(xiàng),這個(gè)懲罰項(xiàng)也就是我們正在優(yōu)化的所有權(quán)重/參數(shù)的平方值。對(duì)于神經(jīng)網(wǎng)絡(luò)的每一個(gè)參數(shù)ω,我們加入一項(xiàng)0.5λω2到損失函數(shù)中去,λ表示正則化強(qiáng)度的參數(shù),當(dāng)我們反向傳播計(jì)算導(dǎo)數(shù)時(shí),我們只是用了0.5λ作為正則化的強(qiáng)度。由于使用這種正規(guī)化,非常高價(jià)值的權(quán)重受到嚴(yán)重懲罰。所以我們更傾向于使用一層的所有權(quán)重作為輸入,而不是少數(shù)一些權(quán)重帶替代。這種方法的效果比較好,因?yàn)槲覀兊哪P蜋?quán)重將被最大限度地利用,并且我們有更少未使用的權(quán)重。

        除了L2正則化之外,還有L1正則化和Max Norm,但這里沒有討論,因?yàn)長(zhǎng)2一般表現(xiàn)更好。




        數(shù)據(jù)增強(qiáng)



        通過對(duì)輸入數(shù)據(jù)進(jìn)行一些轉(zhuǎn)換,可以合成新的訓(xùn)練樣例。例如,進(jìn)行圖像翻轉(zhuǎn)或隨機(jī)移動(dòng)RGB值。在2012年Imagenet競(jìng)賽期間,Alex Krizhevesky(Alexnet)使用了2048倍的因子進(jìn)行數(shù)據(jù)增強(qiáng),這意味著用于訓(xùn)練其模型的數(shù)據(jù)集實(shí)際上比開始時(shí)大2048倍,并且在不使用數(shù)據(jù)增強(qiáng)的情況下改進(jìn)了泛化。 





        分層的特征表示



        它是讓學(xué)習(xí)算法找到從輸入到更深層的最佳表示。 
        淺層學(xué)會(huì)用簡(jiǎn)單的形式表示數(shù)據(jù),深層用前面學(xué)到的特征來學(xué)習(xí)更高緯度的特征來表示數(shù)據(jù)。 





        卷  積



        卷積是一種數(shù)學(xué)運(yùn)算,它對(duì)兩個(gè)函數(shù)(信號(hào))乘積進(jìn)行積分,其中一個(gè)信號(hào)是被翻轉(zhuǎn)。例如下面我們對(duì)2個(gè)信號(hào)f(t)和g(t)進(jìn)行卷積。 



        首先要做的是水平翻轉(zhuǎn)(180度)信號(hào)g,然后將翻轉(zhuǎn)后的g滑過f,對(duì)應(yīng)相乘并累加所有的值。 
        conv(a,b)== conv(b,a)的結(jié)果是一樣的, 
        在這種情況下,規(guī)定藍(lán)色信號(hào) F(τ)F(τ) 是我們的輸入信號(hào)和 G(t )G(?) 作為我們的卷積核,當(dāng)使用卷積來過濾信號(hào)時(shí)使用術(shù)語卷積核。



        輸出一維信號(hào)



        在一維卷積的情況下,輸出尺寸計(jì)算如下: 
        outputSize=(InputSize?KernelSize)+1



        卷積的應(yīng)用



        人們?cè)谝韵掠美袑?duì)信號(hào)處理使用卷積:

        • 濾波器信號(hào)(1D音頻,2D圖像處理)

        • 檢查一個(gè)信號(hào)與另一個(gè)信號(hào)的相關(guān)程度

        • 在信號(hào)中查找模式



        在matlab和python(numpy)中的簡(jiǎn)單例子



        下面我們將兩個(gè)信號(hào)x =(0,1,2,3,4)與w =(1,-1,2)進(jìn)行卷積。 




        手工操作



        為了更好地理解卷積的概念,我們手工完成上面的例子。我們要卷積2個(gè)信號(hào)(x,w)。首先是水平翻轉(zhuǎn)W(或向左旋轉(zhuǎn)180度) 



        之后,我們將翻轉(zhuǎn)的W滑過輸入X. 



        注意到在步驟3,4,5中,翻轉(zhuǎn)后的窗口完全位于輸入信號(hào)的內(nèi)部。稱為“有效”卷積。在翻轉(zhuǎn)窗口不完全位于輸入窗口(X)內(nèi)部的情況下,我們可以將其視為零,只計(jì)算位于窗口內(nèi)的數(shù)據(jù),例如在步驟1中,我們將1乘以零,其余部分將被忽略。


        對(duì)輸入進(jìn)行填充



        為了保持卷積結(jié)果大小與輸入大小相同,并避免稱為循環(huán)卷積的效應(yīng),我們用零填充信號(hào)。 
        你把零放在哪個(gè)位置取決于你想要做什么,例如:在1D的情況下,你可以在每一端連接它們,但在2D上它通常放置在原始信號(hào)周圍。 




        在matlab上,你可以使用命令'padarray'來填充輸入信號(hào): 
        >> x

        x(:,:,1) =

         1     1     0     2     0
        2     2     2     2     1
        0     0     0     2     1
        2     2     2     2     1
        2     0     2     2     1

        x(:,:,2) =

         2     1     0     0     0
        0     2     0     1     0
        1     0     1     2     0
        1     2     0     2     1
        1     2     1     2     2

        x(:,:,3) =

         2     1     1     2     2
        1     1     1     0     0
        2     0     1     0     2
        0     2     0     2     1
        0     0     2     1     0

        >> padarray(x,[1 1])


        ans(:,:,1) =

         0     0     0     0     0     0     0
        0     1     1     0     2     0     0
        0     2     2     2     2     1     0
        0     0     0     0     2     1     0
        0     2     2     2     2     1     0
        0     2     0     2     2     1     0
        0     0     0     0     0     0     0

        ans(:,:,2) =

         0     0     0     0     0     0     0
        0     2     1     0     0     0     0
        0     0     2     0     1     0     0
        0     1     0     1     2     0     0
        0     1     2     0     2     1     0
        0     1     2     1     2     2     0
        0     0     0     0     0     0     0

        ans(:,:,3) =

         0     0     0     0     0     0     0
        0     2     1     1     2     2     0
        0     1     1     1     0     0     0
        0     2     0     1     0     2     0
        0     0     2     0     2     1     0
        0     0     0     2     1     0     0
        0     0     0     0     0     0     0



        將卷積轉(zhuǎn)化為計(jì)算圖



        將操作轉(zhuǎn)化為計(jì)算圖,更容易計(jì)算每個(gè)節(jié)點(diǎn)參數(shù)的偏導(dǎo)數(shù),這里我們演示將之前的一維卷積轉(zhuǎn)化為計(jì)算圖,這也可以擴(kuò)展到二維卷積。 




        計(jì)算圖的創(chuàng)建是在翻轉(zhuǎn)的內(nèi)核完全插入被卷積的數(shù)據(jù)之前的。 



        之后我們將使用這個(gè)圖來推斷卷積層的輸入(x)和權(quán)重(w)的梯度。



        2D卷積



        現(xiàn)在我們延伸到第二個(gè)維度。2D卷積被用作圖像濾波器。下面是一個(gè)2D圖像卷積的例子: 




        Matlab與Python示例





        手工操作



        首先,我們應(yīng)該翻轉(zhuǎn)內(nèi)核,然后在輸入信號(hào)上滑動(dòng)內(nèi)核。 





        步  長(zhǎng)



        默認(rèn)情況下,當(dāng)我們進(jìn)行卷積運(yùn)算時(shí),我們的窗口每次移動(dòng)一個(gè)像素(步幅= 1),但是在卷積神經(jīng)網(wǎng)絡(luò)中我們需要移動(dòng)多個(gè)像素。例如,在使用大小為2的內(nèi)核進(jìn)行卷積時(shí),我們將使用2的步幅。將步幅和內(nèi)核大小都設(shè)置為2將導(dǎo)致輸出沿著兩個(gè)維度恰好為輸入大小的一半。 
        觀察紅色內(nèi)核窗口下方的移動(dòng)遠(yuǎn)遠(yuǎn)多于一個(gè)像素。 




        2D的輸出尺寸



        下面提供了一個(gè)公式計(jì)算我們卷積之后的輸出尺寸 。
        如果我們考慮將由P填充的空間大小[H,W]的輸入與大小為F的方形核并使用步長(zhǎng)S進(jìn)行卷積,那么卷積的輸出大小被定義為: 


        F是內(nèi)核的大小,通常我們使用方形內(nèi)核,所以F既是內(nèi)核的寬度又是高度。



        實(shí)現(xiàn)卷積運(yùn)算



        下面的示例將對(duì)一個(gè)5x5x3的輸入進(jìn)行卷積,其中具有以下參數(shù)Stride=2,Pad=1,F(xiàn)=3(3x3內(nèi)核)和K=2(兩個(gè)濾波器)的conv層。 
        我們的輸入有3個(gè)通道,所以需要3x3x3的內(nèi)核權(quán)重。有2個(gè)過濾器(K = 2),所以最后會(huì)有2個(gè)輸出。計(jì)算這兩個(gè)輸出的大小為:(5 - 3 + 2)/ 2 + 1 = 3。得到最終的尺寸(3x3x2)。


        仔細(xì)看看這個(gè)例子,我們需要計(jì)算2個(gè)卷積,不要忘了給每個(gè)3x3x3濾波器(w0,w1)添加偏差。




        參考文獻(xiàn)



        • https://en.wikipedia.org/wiki/Convolution

        • https://www.khanacademy.org/math/differential-equations/laplace-transform/convolution-integral/v/introduction-to-the-convolution

        • http://www.dspguide.com/ch6/2.htm



        —版權(quán)聲明—

        僅用于學(xué)術(shù)分享,版權(quán)屬于原作者。

        若有侵權(quán),請(qǐng)聯(lián)系微信號(hào):yiyang-sy 刪除或修改!


        —THE END—
        瀏覽 75
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            少妇高潮交换91 | 美女日逼免费视频 | 日日摸夜夜骑 | 欧美又大又硬又粗bbbbb 他的舌头挺进了我下面 | 2018天天弄国产大片_99久久 | 一级特黄特片 | 偷拍青娱乐| 天天拍天天干天天射 | 国偷自产av一区二区三区麻豆 | 性处破与摘花过程videos |