日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

Lesson 16.4 卷积遇见深度学习

發布時間:2025/4/5 pytorch 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Lesson 16.4 卷积遇见深度学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

4.1 通過學習尋找卷積核


在深度神經網絡中,層與層之間存在著鏈接上層與下層的權重系數 。深度學習的核心思想之一,就是給與算法訓練目標,讓算法自己朝著目標函數最小化的方向進行學習,并自動求解出權重系數www的最佳組合。在深度網絡的在DNN中,我們輸入的是特征矩陣,讓特征矩陣與權重系數相乘后,傳入下一層進行加和與激活,并通過從后向前的方式訓練網絡自己找出權重。在計算機視覺領域,我們輸入的特征變成了一張張圖像的一個個通道,我們讓通道上的像素值與卷積核進行卷積操作后,得出輸入下一層的圖像(特征圖 feature map)。而卷積操作本質就是感受野與卷積核點積,其操作與DNN中的權重與特征相乘非常相似。

順著這樣的思路,卷積層(Convolutional layer)誕生了,任意使用卷積層的神經網絡就被稱為是卷積神經網絡(Convolution Neural Network),卷積網絡一族有相當多的經典模型。每當卷積層被建立時,卷積核中的值就會被隨機生成,輸入圖像的像素點與卷積核點積后,生成的特征圖被輸入到下一層網絡,并最終變成預測標簽被放入損失函數中進行計算。在使用優化算法進行迭代、損失足夠低后,卷積核中的權重值就被自動學習出來了,這就實現了“自動找出最佳權重,并提取出對分類最有利的特征”。
這樣學習出的卷積核的值以分類效果為最終目標,可以選擇出最恰當的特征,因此理想狀況下,可以完美避免人工進行特征提取的這個步驟。剩下的問題就是,通過深度學習自動學習得出的特征,能夠比人手提取的特征更好嗎?這個問題耗費了學術界數十年的時間,最終被現代神經網絡的數個經典架構所驗證。但現在,我們暫且不談這個,繼續來看深度學習與卷積的碰撞所帶來的改變。

4.2 參數共享:卷積帶來參數量驟減

從傳統計算機視覺的角度而言,將卷積操作引入神經網絡是一個絕妙的操作,但不止如此,對研究神經網絡的學者們而言,卷積的到來也解決了眾多深度學習中的關鍵問題。比如——卷積可以極大程度地減少參數量。

深度學習的模型總是需要大規模計算和訓練來達到商業使用標準,計算量一直都是深度學習領域的痛,而巨大的計算量在很多時候都與巨量參數有關。在卷積神經網絡誕生之前,人們一直使用普通全連接的DNN來訓練圖像數據。對于一張大小中等,尺寸為(600,400)的圖像而言,若要輸入全連接層的DNN,則需要將像素拉平至一維,在輸入層上就需要600*400 = 24萬個神經元,這就意味著我們需要24萬個參數來處理這一層上的全部像素。如果我們有數個隱藏層,且隱藏層上的神經元個數達到10000個,那DNN大約需要24億個參數( 個)才能夠解決問題。

然而,卷積神經網絡卻有“參數共享”(Parameter Sharing)的性質,可以令參數量驟減。一個通道雖然可以含有24萬個像素點,但圖像上每個“小塊”的感受野都使用相同的卷積核來進行過濾。卷積神經網絡要求解的參數就是卷積核上的所有數字,所以24萬個像素點共享卷積核就等于共享參數。假設卷積核的尺寸是5x5,那處理24萬個像素點就需要25個參數。假設卷積中其他需要參數層也達到10000個,那CNN所需的參數也只有25萬。由于我們還沒有介紹卷積神經網絡的架構,因此這個計算并不是完全精確,但足以表明卷積有多么節省參數了。參數量的巨大差異,讓卷積神經網絡的計算非常高效。在第一堂課時我們說到,深度學習近二十多年的發展,都圍繞著“讓模型計算更快、讓模型更輕便”展開,從全連接到卷積就是一個很好的例子。預測效果好,且計算量小,這是卷積神經網絡在計算機視覺領域大熱的原因之一。

