Deep Learning深入研究整理學習筆記五

2021-09-06 23:38:44 字數 3429 閱讀 2707

deep learning(深度學習)學習筆記整理系列

[email protected]

version 1.0 2013-04-08

宣告:

1)該deep learning的學習系列是整理自網上非常大牛和機器學習專家所無私奉獻的資料的。詳細引用的資料請看參考文獻。詳細的版本號宣告也參考原文獻。

3)本人才疏學淺,整理總結的時候難免出錯,還望各位前輩不吝指正,謝謝。

4)閱讀本文須要機器學習、計算機視覺、神經網路等等基礎(假設沒有也沒關係了,沒有就看看,能不能看懂,呵呵)。

資料夾:

一、概述

二、背景

三、人腦視覺機理

四、關於特徵

4.1、特徵表示的粒度

4.2、0基礎(淺層)特徵表示

4.3、結構性特徵表示

4.4、須要有多少個特徵?

五、deep learning的基本思想

六、淺層學習(shallow learning)和深度學習(deep learning)

七、deep learning與neural network

八、deep learning訓練過程

8.1、傳統神經網路的訓練方法

8.2、deep learning訓練過程

九、deep learning的經常使用模型或者方法

9.1、autoencoder自己主動編碼器

9.2、sparse coding稀疏編碼

9.3、restricted boltzmann machine(rbm)限制波爾茲曼機

9.4、deep beliefnetworks深信度網路

9.5、convolutional neural networks卷積神經網路

十、總結與展望

十一、參考文獻和deep learning學習資源

接上9.2、sparse coding稀疏編碼

假設我們把輸出必須和輸入相等的限制放鬆,同一時候利用線性代數中基的概念,即o = a1*φ1 + a2*φ2+….+ an*φn, φi是基,ai是係數,我們能夠得到這樣乙個優化問題:

min |i – o|,當中i表示輸入,o表示輸出。

通過求解這個最優化式子,我們能夠求得係數ai和基φi,這些係數和基就是輸入的第二種近似表達。

因此,它們能夠用來表達輸入i,這個過程也是自己主動學習得到的。假設我們在上述式子上加上l1的regularity限制,得到:

min |i – o| + u*(|a1| + |a

2| + … + |a

n |)

這樣的方法被稱為sparse coding。通俗的說,就是將乙個訊號表示為一組基的線性組合,並且要求僅僅須要較少的幾個基就能夠將訊號表示出來。「稀疏性」定義為:僅僅有非常少的幾個非零元素或僅僅有非常少的幾個遠大於零的元素。要求係數 ai 是稀疏的意思就是說:對於一組輸入向量,我們僅僅想有盡可能少的幾個係數遠大於零。選擇使用具有稀疏性的分量來表示我們的輸入資料是有原因的,由於絕大多數的感官資料,比方自然影象,能夠被表示成少量基本元素的疊加,在影象中這些基本元素能夠是面或者線。同一時候,比方與0基礎視覺皮層的模擬過程也因此得到了提公升(人腦有大量的神經元,但對於某些影象或者邊緣僅僅有非常少的神經元興奮,其它都處於抑制狀態)。

稀疏編碼演算法是一種無監督學習方法,它用來尋找一組「超完備」基向量來更高效地表示樣本資料。儘管形如主成分分析技術(pca)能使我們方便地找到一組「完備」基向量,可是這裡我們想要做的是找到一組「超完備」基向量來表示輸入向量(也就是說,基向量的個數比輸入向量的維數要大)。超完備基的優點是它們能更有效地找出隱含在輸入資料內部的結構與模式。然而,對於超完備基來說,係數ai不再由輸入向量唯一確定。因此,在稀疏編碼演算法中,我們另加了乙個評判標準「稀疏性」來解決因超完備而導致的退化(degeneracy)問題。(

詳細過程請參考:ufldl tutorial稀疏編碼

比方在影象的feature extraction的最底層要做edge detector的生成,那麼這裡的工作就是從natural images中randomly選取一些小patch,通過這些patch生成能夠描寫敘述他們的「基」,也就是右邊的8*8=64個basis組成的basis,然後給定乙個test patch, 我們能夠依照上面的式子通過basis的線性組合得到,而sparse matrix就是a,下圖中的a中有64個維度,當中非零項僅僅有3個,故稱「sparse」。

這裡可能大家會有疑問,為什麼把底層作為edge detector呢?上層又是什麼呢?這裡做個簡單解釋大家就會明確,之所以是edge detector是由於不同方向的edge就能夠描寫敘述出整幅影象,所以不同方向的edge自然就是影象的basis了……而上一層的basis組合的結果,上上層又是上一層的組合basis……(就是上面第四部分的時候咱們說的那樣)

sparse coding分為兩個部分:

1)training階段:給定一系列的樣本[x1, x 2, …],我們須要學習得到一組基[φ1, φ2, …],也就是字典。

稀疏編碼是k-means演算法的變體,其訓練過程也差點兒相同(em演算法的思想:假設要優化的目標函式包括兩個變數,如l(w, b),那麼我們能夠先固定w,調整b使得l最小,然後再固定b,調整w使l最小,這樣迭代交替,不斷將l推向最小值。em演算法能夠見我的部落格:「

從最大似然到em演算法淺解

」)。 訓練過程就是乙個反覆迭代的過程,按上面所說,我們交替的更改a和φ使得以下這個目標函式最小。

每次迭代分兩步:

a)固定字典φ[k],然後調整a[k],使得上式,即目標函式最小(即解lasso問題)。

b)然後固定住a [k],調整φ [k],使得上式,即目標函式最小(即解凸qp問題)。

不斷迭代,直至收斂。這樣就能夠得到一組能夠良好表示這一系列x的基,也就是字典。

2)coding階段:給定乙個新的x,由上面得到的字典,通過解乙個lasso問題得到稀疏向量a。這個稀疏向量就是這個輸入向量x的乙個稀疏表達了。

比如:

下續

xilinx 高速收發器Serdes深入研究

傳統的源同步傳輸,時鐘和資料分離。在速率比較低時 1000m 沒有問題。在速率越來越高時,這樣會有問題 由於傳輸線的時延不一致和抖動存在,接收端不能正確的取樣資料,對不准眼圖中點。然後就想到了從資料裡面恢復出時鐘去取樣資料,即cdr 這樣就不存在延遲不一致的情況,有輕微的抖動也不會影響取樣 恢復的時...

深度學習Deep Learning

概述 deep feedforward network 深度前饋網路 又名feedforward neural network 前饋神經網路 或 multilayer perceptron 多層感知器 是深度學習模型的精髓 前饋網路的目的是逼近某種方程f 比如乙個分類器,y f x 將輸入x對映到類...

DeepLearning 應用概述

利用卷積的目標篩選功能,用在視覺識別領域。現在此領域好用的網路基本上全部基於cnn,核心都是卷積。迴圈神經網路用於語音識別於自然語言處理。相較於 cnn 在影象識別和檢測方面的廣泛應用,基於序列模型的 rnn 的應用方面則是語音識別 文字翻譯和自然語言處理等其他更為激動人心的領域。所以,正如 cnn...