sparse coding稀疏表達入門

2022-06-01 22:51:14 字數 896 閱讀 5500

最近在看sparse and redundant representations這本書,進度比較慢,不過力爭看過的都懂,不把時間浪費掉。才看完了不到3頁吧,書上基本給出了稀疏表達的概念以及傳統的求法。我也用書中的例子來引入吧。

1:矩陣a(n*m),其中n遠遠小於m,一副經過縮小或者模糊處理導致該所占用的空間變小了,此時用向量b來表示,a表示所經過的處理,x代表原,那麼這個就可以表示成為:

ax=b

2:因為a是欠定的,一般情況下x的解有很多種,而我們要的是那種最稀疏的x。個人理解這個就是稀疏表達吧。

3:接下來文章引入了如何求x的方法,假定j(x)是求x最稀疏的函式,並且前提條件是ax=b。用數學表達也就是

min j(x) s.t. ax=b

4:為了求出這個j(x),一般情況下這個j(x)對應的是x的範數||x||右下角2的平方最小值,為了求出||x||右下角2的平方最小值,我們引入了拉格朗日乘數。關於拉格朗日乘數,我在下面補充,省的再去找資料看了。

拉格朗日乘數:它是專門為某變數在其他約束條件下求極值的問題解決方案,當

m個變數在

k個約束條件下求極值的話,它把變成

k+m個數來求變數的極值,給約束條件加乙個乘子即可。也就是我們上面的列出來的。

為了求出x的最小值,對x求偏導(當導數為0的地方時極值點)最終得到結果如下:

那麼x的最優化的解就是(是讓上式為0得到的):

把該值代入最初的ax=b中可以求得拉姆達的值,然後就得到x最優化的解為:

補充:個人對稀疏表達的理解是,如果輸入為乙個很複雜的a,為了得到稀疏的表達b,那麼經過一系列的操作x得到b,我覺得目的是為了得到稀疏表達的b,但是書中給出的例子是這樣,也可能我對訊號處理這些地方從沒有過接觸,導致的不太理解。。目前看了3頁書,實在覺得太難看下去了,看到乙個點都要去複習幾天的書,才能夠連貫起來。。

稀疏編碼 Sparse Coding

影象是有一些基的線性組合形成。自然影象是個稀疏結構,即任何給定影象都可以用大資料裡面的少數幾個描述符 基 來表示。尋找使得每個係數的概率分布是單模態並且在0處是峰分布的低熵 low entropy 方法。1988年,神經稀疏編碼的概念由mitchison提出,由牛津大學的rolls等正式引用。靈長目...

Sparse coding推導及Python編碼

前些天被boss批評,後來好好想了一下,覺得很有道理,很多看似基本的東西,還是得自己推一遍啊,mark一下,以後要注意,切勿眼高手低。3 sparse activations vs.sparse models 現在可以用a f x 表示稀疏編碼的問題了。它可以分解成兩種情況 1 sparse mod...

ST(稀疏表)演算法

作用 st演算法是用來求解給定區間rmq的最值,本文以最小值為例 舉例 給出一陣列a 0 5 則區間 2,5 之間的最值為1。1 離線預處理 運用dp思想,用於求解區間最值,並儲存到乙個二維陣列中。具體解釋 1 離線預處理 st演算法使用dp思想求解區間最值,貌似屬於區間動態規劃,不過區間在增加時,...