關於線性空間及機器學習的幾點直觀思考(持續更新...)

機器學習(包括人類認知)從根本上來講就是用最簡潔的結構來表達現實世界的各種結構,當我們對現實世界的結構瞭解不夠清楚的情況下,我們也只能構造各種模型進行逼近和預測,以期望我們的模型在描述現實世界結構的誤差最小,這種誤差可能有多種的表述方式(比如最小均方誤差,最近距離等等)。對於機器學習有着重要作用的正則化理論,其大意就是防止對於小範圍適用的模型在推廣到整體的不適應性(原理上類同盲人摸象,每人摸了其中一塊就認爲是表述了整體,雖然每個人針對其描述的部分是正確的),對於試驗集上擬合或者逼近很好的模型,並不一定代表對於整體的最佳描述,也就是在小範圍的過度學習其推廣性未必好。

機器學習的研究方法從根本上無非分爲兩大工具:概率統計工具和代數幾何工具,當然也是分別發展爲兩個主要流派(其實兩者也是相互統一和重疊的),這也是很容易理解的。因爲在我們對一個事物無法瞭解時,我們自然而然通過概率統計的原則對其進行描述,通過各種先驗知識可以合理建立預測模型,數學上的大數定律以及貝葉斯定理等已經爲這些方法提供了理論基礎,總之通過概率和統計的描述,總是會得到規律的客觀描述(問題是統計樣本空間可能需足夠大,對於小樣本其推廣性不佳),用此種方法的結果提供了模型預測的參考基準,這就是爲什麼目前機器學習、模式識別、數據挖掘等領域概率統計理論知識的佔據了絕對重要地位。
另一方面,通過前述方法建立的理論,我們也就構建了一些基本定理,可以很好的描述一類事物的代表結構,這裏我們只需要針對這種結構本身的研究,就可以很好地進行推廣,從而針對整個事物的構成進行建模,而代數幾何結構能夠很好的闡述我們已知世界的事物,所以對這些代數結構的研究能夠直觀對應到已知事物的結構的推廣,兩者可以獨立發展。即時脫離樣本的研究也沒有關係,其推廣性不依賴於樣本本身,因爲樣本的模型已經將樣本的本質屬性進行了總結。
貌似上面的描述有點離題,但是對於我們解決機器學習問題提供了一個基本的框架,也就是在研究機器學習問題的時候需要從宏觀的結構上考量才能得到一個相對全面的結構描述,而對於機器學習一個重要方面-模式識別,其最主要的研究目標就是建立最佳的模式表述模型,對於我們所生活的空間(線性空間),闡述和研究其結構具有至關重要的意義。對於研究問題的一個很好的原則就是用最小的集合以及最簡單的模型闡述一個模型,這樣可以得到一個最佳的模型結構。
線性空間中的任何一個對象,通過選取基和座標的辦法,都可以表達爲向量的形式。線性空間中的運動,被稱爲線性變換。在線性空間中,當選定一組基之後,不僅可以用一個向量來描述空間中的任何一個對象,而且可以用矩陣來描述該空間中的任何一個運動(變換)。而使某個對象發生對應運動的方法,就是用代表那個運動的矩陣,乘以代表那個對象的向量。矩陣是線性空間中的線性變換的一個描述。

下面言歸正傳,闡述一下線性空間我們需要研究的一些最基礎內容。目前數學研究過於注重嚴謹性,喪失了很大部分直觀性,而直觀的表述往往更容易把握問題的本質,避免在繁雜複雜的公理化體系結構中迷失方向。

對於一個空間,如何去描述其屬性呢?首先空間由集合構成,然後在空間集合中定義其結構特性才能區別其它空間,比如一個實數或複數向量空間加上長度概念構成賦範向量空間;一個實數或複數向量空間加上長度和角度的概念,構成內積空間;一個向量空間加上拓撲學符合運算的(加法及標量乘法是連續映射)構爲拓撲向量空間;一個向量空間加上雙線性算子(定義爲向量乘法)構成域代數。

1.線性變換和相似矩陣:在一個線性空間中,只要我們選定一組基,那麼對於任何一個線性變換,都能夠用一個確定的矩陣來加以描述。所謂相似矩陣,就是同一個線性變換的不同的描述矩陣,也就是在不同基下的矩陣描述。我們可以這樣理解相似變換,如果兩個矩陣相似,那麼它們描述的線性變換是一致的,可以說只是選擇在不同視角下同一個變換的不同表述而已。

2.特徵值和特徵向量:特徵值和特徵向量問題在機器學習中有着很重要的應用,在線性代數理論中往往無法看到其直觀含義,而針對工程應用纔會比較深刻地理解其含義。機器學習中的主成分分析(PCA)與LDA(線性判別分析)對於特徵值的計算描述了其實際意義,兩種方法非常近似。LDA的原理是,將帶上標籤的數據(點),通過投影的方法,投影到維度更低的空間中,使得投影后的點,相同類別的點,將會在投影后的空間中更接近。LDA追求的目標是,給出一個標註了類別的數據集,投影到了一條直線之後,能夠使得點儘量按類別區分開,也就是不同類別的點之間距離儘可能大,同類別的點之間距離儘可能小。PCA的原理是通過點分佈的內在特性,使得變換後其之間分佈的越開,從而可以得到其分佈的主要部分。可以通過兩種思路來推導出同樣的結論:最大化投影后的方差或者最小化投影后的損失(投影產生的損失最小)。LDA的輸入數據是帶標籤的,而PCA的輸入數據是不帶標籤的。LDA通常來說是作爲一個獨立的算法存在,給定了訓練數據後,將會得到一系列的判別函數,之後對於新的輸入,就可以進行預測了。而PCA像是一個預處理的方法,它可將原本數據降低維度,而使得降低了維度的數據之間的方差最大(也可以說投影誤差最小)(具體內容可以參考這篇博文:http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章