|
|
|
發(fā)新文章 |
|
|
Matrix power A^B mpower(A,B) Arraywise power A.^B power(A,B) 如果求矩陣A的1/2次方,即用A^(1/2) mpower(A,1/2); 不能用sqrt(A),查sqrt的幫助即知是對每個(gè)元素開根,等同于A.^(1/2)或者 power(A,1/2)
SDP的標(biāo)準(zhǔn)形式見 Fast Low-Rank Semidefinite Programming for Embedding and Clustering的公式(1)。半正定規(guī)劃是一個(gè)凸優(yōu)化問題 以Distance Metric Learning for Large Margin Nearest Neighbor Classification該文為代表的Metric Learning 用SDP求解。Matrix completion也有用SDP求解 SDP的問題:大家都知道很慢,離實(shí)用很遠(yuǎn)。只要做SDP都是說我們的方法比現(xiàn)有的很快,Ling Zhu實(shí)驗(yàn)發(fā)現(xiàn)快不了多少。SDP的工具包很多,Boyd(凸優(yōu)化教材作者)主頁,總結(jié)了以下,Ling Zhu說幾個(gè)包能夠自適應(yīng)選擇哪個(gè)包
(1)在JCR查詢中,搜索Title Word: IEEE Transactions on發(fā)現(xiàn)有69個(gè)雜志 IEEE-ACM Transactions on Computational Biology and Bioinformatics 不在上述范圍之類 (2)如何查找相關(guān)的Society? 以IEEE Transactions on Image Processing為例,搜索到其主頁,上面有Published by: IEEE Signal Processing Society 以IEEE Transactions on Knowledge and Data Engineering為例,搜索到其主頁,上面有Published by: IEEE Computer Society
做下一筆記
wiki里面的定義 http://en.wikipedia.org/wiki/Latent_Dirichlet_allocation
關(guān)鍵所在:it posits that each document is a mixture of a small number of topics and that each word's creation is attributable to one of the document's topics。
將文檔看成是一組主題的混合,詞有分配到每個(gè)主題的概率。
Probabilistic latent semantic analysis(PLSA) LDA可以看成是服從貝葉斯分布的PLSA
matlab中,每個(gè)figure都有(而且僅有)一個(gè)colormap,翻譯過來就是色圖。 COLORMAP(MAP) 用MAP矩陣映射當(dāng)前圖形的色圖。 COLORMAP('default') 默認(rèn)的設(shè)置是 JET. MAP = COLORMAP 獲得當(dāng)前色圖矩陣. COLORMAP(AX,...) 應(yīng)用色圖到AX坐標(biāo)對應(yīng)的圖形,而非當(dāng)前圖形。
MAP實(shí)際上是一個(gè)mx3的矩陣,每一行的3個(gè)值都為0-1之間數(shù),分別代表顏色組成的rgb值, [1 0 0] 代表紅色,[0 1 0]代表綠色,[0 0 1]代表藍(lán)色。系統(tǒng)自帶了一些colormap,如:winter、autumn等。輸入winter,就可以看到它是一個(gè)64x3的矩陣。用戶可以自定義自己的colormap,而且不一定是64維的。 [0 0 0] is black, [1 1 1] is white, [1 0 0] is pure red, [.5 .5 .5] is gray, and [127/255 1 212/255] is aquamarine. 那么顏色在fill或patch,SURFACE等函數(shù)中到底是如何顯示的呢?本質(zhì)上,是把具體的顏色變成colormap中的相應(yīng)index,也就是行數(shù)。這個(gè)過程叫做換算映射:將指定的數(shù)值顏色向量(矩陣)C,映射到對應(yīng)的顏色。顏色矩陣C的數(shù)值范圍為[Cmin, Cmax], Cmin 和Cmax的數(shù)值或者為 min(min(C)) max(max(C)),也可以在CAXIS中設(shè)置。 在matlab中,圖形窗的屬性'CdataMapping‘缺省設(shè)置值為'scaled',也就是線性的映射。 Cmin對應(yīng)的值映射到colormap的第一行,Cmax對應(yīng)的值映射到colormap的最后一行。 映射過程如下: 首先,需要根據(jù)caxis取得Cmin和Cmax兩個(gè)變量(默認(rèn)值為0和1),畫圖時(shí)如果指定了數(shù)值顏色向量(矩陣)C,Cmin和Cmax自動(dòng)設(shè)置為C中的最大值和最小值。當(dāng)你想控制時(shí),可以自定義。比如將Cmax減小,這樣將把所有大于Cmax的C值,全部都映射到同一個(gè)顏色(colormap 中index最大的行代表的顏色)。 根據(jù)Cij在Cmin和Cmax之間的比例關(guān)系,確定對應(yīng)的顏色的index,默認(rèn)為線性映射。 也就是說,當(dāng)制定了數(shù)值顏色向量(矩陣)C之后畫圖,圖中顏色的使用范圍會(huì)自動(dòng)占滿整個(gè)顏色范圍! 實(shí)例: clc; clear all; x=[0 1 1 0]; y=[0 0 1 1]; %定義四個(gè)點(diǎn) [0 0] [1 0] [1 1] [0 1] H_F=fill(x,y,[0 0.1 0.2 0.6]); %定義四個(gè)點(diǎn)的C值
row_cmap = 15; %定義色圖矩陣的行數(shù) color_map1=zeros(row_cmap,3); %定義色圖矩陣 color_r = 0:1/(row_cmap-1):1; color_g = 0:1/(row_cmap-1):1; color_b = 0:1/(row_cmap-1):1; color_map1(:,1) = color_r; color_map1(:,2) = color_g; colormap(color_map1); colorbar;
%本例中顏色從[0 0 0] 變化到[1 1 0] %增加row_cmap的值,如變化到100,則可看到顏色的漸變,而非跳躍型變化。
|
本文引用地址: http://www.sciencenet.cn/m/user_content.aspx?id=281377 |
摘要: 理解矩陣(一)
前不久chensh出于不可告人的目的,要充當(dāng)老師,教別人線性代數(shù)。于是我被揪住就線性代數(shù)中一些務(wù)虛性的問題與他討論了幾次。很明顯,chensh覺得,要讓自己在講線性代數(shù)的時(shí)候不被那位強(qiáng)勢的學(xué)生認(rèn)為是神經(jīng)病,還是比較難的事情。
可憐的chensh,誰讓你趟這個(gè)地雷陣?!色令智昏啊!
線性代數(shù)課程,無論你從行列式入手還是直接從矩陣入手,從一開始就充斥著莫名其妙。比... 閱讀全文
(1)Dimensionality Reduction: A Comparative Review的P15頁The presence of free parameters has both advantagesand disadvantages. The main advantage of the presence of free parameters is that they provide more flexibility to the technique, whereas their main disadvantage is that they need to be tuned to optimize the performance of the dimensionality reduction technique. (2)Zhongqiu Zhao's Ph.D. thesis P87:雖然此參數(shù)可能會(huì)給半監(jiān)督學(xué)習(xí)帶來可靈活機(jī)動(dòng)的好處,但是同時(shí)它也增加了程序調(diào)試的難度。 (3)Fei Wang's Ph.D. thesis P13:圖上半監(jiān)督學(xué)習(xí)算法大都需要用高斯函數(shù)(式(1-6))計(jì)算數(shù)據(jù)之間的相似度,并且該函數(shù)中的自由參數(shù)\sigma是需要由用戶指定的,這給這類算法在實(shí)際中的應(yīng)用帶來了很大的麻煩。
流形學(xué)習(xí) (manifold learning)
流形學(xué)習(xí)是個(gè)很廣泛的概念。這里我主要談的是自從2000年以后形成的流形學(xué)習(xí)概念和其主要代表方法。自從2000年以后,流形學(xué)習(xí)被認(rèn)為屬于非線性降維的一個(gè)分支。眾所周知,引導(dǎo)這一領(lǐng)域迅速發(fā)展的是2000年Science雜志上的兩篇文章: Isomap and LLE (Locally Linear Embedding)。
1. 流形學(xué)習(xí)的基本概念
那流形學(xué)習(xí)是什莫呢?為了好懂,我盡可能應(yīng)用少的數(shù)學(xué)概念來解釋這個(gè)東西。所謂流形(manifold)就是一般的幾何對象的總稱。比如人,有中國人、美國人等等;流形就包括各種維數(shù)的曲線曲面等。和一般的降維分析一樣,流形學(xué)習(xí)把一組在高維空間中的數(shù)據(jù)在低維空間中重新表示。和以往方法不同的是,在流形學(xué)習(xí)中有一個(gè)假設(shè),就是所處理的數(shù)據(jù)采樣于一個(gè)潛在的流形上,或是說對于這組數(shù)據(jù)存在一個(gè)潛在的流形。對于不同的方法,對于流形性質(zhì)的要求各不相同,這也就產(chǎn)生了在流形假設(shè)下的各種不同性質(zhì)的假設(shè),比如在Laplacian Eigenmaps中要假設(shè)這個(gè)流形是緊致黎曼流形等。對于描述流形上的點(diǎn),我們要用坐標(biāo),而流形上本身是沒有坐標(biāo)的,所以為了表示流形上的點(diǎn),必須把流形放入外圍空間(ambient space)中,那末流形上的點(diǎn)就可以用外圍空間的坐標(biāo)來表示。比如R^3中的球面是個(gè)2維的曲面,因?yàn)榍蛎嫔现挥袃蓚€(gè)自由度,但是球面上的點(diǎn)一般是用外圍R^3空間中的坐標(biāo)表示的,所以我們看到的R^3中球面上的點(diǎn)有3個(gè)數(shù)來表示的。當(dāng)然球面還有柱坐標(biāo)球坐標(biāo)等表示。對于R^3中的球面來說,那末流形學(xué)習(xí)可以粗略的概括為給出R^3中的表示,在保持球面上點(diǎn)某些幾何性質(zhì)的條件下,找出找到一組對應(yīng)的內(nèi)蘊(yùn)坐標(biāo)(intrinsic coordinate)表示,顯然這個(gè)表示應(yīng)該是兩維的,因?yàn)榍蛎娴木S數(shù)是兩維的。這個(gè)過程也叫參數(shù)化(parameterization)。直觀上來說,就是把這個(gè)球面盡量好的展開在通過原點(diǎn)的平面上。在PAMI中,這樣的低維表示也叫內(nèi)蘊(yùn)特征(intrinsic feature)。一般外圍空間的維數(shù)也叫觀察維數(shù),其表示也叫自然坐標(biāo)(外圍空間是歐式空間)表示,在統(tǒng)計(jì)中一般叫observation。
了解了流形學(xué)習(xí)的這個(gè)基礎(chǔ),那末流形學(xué)習(xí)中的一些是非也就很自然了,這個(gè)下面穿插來說。由此,如果你想學(xué)好流形學(xué)習(xí)里的方法,你至少要了解一些微分流形和黎曼幾何的基本知識。
2. 代表方法
a) Isomap。
Josh Tenenbaum的Isomap開創(chuàng)了一個(gè)數(shù)據(jù)處理的新戰(zhàn)場。在沒有具體說Isomap之前,有必要先說說MDS(Multidimensional Scaling)這個(gè)方法。我們國內(nèi)的很多人知道PCA,卻很多人不知道MDS。PCA和MDS是相互對偶的兩個(gè)方法。MDS就是理論上保持歐式距離的一個(gè)經(jīng)典方法,MDS最早主要用于做數(shù)據(jù)的可視化。由于MDS得到的低維表示中心在原點(diǎn),所以又可以說保持內(nèi)積。也就是說,用低維空間中的內(nèi)積近似高維空間中的距離。經(jīng)典的MDS方法,高維空間中的距離一般用歐式距離。
Isomap就是借窩生蛋。他的理論框架就是MDS,但是放在流形的理論框架內(nèi),原始的距離換成了流形上的測地線(geodesic)距離。其它一模一樣。所謂的測地線,就是流形上加速度為零的曲線,等同于歐式空間中的直線。我們經(jīng)常聽到說測地線是流形上兩點(diǎn)之間距離最短的線。其實(shí)這末說是不嚴(yán)謹(jǐn)?shù)摹A餍紊蟽牲c(diǎn)之間距離最短的線是測地線,但是反過來不一定對。另外,如果任意兩個(gè)點(diǎn)之間都存在一個(gè)測地線,那末這個(gè)流形必須是連通的鄰域都是凸的。Isomap就是把任意兩點(diǎn)的測地線距離(準(zhǔn)確地說是最短距離)作為流形的幾何描述,用MDS理論框架理論上保持這個(gè)點(diǎn)與點(diǎn)之間的最短距離。在Isomap中,測地線距離就是用兩點(diǎn)之間圖上的最短距離來近似的,這方面的算法是一般計(jì)算機(jī)系中用的圖論中的經(jīng)典算法。
如果你曾細(xì)致地看過Isomap主頁上的matlab代碼,你就會(huì)發(fā)現(xiàn)那個(gè)代碼的實(shí)現(xiàn)復(fù)雜度遠(yuǎn)超與實(shí)際論文中敘述的算法。在那個(gè)代碼中,除了論文中寫出的算法外,還包括了 outlier detection和embedding scaling。這兩樣?xùn)|西,保證了運(yùn)行他們的程序得到了結(jié)果一般來說相對比較理想。但是,這在他們的算法中并沒有敘述。如果你直接按照他論文中的方法來實(shí)現(xiàn),你可以體會(huì)一下這個(gè)結(jié)果和他們結(jié)果的差距。從此我們也可以看出,那幾個(gè)作者做學(xué)問的嚴(yán)謹(jǐn)態(tài)度,這是值得我們好好學(xué)習(xí)的。
另外比較有趣的是,Tenenbaum根本不是做與數(shù)據(jù)處理有關(guān)算法的人,他是做計(jì)算認(rèn)知科學(xué)(computational cognition science)的。在做這個(gè)方法的時(shí)候,他還在stanford,02年就去了MIT開創(chuàng)一派,成了CoCoSci 的掌門人,他的組成長十分迅速。但是有趣的是,在Isomap之后,他包括他在MIT帶的學(xué)生就從來再也沒有做過類似的工作。其原因我今年夏天有所耳聞。他在今年參加 UCLA Alan Yuille 組織的一個(gè)summer school上說,(不是原文,是大意)我們經(jīng)常忘了做研究的原始出發(fā)點(diǎn)是什莫。他做Isomap就是為了找一個(gè)好的visual perception的方法,他還堅(jiān)持了他的方向和信仰,computational cognition,他沒有隨波逐流。而由他引導(dǎo)起來的 manifold learning 卻快速的發(fā)展成了一個(gè)新的方向。
這是一個(gè)值得我們好好思考的問題。我們做一個(gè)東西,選擇一個(gè)研究方向究竟是為了什么。你考慮過嗎?
b) LLE (Locally linear Embedding)
LLE在作者寫出的表達(dá)式看,是個(gè)具有十分對稱美的方法. 這種看上去的對稱對于啟發(fā)人很重要。LLE的思想就是,一個(gè)流形在很小的局部鄰域上可以近似看成歐式的,就是局部線性的。那末,在小的局部鄰域上,一個(gè)點(diǎn)就可以用它周圍的點(diǎn)在最小二乘意義下最優(yōu)的線性表示。LLE把這個(gè)線性擬合的系數(shù)當(dāng)成這個(gè)流形局部幾何性質(zhì)的刻畫。那末一個(gè)好的低維表示,就應(yīng)該也具有同樣的局部幾何,所以利用同樣的線性表示的表達(dá)式,最終寫成一個(gè)二次型的形式,十分自然優(yōu)美。
注意在LLE出現(xiàn)的兩個(gè)加和優(yōu)化的線性表達(dá),第一個(gè)是求每一點(diǎn)的線性表示系數(shù)的。雖然原始公式中是寫在一起的,但是求解時(shí),是對每一個(gè)點(diǎn)分別來求得。第二個(gè)表示式,是已知所有點(diǎn)的線性表示系數(shù),來求低維表示(或嵌入embedding)的,他是一個(gè)整體求解的過程。這兩個(gè)表達(dá)式的轉(zhuǎn)化正好中間轉(zhuǎn)了個(gè)彎,使一些人困惑了,特別后面一個(gè)公式寫成一個(gè)二次型的過程并不是那末直觀,很多人往往在此卡住,而阻礙了全面的理解。我推薦大家去精讀 Saul 在JMLR上的那篇LLE的長文。那篇文章無論在方法表達(dá)還是英文書寫,我認(rèn)為都是精品,值得好好玩味學(xué)習(xí)。
另外值得強(qiáng)調(diào)的是,對于每一點(diǎn)處擬合得到的系數(shù)歸一化的操作特別重要,如果沒有這一步,這個(gè)算法就沒有效果。但是在原始論文中,他們是為了保持?jǐn)?shù)據(jù)在平行移動(dòng)下embedding不變。
LLE的matlab代碼寫得簡潔明了,是一個(gè)樣板。
在此有必要提提Lawrence Saul這個(gè)人。在Isomap和LLE的作者們中,Saul算是唯一一個(gè)以流形學(xué)習(xí)(并不限于)為研究對象開創(chuàng)學(xué)派的人。Saul早年主要做參數(shù)模型有關(guān)的算法。自從LLE以后,坐陣UPen創(chuàng)造了一個(gè)個(gè)佳績。主要成就在于他的兩個(gè)出色學(xué)生,Kilian Weinberger和 Fei Sha,做的方法。拿了很多獎(jiǎng),在此不多說,可以到他主頁上去看。Weinberger把學(xué)習(xí)核矩陣引入到流形學(xué)習(xí)中來。他的這個(gè)方法在流形學(xué)習(xí)中影響到不是很顯著,卻是在 convex optimization 中人人得知。Fei Sha不用多說了,machine learning中一個(gè)閃亮的新星,中國留學(xué)生之驕傲。現(xiàn)在他們一個(gè)在Yahoo,一個(gè)在Jordan手下做PostDoc。
c) Laplacian Eigenmaps
要說哪一個(gè)方法被做的全面,那莫非LE莫屬。如果只說LE這個(gè)方法本身,是不新的,許多年前在做mesh相關(guān)的領(lǐng)域就開始這莫用。但是放在黎曼幾何的框架內(nèi),給出完整的幾何分析的,應(yīng)該是Belkin和Niyogi(LE作者)的功勞。
LE的基本思想就是用一個(gè)無向有權(quán)圖來描述一個(gè)流形,然后通過用圖的嵌入(graph embedding)來找低維表示。說白了,就是保持圖的局部鄰接關(guān)系的情況把這個(gè)圖從高維空間中重新畫在一個(gè)低維空間中(graph drawing)。
在至今為止的流行學(xué)習(xí)的典型方法中,LE是速度最快、效果相對來說不怎莫樣的。但是LE有一個(gè)其他方法沒有的特點(diǎn),就是如果出現(xiàn)outlier情況下,它的魯棒性(robustness)特別好。
后來Belkin和Niyogi又分析了LE的收斂性。大家不要忽視這個(gè)問題,很重要。鼓勵(lì)有興趣數(shù)學(xué)功底不錯(cuò)的人好好看看這篇文章。
d) Hessian Eigenmaps
如果你對黎曼幾何不懂,基本上看不懂這個(gè)方法。又加作者表達(dá)的抽象,所以絕大多數(shù)人對這個(gè)方法了解不透徹。在此我就根據(jù)我自己的理解說說這個(gè)方法。
這個(gè)方法有兩個(gè)重點(diǎn):(1)如果一個(gè)流形是局部等距(isometric)歐式空間中一個(gè)開子集的,那末它的Hessian矩陣具有d+1維的零空間。(2)在每一點(diǎn)處,Hessian系數(shù)的估計(jì)。 首先作者是通過考察局部Hessian的二次型來得出結(jié)論的,如果一個(gè)流形局部等距于歐式空間中的一個(gè)開子集,那末由這個(gè)流形patch到開子集到的映射函數(shù)是一個(gè)線性函數(shù),線性函數(shù)的二次混合導(dǎo)數(shù)為零,所以局部上由Hessian系數(shù)構(gòu)成的二次型也為零,這樣把每一點(diǎn)都考慮到,過渡到全局的Hessian矩陣就有d+1維的零空間,其中一維是常函數(shù)構(gòu)成的,也就是1向量。其它的d維子空間構(gòu)成等距坐標(biāo)。這就是理論基礎(chǔ)的大意,當(dāng)然作者在介紹的時(shí)候,為了保持理論嚴(yán)謹(jǐn),作了一個(gè)由切坐標(biāo)到等距坐標(biāo)的過渡。
另外一個(gè)就是局部上Hessian系數(shù)的估計(jì)問題。我在此引用一段話:
If you approximate a function f(x) by a quadratic expansion
f(x) = f(0) + (grad f)^T x + x^T Hf x + rem
then the hessian is what you get for the quadratic component. So simply over a given neighborhood, develop the operator that approximates a function by its projection on 1, x_1,...,x_k, x_1^2,...,x_k^2, x_1*x_2,... ,x_{k-1}*x_{k}. Extract the component of the operator that delivers the projection on x_1^2,...,x_k^2, x_1*x_2,... ,x_{k-1}*x_{k}.
dave
這段話是dodo在初學(xué)HE時(shí)候,寫信問Dave Donoho,他給dodo的回信。希望大家領(lǐng)會(huì)。如果你了解了上述基本含義,再去細(xì)看兩遍原始論文,也許會(huì)有更深的理解。由于HE牽扯到二階導(dǎo)數(shù)的估計(jì),所以對噪聲很敏感。另外,HE的原始代碼中在計(jì)算局部切坐標(biāo)的時(shí)候,用的是奇異值分解(SVD),所以如果想用他們的原始代碼跑一下例如圖像之類的真實(shí)數(shù)據(jù),就特別的慢。其實(shí)把他們的代碼改一下就可以了,利用一般PCA的快速計(jì)算方法,計(jì)算小尺寸矩陣的特征向量即可。還有,在原始代碼中,他把Hessian系數(shù)歸一化了,這也就是為什莫他們叫這個(gè)方法為 Hessian LLE 的原因之一。
Dave Dohono是學(xué)術(shù)界公認(rèn)的大牛,在流形學(xué)習(xí)這一塊,是他帶著他的一個(gè)學(xué)生做的,Carrie Grimes。現(xiàn)在這個(gè)女性研究員在Google做 project leader,學(xué)術(shù)界女生同學(xué)的楷模 : )
e) LTSA (Local tangent space alignment)
很榮幸,這個(gè)是國內(nèi)學(xué)者(浙江大學(xué)數(shù)學(xué)系的老師ZHANG Zhenyue)為第一作者做的一個(gè)在流行學(xué)習(xí)中最出色的方法。由于這個(gè)方法是由純數(shù)學(xué)做數(shù)值分析出身的老師所做,所以原始論文看起來公式一大堆,好像很難似的。其實(shí)這個(gè)方法非常直觀簡單。
象 Hessian Eigenmaps 一樣,流形的局部幾何表達(dá)先用切坐標(biāo),也就是PCA的主子空間中的坐標(biāo)。那末對于流形一點(diǎn)處的切空間,它是線性子空間,所以可以和歐式空間中的一個(gè)開子集建立同構(gòu)關(guān)系,最簡單的就是線性變換。在微分流形中,就叫做切映射 (tangential map),是個(gè)很自然很基礎(chǔ)的概念。把切坐標(biāo)求出來,建立出切映射,剩下的就是數(shù)值計(jì)算了。最終這個(gè)算法劃歸為一個(gè)很簡單的跌代加和形式。如果你已經(jīng)明白了MDS,那末你就很容易明白,這個(gè)算法本質(zhì)上就是MDS的從局部到整體的組合。
這里主要想重點(diǎn)強(qiáng)調(diào)一下,那個(gè)論文中使用的一個(gè)從局部幾何到整體性質(zhì)過渡的alignment技術(shù)。在spectral method(特征分解的)中,這個(gè)alignment方法特別有用。只要在數(shù)據(jù)的局部鄰域上你的方法可以寫成一個(gè)二次項(xiàng)的形式,就可以用。 其實(shí)LTSA最早的版本是在02年的DOCIS上。這個(gè)alignment方法在02年底Brand的 charting a manifold 中也出現(xiàn),隱含在Hessian Eigenmaps中。在HE中,作者在從局部的Hessian矩陣過渡到全局的Hessian矩陣時(shí),用了兩層加號,其中就隱含了這個(gè)alignment方法。后來國內(nèi)一個(gè)叫 ZHAO Deli 的學(xué)生用這個(gè)方法重新寫了LLE,發(fā)在Pattern Recognition上,一個(gè)短文。可以預(yù)見的是,這個(gè)方法還會(huì)被發(fā)揚(yáng)光大。
ZHA Hongyuan 后來專門作了一篇文章來分析 alignment matrix 的譜性質(zhì),有興趣地可以找來看看。
f) MVU (Maximum variance unfolding)
這個(gè)方法剛發(fā)出來以后,名字叫做Semi-definite Embedding (SDE)。構(gòu)建一個(gè)局部的稀疏歐式距離矩陣以后,作者通過一定約束條件(主要是保持距離)來學(xué)習(xí)到一個(gè)核矩陣,對這個(gè)核矩陣做PCA就得到保持距離的embedding,就這莫簡單。但是就是這個(gè)方法得了多少獎(jiǎng),自己可以去找找看。個(gè)人觀點(diǎn)認(rèn)為,這個(gè)方法之所以被如此受人賞識,無論在vision還是在learning,除了給流形學(xué)習(xí)這一領(lǐng)域帶來了一個(gè)新的解決問題的工具之外,還有兩個(gè)重點(diǎn),一是核方法(kernel),二是半正定規(guī)劃(semi-definite programming),這兩股風(fēng)無論在哪個(gè)方向(learning and Vision)上都吹得正猛。
g) S-Logmaps
這個(gè)方法不太被人所知,但是我認(rèn)為這個(gè)是流形學(xué)習(xí)發(fā)展中的一個(gè)典型的方法(其實(shí)其他還有很多人也這莫認(rèn)為)。就效果來說,這個(gè)方法不算好,說它是一個(gè)典型的方法,是因?yàn)檫@個(gè)方法應(yīng)用了黎曼幾何中一個(gè)很直觀的性質(zhì)。這個(gè)性質(zhì)和法坐標(biāo)(normal coordinate)、指數(shù)映射(exponential map)和距離函數(shù)(distance function)有關(guān)。
如果你了解黎曼幾何,你會(huì)知道,對于流形上的一條測地線,如果給定初始點(diǎn)和初始點(diǎn)處測地線的切方向,那莫這個(gè)測地線就可以被唯一確定。這是因?yàn)樵谶@些初始條件下,描述測地線的偏微分方程的解是唯一的。那末流形上的一條測地線就可以和其起點(diǎn)處的切平面上的點(diǎn)建立一個(gè)對應(yīng)關(guān)系。我們可以在這個(gè)切平面上找到一點(diǎn),這個(gè)點(diǎn)的方向就是這個(gè)測地線在起點(diǎn)處的切方向,其長度等于這個(gè)測地線上的長。這樣的一個(gè)對應(yīng)關(guān)系在局部上是一一對應(yīng)的。那末這個(gè)在切平面上的對應(yīng)點(diǎn)在切平面中就有一個(gè)坐標(biāo)表示,這個(gè)表示就叫做測地線上對應(yīng)點(diǎn)的法坐標(biāo)表示(有的也叫指數(shù)坐標(biāo))。那末反過來,我們可以把切平面上的點(diǎn)映射到流形上,這個(gè)映射過程就叫做指數(shù)映射(Logmap就倒過來)。如果流形上每一個(gè)點(diǎn)都可以這樣在同一個(gè)切平面上表示出來,那末我們就可以得到保持測地線長度的低維表示。如果這樣做得到,流形必須可以被單坐標(biāo)系統(tǒng)所覆蓋。
如果給定流形上的采樣點(diǎn),如果要找到法坐標(biāo),我們需要知道兩個(gè)東西,一是測地線距離,二是每個(gè)測地線在起點(diǎn)處的切方向。第一個(gè)東西好弄,利用Isomap中的方法直接就可以解決,關(guān)鍵是第二個(gè)。第二個(gè)作者利用了距離函數(shù)的梯度,這個(gè)梯度和那個(gè)切方向是一個(gè)等價(jià)的關(guān)系,一般的黎曼幾何書中都有敘述。作者利用一個(gè)局部切坐標(biāo)的二次泰勒展開來近似距離函數(shù),而距離是知道的,就是測地線距離,局部切坐標(biāo)也知道,那末通過求一個(gè)簡單的最小二乘問題就可以估計(jì)出梯度方向。
如果明白這個(gè)方法的幾何原理,你再去看那個(gè)方法的結(jié)果,你就會(huì)明白為什莫在距離中心點(diǎn)比較遠(yuǎn)的點(diǎn)的embedding都可以清楚地看到在一條條線上,效果不太好。
最近這個(gè)思想被北大的一個(gè)年輕的老師 LIN Tong 發(fā)揚(yáng)光大,就是ECCV‘06上的那篇,還有即將刊登出的TPAMI上的 Riemannian Manifold Learning,實(shí)為國內(nèi)研究學(xué)者之榮幸。Lin的方法效果非常好,但是雖然取名叫Riemannian,沒有應(yīng)用到黎曼幾何本身的性質(zhì),這樣使他的方法更容易理解。
Lin也是以一個(gè)切空間為基準(zhǔn)找法坐標(biāo),這個(gè)出發(fā)點(diǎn)和思想和Brun(S-Logmaps)的是一樣的。但是Lin全是在局部上操作的,在得出切空間原點(diǎn)處局部鄰域的法坐標(biāo)以后,Lin采用逐步向外擴(kuò)展的方法找到其他點(diǎn)的法坐標(biāo),在某一點(diǎn)處,保持此點(diǎn)到它鄰域點(diǎn)的歐式距離和夾角,然后轉(zhuǎn)化成一個(gè)最小二乘問題求出此點(diǎn)的法坐標(biāo),這樣未知的利用已知的逐步向外擴(kuò)展。說白了就像縫網(wǎng)一樣,從幾個(gè)臨近的已知點(diǎn)開始,逐漸向外擴(kuò)散的縫。效果好是必然的。
有人做了個(gè)好事情,做了個(gè)系統(tǒng),把幾個(gè)方法的matlab代碼放在了一起 http://www.math.umn.edu/~wittman/mani/以上提到方法論文,都可以用文中給出的關(guān)鍵詞借助google.com找到。
3. 基本問題和個(gè)人觀點(diǎn)
流形學(xué)習(xí)現(xiàn)在還基本處于理論探討階段,在實(shí)際中難以施展拳腳,不過在圖形學(xué)中除外。我就說說幾個(gè)基本的問題。
a. 譜方法對噪聲十分敏感。希望大家自己做做實(shí)驗(yàn)體會(huì)一下,流形學(xué)習(xí)中譜方法的脆弱。 b. 采樣問題對結(jié)果的影響。 c. 收斂性 d. 一個(gè)最尷尬的事情莫過于,如果用來做識別,流形學(xué)習(xí)線性化的方法比原來非線性的方法效果要好得多,如果用原始方法做識別,那個(gè)效果叫一個(gè)差。也正因?yàn)榇耍购芏嗳藢α餍螌W(xué)習(xí)產(chǎn)生了懷疑。原因方方面面 : )
e. 把偏微分幾何方法引入到流形學(xué)習(xí)中來是一個(gè)很有希望的方向。這樣的工作在最近一年已經(jīng)有出現(xiàn)的跡象。 看一些問到人臉識別有關(guān)的問題。由于此文結(jié)尾寫得有點(diǎn)草,我這里再補(bǔ)充一下。 dodo
1)人臉識別的識別效果首先取決于 visual feature,圖片中表示的模式和一般的向量模式還是有很大差別的。visual feature的好壞,決定了你所用的向量到底能不能代表這個(gè)圖像中的模式和這個(gè)模式與其他模式的正確關(guān)系,如果能,那再談降維識別的事情。 結(jié)構(gòu)能保持,效果就好;不能保持,就很難說。
2)現(xiàn)在流形學(xué)習(xí)中的極大多數(shù)方法不收斂。正因?yàn)檫@樣,在原始樣本集中,如果增添少部分點(diǎn),或是減少少部分點(diǎn),或是擾動(dòng)少部分點(diǎn),都會(huì)對最后的nonlinear embedding產(chǎn)生影響。也就是說,極不穩(wěn)定。 到現(xiàn)在為止,就 Laplacian Eigenmaps 有收斂性的證明。但是,這個(gè)被證明的結(jié)果的前提條件是啥,這個(gè)很重要。如果是均勻采樣,那么基本對實(shí)際用處不大,理論上有引導(dǎo)作用。
3)采樣的問題,包括采樣密度和采樣方式,都對最后結(jié)果有顯著影響。而實(shí)際數(shù)據(jù)都是非常復(fù)雜的。
4)最后降到多少維的問題。這個(gè)對于流行學(xué)習(xí)來說,也是一個(gè)正在爭論探討的問題。 5)多流形的問題。現(xiàn)在的流形學(xué)習(xí)算法能處理的流形情況非常的弱,前提建設(shè)的條件非常的強(qiáng),比如單坐標(biāo)系統(tǒng)覆蓋,與歐式空間的開子集等距等等。對于具有不同維數(shù)的多流形混合的問題,還沒有人能解。而
這恰恰是模式識別中一個(gè)合理的情況!(具有不同維數(shù)的多流形混合的問題)
而4)5)后兩者是緊緊聯(lián)系在一起。
這幾點(diǎn)也是流形學(xué)習(xí)能發(fā)揮其威力必須克服的問題。實(shí)際的情況并不是像一些人說的“流形學(xué)習(xí)已經(jīng)做爛了”,問題在于 1)沒有找到真正的問題在哪, 2)知道問題在哪兒,解決不了。
這就是流形學(xué)習(xí)目前的狀況,如果你能用恰當(dāng)?shù)睦碚摚皇羌记珊蛯?shí)驗(yàn),解決了2)、5)其中一個(gè)問題,你就會(huì)是流形學(xué)習(xí)進(jìn)入下一個(gè)黃金時(shí)期的功臣。 而現(xiàn)在的情況是,引導(dǎo)和開創(chuàng)流形學(xué)習(xí)進(jìn)入第一個(gè)黃金時(shí)期和為這個(gè)黃金時(shí)期推波助瀾的那第一撥人,大都不再為此而努力了。現(xiàn)在就M. Belkin還在第一線為2)問題而奮斗。 另外一個(gè)可喜的局面是,那些專職搞數(shù)值和幾何的數(shù)學(xué)人開始涉足此領(lǐng)域,這必將帶動(dòng)流形學(xué)習(xí)這個(gè)方向深入發(fā)展,這也是這個(gè)方向發(fā)展的一個(gè)必然。
The algorithm of NMF is so simple and elegant (just three or four lines in Matlab). Yaoliang Yu said the code can be downloaded :http://www.mathworks.com/matlabcentral/linkexchange/links/1041-matlab-code-nmf(First submitted by MATLAB Central Team on 13 Jun 2005 ) There is another version of the matlab code of NMF: http://www.csie.ntu.edu.tw/~cjlin/nmf/index.html The code of [http://www.mathworks.com/matlabcentral/linkexchange/links/1041-matlab-code-nmf]:
function [w,h]=nmf(v,r,verbose)
%
% Jean-Philippe Brunet
% Cancer Genomics
% The Broad Institute
% brunet@broad.mit.edu
%
% This software and its documentation are copyright 2004 by the
% Broad Institute/Massachusetts Institute of Technology. All rights are reserved.
% This software is supplied without any warranty or guaranteed support whatsoever.
% Neither the Broad Institute nor MIT can not be responsible for its use, misuse,
% or functionality.
%
% NMF divergence update equations :
% Lee, D..D., and Seung, H.S., (2001), 'Algorithms for Non-negative Matrix
% Factorization', Adv. Neural Info. Proc. Syst. 13, 556-562.
%
% v (n,m) : N (genes) x M (samples) original matrix
% Numerical data only.
% Must be non negative.
% Not all entries in a row can be 0. If so, add a small constant to the
% matrix, eg.v+0.01*min(min(v)),and restart.
%
% r : number of desired factors (rank of the factorization)
%
% verbose : prints iteration count and changes in connectivity matrix elements
% unless verbose is 0
%
% Note : NMF iterations stop when connectivity matrix has not changed
% for 10*stopconv interations. This is experimental and can be
% adjusted.
%
% w : N x r NMF factor
% h : r x M NMF factor
% test for negative values in v
if min(min(v)) < 0
error('matrix entries can not be negative');
return
end
if min(sum(v,2)) == 0
error('not all entries in a row can be zero');
return
end
[n,m]=size(v);
stopconv=40; % stopping criterion (can be adjusted)
niter = 2000; % maximum number of iterations (can be adjusted)
cons=zeros(m,m);
consold=cons;
inc=0;
j=0;
%
% initialize random w and h
%
w=rand(n,r);
h=rand(r,m);
for i=1:niter
% divergence-reducing NMF iterations
x1=repmat(sum(w,1)',1,m);
h=h.*(w'*(v./(w*h)))./x1;
x2=repmat(sum(h,2)',n,1);
w=w.*((v./(w*h))*h')./x2;
% test convergence every 10 iterations
if(mod(i,10)==0)
j=j+1;
% adjust small values to avoid undeflow
h=max(h,eps);w=max(w,eps);
% construct connectivity matrix
[y,index]=max(h,[],1); %find largest factor
mat1=repmat(index,m,1); % spread index down
mat2=repmat(index',1,m); % spread index right
cons=mat1==mat2;
if(sum(sum(cons~=consold))==0) % connectivity matrix has not changed
inc=inc+1; %accumulate count
else
inc=0; % else restart count
end
if verbose % prints number of changing elements
fprintf('\t%d\t%d\t%d\n',i,inc,sum(sum(cons~=consold))),
end
if(inc>stopconv)
break, % assume convergence is connectivity stops changing
end
consold=cons;
end
end
最近在上數(shù)字圖像處理,時(shí)域和頻域的概念我沒有直觀的概念,搜索一下,歸納如下:
1.最簡單的解釋
頻域就是頻率域,
平常我們用的是時(shí)域,是和時(shí)間有關(guān)的,
這里只和頻率有關(guān),是時(shí)間域的倒數(shù)。時(shí)域中,X軸是時(shí)間,
頻域中是頻率。頻域分析就是分析它的頻率特性!
2. 圖像處理中:
空間域,頻域,變換域,壓縮域等概念!
只是說要將圖像變換到另一種域中,然后有利于進(jìn)行處理和計(jì)算
比如說:圖像經(jīng)過一定的變換(Fourier變換,離散yuxua DCT 變換),圖像的頻譜函數(shù)統(tǒng)計(jì)特性:圖像的大部分能量集中在低,中頻,高頻部分的分量很弱,僅僅體現(xiàn)了圖像的某些細(xì)節(jié)。
2.離散傅立葉變換
一般有離散傅立葉變換和其逆變換
3.DCT變換
示波器用來看時(shí)域內(nèi)容,頻普儀用來看頻域內(nèi)容!!!
時(shí)域是信號在時(shí)間軸隨時(shí)間變化的總體概括。
頻域是把時(shí)域波形的表達(dá)式做傅立葉變化得到復(fù)頻域的表達(dá)式,所畫出的波形就是頻譜圖。是描述頻率變化和幅度變化的關(guān)系。
時(shí)域做頻譜分析變換到頻域;空間域做頻譜分析變換到波數(shù)域;
信號通過系統(tǒng),在時(shí)域中表現(xiàn)為卷積,而在頻域中表現(xiàn)為相乘。
無論是傅立葉變換還是小波變換,其實(shí)質(zhì)都是一樣的,既:將信號在時(shí)間域和頻率域之間相互轉(zhuǎn)換,從看似復(fù)雜的數(shù)據(jù)中找出一些直觀的信息,再對它進(jìn)行分析。由于信號往往在頻域比有在時(shí)域更加簡單和直觀的特性,所以,大部分信號分析的工作是在頻域中進(jìn)行的。音樂——其實(shí)就是時(shí)/頻分析的一個(gè)極好例子,樂譜就是音樂在頻域的信號分布,而音樂就是將樂譜變換到時(shí)域之后的函數(shù)。從音樂到樂譜,是一次傅立葉或小波變換;從樂譜到音樂,就是一次傅立葉或小波逆變換。
時(shí)域(時(shí)間域)——自變量是時(shí)間,即橫軸是時(shí)間,縱軸是信號的變化。其動(dòng)態(tài)信號x(t)是描述信號在不同時(shí)刻取值的函數(shù)。 頻域(頻率域)——自變量是頻率,即橫軸是頻率,縱軸是該頻率信號的幅度,也就是通常說的頻譜圖。頻譜圖描述了信號的頻率結(jié)構(gòu)及頻率與該頻率信號幅度的關(guān)系。 對信號進(jìn)行時(shí)域分析時(shí),有時(shí)一些信號的時(shí)域參數(shù)相同,但并不能說明信號就完全相同。因?yàn)樾盘柌粌H隨時(shí)間變化,還與頻率、相位等信息有關(guān),這就需要進(jìn)一步分析信號的頻率結(jié)構(gòu),并在頻率域中對信號進(jìn)行描述。 動(dòng)態(tài)信號從時(shí)間域變換到頻率域主要通過傅立葉級數(shù)和傅立葉變換實(shí)現(xiàn)。周期信號靠傅立葉級數(shù),非周期信號靠傅立葉變換。
很簡單時(shí)域分析的函數(shù)是參數(shù)是t,也就是y=f(t),頻域分析時(shí),參數(shù)是w,也就是y=F(w) 兩者之間可以互相轉(zhuǎn)化。時(shí)域函數(shù)通過傅立葉或者拉普拉斯變換就變成了頻域函數(shù)。
傅立葉變換作為一種數(shù)學(xué)工具,作用不只是在一兩個(gè)方面得以體現(xiàn)。 就象微分方程,要說作用,在很多學(xué)科都有應(yīng)用。大到人造衛(wèi)星,小大微觀粒子。
比較常用的應(yīng)用,可以變換一種函數(shù)域到另一域。具體的,比如信號處理里,可以把信號 的時(shí)間域變換到信號的頻域。信號處理的應(yīng)用同樣廣泛,比如圖象處理。對吧
變換可以處理一些微分方程,在數(shù)學(xué)物理方法里都學(xué)過的,我也就不贅言。
量子力學(xué)基本原理和傅氏變換有關(guān)系。(參考彭桓武若干著作)
通常工科學(xué)生,尤其是自動(dòng)化和信號處理專業(yè)理解傅氏變換比理科的要強(qiáng)一些。因?yàn)樵谛?br>號與系統(tǒng)以及自動(dòng)控制原理里傅氏變換和拉氏變換是最基本的概念與工具。
|