本文仍然是基於computer vision: models, learning, and inference這本書的閱讀筆記與心得。雖然看的雲裡霧裡的,但不寫下來恐怕很快一點都不記得了。看的過程還是很吃力,感覺自己在學機器學習與概率論,在公式中掙扎。
本章講的是機器學習兩大問題之一的回歸模型,討論的主要是判別方法,在這些方法中全域性狀態的分布p(w|x)被直接建模。比如姿態估計問題,通過輪廓形狀的向量來**第二個向量,這個向量中包含了每個主要身體關節的角度。為了解決這樣的問題,首先假設全域性狀態和資料的關係是線性的,並且該**的不確定性為乙個具有常數協方差的正態分佈,即線性回歸模型。
線性回歸的目標是根據觀測的資料x**關於全域性狀態w的後驗分布。對於這個判別模型,可以通過選擇乙個關於全域性狀態w的概率分布,並且引數依賴於x。而該分布的均值則是乙個高維的線性函式。使得p(wi |xi ,θ) = normw [φ0+∅txi, σ2]。
當然,可以把φ0增廣進來,式子簡寫為p(wi |xi ,θ) = normw [∅txi, σ2]。
學習或者說引數估計的過程採用最大似然argmax即可,同樣要對數化。
線性回歸模型顯然比較簡單,所以也存在很多問題與限制。而我們後面的改進便是基於這些問題。
解決這三個問題依次通過貝葉斯公式、非線性投影資料和稀疏先驗解決。
這種方法是利用不同概率值的加權平均,由梯度向量∅是多元連續的,所以將先驗建模為具有均值為0和球星協方差的正態分佈。給定訓練樣本,後驗分布可以用貝葉斯法則計算,即求p(∅|x,w)。其中似然函式建模為normw[xt
∅, σ2
i]。最後後驗是可以閉式計算的,並且後驗分布總是比先驗分布更窄。
這樣**的過程便可以通過下面的公式實現,通過貝葉斯公式與概率的加權平均,分布變的更加抗干擾,更加穩定。
p(w* | x* ,x, w) = ∫p(w* | x* ,∅)p(∅| x, w)d∅
(原諒我醜陋的markdown公式,大家明白我的意思就好
不過,當測試資料遠離觀測資料的均值時置信度較低,合適因為當我們從遠離大部分資料時梯度中的不確定性會導致**中的不確定性。
實際中這個模型需要求d × d 矩陣的逆a-1,如果維度d很大則很難計算。但通過woodbury恒等式重寫即可降低計算量。原理上來講,我們也可以用同樣的方法來估計方差,但是為了簡單實用了最大似然方法來計算點估計。不過建模時方差為標量,所以可以通過對數化再argmax實現。當然,也可以實用一般的非線性優化技術,比如梯度下降、牛頓法,這就是數值分析和優化方法的知識了。
徑向基函式是乙個取值僅僅依賴於離原點距離的實值函式,也就是φ(x)=φ(‖x‖),或者還可以是到任意一點c的距離,c點稱為中心點,也就是φ(x,c)=φ(‖x-c‖)。任意乙個滿足φ(x)=φ(‖x‖)特性的函式φ都叫做徑向基函式,標準的一般使用歐氏距離(也叫做歐式徑向基函式),儘管其他距離函式也是可以的。在神經網路結構中,可以作為全連線層和relu層的主要函式。書中是以乙個非線性例子出現的,而這個它本身可以用來表示任何球面對稱函式。
另外,我們可以想到非線性回歸仍然面臨著上面提到的穩定性問題,所以我們也用貝葉斯來解決,即貝葉斯非線性回歸。在我理解中,大多都是用z去替換上面線性回歸的x,具體的數學推導因為時間關係沒有去做,有興趣的朋友可以研究研究。
核函式在機器學習中還是非常重要的。比如在非線性變換後,如果直接計算內基zi
tzj計算量可能太大,所以可以用核替換解決。直接定義乙個核函式k[xi, xj]來替換源操作。對於很多變換,直接計算核函式比先對變數各自變換再計算內積要高效很多。這樣做可以不考慮變換本身而選擇乙個核函式,不再顯式的計算z。這種方法又稱為核技巧。另外,核函式必須對稱看待其引數。
核函式的例子有很多,比如線性核、p階多項式、徑向基(rbf)或者說高斯。還可以通過結合兩個或多個已有的核函式來構建新的核。因為有效核的和與積也是半正定的,所以也是有效的核。
將非線性回歸演算法中內基替換為核函式,這樣得到的模型稱為高斯過程回歸。
(新的**分布p(w* | x* ,x, w)表示式我這裡就省略了,寫公式實在太麻煩,我恨不得手抄一遍拍張照,大家如果想看還是去看我再前言中提到的那本書吧
另外,核函式中可能也包含引數,比如rbf核的引數為λ,可以通過最大化邊緣似然來得到,這一般需要非線性優化過程。
這一部分是為了解決上面提到問題的第三個,即觀測資料是高維向量。而x的維度可能只有一小部分對**w有用,(為啥不先用pca處理一下呢?我也不太懂
稀疏線性回歸的目標是改造演算法以求乙個大多數項為0的梯度向量,得到的分類器會執行的更快。相對於複雜的模型,簡單的捕獲了資料的主要趨勢而又不會對訓練集合的奇異點進行過擬合,而且泛化效果更好。
為了得到稀疏解,我們對每個非零權重加入懲罰項,並且將梯度引數的正態先驗替換為一維t分布的乘積。一元t分布的乘積在座標軸上有概率較大的脊,這將有利於稀疏。這實際上是在精確擬合與稀疏之間做了乙個折中。
然後我們可以用新的先驗通過貝葉斯公式在求後驗,但此時沒有見的閉式表示式了。先驗不再是正態分佈,共軛關係也丟失了。為了解決這個問題,將t分布表示為正態分佈的無限加權和,其中隱變數決定方差。後面的步驟省略了,但確實很好地解決了這個問 題。
現在可以明確,擬合模型的一般方法有兩個未知量,方差和隱變數,交替更新每個來最大化對數邊緣似然。最後要記得丟棄隱變數很大的∅的所有維度。
這裡我有個知識混淆了,小記一下。方差是協方差的一種特殊情況,即兩者相同的情況。而協方差矩陣的每個元素是各個向量元素之間的協方差,是從標量隨機變數到高維度隨機向量的自然推廣。
顯然,稀疏線性回歸也可以通過引入z來變成稀疏非線性回歸,如果變換後的資料z的維度很高,那麼需要用到更多的隱變數hd來實現。
而由於變換資料的維度可以是無窮大,該方法無法應用到核函式中。解決這個問題使用相關向量機,但它讓最終的**只與訓練樣本中的稀疏子集有關而不是觀測的維度的稀疏子集。它對於每個資料樣本只有乙個引數,這個模型即二元線性回歸。(我又開始看不懂了
在標準的一般的線性回歸模型中,引數向量包含d個元素,分別對應於d個維度。而在二元規劃中,將模型以包含i個元素的向量ψ來引數化,i是訓練樣本的個數。在i <d時更有效並且可以產生其他有趣的模型。在二元模型中,有 ∅ = xψ,所以稱為二元,而非是說向量是二維的。(不知道我理解的對不對,但肯定不是二元一次方程那個「二元」吧
如果資料維數d小於樣本個數i,那麼可以找到表示任意梯度向量 ∅ 的引數ψ,然而如果d > i,那麼向量 xψ 只能展開為可能的梯度向量的乙個子空間,但這不要緊,如果x在該方向沒有變化那麼梯度就為0。
在我的理解中,因為有的時候資料點維度會超過樣本的數量,可以把兩個維度合為乙個維度,使用乙個梯度,這樣就在一定程度上緩解了這個問題。(如果理解有誤還請大家指出,這一部分確實沒怎麼理解好
後面就是最大似然解以及貝葉斯解,類似於之前的方法,這裡不再多說了。
在上面的基礎上,將二元引數ψ的正態先驗替換為一維t分布的乘積,這個模型稱為相關向量回歸。除了現在處理的是二元遍歷之外,該模型與稀疏線性回歸模型完全類似。具體我找了一篇部落格感覺還不錯:
由於該演算法只與內積有關,因此可以通過將內積替換為乙個核函式來將其改造成非線性版本。
在現實情況中,比如最開始提到的姿態回歸問題,全域性狀態w是多元遍歷。對於這類問題的擴充套件也很簡單,對於每一維度構建回歸器即可。不過該規則有個例外:對於相關向量機需要每個模型稀疏結構是通用的,以至於可以保持效率的提公升,使得每個全域性狀態維度單個隱變數集合可以在模型中共享。
位移專家的目標是根據影象x的乙個區域,返回一組表示目標相對於視窗位置變化的數w。
機器學習好難啊,這一章看下來確實挺吃力的。本章討論是回歸中的判別方法,在視覺中有很多應用。而比較重要的是其涉及的概念,比如稀疏性、二元變數、核化,以後應該還會用到。另外感覺本章的乙個思想就是從簡單的線性模型開始逐步解決其描述真實問題的不足之處,通過貝葉斯來提高穩定性,通過換元來實現非線性回歸,通過t分布來實現稀疏線性回歸。而這些方法是能夠互相結合的,最後得到的回歸模型既穩定,又是非線性的,還能夠描述稀疏問題。從簡單到複雜的過程。而引數估計的時候也有很多方法與技巧,簡單的最大似然估計(mle)、貝葉斯估計以及使用核函式降低計算量。很多地方沒有理解好,等有時間再梳理一下。
計算機視覺 生成模型
給定訓練集,產生與訓練集同分布的新樣本。希望學到乙個模型,其與訓練樣本的分布相近。無監督學習裡的乙個核心問題 密度估計問題。典型思路 利用鏈式準則將影象x的生成概率轉變為每個畫素生成概率的乘積。缺點是 畫素的生成是序列的進行訓練,生成整張的效率太慢了。二者的優點 似然函式可以精確計算 利用似然函式的...
(計算機視覺)計算機視覺基礎
opencv cximage cimg freeimage opencv中vc庫的版本與visual studio版本的對應關係 vc8 2005 vc9 2008 vc10 2010 vc11 2012 vc12 2013 vc14 2015 vc15 2017 visual studio中的輔助...
計算機視覺
主講老師 曹洋 課程 視覺 基礎 底 層處理 影象處理 特徵提 取 中 層處理 影象分割 相機標 定 深度 估計 運 動估計 高層處 理 3d 重建 目 標識別 視 覺基 礎 底層 處理 圖 像處理 特徵提取 中層 處理 圖 像分割 相機標定 深度估 計 運動 估計 高層處理 3d重 建 目標 識別...