當前位置:
首頁 > 知識 > 【白話】深度學習與普通機器學習間的區別原來是這樣的...

【白話】深度學習與普通機器學習間的區別原來是這樣的...

文章標題是個很有趣的問題,深度學習作為機器學習的子集,它和普通機器學習之間到底有什麼區別呢?作者使用了一種很普通的方式來回答這個問題。



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



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




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



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


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


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


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



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



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


推薦一本好書《深度學習實踐》



喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!

TAG: |