Sparsity稀疏编码(一)
?稀疏編碼來源于神經科學,計算機科學和機器學習領域一般一開始就從稀疏編碼算法講起,上來就是找基向量(超完備基),但是我覺得其源頭也比較有意思,知道根基的情況下,拓展其應用也比較有底氣。哲學、神經科學、計算機科學、機器學習科學等領域的磚家、學生都想搞明白人類大腦皮層是如何處理外界信號的,大腦對外界的“印象”到底是什么東東。圍繞這個問題,哲學家在那想、神經科學家在那用設備觀察、計算機和機器學習科學家則是從數據理論和實驗仿真上推倒、仿真。在神經編碼和神經計算領域,我所能查到最早關于稀疏編碼的文獻是1996年,在此之前的生命科學家的實驗觀察和假設都不說了,1996年Cornell大學心理學院的Bruno在Nature上發表了一篇題名為:“emergence of simple-cell receptive fieldproperties by learning a sparse code for nature images”的文章,大意是講哺乳動物的初級視覺的簡單細胞的感受野具有空域局部性、方向性和帶通性(在不同尺度下,對不同結構具有選擇性),和小波變換的基函數具有一定的相似性。當時描述這些性質主要從自然圖像編碼的統計結構上來理解這些視覺細胞的特性,但是大部分都沒有成功,接著Bruno在文章中提出通過最大化稀疏編碼假說成功描述了上述細胞的性質,然后稀疏編碼就火了。先來看看這篇文章的核心思想,作者基于一個基本假設,圖像是有一些基的線性組合形成,如(公式一)所示:?
(公式一)
? ? ? 其中fai(x,y)是基函數,alpha是系數,隨著不同的圖像變化而變化。有效編碼的目標就是為了尋找完備的基函數來生成圖像空間,而且要求系數盡可能獨立,只所以獨立就是為了尋找信號的本質結構。當時的淫們很自然的想到PCA,因為PCA可以找到一些統計結構上的空間軸(類似坐標軸)來構成基函數,但是PCA一對噪聲太敏感,也就是只能對一些類似高斯分布的數據有效,這樣的干凈數據可以很好的找到空間軸,對更復雜分布的數據(比如現在的流形分布)無效,作者受信息論啟發,即相關變量的聯合熵小于個體熵之和(當變量alpha之間互相獨立時,二者相等,二者之間差了一個互信息),如果保持圖像的聯合熵不變,一個使得降低變量相關性的可能方法就是降低個體的熵,因此基于Barlow’s term,作者尋找一個最小熵編碼(注:Barlow’s term那本書因年代久遠,我找不到源頭了,大意是統計獨立降低編碼冗余度),基于上面,作者猜測自然圖像是個稀疏結構,即任何給定圖像都可以用大數據里面的少數幾個描述符(基)來表示。稀疏編碼出生咯,作者開始尋找使得每個系數的概率分布是單模態并且在0處是峰分布的低熵(low-entropy)方法。作者提出稀疏編碼的尋找方案可以通過最小化(公式二)來完成:
(公式二)
? ? ?其中第一項就是保持信息的代價(cost),如(公式三)所示:
(公式三)
? ? ?當然如果基于基函數重建的圖像和原圖像I(x,y)一致的話,代價為0(為最小)。
? ? ?(公式二)的第二項則是稀疏價值函數,其中的lambda是個常量正系數,平衡下稀疏系數alpha的重要性,和SVM的常量C有異曲同工之妙。作者提出了三個稀疏價值函數,如(圖一)所示:
(圖一)
? ? ? 可以驚喜的發現,現在經常用的L1正則赫然在列,其他兩個應該被淘汰了,其實當時LASSO也開始出現了,只是當時的人們沒有直接意識到L1正則可以增加稀疏性。至于為什么L1正則可以增加稀疏性,推薦讀下MIT的博士pluskid的這篇博文:http://freemind.pluskid.org/machine-learning/sparsity-and-some-basics-of-l1-regularization/
Pluskid的數學功底雄厚,閱讀者也需要一些功底才行。繼續我們今天的話題,要最小化公式二,參數變量只有alpha,對其求導,然后用梯度下降法迭代更新alpha即可,更新alpha后,也要繼續更新基函數,二者的步驟一并通過(圖二)給出:
(圖二)
? ?求出后的參數alpha和系數如(圖三)所示:
(圖三)
? ? ? 其中a是基函數,b是其系數,c則是驗證感受野的特性,d表明系數是在0處單峰。通過圖像展示,對于初級視覺細胞的感受野信號的那些屬性得到了驗證,圖像信息得到了保持,而且編碼是稀疏的,至此稀疏編碼拉開了序幕,衍生了后續各種優化版本和應用。
?
參考文獻:
? ? ? ?[1] emergence of simple-cell receptive field properties by learning a sparse code for nature images. 1996
? ? ? ?[2] Sparse Coding with an Overcomplete BasisSet: A Strategy Employed by V1 ? ?1997
轉載請注明鏈接:http://blog.csdn.net/cuoqu/article/details/8980853
總結
以上是生活随笔為你收集整理的Sparsity稀疏编码(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dir函数
- 下一篇: 稀疏编码(Sparse Coding)(