1. 程式人生 > >deeplearning.ai課程學習(1)

deeplearning.ai課程學習(1)

本系列主要是我對吳恩達的deeplearning.ai課程的理解和記錄,完整的課程筆記已經有很多了,因此只記錄我認為重要的東西和自己的一些理解。

 

第一門課 神經網路和深度學習(Neural Networks and Deep Learning)

第一週:深度學習引言(Introduction to Deep Learning)

1、常用神經網路的結構與對應的資料型別

資料型別

結構化資料:表格型別的資料,有明確的行和列。

非結構化資料:音訊、視訊、影象、文字等型別的資料。

網路結構

標準的NN結構如下圖,包含輸入層、隱藏層、輸出層,前一層的所有節點和下一層的所有節點全部相連。可以認為標準的NN是全連線層組成的。

是最常見的網路結構,在資料量充足或者輸入層的特徵合適的情況下會獲得較好的效能。它的輸入一般都是

對於影象應用,我們經常在神經網路上使用卷積(Convolutional Neural Network),通常縮寫為CNN。

正如其名,CNN會包含輸入層、卷積層、輸出層(還會有池化層)。CNN的最大特點就是使用了卷積來提取特徵。

對於序列資料,例如音訊,有一個時間元件,隨著時間的推移,音訊被播放出來。作為一維時間序列(兩種英文說法one-dimensional time series / temporal sequence)。

在序列資料上經常使用RNN,一種遞迴神經網路(Recurrent Neural Network

)。英語和漢語字母表或單詞都是逐個出現的,所以語言也是最自然的序列資料。

 

當然,現實中的實際問題會有更復雜的情況,比如自動駕駛,會使用一些更復雜的混合的神經網路結構。

 

2、為什麼深度學習會興起?

假設有一個任務比如說準確率體現在垃圾郵件過濾或者廣告點選預測,或者是神經網路在自動駕駛汽車時判斷位置的準確性。如果把一個傳統機器學習演算法的效能與資料量的關係畫出來,可能得到一個彎曲的線,如下圖。它的效能一開始在增加更多資料時會上升,但是一段變化後它的效能就會像一個高原一樣。假設你的水平軸拉的很長很長,它們不知道如何處理規模巨大的資料,而過去十年的社會裡,我們遇到的很多問題只有相對較少的資料量。現在,我們的任何行為都會產生資料,並且被收集,使用。

神經網路展現出的是,如果你訓練一個小型的神經網路,那麼這個效能可能會像下圖黃色曲線表示那樣;如果你訓練一個稍微大一點的神經網路,比如說一箇中等規模的神經網路(下圖藍色曲線),它在某些資料上面的效能也會更好一些;如果你訓練一個非常大的神經網路,它就會變成下圖綠色曲線那樣,並且保持變得越來越好。因此可以注意到兩點:如果你想要獲得較高的效能體現,那麼你有兩個條件要完成,第一個是你需要訓練一個規模足夠大的神經網路,以發揮資料規模量巨大的優點,另外你需要能畫到x軸的這個位置,所以你需要很多的資料。

 

可以發現,想要在神經網路上獲得更好的效能,往往就是要麼訓練一個更大的神經網路,要麼投入更多的資料。另外這裡說的資料是有標籤的資料。

 此外,紅框部分想要說明的是,在資料量較小的情況下,各種演算法的效能沒有明確的好壞區分。此時決定演算法效能的效果取決於你的特徵工程以及後續的一些處理(模型融合)。

 

3、評估與迭代

最近幾年,深度學習演算法的創新主要在演算法計算速度的提高上,例如啟用函式從Sigmoid變為了ReLU一方面為了使梯度下降演算法執行更快。

在擁有資料的前提下,演算法的速度提高意味著在同樣的時間內我們能嘗試更多的想法,從而最後在應用是能夠更好。

 

 

參考文獻:

[1]. 課程視訊:Coursera-deeplearning.ai / 網易雲課堂

[2]. 深度學習筆記