code

2017年10月18日 星期三

Deep Learning 筆記1 - 什麼是Deep Learning?

什麼是Neural Networks?

假設有以下的data,我們如果用某個function來fit這個dataset (例如linear regression),這個function可以說就是一個最簡單的neural network (事實上這個藍色的線代表的function叫做rectified linear unit, ReLu):


我們把size資訊丟進去一個neuron,最後吐出一個price prediction:


所以neuron代表的就是一個function。

如果考慮更多input feature的話,一個較大型的neural network就會出現了:


我們在training的時候只要提供input x和label y,中間的features或weights演算法會幫我們完成。我們要implement的neural network事實上是每個中間layer (hidden layer)的node都連接所有的input value:



Applications



Structured Data vs Unstructured Data

structured data就是某些數字量化的,跟要預測事務有相關性的data,例如年齡, 價錢, ...



Unstructured data通常是某個整體性instance的呈現,例如一張圖的pixels,或是一段錄音檔的震幅,或是一篇文字,這樣的raw data還不知道如何抽出量化的資訊者 (patterns):



為何Neural networks近年來快速發展?
由於data變多了,以及有更好演算法能力train更大型的NN,兩者都是NN會比傳統ML例如svm / logistic regression好的原因:


由上圖可以看出,當x軸 (m = number of training data)增加時,傳統ML方法(紅線)並無法提升performance,而NN可以exploit big data,而且performance隨著NN的scale成長。但是在small data領域,則傳統ML不輸給NN,所以取決於feature engineering等技巧。

另一個推進NN的動力是硬體計算能力大幅提升,因為training NN是一個iterative action:


train的越快,越能改進NN。



沒有留言:

張貼留言