天天看點

深度學習和普通機器學習之間有何差別?

本質上,深度學習提供了一套技術和算法,這些技術和算法可以幫助我們對深層神經網絡結構進行參數化——人工神經網絡中有很多隐含層數和參數。深度學習背後的一個關鍵思想是從給定的資料集中提取高層次的特征。是以,深度學習的目标是克服單調乏味的特征工程任務的挑戰,并幫助将傳統的神經網絡進行參數化。

現在,為了引入深度學習,讓我們來看看一個更具體的例子,這個例子涉及多層感覺器(MLP)。

在MLP中,“感覺器”這個詞可能有點讓人困惑,因為我們并不想隻在我們的網絡中使用線性神經元。利用MLP,我們可以學習複雜的函數來解決非線性問題。是以,我們的網絡通常由連接配接輸入和輸出層的一個或多個“隐藏”層組成。這些隐藏的層通常有某種S型的激活函數(logs-s形或雙曲正切等)。例如,在我們的網絡中,一個邏輯回歸單元,傳回0-1範圍内的連續值。一個簡單的MLP看起來就像這樣:

深度學習和普通機器學習之間有何差別?

其中y是最終的類标簽,我們傳回的是基于輸入x的預測,“a”是我們激活的神經元,而“w”是權重系數。現在,如果我們向這個MLP添加多個隐藏層,我們也會把網絡稱為“深度”。這種“深度”網絡的問題在于,為這個網絡學習“好”的權重變得越來越難。當我們開始訓練我們的網絡時,我們通常會将随機值指派為初始權重,這與我們想要找到的“最優”解決方案很不一樣。在訓練過程中,我們使用流行的反向傳播算法(将其視為反向模式自動微分)來傳播從右到左的“錯誤”,并計算每一個權重的偏導數,進而向成本(或“錯誤”)梯度的相反方向邁進。現在,深度神經網絡的問題是所謂的“消失梯度”——我們添加的層越多,就越難“更新”我們的權重,因為信号變得越來越弱。由于我們的網絡的權重在開始時可能非常糟糕(随機初始化),是以幾乎不可能用反向傳播來參數化一個具有“深度”的神經網絡。

這就是深度學習發揮作用的地方。粗略地說,我們可以把深度學習看作是一種“聰明”的技巧或算法,可以幫助我們訓練這種“深度”神經網絡結構。有許多不同的神經網絡結構,但是為了繼續以MLP為例,讓我來介紹卷積神經網絡(CNN)的概念。我們可以把它看作是我們的MLP的“附加元件”,它可以幫助我們檢測到我們的MLP“好”的輸入。

在一般機器學習的應用中,通常有一個重點放在特征工程部分;算法學習的模型隻能是和輸入資料一樣好。當然,我們的資料集必須要有足夠多的、具有辨識能力的資訊,然而,當資訊被淹沒在無意義的特征中,機器學習算法的性能就會受到嚴重影響。深度學習的目的是從雜亂的資料中自動學習;這是一種算法,它為我們提供了具有意義的深層神經網絡結構,使其能夠更有效地學習。我們可以把深度學習看作是自動學習“特征工程”的算法,或者我們也可以簡單地稱它們為“特征探測器”,它可以幫助我們克服一系列挑戰,并促進神經網絡的學習。

讓我們在圖像分類的背景下考慮一個卷積神經網絡。在這裡,我們使用所謂的“接收域”(将它們想象成“視窗”),它們會經過我們的圖像。然後,我們将這些“接受域”(例如5x5像素的大小)和下一層的1個單元連接配接起來,這就是所謂的“特征圖”。在這個映射之後,我們建構了一個所謂的卷積層。注意,我們的特征檢測器基本上是互相複制的——它們共享相同的權重。它的想法是,如果一個特征檢測器在圖像的某個部分很有用,它很可能在其他地方也有用,與此同時,它還允許用不同的方式表示圖像的各個部分。

深度學習和普通機器學習之間有何差別?

接下來,我們有一個“池”層,在這個層中,我們将我們的特征映射中的相鄰特征減少為單個單元(例如,通過擷取最大特征,或者對其進行平均化)。我們在很多測試中都這樣做,最終得出了我們的圖像的幾乎不不變的表示形式(确切的說法是“等變量”)。這是非常強大的,因為無論它們位于什麼位置,我們都可以在圖像中檢測到對象。

深度學習和普通機器學習之間有何差別?

本質上,CNN這個附加元件在我們的MLP中充當了特征提取器或過濾器。通過卷積層,我們可以從圖像中提取有用的特征,通過池層,我們可以使這些特征在縮放和轉換方面有一定的不同。

以上為譯文

文章原标題《What is the difference between deep learning and usual machine learning》譯者:黃小凡,審校:袁虎。

繼續閱讀