ML4-Brief Introduction of Deep Learning(李宏毅筆記)
這個系列文章是我對李宏毅教授機器學習課程的一個筆記。
deep learning的趨勢:
回顧一下deep learning的歷史:
perceptron非常像我們的logistics regression只不過是沒有sigmoid部分。09年的GPU的發展是很關鍵的,節省了很多的時間。
我們都知道機器學習有三個step,那麼對於deep learning呢?
那對於deep learning的step1就是Neural Network
Neural network,我們可以有不同的連接方式,這樣就會產生不同的structure:
那都有什麼連接方式呢?其實連接方式都是你手動去設計的:
所以你可以把整個neural network看成是一個function,如果neural network中的權重和閾值都知道的話,就是一個已知的function。(也就是我們如果把參數都設置上去就是一個function)他的輸入是一個向量,對應的輸出也是一個向量。
但是如果沒有已知的權重還有閾值的話呢?
不論是做linear model還是logistics regression都是定義了一個function set。我們可以給上面的結構的參數設置為不同的數,就是不同的function。這些可能的function結合起來就是一個function set。這個時候你的function set是比較大的,是以前的linear model等沒有辦法包含的function,所以說deep learning能表達出以前所不能表達的情況。
我們通過另一種方式顯示:
- 因為layer1與layer2之間兩兩都有連接,所以叫做Fully Connect;
- 因為現在傳遞的方向是由後往前傳,所以叫做Feedforward。
那什麼叫做Deep呢?Deep = Many hidden layer。那到底可以有幾層呢?
對於這樣複雜的結構,我們一定不會一個一個的計算,對於億萬級的計算,使用loop循環效率很低。引入Matrix Operation能使得我們的運算的速度以及效率高很多:
這樣寫成矩陣運算的好處是,你可以使用GPU加速。那我們看看本質是怎麼回事呢?
舉一個手寫數字體識別的例子:
結構就決定了function set是怎麼樣,決定network structured很關鍵。
講完了step1之後就要將step2(怎麼定義參數的好壞):
我們需要把所有的data算起來:
如何找呢?Gradient Descent方法:
現在有很多架構工具了:
為什麼要deep learning
參數多的model擬合數據很好是很正常的。下面有一個通用的理論:
推薦閱讀:
※【谷歌機器學習課程公開了!】Google AI 教育項目今起免費開放,完美支持中文
※機器學習基石筆記13:過擬合(OverFitting)
※使用sklearn來進行驗證碼識別
※降維技術解析:PCA, t-SNE and Auto Encoders
※[貝葉斯八]之極大似然估計