五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

24 深度卷積神經(jīng)網(wǎng)絡 AlexNet【動手學深度學習v2】

2022-02-16 15:13 作者:如果我是泡橘子  | 我要投稿

AlexNet


  • 在LeNet提出后,卷積神經(jīng)網(wǎng)絡在計算機視覺和機器學習領域中很有名氣,但卷積神經(jīng)網(wǎng)絡并沒有主導這些領域,因為雖然LeNet在小數(shù)據(jù)集上取得了很好的效果,但是在更大、更真實的數(shù)據(jù)集上訓練卷積神經(jīng)網(wǎng)絡的性能和可行性還有待研究
  • 引起這一個深度學習熱潮的第一個網(wǎng)絡
  • AlexNet誕生于2012年,與另一種觀察圖像特征的提取方法不同,它認為特征本身應該被學習,在合理的復雜性前提下,特征應該由多個共同學習的神經(jīng)網(wǎng)絡層組成,每個層都有可學習的參數(shù)。在機器視覺中,最底層可能檢測邊緣、顏色和紋理;更高層建立在底層表示的基礎上,以表示更大的特征,更高層可以檢測整個物體;最終的隱藏神經(jīng)元可以學習圖像的綜合表示,從而使不同類別的數(shù)據(jù)易于區(qū)分



深度學習之前的網(wǎng)絡

