寫在前面的話:
網上找了很多資料,還是李宏毅老師的《1天搞懂深度學習》好評如潮,有的資料比較分散,就把一些很不錯的鏈接集中在這裏了。
PPT:
這是slideshare的鏈接:
http://www.slideshare.net/tw_dsconf/ss-62245351?qid=108adce3-2c3d-4758-a830-95d0a57e46bc&v=&b=&from_search=3
百度雲鏈接:
鏈接: https://pan.baidu.com/s/1lgMGT-L_KwlBLkWr70TAxQ 提取碼: gap5
視頻:
YouTube鏈接:
https://www.youtube.com/playlist?list=PLJV_el3uVTsPMxPbjeX7PicgWbY7F8wW9
斯坦福計算機視覺課程:
乾貨總結:
https://blog.csdn.net/dulingwen/article/details/88924695
下面是一些PPT頁的說明總結,轉自:
https://blog.csdn.net/u010164190/article/details/72633245
整個PPT的思維導圖如下:
深度學習概論
介紹深度學習
作者非常淺顯的指出機器(深度)學習過程非常簡單,分爲定義方法、判斷方法的優劣、挑選出最佳的方法。
對於深度學習,首先第一步定義方法 - 神經網絡。深度學習顧名思義是指多層的神經網絡。
神經網絡的思想來源於對於人腦的生理上的研究,人腦由數億個神經元組成,神經元通過軸突互相連接通信。神經網絡和人腦類似,存在多個層級(layer),每個層級都有多個節點(神經元),層級和層級之間相互連接(軸突),最終輸出結果。
對於神經網絡的計算能力可以理解爲通過一層層Layer的計算歸納,逐步的將抽象的原始數據變的具體。以圖片識別爲例,輸入是一個個像素點,經過每層神經網絡,逐步變化成爲線、面、對象的概念,然後機器有能力能夠識別出來。
第二步,評估方法的優劣。
Loss function是用於評估方法優劣,通常我們用學習出來的參數對測試數據進行計算,得出對應的預測(y)然後和真實的測試數據的目標值(t)進行比對,y和t之間的差距往往就是Loss。那麼評估一個算法的好壞,就是要儘可能的降低Loss。
第三步,如何獲得最佳的學習方法
獲得最佳的學習是採用梯度下降算法,作者也提到梯度下降算法存在局部最優解的問題。人們往往認爲機器無所不能,實際上更像是在一個地圖上面拓荒,對周邊一無所知。神經網絡計算梯度的算法是反向傳播算法,簡稱BP。
Why Deep?
作者首先指出越多的參數往往帶來越好的預測能力,所以神經網絡往往參數越多越好。那麼如果是同樣的參數情況下,爲什麼層級較多的表現會更好呢?
作者認爲深度網絡可以帶來模塊化的好處,隨着網絡的層級,神經網絡會將像素元素逐漸歸納出一些基本的特徵,進而變成紋理,進而變成對象。
訓練方法
作者總結下來訓練過程中會發現了兩種情況:
1. 沒有辦法得到很好的訓練結果 ---》 重新選擇訓練方式
2. 沒有辦法得到很好的測試結果 ---》 往往由於過度擬合導致,需要重新定義方法
優化訓練方法的手段:
1. 選擇合適的Loss function:使用Cross Entropy效果要優於Mean Square Error
2. Mini-batch: 每次訓練使用少量數據而不是全量數據效率更高
3. Activation Function:使用ReLU替代Sigmoid可以解決梯度消失的問題,可以訓練更深的神經網絡
4. Adaptive Learning Rate:可以隨着迭代不斷自我調整,提高學習效率
5. Momentum: 可以一定程度上避免陷入局部最低點的問題
避免過度擬合(overfitting)的方法:
1. Early Stopping:使用cross validation的方式,不斷對validation data進行檢驗,一旦發現預測精度下降則停止。
2. Weight Decay:參數正則化的一種方式?
3. Dropout:通過隨機去掉一些節點的連接達到改變網絡形式,所以會產生出多種網絡形態,然後彙集得到一個最佳結果
4. Network Structure: 例如CNN等其他形態的網絡
神經網絡變體
Convolutional Neural Network (CNN)
通常情況下,一個CNN包含多次的卷積、池化,然後Flatten,最終再通過一個深度神經網絡進行學習預測。CNN在圖像、語音識別取得非常好的成績,核心的想法在於一些物體的特徵往往可以提取出來,並且可能出現在圖片的任何位置,而且通過卷積、池化可以大大減少輸入數據,加快訓練效率。
Recurrent Neural Network (RNN)
RNN的想法是可以將hidden layer的數據存儲下來,然後作爲輸入給下一個網絡學習。這種網絡的想法可以解決自然語言中前後詞語是存在關聯性的,所以RNN可以把這些關聯性放到網絡中進行學習。
其他前沿技術
Ultra Deep Network:2015年出現了152層的Residual Net實現了圖片3.57%錯誤率
Reinforcement Learning: 通過獎勵機制強化學習,並且做出相應的動作
Unsupervised Learning:
1. Deep Style
2. 生成圖片
3. 無需人工介入理解文字的含義