㈠ 如何更好的理解分析深度卷積神經網路
作者:楊延生
鏈接:
來源:知乎
著作權歸作者所有,轉載請聯系作者獲得授權。
"深度學習"是為了讓層數較多的多層神經網路可以訓練,能夠work而演化出來的一系列的 新的結構和新的方法。
新的網路結構中最著名的就是CNN,它解決了傳統較深的網路參數太多,很難訓練的問題,使用了逗局部感受野地和逗權植共享地的概念,大大減少了網路參數的數量。關鍵是這種結構確實很符合視覺類任務在人腦上的工作原理。
新的結構還包括了:LSTM,ResNet等。
新的方法就多了:新的激活函數:ReLU,新的權重初始化方法(逐層初始化,XAVIER等),新的損失函數,新的防止過擬合方法(Dropout, BN等)。這些方面主要都是為了解決傳統的多層神經網路的一些不足:梯度消失,過擬合等。
---------------------- 下面是原答案 ------------------------
從廣義上說深度學習的網路結構也是多層神經網路的一種。
傳統意義上的多層神經網路是只有輸入層、隱藏層、輸出層。其中隱藏層的層數根據需要而定,沒有明確的理論推導來說明到底多少層合適。
而深度學習中最著名的卷積神經網路CNN,在原來多層神經網路的基礎上,加入了特徵學習部分,這部分是模仿人腦對信號處理上的分級的。具體操作就是在原來的全連接的層前面加入了部分連接的卷積層與降維層,而且加入的是一個層級。
輸入層 - 卷積層 -降維層 -卷積層 - 降維層 -- .... -- 隱藏層 -輸出層
簡單來說,原來多層神經網路做的步驟是:特徵映射到值。特徵是人工挑選。
深度學習做的步驟是 信號->特徵->值。 特徵是由網路自己選擇。
㈡ 深度神經網路是如何訓練的
Coursera的Ng機器學習,UFLDL都看過。沒記錯的話Ng的機器學習里是直接給出公式了,雖然你可能知道如何求解,但是即使不知道完成作業也不是問題,只要照著公式寫就行。反正我當時看的時候心裡並沒能比較清楚的明白。我覺得想了解深度學習UFLDL教程 - Ufldl是不錯的。有習題,做完的話確實會對深度學習有更加深刻的理解,但是總還不是很清晰。後來看了Li FeiFei的Stanford University CS231n: Convolutional Neural Networks for Visual Recognition,我的感覺是對CNN的理解有了很大的提升。沉下心來推推公式,多思考,明白了反向傳播本質上是鏈式法則(雖然之前也知道,但是當時還是理解的迷迷糊糊的)。所有的梯度其實都是對最終的loss進行求導得到的,也就是標量對矩陣or向量的求導。當然同時也學到了許多其他的關於cnn的。並且建議你不僅要完成練習,最好能自己也寫一個cnn,這個過程可能會讓你學習到許多更加細節和可能忽略的東西。這樣的網路可以使用中間層構建出多層的抽象,正如我們在布爾線路中做的那樣。例如,如果我們在進行視覺模式識別,那麼在第一層的神經元可能學會識別邊,在第二層的神經元可以在邊的基礎上學會識別出更加復雜的形狀,例如三角形或者矩形。第三層將能夠識別更加復雜的形狀。依此類推。這些多層的抽象看起來能夠賦予深度網路一種學習解決復雜模式識別問題的能力。然後,正如線路的示例中看到的那樣,存在著理論上的研究結果告訴我們深度網路在本質上比淺層網路更加強大。
㈢ 【深度學習】入門寶典:淺談深度神經網路
深度學習之旅:淺析深度神經網路
神經網路,模仿生物大腦的結構,由眾多神經元連接而成。它們通過興奮性和傳導性,構建起復雜的信息處理系統。人工神經網路(ANN)則以淺層和深度網路形式展現,淺層適用於結構化數據,如Excel表格,深度網路則處理非結構化數據,如圖像和文本。
深度神經網路是生成式AI的基石,用TensorFlow和Keras實現,強調實踐的重要性。從構建基礎的神經網路開始,我們一步步通過Keras創建、訓練和評估模型,從線性回歸模型到更復雜的前饋神經網路(FNN)和卷積神經網路(CNN)。
在FNN部分,我們用極簡網路預測圖像類別,通過CIFAR-10數據集展示了訓練和評估的過程。我們學習了模型的構建和優化,包括使用序列式和函數式結構,激活函數的選擇,以及批量歸一化和隨機失活等技巧。
在CNN部分,我們深入理解了卷積操作和濾波器,通過添加批量歸一化和dropout來提升模型性能。卷積層能捕捉圖像特徵,而訓練過程中的驗證數據則幫助防止過擬合。最後,我們看到深度神經網路(如CNN)的參數雖多,但性能提升顯著,因為它們能提取和利用高級特徵。
總的來說,深度學習是通過不斷嘗試和優化網路結構,實現從簡單到復雜的模型升級,其靈活性和潛力無窮,等待著我們去探索和實踐。