明天有工作進度大報告,在今天簡短的兩小時內要快速了解一個新模型並做總結,有點壓力呀~
廢話不多說,Let's go!
1.認識AlexNet模型架構
2.學習該模型提倡的幾個模型設計
AlexNet為Alex Krizhevsky等人在2012年在ImageNet影像識別競賽獲得冠軍的模型(論文連結),AlexNet top-5測試集錯誤率比前一年冠軍(SIFT+FVs)下降了10%(下圖),該模型的出現使得深度學習在影像識別等領域的研究開啟興盛的時代。
圖片出處
圖片出處
根據上圖AlexNet的架構共八層,第一層到第五層是卷積層(CNN)和池化層(pooling),第六層到第八層是全連接層(fully connected Layers),較LeNet有更深的神經網路結構,共有5層卷積和3層全連接層,論文中提到幾點詳述如下。
解決當時流行的激活函數(sigmoid, tanh)的梯度消失(vanishing gradient)問題。梯度消失發生原因:當卷積神經網路CNN層數太深時,參數權重變化對損失(loss)的影響就會隨著神經元的傳遞而衰減,造成參數無法被更新,訓練將不繼續收斂。
受限於當時GPU記憶體容量,作者將神經網路(net)分散在兩顆GPU。平行運算方式將所有卷積核(kernel)或神經元(neurons)分成一半個放在一顆GPU上,透過此方式能相較只在一顆GPU上稍微減少運算時間。
對局部區域神經元間創造競爭機制,使得其中反應較大的數值變得更大,並抑制反饋較小的神經元,目標是提升預測準確性,但後續研究發現該方法幫助有限,現今已很少見。
池化層目的在蒐集特定區域特徵並統整整張圖片資訊,傳統的池化掃過的範圍並不重複,作者在實驗中顯示重疊池化能降低錯誤率並且防止過度擬合。
最常見且最容易防止模型過度擬合的方法就是「資料擴充」,作者提出兩種方式:
透過每次丟棄不同神經元(每個神經元(neuron)會有0.5機率不參與訓練(同時不參與前向傳播(forwark)和反向傳播(back propagation),造成每回合訓練的神經網路架構有些微差異,強迫模型學到更泛化的資料特徵。
以上幾項神經網路設計,後續被證明能強健模型的穩定性和提升預測表現,在現今許多複雜模型仍可看到上述相關設計。
認識在影像辨識預測準確率大幅提升的經典模型AlexNet,透過學習該模型架構和閱讀其論文,能了解到有哪些有用的模型架構設計能應用,將當作工具在此次的農作物分類競賽上視需求使用。
明天將介紹影像識別競賽上,下一個超越AlexNet模型的經典模型VGG。
參考:
心得小語:
終於完成啦~~ 因為是距今約十年前發表的模型架構,網路上蠻多資源可學習統整,也才發現原來蠻多現今常見的技巧(dropout、ReLU)等等,居然都已經存在許久,能站在巨人的肩膀上學習真好!
感謝今日的學習,也希望明天工作的會議順利呀,明天見!
今日工時: 50min*3
努力學習,勤奮工作,讓生命更加耀眼
Study hard, work hard, make the life more glorious.