淺談深度學習的基本思想和方法
淺談深度學習的基本思想和方法
淺談深度學習(Deep Learning)的基本思想和方法 深度學習(Deep Learning),又叫Unsupervised Feature Learning或者Feature Learning,是目前非常熱的一個研究主題。
本文將主要介紹Deep Learning的基本思想和常用的方法。
一. 什么是Deep Learning?
實際生活中,人們?yōu)榱私鉀Q一個問題,如對象的分類(對象可是是文檔、圖像等),首先必須做的事情是如何來表達一個對象,即必須抽取一些特征來表示一個對象,如文本的處理中,常常用詞集合來表示一個文檔,或把文檔表示在向量空間中(稱為VSM模型),然后才能提出不同的分類算法來進行分類;又如在圖像處理中,我們可以用像素集合來表示一個圖像,后來人們提出了新的特征表示,如SIFT,這種特征在很多圖像處理的應用中表現非常良好,特征選取得好壞對最終結果的影響非常巨大。因此,選取什么特征對于解決一個實際問題非常的重要。
然而,手工地選取特征是一件非常費力、啟發(fā)式的`方法,能不能選取好很大程度上靠經驗和運氣;既然手工選取特征不太好,那么能不能自動地學習一些特征呢?答案是能!Deep Learning就是用來干這個事情的,看它的一個別名Unsupervised Feature Learning,就可以顧名思義了,Unsupervised的意思就是不要人參與特征的選取過程。因此,自動地學習特征的方法,統(tǒng)稱為Deep Learning。
二. Deep Learning的基本思想
假設我們有一個系統(tǒng)S,它有n層(S1,...Sn),它的輸入是I,輸出是O,形象地表示為: I =>S1=>S2=>.....=>Sn => O,如果輸出O等于輸入I,即輸入I經過這個系統(tǒng)變化之后沒有任何的信息損失,保持了不變,這意味著輸入I經過每一層Si都沒有任何的信息損失,即在任何一層Si,它都是原有信息(即輸入I)的另外一種表示,F在回到我們的主題Deep Learning,我們需要自動地學習特征,假設我們有一堆輸入I(如一堆圖像或者文本),假設我們設計了一個系統(tǒng)S(有n層),我們通過調整系統(tǒng)中參數,使得它的輸出仍然是輸入I,那么我們就可以自動地獲取得到輸入I的一系列層次特征,即S1,..., Sn。
另外,前面是假設輸出嚴格地等于輸入,這個限制太嚴格,我們可以略微地放松這個限制,
例如我們只要使得輸入與輸出的差別盡可能地小即可,這個放松會導致另外一類不同的Deep Learning方法。上述就是Deep Learning的基本思想。
三.Deep Learning的常用方法
a). AutoEncoder
最簡單的一種方法是利用人工神經網絡的特點,人工神經網絡(ANN)本身就是具有層次結構的系統(tǒng),如果給定一個神經網絡,我們假設其輸出與輸入是相同的,然后訓練調整其參數,得到每一層中的權重,自然地,我們就得到了輸入I的幾種不同表示(每一層代表一種表示),這些表示就是特征,在研究中可以發(fā)現,如果在原有的特征中加入這些自動學習得到的特征可以大大提高精確度,甚至在分類問題中比目前最好的分類算法效果還要好!這種方法稱為AutoEncoder。當然,我們還可以繼續(xù)加上一些約束條件得到新的Deep Learning方法,如如果在AutoEncoder的基礎上加上L1的Regularity限制(L1主要是約束每一層中的節(jié)點中大部分都要為0,只有少數不為0,這就是Sparse名字的來源),我們就可以得到Sparse AutoEncoder方法。
b). Sparse Coding
如果我們把輸出必須和輸入相等的限制放松,同時利用線性代數中基的概念,即O = w1*B1 + W2*B2+....+ Wn*Bn, Bi是基,Wi是系數,我們可以得到這樣一個優(yōu)化問題:
Min |I - O|
通過求解這個最優(yōu)化式子,我們可以求得系數Wi和基Bi,這些系數和基礎就是輸入的另外一種近似表達,因此,它們可以特征來表達輸入I,這個過程也是自動學習得到的。如果我們在上述式子上加上L1的Regularity限制,得到:
Min |I - O| + u*(|W1| + |W2| + ... + |Wn|)
這種方法被稱為Sparse Coding。
c) Restrict Boltzmann Machine (RBM)
假設有一個二部圖,每一層的節(jié)點之間沒有鏈接,一層是可視層,即輸入數據層(v),一層
是隱藏層(h),如果假設所有的節(jié)點都是二值變量節(jié)點(只能取0或者1值),同時假設全概率分布p(v, h)滿足Boltzmann 分布,我們稱這個模型是Restrict Boltzmann Machine
(RBM)。下面我們來看看為什么它是Deep Learning方法。首先,這個模型因為是二部圖,所以在已知v的情況下,所有的隱藏節(jié)點之間是條件獨立的,即p(h|v) =p(h1|v).....p(hn|v)。同理,在已知隱藏層h的情況下,所有的可視節(jié)點都是條件獨立的,同時又由于所有的v和h滿足Boltzmann 分布,因此,當輸入v的時候,通過p(h|v) 可以得到隱藏層h,而得到隱藏層h之后,通過p(v|h) 又能得到可視層,通過調整參數,我們就是要使得從隱藏層得到的可視層v1與原來的可視層v如果一樣,那么得到的隱藏層就是可視層另外一種表達,因此隱藏層可以作為可視層輸入數據的特征,所以它就是一種Deep Learning方法。
如果,我們把隱藏層的層數增加,我們可以得到Deep Boltzmann Machine (DBM);如果我們在靠近可視層的部分使用貝葉斯信念網絡(即有向圖模型,當然這里依然限制層中節(jié)點之間沒有鏈接),而在最遠離可視層的部分使用Restrict Boltzmann Machine,我們可以得到Deep Belief Net (DBN) 。
當然,還有其它的一些Deep Learning 方法,在這里就不敘述了?傊珼eep Learning能夠自動地學習出數據的另外一種表示方法,這種表示可以作為特征加入原有問題的特征集合中,從而可以提高學習方法的效果,是目前業(yè)界的研究熱點。
【淺談深度學習的基本思想和方法】相關文章:
淺談韓語的學習方法09-12
淺談韓語學習方法09-10
淺談韓語語音的學習方法09-10
淺談黃山旅游產業(yè)深度開發(fā)10-16
學習圍棋的方法和技巧09-07
硬盤的深度維護的方法介紹07-03
淺談韓語的學習方法是什么09-10
淺談奧數學習的作用與方法09-30
淺談網絡營銷都的技巧和方法12-08