當前位置:
首頁 > 最新 > 3分鐘,帶你深入了解機器學習和深度學習!

3分鐘,帶你深入了解機器學習和深度學習!

重磅知識,第一時間送達

本文概述

本次推文主要講述深度學習中淺層模型和深度模型之間的區別,其中主要包括淺層模型的缺點,在了解淺層模型的基礎上採用深層模型具有什麼優勢。

引言

為了能夠讓大家更好的理解,本次文章將以問答的形式進行展現,其中會先從幾個關鍵詞的介紹,並逐步深入到淺層模型、深度模型。

什麼是高緯度數據?

在複雜的識別任務中,由於需要很多的觀察變數來表徵識別環境的具體因素,由於變數之間還存在一些內在的關係,這些變數組合到一塊便形成了高維數據。舉個簡單的例子,如用集合S表示一隻羊,那麼S=,但是你會發現羊的特徵不止這麼多,還有很多,那麼越多這樣的特徵就會組成高緯度數據。

什麼是機器理解?

如果機器能夠捕獲足以解釋數據變數中的統計性的變化因素,以及這些因素如何相互作用形成我們所觀測到的數據,那麼我們可以認為該機器明白了這些變化因素構成的世界。舉個例子來說,就是如果機器根據羊的多個特徵、以及這些特徵的組合能夠識別出這是一隻羊,那麼就可以認為機器理解了。

什麼是維度災難,以及解決方法?

為了讓機器理解周圍環境,需要處理高緯度數據,但是機器的學習複雜度會隨著數據維度的增加呈指數級增長。Bellman將這一現象稱為維度災難。傳統解決方法:對數據進行預處理,並將數據的維度降低到一個適合學習器處理的範圍,這一過程通常被稱為特徵抽取。所以最初的機器學習系統建立的過程中最重要的一個步驟就是手工構造合理的特徵抽取方法。但是手工地選取特徵是一件非常費力、啟發式(需要專業知識)的方法,能不能選取好很大程度上靠經驗和運氣,而且它的調節需要大量的時間。並且如果抽取特徵不合適將會限制機器學習系統的性能。

怎麼解決傳統學習方法的缺點?

為什麼不能在高維數據中學習出我們需要的特徵呢?帶著這個問題,我們就從傳統機器學習到了深度學習。在介紹深度學習之前,有幾個問題需要知道。

什麼是淺層模型和深度模型。如果說可以將一個計算機模型看作是由若干個計算單元構成的圖,根據圖論的定義,該模型的深度為輸入節點到輸出節點之間最長路徑的長度。類似的在神經網路中,每個神經元均可被視為一個計算單元,因此一個神經網路模型可以視為由這些計算單元構成的圖,該圖中輸入節點到輸出節點之間最長路徑的長度即為該神經網路模型的深度,在分層前饋網路中該深度等於模型中神經元的層數。因此,深度模型指的是深度較大的模型,淺層模型指的是深度較小的模型(一般只有一個隱藏層)。

為了讓大家進一步了解淺層模型和深度模型在實際應用之間的差距,這裡舉一個圖像方面提取特徵的例子:首先最接近輸入數據的隱藏層1的輸入是原始數據,即圖像中的像素值,隱藏層1處理這些像素值,並從中抽取出諸如色塊、線條等等基本特徵,並輸入位於其上的隱藏層2,隱藏層2處理隱藏層1得到的這些基本特徵,並從中進一步抽取出諸如圓形、矩形等等較為高層的特徵,並進一步輸入位於其上的隱藏層3,……以此類推,深度模型通過這中逐層處理的方式,最終可以從原始數據中抽取出具有強表達能力的高層特徵,這些特徵是原始數據的分散式表示。通過使用這些特徵再完成分類等具體任務的處理,相比於直接使用原始數據或者使用淺層模型從原始數據中抽取的簡單特徵而言,模型的性能由了顯著的提高。(簡單的理解就是說,如果是一個立方體,深度模型是從點到線,然後線到面,最後面到體的識別過程,而淺層模型就是根據計算從點直接識別出來這是個立方體,可見淺層模型的局限性)。

深度模型訓練遇到的問題及其解決方法?

上面可以發現,深度模型相對於淺層模型在表達能力上具有很好的優勢,但是經驗證據表明,深度模型的訓練是一個比淺層模型的訓練要困難得多的優化問題,大量實驗表明深層神經網路的訓練非常容易被困於局部極值點,最後模型的泛化能力甚至不如只有1或者2個隱藏層的神經網路。為了解決這個問題,偉大的Hinton通過「貪婪逐層預訓練」的方法【1】,成功的解決了該難題,並首次有效的訓練出了用於手寫數字識別的包含多個隱藏層的深度神經網路。

預訓練是指在使用傳統的反向傳播演算法訓練神經網路前,先逐層對模型進行特徵提取導向的訓練,使得模型的每一層都可以從數據中抽取出有效的分散式表(提取特徵)示。

「貪婪逐層」是指在預訓練時通過分層訓練的方法,逐層向神經網路中增加經過預訓練的隱藏層,直到構造出深度足夠的模型,從而在預訓練的過程中避免梯度消失。經過預訓練構造出深度神經網路後,可根據實際應用在最後一個隱藏層之上增加一個面向具體任務的輸出層,此時通過反向傳播演算法並結合任務相關的有監督訓練數據即可有效的訓練深度模型,這一過程稱為深度模型的「有監督調優訓練」。

通過先進行「貪婪逐層預訓練」再進行「有監督調優訓練」得到的深度神經網路可以看成由兩個部分組成:第一個部分是輸入層和所有經過預訓練的隱藏層組成的特徵抽取器,該特徵抽取其具有深層結構,因此,可以從數據中抽取複雜的高層特徵;第二個任務就是softmax分類器,負責使用特徵抽取器中抽取出的複雜高層特徵完成具體的分類任務。從優化問題的角度來說,反向傳播演算法是一種基於梯度的優化演算法,其優化過程是從模型參數空間中的某個初始位置開始,在參數空間中根據梯度尋找目標函數的極值點。但是由於深度模型中的梯度小時問題,如果從模型參數空間的隨機位置開始搜索,這一搜索過程將是非常困難,因此反向傳播演算法無法被有效地直接用於訓練深度模型。但是通過預訓練則可以預先調整模型的參數,使得在基於梯度的搜索開始之前就將模型參數置於參數空間中相對靠近極值點的位置,此時在根據梯度尋找極值點項對比於從隨機位置開始尋找極值點將容易很多。這是預訓練能夠有效的提升深度神經網路性能的根本原因。

參考文獻

【1】Hinton G E,Osindero S, Teh Y W. A fast learning algorithm for deep belief nets[J]. NeuralComputation, 2006, 18(7):1527-1554.

【2】吳軻. (2014). 基於深度學習的中文自然語言處理. (Doctoral dissertation, 東南大學).

重磅知識,第一時間送達


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

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


請您繼續閱讀更多來自 機器學習 的精彩文章:

蘋果請來谷歌AI大腕執掌Siri和機器學習部門
利用機器學習為廣告生成有說服力的面孔

TAG:機器學習 |