?
AlexNet P1 - 00:33
?

  • 事實上,在上世紀90年代初到2012年之間的大部分時間里,神經(jīng)網(wǎng)絡往往被其他機器學習方法超越,如支持向量機(support vector machines)
  • 傳統(tǒng)機器學習方法中,機器視覺流水線是由經(jīng)過人的手工精心設計的特征流水線組成的;在神經(jīng)網(wǎng)絡中,卷積神經(jīng)網(wǎng)路的輸入是由原始像素值或者是經(jīng)過簡單預處理(例如居中、縮放)的像素值組成的
  • 2000年的時候,最火的機器學習的方法其實是核方法
  • 這張圖中展示的是2000年初期最主要使用的方法
  • 核心是:提取特征、選擇核函數(shù)來計算相關性(如何判斷兩個點在高維空間上是相關的,如果是線性的話可以做內積,用核方法的話可以通過變換空間,將空間變換成想要的樣子)、凸優(yōu)化問題(通過和函數(shù)計算之后就會變成一個凸優(yōu)化問題,線性模型型是一個凸優(yōu)化問題,所以它有很好的理論解,可以將顯式解寫出來)、漂亮的定理(因為是凸優(yōu)化,所以有比較好的定理
  • 整個核方法最大的特色就是有一個完整的數(shù)學定理,能夠計算模型的復雜度等,這也是為什么在2000年的時候核方法能夠替代深度學習(當時叫神經(jīng)網(wǎng)絡)成為當時機器學習主流的網(wǎng)絡





在2000年左右機器學習主要關心的是幾何學

?
AlexNet P1 - 03:11
?





十幾年前,在計算機視覺中最重要的其實是特征工程

  • 在2012年之前,圖像特征都是機械地手動計算出來的,例如常見的特征函數(shù):SIFT、SURF、HOG(定向梯度直方圖)和類似的特征提取方法


?
AlexNet P1 - 05:40
?

  • 整個計算機視覺在深度學習之前其實不那么關心機器學習的模型長什么樣子,關鍵是如何做特征提取,怎樣抽取特征使得機器學習能夠比較好地學習特征





神經(jīng)卷積網(wǎng)絡取得突破的兩大關鍵因素


1、硬件


  • 深度學習對計算資源要求很高,訓練可能需要數(shù)百個迭代輪數(shù),每次迭代都需要通過代價高昂的許多線性代數(shù)層傳遞數(shù)據(jù)。這也是為什么在20世紀90年代至21世紀初,優(yōu)化凸目標的簡單算法是研究人員的首選。
  • 雖然上世紀90年代就有了一些神經(jīng)網(wǎng)絡加速卡,但僅靠它們還不足以開發(fā)出有大量參數(shù)的深層多通道多層卷積神經(jīng)網(wǎng)絡。此外,當時的數(shù)據(jù)集仍然相對較小。除了這些障礙,訓練神經(jīng)網(wǎng)絡的一些關鍵技巧仍然缺失,包括啟發(fā)式參數(shù)初始化、隨機梯度下降的變體、非擠壓激活函數(shù)和有效的正則化技術。
  • AlexNet使用了兩個顯存為3GB的NVIDIA GTX580 GPU實現(xiàn)了快速卷積運算

?
AlexNet P1 - 07:13
?

  • 圖中三行分別是:樣本個數(shù)、內存大小、CPU計算能力
  • 計算能力和數(shù)據(jù)所要的算法能力的發(fā)展的不同階段導致對網(wǎng)絡選取的偏好差異



2、數(shù)據(jù)


  • 深度學習的再次崛起離不開數(shù)據(jù)
  • 包含許多特征的深度模型需要大量的有標簽數(shù)據(jù),才能顯著優(yōu)于基于凸優(yōu)化的傳統(tǒng)方法(如線性方法和核方法)
  • ImageNet數(shù)據(jù)集由斯坦福教授李飛飛小組的研究人員開發(fā),利用谷歌圖像搜索(Google Image Search)對每一類圖像進行預篩選,并利用亞馬遜眾包(Amazon Mechanical Turk)來標注每張圖片的相關類別。這種規(guī)模是前所未有的


ImageNet數(shù)據(jù)集

  • 上圖是ImageNet數(shù)據(jù)集和MNIST數(shù)據(jù)集的對比





AlexNet

  • 2012年拿到了ImageNet競賽2012年的冠軍
  • Alex本質上是一個更深、更大的LeNet,二者在架構上沒有本質的區(qū)別,主要的改進在于:1、加入了丟棄法;2、激活函數(shù)從sigmoid改成了ReLu;3、池化操作從Avgpooling改成了MaxPooling
  • 丟棄法可以認為是用來做模型控制,因為模型更大了,所以可以使用丟棄法來做正則
  • ReLu和sigmoid相比,它的梯度確實更大,而且ReLu在零點處的一階導更好,能夠支撐更深的模型
  • MaxPooling取的是最大值,使得輸出比較大,梯度也比較大,從而使得訓練而更加容易
  • AlexNet不僅僅是更大、更深,更加關鍵的是觀念上的改變:LeNet僅僅被認為只是一個機器學習的模型,但是AlexNet增加了幾十倍,量變引起質變,引起了計算機視覺方法論的改變,原本機器學習的專家對于問題的理解主要放在對特征的人工提取上
  • 上圖左邊主要關注點在于SVM需要怎樣的特征,右邊是一個一起訓練的過程(最后的分類器和特征提取的模型是一起訓練的,也就意味著CNN學出來的東西很有可能就是softmax所想要的,通過很深的神經(jīng)網(wǎng)絡將原始的像素轉換到一個空間當中,使得softmax能夠更好地進行分類
  • 這樣做的好處是:1、構造CNN相對來說比較簡單,而不需要了解太多計算機視覺相關的知識,而且比較容易跨問題、跨學科;2、因為分類器和特征提取的模型是一起訓練的,從模型角度來講,其實就是一個,這樣做更加高效
  • 深度學習對之前傳統(tǒng)的機器學習的主要改變:不在執(zhí)著于怎樣進行人工提取特征,而是端到端的學習過程,使得原始的信息到最后的分類或者預測可以直接通過深度神經(jīng)網(wǎng)絡實現(xiàn)





AlexNet和LeNet的對比

  • 左圖表示LeNet,右圖表示AlexNet





AlexNet




  • AlexNet其實就是一個更大、更深的LeNet,由八層組成:5個卷積層、2個全連接隱藏層和一個全連接輸出層
  • AlexNet的輸入是224*224*3的3通道RGB圖片,LeNet的輸入是32*32*1的單通道灰度圖片
  • 第一層:AlexNet使用了更大的核窗口(因為圖片更大了,需要用更大的卷積窗口來捕獲目標),通道數(shù)也更多了,從6變成了96(希望能夠在第一層識別更多的模式,所以用了比較大的通道數(shù)),stride從2變成了4(這是由于當時GPU性能的限制,如果stride比較小的話,計算就會變得非常困難
  • 第二層:AlexNet使用了更大的池化層,stride都是2,因為LeNet的池化層窗口大小也是2,所以它每次看到的內容是不重疊的。2*2和3*3的主要區(qū)別是:2*2允許一個像素往一邊平移一點而不影響輸出,3*3的話就允許一個像素左移或者右移都不影響輸出;stride都等于2使得輸出的高和寬都減半
  • 第三層:AlexNet有一個padding為2的操作,它的作用就是使得輸入和輸出的大小是一樣的;AlexNet的輸出通道是256,使用了更多的輸出通道來識別更多的模式
  • ALexNet新加了3個卷積層
  • AlexNet的全連接層也用了兩個隱藏層,但是隱藏層更大(在最后一個卷積層后有兩個全連接層,分別有4096個輸出。 這兩個巨大的全連接層擁有將近1GB的模型參數(shù)。 由于早期GPU顯存有限,原版的AlexNet采用了雙數(shù)據(jù)流設計,使得每個GPU只負責存儲和計算模型的一半?yún)?shù)
  • Alex的激活函數(shù)從sigmoid變成了ReLu:1、ReLU激活函數(shù)的計算更簡單,它不需要sigmoid激活函數(shù)那般復雜的求冪運算;2、當使用不同的參數(shù)初始化方法時,ReLU激活函數(shù)使訓練模型更加容易;3、、當sigmoid激活函數(shù)的輸出非常接近于0或1時,這些區(qū)域的梯度幾乎為0,因此反向傳播無法繼續(xù)更新一些模型參數(shù),相反,ReLU激活函數(shù)在正區(qū)間的梯度總是1。 因此,如果模型參數(shù)沒有正確初始化,sigmoid函數(shù)可能在正區(qū)間內得到幾乎為0的梯度,從而使模型無法得到有效的訓練。
  • LeNet只使用了權重衰減,而AlexNet在全連接層的兩個隱藏層之后加入了丟棄層(dropout、暫退法),來做模型的正則化,控制全連接層的模型復雜度
  • 為了進一步擴充數(shù)據(jù),AlexNet還做了數(shù)據(jù)的增強:對樣本圖片進行隨機截取、隨機調節(jié)亮度、隨即調節(jié)色溫(因為卷積對位置、光照等比較敏感,所以在輸入圖片中增加大量的變種,來模擬預測物體形狀或者顏色的變化;因為神經(jīng)網(wǎng)絡能夠記住所有的數(shù)據(jù),通過這種變換之后來降低神經(jīng)網(wǎng)絡的這種能力,因為每次變換之后的物體都是不一樣的



AlexNet和LeNet模型的復雜度對比

?
AlexNet P1 - 30:49
?

  • AlexNet使用了7*7的卷積核,而且通道數(shù)增加了,所以參數(shù)個數(shù)增加的比較多
  • AlexNet在可學習的參數(shù)個數(shù)上比LeNet多十倍左右
  • FLOP:每秒所執(zhí)行的浮點運算次數(shù)(floating-point operations per second)





總結


  • AlexNet是更大更深的LeNet,但是整個架構是一樣的,AlexNet的參數(shù)個數(shù)比LeNet多了10倍,計算復雜度多了260倍
  • AlexNet新加入了一些小技巧使得訓練更加容易:丟棄法(dropout)、ReLu、最大池化層、數(shù)據(jù)增強
  • AlexNet首次證明了學習到的特征可以超越手工設計的特征,以很大的優(yōu)勢贏下了2012年的ImageNet競賽之后,標志著新一輪的神經(jīng)網(wǎng)絡熱潮的開始
  • 盡管今天AlexNet已經(jīng)被更有效的架構所超越,但它是從淺層網(wǎng)絡到深層網(wǎng)絡的關鍵一步
  • Dropout、ReLU和預處理是提升計算機視覺任務性能的其他關鍵步驟





Q&A


  • ImageNet數(shù)據(jù)集是怎么構建的,現(xiàn)在看是不是要成為歷史了?
    ?
    QA P3 - 00:03
    ?


  • 為什么2000年的時候,神經(jīng)網(wǎng)絡被核方法所代替?是因為神經(jīng)外羅計算量太大,數(shù)據(jù)多,硬件跟不上嗎?
    ?
    QA P3 - 00:52
    ?


  • nlp領域,cnn也代替了人工特征工程嗎?如何看待nlp領域transformer、bert、deepfm這些方法和cv領域cnn方法的區(qū)別?
    ?
    QA P3 - 01:12
    ?


  • AlexNet讓機器自己尋找特征,這些找到的特征都符合人類的邏輯嗎?如果不符合的話,要怎么解釋?
    ?
    QA P3 - 01:33
    ?


  • 把AlexNet的池化層放到不同的卷積層后面,效果一樣嗎?或者為什么放在第一個和最后一個卷積層后面?
    ?
    QA P3 - 02:44
    ?


  • 這兩個網(wǎng)絡的設計除了看論文,有沒有其他方式了解到作者們的具體設計過程?
    ?
    QA P3 - 03:28
    ?


  • 從發(fā)展視角來看,CNN完爆MLP嗎?未來MLP是否有可能由于某些技術成為主流?
    ?
    QA P3 - 04:32
    ?


  • 在其他學習資料中,講到AlexNet會提及Local Response Normalization,但沒太看懂。老師能補充講解一下LRN的原理以及如何達成“增強了模型的泛化能力”的效果嗎?
    ?
    QA P3 - 05:03
    ?


  • 為什么AlexNet最后要有兩個相同的全連接層Dense(4096)?一個行嗎?
    ?
    QA P3 - 06:20
    ?


  • 我們現(xiàn)在講的內容是不是只適用于nlp和cv領域,在推薦領域是不是不適用?
    ?
    QA P3 - 06:57
    ?


  • 我們在一個識別細胞的程序里做了顏色+幾何變換的增強后效果反倒比只做幾何變化的增強效果差。這個可能是因為什么?
    ?
    QA P3 - 07:36
    ?


  • AlexNet和LeNet的參數(shù)對比PPT是不是寫錯了,參數(shù)個數(shù)是460M vs 0.6M,不是11x吧?
    ?
    QA P3 - 08:21
    ?


  • 沒太明白為什么LeNet不屬于深度卷積神經(jīng)網(wǎng)絡?
    ?
    QA P3 - 09:00
    ?


  • 老師,在設計網(wǎng)絡結構的時候,conv、全連接、dropout、池化這些層,包括后來出現(xiàn)的bn,這些層的先后順序有什么講究嗎?有沒有什么經(jīng)典的設計思路?
    ?
    QA P3 - 11:34
    ?


  • 為什么要有dropout,能提高計算性能嗎?
    ?
    QA P3 - 11:57
    ?


  • 作為一個門外漢,感覺現(xiàn)在新的CV領域模型越來越少,大家都在搞demo,老師如何看待這個事情?
    ?
    QA P3 - 12:10
    ?


  • 網(wǎng)絡要求輸入的size是固定的,實際使用的時候圖片不一定是要求的size,如果強行resize成網(wǎng)絡要求的size,會不會最后的效果要差?
    ?
    QA P3 - 14:02
    ?


  • AlexNet和LeNet為什么在后面都加全連接層,從參數(shù)量來看全連接層占了絕大多數(shù),作用有沒有那么大?
    ?
    QA P3 - 15:15
    ?


  • AlexNet為什么新增加了3層384輸出的卷積層,是有什么理論或者道理嗎?為什么不增加5層或者更多/更少層卷積?這種網(wǎng)絡的設計是通過多次嘗試試出來的?還是有什么理論基礎支撐選擇設計呢?
    ?
    QA P3 - 15:27
    ?





----end----

其它參考:

1、《動手學深度學習》PPT,https://courses.d2l.ai/zh-v2/assets/pdfs/part-1_8.pdf

2、《動手學深度學習》,https://zh-v2.d2l.ai/chapter_convolutional-modern/alexnet.html

24 深度卷積神經(jīng)網(wǎng)絡 AlexNet【動手學深度學習v2】的評論 (共 條)

分享到微博請遵守國家法律
黑山县| 崇文区| 浦江县| 大田县| 宣城市| 新干县| 张家界市| 云南省| 额敏县| 德江县| 平远县| 通州市| 胶南市| 巴东县| 黄骅市| 松潘县| 天津市| 保德县| 浦县| 治多县| 明溪县| 准格尔旗| 保康县| 和平区| 乌鲁木齐县| 筠连县| 吴旗县| 涿鹿县| 玛沁县| 周至县| 乌鲁木齐县| 六枝特区| 汝阳县| 重庆市| 云安县| 香格里拉县| 平陆县| 泾川县| 安龙县| 中超| 嘉黎县|