4.3 稀疏交互:獲取更深入的特征

卷積操作是為了提取特征而進行的數學計算,它能夠根據損失函數的指導而自動提取出對分類或其他目標更有效的特征。然而,卷積神經網絡是如何保證提取到的特征比傳統方法,如sobel算子等方法“更深”的呢?

這需要從“神經元”的層次來看待。在CNN中,我們都是以“層”或者“圖”、“通道”這些術語來描述架構,但其實CNN中也有神經元。在任何神經網絡中,一個神經元都只能夠儲存一個數字。所以在CNN中,一個像素就是一個神經元(實際上就是我們在類似如下的視圖中看到的每個正方形小格子)。很容易理解,輸入的圖像/通道上的每個小格子就是輸入神經元,feature map上的每個格子就是輸出神經元。在DNN中,上層的任意神經元都必須和下層的每個神經元都相連,所以被稱之為“全連接”(fully connected),但在CNN中,下層的一個神經元只和上層中被掃描的那些神經元有關,在圖上即表示為,feature map上的綠格子只和原圖上綠色覆蓋的部分有關。這種神經元之間并不需要全鏈接的性質被稱為稀疏交互(Sparse Interaction)。人們認為,稀疏交互讓CNN獲得了提取更深特征的能力。
深度學習中的許多方法來源于對其他學科的借鑒,卷積的結構也不例外。為了研究大腦是如何理解人眼所看到的內容,神經學家們對人眼成像系統進行了豐富的研究。人類的眼球中含有一系列視覺細胞,但這些細胞不是等價的,他們之中的一部分是簡單細胞,只能捕捉到簡單的線條、顏色等信息,這些簡單細胞捕捉到簡單信息后,會將信息傳導至復雜細胞,復雜細胞會將這些信息重組為輪廓、光澤等更高級的信息,之后再將信息傳導至更高級的細胞,形成完整的圖像。神經學家認為,人眼的細胞有著“提取淺層特征,合成高級特征”的能力。CNN的“稀疏交互”的屬性允許神經元只包含上一層圖像“局部”的信息,這就與人眼的簡單細胞只提取簡單線條的屬性很相似。因此我們有理由相信,當圖像被輸入網絡后,前端的卷積神經網絡提取到的特征都是淺層的(和sobel算子等方法一樣),將這些淺層特征繼續輸入后續的網絡,再次進行提取和學習,就能夠將淺層特征逐漸組合成深層特征。而圖像天生就可以通過不斷變換、被提取出更多的特征(相對的,自然語言就沒有這個性質,所以NLP領域的CNN往往沒有CV領域的CNN深),因此位于卷積神經網絡架構后端的卷積層們,一定是捕捉到了更深層的特征的。

雖然“稀疏交互”是客觀的,但是否依賴于這個屬性來提取出更深的特征確實有爭議的。根據“模擬人眼”的理論,CNN提取出的各層的特征圖應該是類似下面這樣的:


這張圖可視化了在人臉識別中各層卷積層所提取到的特征圖。從左至右,神經網絡越來越深,從最開始的只能提取到一些簡單的線條,到最后可以提取出一整張人臉,似乎能夠證明CNN的確擁有和人眼細胞一樣的能力。然而當我們真正去可視化一些經典卷積神經網絡的結構時,隨著卷積層的加深,可視化出來的效果往往是這樣的:


不難發現,我們很難直接看出“從局部到整體”這樣一個特性。從CNN的預測效果來看,我們有理由相信它的確提取到了更深的特征,但絕不是以我們認為的,“先提取細節、再拼接成局部、最后組成圖像”的方式。

無論如何,卷積與深度學習碰撞所帶來的變革是革命性的。通過學習的方式改進卷積核、再通過深層網絡不斷提純特征、以及大幅度降低參數量,卷積神經網絡的作用已經不言而喻。接下來,我們就來學習,如何使用PyTorch構筑卷積神經網絡。

總結

以上是生活随笔為你收集整理的Lesson 16.4 卷积遇见深度学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。