版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)發(fā)掘機器學習中的一些數(shù)學方法教材數(shù)據(jù)發(fā)掘機器學習中的一些數(shù)學方法教材53/53數(shù)據(jù)發(fā)掘機器學習中的一些數(shù)學方法教材FROM:/機器學習中的數(shù)學(1)-回歸(regression)、梯度下降(gradientdescent)版權(quán)聲明:本文由LeftNotEasy全部,宣布于出處,在未經(jīng)作者贊成下將本文用于商業(yè)用途,將追究其法律責任。
。若是轉(zhuǎn)載,請注明前言:前一次寫過一篇關(guān)于貝葉斯概率論的數(shù)學,近來時間比較緊,coding抽空看了一些機器學習的書和視頻,其中很介紹兩個:一個是stanford公開課,在verycd可下載,痛惜沒有翻譯。但是還是能夠看。其他一個是
的任務(wù)比較重,但是還是的machinelearningprml-patternrecognitionandmachinelearning,Bishop
的一部反響不錯的書,而且是
2008
年的,算是比較新的一本書了。頭幾天還準備寫一個分布式計算的系列,只寫了個開頭,又換到寫這個系列了。此后看哪邊的心得更多,就寫哪一個系列吧。近來干的事情比較雜,有跟機器學習相關(guān)的,有跟數(shù)學相關(guān)的,也有跟分布式相關(guān)的。這個系列主要想能夠用數(shù)學去描述機器學習,想要學好機器學習,第一得去理解其中的數(shù)學意義,不用然要到能夠輕松自如的推導中間的公式,但是最少得認識這些式子吧,否則看一些相關(guān)的論文可就看不懂了,這個系列主要將會重視于去機器學習的數(shù)學描述這個部分,將會覆蓋但不用然限制于回歸、聚類、分類等算法?;貧w與梯度下降:回歸在數(shù)學上來說是給定一個點集,能夠用一條曲線去擬合之,若是這個曲線是一條直線,那就被稱為線性回歸,若是曲線是一條二次曲線,就被稱為二次回歸,回歸還有很多的變種,
如locallyweighted
回歸,
logistic
回歸,等等,這個將在后邊去講。用一個很簡單的例子來說明回歸,這個例子來自很多的地方,也在很多的opensource的軟件中看到,比方說weka。大概就是,做一個房屋價值的評估系統(tǒng),一個房屋的價值來自很多地方,比方說面積、房間的數(shù)量(幾室?guī)讖d)、地段、朝向等等,這些影響房屋價值的變量被稱為特色(feature),feature在機器學習中是一個很重要的見解,有很多的論文特地商議這個東西。在此處,為了簡單,假設(shè)我們的房屋就是一個變量影響的,就是房屋的面積。假設(shè)有一個房屋銷售的數(shù)據(jù)以下:面積(m^2)銷售價錢(萬元)12325015032087160102
220這個表近似于帝都
5環(huán)左右的房屋價錢,
我們能夠做出一個圖,
x軸是房屋的面積。
y軸是房屋的售價,以下:若是來了一個新的面積,假設(shè)在銷售價錢的記錄中沒有的,我們怎么辦呢?我們能夠用一條曲線去盡量準的擬合這些數(shù)據(jù),此后若是有新的輸入過來,我們能夠在將曲線上這個點對應(yīng)的值返回。若是用一條直線去擬合,可能是下面的樣子:綠色的點就是我們想要展望的點。第一給出一些見解和常用的符號,在不一樣的機器學習書籍中可能有必然的差別。房屋銷售記錄表-訓練集(trainingset)或許訓練數(shù)據(jù)(trainingdata),是我們流程中的輸入數(shù)據(jù),一般稱為x房屋銷售價錢-輸出數(shù)據(jù),一般稱為y擬合的函數(shù)(或許稱為假設(shè)或許模型),一般寫做y=h(x)訓練數(shù)據(jù)的條目數(shù)(#trainingset),一條訓練數(shù)據(jù)是由一對輸入數(shù)據(jù)和輸出數(shù)據(jù)組成的輸入數(shù)據(jù)的維度(特色的個數(shù),#features),n下面是一個典型的機器學習的過程,第一給出一個輸入數(shù)據(jù),我們的算法會經(jīng)過一系列的過程獲取一個估計的函數(shù),這個函數(shù)有能力對沒有見過的新數(shù)據(jù)給出一個新的估計,也被稱為成立一個模型。就仿佛上面的線性回歸函數(shù)。我們用X1,X2..Xn去描述feature
里面的重量,比方
x1=
房間的面積,
x2=
房間的朝向,等等,我們能夠做出一個估計函數(shù):θ在這兒稱為參數(shù),在這兒的意思是調(diào)整feature更重要還是房屋的地段更重要。為了若是我們令
中每個重量的影響力,就是終究是房屋的面積X0=1,就可以用向量的方式來表示了:我們程序也需要一個體系去評估我們θ可否比較好,因此說需要對我們做出的一般這個函數(shù)稱為損失函數(shù)(lossfunction)或許錯誤函數(shù)(errorfunction)好的程度,在下面,我們稱這個函數(shù)為J函數(shù)在這兒我們能夠做出下面的一個錯誤函數(shù):
h函數(shù)進行評估,,描述h函數(shù)不這個錯誤估計函數(shù)是去對x(i)的估計值與真實值y(i)差的平方和作為錯誤估計函數(shù),前面乘上的1/2是為了在求導的時候,這個系數(shù)就不見了。怎樣調(diào)整θ以使得J(θ)獲取最小值有很多方法,其中有最小二乘法(minsquare),是一種完滿部是數(shù)學描述的方法,在stanford機器學習開放課最后的部分會推導最小二乘法的公式的來源,這個來很多的機器學習和數(shù)學書上都能夠找到,這里就不提最小二乘法,而談?wù)勌荻认陆捣?。梯度下降法是按下面的流程進行的:1)第一對θ賦值,這個值能夠是隨機的,也能夠讓θ是一個全零的向量。2)改變θ的值,使得J(θ)按梯度下降的方向進行減少。為了更清楚,給出下面的圖:這是一個表示參數(shù)θ與誤差函數(shù)J(θ)的關(guān)系圖,紅色的部分是表示J(θ)有著比較高的取值,我們需要的是,能夠讓J(θ)的值盡量的低。也就是深藍色的部分。θ0,θ1表示θ向量的兩個維度。在上面提到梯度下降法的第一步是給θ給一個初值,假設(shè)隨機給的初值是在圖上的十字點。此后我們將θ依照梯度下降的方向進行調(diào)整,就會使得J(θ)往更低的方向進行變化,以以下圖,算法的結(jié)束將是在θ下降到?jīng)]法連續(xù)下降為止。自然,可能梯度下降的最后點其實不是是全局最小點,可能是一個局部最小點,可能是下面的情況:上面這張圖就是描述的一個局部最小點,這是我們重新選擇了一個初始點獲取的,看來我們這個算法將會在很大的程度上被初始點的選擇影響而墜入局部最小點下面我將用一個例子描述一下梯度減少的過程,關(guān)于我們的函數(shù)J(θ)求偏導J:(求導的過程若是不理解,能夠復習一下微積分)下面是更新的過程,也就是θi會向著梯度最小的方向進行減少。θi表示更新從前的值,-后面的部分表示按梯度方向減少的量,α表示步長,也就是每次依照梯度減少的方向變化多少。一個很重要的地方值得注意的是,梯度是有方向的,關(guān)于一個向量θ,每一維重量θi都可以求出一個梯度的方向,我們就可以找到一個整體的方向,在變化的時候,我們就朝著下降最多的方向進行變化就可以達到一個最小點,無論它是局部的還是全局的。用更簡單的數(shù)學語言進行描述步驟2)是這樣的:倒三角形表示梯度,按這類方式來表示,θi就不見了,看看用好向量和矩陣,真的會大大的簡化數(shù)學的描述啊??偨Y(jié)與預告:本文中的內(nèi)容主要取自stanford的課程第二集,希望我把意思表達清楚了:)本系列的下一篇文章也將會取自stanford課程的第三集,下一次將會深入的講講回歸、logistic回歸、和Newton法,但是本系列其實不希望做成stanford課程的筆錄版,再此后邊就不用然完滿與stanford課程保持一致了。機器學習中的數(shù)學(2)-線性回歸,誤差、方差權(quán)衡版權(quán)聲明:本文由LeftNotEasy全部,宣布于。若是轉(zhuǎn)載,請注明出處,在未經(jīng)作者贊成下將本文用于商業(yè)用途,將追究其法律責任。若是有問題,請聯(lián)系作者wheeleast@前言:距離前一次發(fā)文章,也快有半個月的時間了,這半個月的時間里又在學習機器學習的道路上摸索著前進,積累了一點心得,此后會慢慢的寫寫這些心得。寫文章是促進自己對知識認識的一個好方法,看書的時候常常不是特別細,因此有些公式、知識點什么的就一帶而過,里面的一些具體意義就不簡單理解了。而寫文章,特別是寫科普性的文章,需要對里面的詳細意義弄理解,至還要能舉出再生動的例子,這是一個挑戰(zhàn)。為了寫文章,常常需要把從前自己以為看理解的內(nèi)容重新理解一下。
甚機器學習可不是一個完滿的技術(shù)性的東西,從前和部門老大在outing的時候素來在聊這個問題,機器學習絕對不是一個一個孤立的算法堆砌起來的,想要像看《算法導論》這樣看機器學習是個不能夠取的方法,機器學習里面有幾個東西素來貫穿全書,比方說數(shù)據(jù)的分布、最大似然(以及求極值的幾個方法,但是這個比較數(shù)學了),誤差、方差的權(quán)衡,還有特色選擇,模型選擇,混雜模型等等知識,這些知識像磚頭、水泥同樣組成了機器學習里面的一個個的算法。想要真實學好這些算法,必然要靜下心來將這些基礎(chǔ)知識弄清楚,才能夠真實理解、實現(xiàn)好各種機器學習算法。今天的主題是線性回歸,也會提一下誤差、方差的平衡這個主題。線性回歸定義:在上一個主題中,也是一個與回歸相關(guān)的,但是上一節(jié)更重視于梯度這個見解,這一節(jié)更重視于回歸自己與誤差和方差的見解?;貧w最簡單的定義是,給出一個點集D,用一個函數(shù)去擬合這個點集,而且使得點集與擬合函數(shù)間的誤差最小。上圖所示,給出一個點集(x,y),需要用一個函數(shù)去擬合這個點集,藍色的點是點集中的點,而紅色的曲線是函數(shù)的曲線,第一張圖是一個最簡單的模型,對應(yīng)的函數(shù)為y=f(x)=ax+b這個就是一個線性函數(shù),
,第二張圖是二次曲線,對應(yīng)的函數(shù)是
y=f(x)=ax^2+b
。第三張圖我也不知道是什么函數(shù),瞎畫的。第四張圖能夠以為是一個N次曲線,于給定的M個點,我們能夠用一個M-1
N=M-1,M是點集中點的個數(shù),有一個定理是,對次的函數(shù)去圓滿的經(jīng)過這個點集。真實的線性回歸,不但會考慮使得曲線與給定點集的擬合程度最好,還會考慮模型最簡單,這個話題我們將在本章后邊的誤差、方差的權(quán)衡中深入的說,其他這個話題還可以夠參照我從前的一篇文章:貝葉斯、概率分布與機器學習,里面對模型復雜度的問題也進行了一些談?wù)?。線性回歸(linearregression),其實不是是指的線性函數(shù),也就是x0,x1表示一個點不一樣的維度,比方說上一節(jié)中提到的,房屋的價錢是由包括面積、房間的個數(shù)、房屋的朝向等等因素去決定的。而是用廣義的線性函數(shù):wj是系數(shù),w就是這個系數(shù)組成的向量,它影響著不一樣維度的度,比方說關(guān)于房屋的售價來說,房間朝向的w必然比房間面積的
Φj(x)在回歸函數(shù)中的影響w更小。Φ(x)是能夠換成不同的函數(shù),不用然要求
Φ(x)=x
,這樣的模型我們以為是廣義線性模型。最小二乘法與最大似然:這個話題在此處有一個很詳細的談?wù)?,我這里主要談?wù)勥@個問題的理解。最小二乘法是線性回歸中一個最簡單的方法,它的推導有一個假設(shè),就是回歸函數(shù)的估計值與真實值間的誤差假設(shè)是一個高斯分布
。這個用公式來表示是下面的樣子:
,y(x,w)
就是給定了w系數(shù)向量下的回歸函數(shù)的估計值,而
t就是真實值了,ε表示誤差。我們能夠接下來推出下面的式子:這是一個簡單的條件概率表達式,表示在給定了x,w,β的情況下,獲取真實值t的概率,由于ε遵從高斯分布,則從估計值到真實值間的概率也是高斯分布的,看起來像下面的樣子:貝葉斯、概率分布與機器學習這篇文章中對分布影響結(jié)果這個話題談?wù)摫群芏啵軌蚧剡^頭去看看,由于最小二乘法有這樣一個假設(shè),則會以致,若是我們給出的估計函數(shù)y(x,w)與真實值t不是高斯分布的,甚至是一個差距很大的分布,那么算出來的模型必然是不正確的,當給定一個新的點x’想要求出一個估計值y’,與真實值t’可能就特其他遠了。概率分布是一個可愛又可恨的東西,當我們能夠正確的預知某些數(shù)據(jù)的分布時,那我們能夠做出一個特別精確的模型去展望它,但是在大多數(shù)真實的應(yīng)用途景中,數(shù)據(jù)的分布是不能夠知的,我們也很難去用一個分布、甚至多個分布的混雜去表示數(shù)據(jù)的真實分布,比方說給定了1億篇網(wǎng)頁,希望用一個現(xiàn)有的分布(比方說混雜高斯分布)去般配里面詞頻的分布,是不能夠能的。在這類情況下,我們只能獲取詞的出現(xiàn)概率,比方p(的)的概率是0.5,也就是一個網(wǎng)頁有1/2的概率出現(xiàn)“的”。若是一個算法,是對里面的分布進行了某些假設(shè),那么可能這個算法在真實的應(yīng)用中就會表現(xiàn)欠佳。最小二乘法關(guān)于近似的一個復雜問題,就很無力了誤差、方差的權(quán)衡(trade-off):誤差(bias)和方差(variance)是統(tǒng)計學的見解,剛進公司的時候,看到每一個人的嘴里隨時蹦出這兩個詞,感覺很可怕。第一得明確的,方差是多個模型間的比較,而非對一個模型而言的,關(guān)于單獨的一個模型,比方說:這樣的一個給定了詳細系數(shù)的估計函數(shù),是不能夠說f(x)的方差是多少。而誤差能夠是單個數(shù)據(jù)集中的,也能夠是多個數(shù)據(jù)集中的,這個得看詳細的定義。方差和誤差一般來說,是從同一個數(shù)據(jù)集中,用科學的采樣方法獲取幾個不一樣的子數(shù)據(jù)集,用這些子數(shù)據(jù)集獲取的模型,就可以談他們的方差和誤差的情況了。方差和誤差的變化一般是和模型的復雜程度成正比的,就像本文一開始那四張小圖片同樣,當我們一味的追求模型精確般配,則可能會以致同一組數(shù)據(jù)訓練出不一樣的模型,它們之間的差別特別大。這就叫做方差,但是他們的誤差就很小了,以以下圖所示:上圖的藍色和綠色的點是表示一個數(shù)據(jù)集中采樣獲取的不一樣的子數(shù)據(jù)集,我們有兩個N次的曲線去擬合這些點集,則能夠獲取兩條曲線(藍色和深綠色),它們的差別就很大,但是他們本是由同一個數(shù)據(jù)集生成的,這個就是模型復雜造成的方差大。模型越復雜,誤差就越小,而模型越簡單,誤差就越大,方差和誤差是按下面的方式進行變化的:當方差和誤差加起來最優(yōu)的點,就是我們最正確的模型復雜度。用一個很平時的例子來說,現(xiàn)在我們國家一味的追求GDP,GDP就像是模型的誤差,國家希望現(xiàn)有的GDP和目標的GDP差別盡量的小,但是其中使用了很多復雜的手段,比方說倒賣土地、強拆等等,這個增加了模型的復雜度,也會使得誤差(居民的收入分配)變大,窮的人越窮(被趕出城市的人與進入城市買不起房的人),富的人越富(倒賣土地的人與賣房屋的人)。其實原來模型不需要這么復雜,能夠讓居民的收入分配與國家的發(fā)展獲取一個平衡的模型是最好的模型。最后還是用數(shù)學的語言來描述一下誤差和方差:E(L)是損失函數(shù),h(x)表示真實值的平均,第一部分是與y(模型的估計函數(shù))相關(guān)的,這個部分是由于我們選擇不一樣的估計函數(shù)(模型)帶來的差別,而第二部分是與y沒關(guān)的,這個部分能夠以為是模型的固有噪聲。關(guān)于上面公式的第一部分,我們能夠化成下面的形式:這個部分在PRML的1.5.5推導,前一半是表示誤差,此后一半表示方差,我們能夠得出:損失函數(shù)=誤差^2+方差+固有噪音。以下圖也來自PRML:這是一個曲線擬合的問題,對同分布的不一樣的數(shù)據(jù)集進行了多次的曲線擬合,左邊表示方差,右邊表示誤差,綠色是真實值函數(shù)。lnlambda表示模型的復雜程度,這個值越小,表示模型的復雜程度越高,在第一行,大家的復雜度都很低(每一個人都很窮)的時候,方差是很小的,但是誤差同樣很小(國家也很窮),但是到了最后一幅圖,我們能夠獲取,每一個人的復雜程度都很高的情況下,不一樣的函數(shù)就有著天壤之別了(貧富差別大),但是誤差就很小了(國家很富饒)。機器學習中的數(shù)學(3)-模型組合(ModelCombining)之Boosting與GradientBoosting版權(quán)聲明:本文由LeftNotEasy宣布于,本文能夠被全部的轉(zhuǎn)載或者部分使用,但請注明出處,若是有問題,請聯(lián)系wheeleast@前言:原來上一章的結(jié)尾提到,準備寫寫線性分類的問題,文章都已經(jīng)寫得差不多了,但是突然聽說近來Team準備做一套分布式的分類器,可能會使用RandomForest來做,下了幾篇論文看了看,簡單的randomforest還比較簡單弄懂,復雜一點的還會與boosting等算法結(jié)合(參見iccv09),關(guān)于boosting也不甚認識,因此臨時抱佛腳的看了看。提及boosting,強哥之前實現(xiàn)過一套GradientBoostingDecisionTree(GBDT)算法,正好參照一下。近來看的一些論文中發(fā)現(xiàn)了模型組合的好處,比方GBDT或許rf,都是將簡單的模型組合起來,收效比單個更復雜的模型好。組合的方式很多,隨機化(比方randomforest),Boosting(比方GBDT)都是其中典型的方法,今天主要談?wù)凣radientBoosting方法(這個與傳統(tǒng)的Boosting還有一些不一樣)的一些數(shù)學基礎(chǔ),有了這個數(shù)學基礎(chǔ),上面的應(yīng)用能夠看的GradientBoostingMachine。
Freidman本文要求讀者學過基本的大學數(shù)學,其他對分類、回歸等基本的機器學習見解認識。本文主要參照資料是
prml
與
GradientBoostingMachine
。Boosting
方法:Boosting這其實思想相當?shù)暮唵?,大概是,對一份?shù)據(jù),成立M個模型(比方分類),一般這類模型比較簡單,稱為弱分類器(weaklearner)每次分類都將前一次分錯的數(shù)據(jù)權(quán)重提升一點再進行分類,這樣最后獲取的分類器在測試數(shù)據(jù)與訓練數(shù)據(jù)上都能夠獲取比較好的成績。上圖(圖片來自prmlp660)就是一個Boosting的過程,綠色的線表示當前獲取的模型型是由前m次獲取的模型合并獲取的),虛線表示當前此次模型。每次分類的時候,會更關(guān)注分錯的數(shù)據(jù),上圖中,紅色和藍色的點就是數(shù)據(jù),點越大表示權(quán)重越高,看看右下角的圖片,當?shù)臅r候,獲取的模型已經(jīng)幾乎能夠?qū)⒓t色和藍色的點劃分開了。m=150
(模Boosting能夠用下面的公式來表示:訓練集中一共有n個點,我們能夠為里面的每一個點賦上一個權(quán)重Wi(0<=i<n),表示這個點的重要程度,經(jīng)過依次訓練模型的過程,我們對點的權(quán)重進行修正,若是分類正確了,權(quán)重降低,若是分類錯了,則權(quán)重提升,初始的時候,權(quán)重都是同樣的。上圖中綠色的線就是表示依次訓練模型,能夠想象獲取,程序越此后執(zhí)行,訓練出的模型就越會在意那些簡單分錯(權(quán)重高)的點。當全部的程序執(zhí)行完后,會獲取M個模型,分別對應(yīng)上圖的y1(x)yM(x),經(jīng)過加權(quán)的方式組合成一個最后的模型YM(x)。我感覺Boosting更像是一個人學習的過程,開始學同樣東西的時候,會去做一些習題,但是常常連一些簡單的題目都會弄錯,但是越到后邊,簡單的題目已經(jīng)難不倒他了,就會去做更復雜的題目,等到他做了很多的題目后,無論是難題還是簡單的題都能夠解決掉了。GradientBoosting
方法:其實Boosting更像是一種思想,GradientBoosting是一種Boosting的方法,它主要的思想是,每一次成立模型是在從前成立模型損失函數(shù)的梯度下降方向。這句話有一點拗口,損失函數(shù)(lossfunction)描述的是模型的不行靠程度,損失函數(shù)越大,則說明模型越簡單出錯(其實這里有一個方差、誤差平衡的問題,但是這里就假設(shè)損失函數(shù)越大,模型越簡單出錯)。若是我們的模型能夠讓損失函數(shù)連續(xù)的下降,則說明我們的模型在不停的改進,而最好的方式就是讓損失函數(shù)在其梯度(Gradient)的方向上下降。下面的內(nèi)容就是用數(shù)學的方式來描述
GradientBoosting
,數(shù)學上不算太復雜,只要潛下心來看就能看懂:)可加的參數(shù)的梯度表示:假設(shè)我們的模型能夠用下面的函數(shù)來表示,
P表示參數(shù),可能有多個參數(shù)組成,
P={p0,p1,p2.},F(xiàn)(x;P)表示以P為參數(shù)的x的函數(shù),也就是我們的展望函數(shù)。我們的模型是由多個模型加起來的,β表示每個模型的權(quán)重,α表示模型里面的參數(shù)。為了優(yōu)化F,我們即可以優(yōu)化
{β,α}也就是
P。我們還是用P來表示模型的參數(shù),能夠獲取,Φ(P)表示P的likelihood函數(shù),也就是模型F(x;P)的loss函數(shù),Φ(P)=后邊的一塊看起來很復雜,只要理解成是一個損失函數(shù)就行了,不要被嚇跑了。既然模型(F(x;P))是可加的,關(guān)于參數(shù)P,我們也能夠獲取下面的式子:這樣優(yōu)化P的過程,就可以是一個梯度下降的過程了,假設(shè)當前已經(jīng)獲取了m-1個模型,想要獲取第m個模型的時候,我們第一對前m-1個模型求梯度。獲取最快下降的方向,gm就是最快下降的方向。這里有一個很重要的假設(shè),關(guān)于求出的前m-1個模型,我們以為是已知的了,不要去改變它,而我們的目標是放在此后的模型成立上。就像做事情的時候,從前做錯的事就沒有后悔藥吃了,只有努力在此后的事情上別出錯:我們獲取的新的模型就是,它就在P似然函數(shù)的梯度方向。ρ是在梯度方向上下降的距離。我們最后能夠經(jīng)過優(yōu)化下面的式子來獲取最優(yōu)的ρ:可加的函數(shù)的梯度表示:上面經(jīng)過參數(shù)P的可加性,獲取了參數(shù)P的似然函數(shù)的梯度下降的方法。我們能夠?qū)?shù)P的可加性實行到函數(shù)空間,我們能夠獲取下面的函數(shù),此處的fi(x)近似于上面的h(x;α),由于作者的文件中這樣使用,我這里就用作者的表達方法:同樣,我們能夠獲取函數(shù)F(x)的梯度下降方向g(x)最后能夠獲取第m個模型fm(x)的表達式:通用的GradientDescentBoosting的框架:下面我將推導一下GradientDescent方法的通用形式,從前談?wù)撨^的:關(guān)于模型的參數(shù){β,α},我們能夠用下面的式子來進行表示,這個式子的意思是,關(guān)于N個樣本點(xi,yi)計算其在模型F(x;α,β)下的損失函數(shù),最優(yōu)的{α,β}就是能夠使得這個損失函數(shù)最小的{α,β}。表示兩個m維的參數(shù):寫成梯度下降的方式就是下面的形式,也就是我們將要獲取的模型fm(x)的參數(shù){αm,βm}能夠使得fm的方向是從前獲取的模型Fm-1(x)的損失函數(shù)下降最快的方向:關(guān)于每一個數(shù)據(jù)點xi都能夠獲取一個gm(xi),最后我們能夠獲取一個完滿梯度下降方向為了使得fm(x)能夠在gm(x)的方向上,我們能夠優(yōu)化下面的式子獲取,能夠使用最小二乘法:獲取了α的基礎(chǔ)上,此后能夠獲取βm。最后合并到模型中:算法的流程圖以下此后,作者還說了這個算法在其他的地方的實行,其中,Multi-classlogisticregressionandclassification就是GBDT的一種實現(xiàn),能夠看看,流程圖跟上面的算法近似的。這里不打算繼續(xù)寫下去,再寫下去就成論文翻譯了,請參照文章:GreedyfunctionApproximation–AGradientBoostingMachine,作者Freidman??偨Y(jié):本文主要談了談Boosting與GradientBoosting的方法,Boosting主若是一種思想,表示“知錯就改”。而GradientBoosting是在這個思想下的一種函數(shù)(也能夠說是模型)的優(yōu)化的方法,第一將函數(shù)分解為可加的形式(其實全部的函數(shù)都是可加的,可是可否好放在這個框架中,以及最后的收效怎樣)。此后進行m次迭代,經(jīng)過使得損失函數(shù)在梯度方向上減少,最后獲取一個優(yōu)秀的模型。值得一提的是,每次模型在梯度方向上的減少的部分,能夠以為是一個“小”的或許“弱”的模型,最后我們會經(jīng)過加權(quán)(也就是每次在梯度方向上下降的距離)的方式將這些“弱”的模型合并起來,形成一個更好的模型。有了這個GradientDescent這個基礎(chǔ),還可以夠做很多的事情。也在機器學習的道路上更進一步了:)機器學習中的數(shù)學(4)-線性鑒識解析(LDA),主成分解析(PCA)版權(quán)聲明:本文由LeftNotEasy宣布于,本文能夠被全部的轉(zhuǎn)載或者部分使用,但請注明出處,若是有問題,請聯(lián)系wheeleast@前言:第二篇的文章中談到,和部門老大一寧出去outing的時候,他給了我相當多的機器學習的建議,里面涉及到很多的算法的意義、學習方法等等。一寧前一次給我提到,若是學習分類算法,最好從線性的下手,線性分類器最簡單的就是LDA,它能夠看做是簡化版的SVM,若是想理解SVM這類分類器,那理解LDA就是很有必要的了。談到LDA,就不得不談?wù)凱CA,PCA
是一個和
LDA
特別相關(guān)的算法,從推導、求解、到算法最后的結(jié)果,都有著相當?shù)南嗨?。本次的?nèi)容主若是以推導數(shù)學公式為主,都是從算法的物理意義出發(fā),此后一步一步最后推導到最后的式子,LDA和PCA最后的表現(xiàn)都是解一個矩陣特色值的問題,但是理解了怎樣推導,才能更深刻的理解其中的含義。本次內(nèi)容要求讀者有一些基本的線性代數(shù)基礎(chǔ),比方說特色值、特色向量的見解,空間投影,點乘等的一些基本知識等。除此之外的其他公式、我都盡量講得更簡單清楚。LDA:LDA
的全稱是
LinearDiscriminantAnalysis
(線性鑒識解析),
是一種
supervisedlearning。有些資料上也稱為是Fisher’sLinearDiscriminant,由于它被RonaldFisher發(fā)明自1936年,Discriminant此次詞我個人的理解是,一個模型,不需要去經(jīng)過概率的方法來訓練、展望數(shù)據(jù),比方說各種貝葉斯方法,就需要獲取數(shù)據(jù)的先驗、后驗概率等等。LDA在當前機器學習、數(shù)據(jù)發(fā)掘領(lǐng)域經(jīng)典且熱門的一個算法,據(jù)我所知,百度的商務(wù)找尋部里面就用了很多這方面的算法。
是LDA的原理是,將帶上標簽的數(shù)據(jù)(點),經(jīng)過投影的方法,投影到維度更低的空間中,使得投影后的點,會形成按種類劃分,一簇一簇的情況,同樣類其他點,將會在投影后的空間中更湊近。要說理解LDA,第一得弄理解線性分類器(LinearClassifier):由于LDA是一種線性分類器。關(guān)于K-分類的一個分類問題,會有K個線性函數(shù):當滿足條件:關(guān)于全部的j,都有Yk>Yj,的時候,我們就說類,都有一個公式去算一個分值,在全部的公式獲取的分值中,了。
x屬于種類k。關(guān)于每一個分找一個最大的,就是所屬的分類上式實質(zhì)上就是一種投影,是將一個高維的點投影到一條高維的直線上,LDA最求的目標是,給出一個標了然類其他數(shù)據(jù)集,投影到了一條直線此后,能夠使得點盡量的按種類劃分開,當k=2即二分類問題的時候,以以下圖所示:紅色的方形的點為0類的原始點、藍色的方形點為1類的原始點,經(jīng)過原點的那條線就是投影的直線,從圖上能夠清楚的看到,紅色的點和藍色的點被原點顯然的分開了,這個數(shù)據(jù)可是任意畫的,若是在高維的情況下,看起來會更好一點。下面我來推導一下二分類LDA問題的公式:假設(shè)用來劃分二分類的直線(投影函數(shù))為:LDA分類的一個目標是使得不一樣種類之間的距離越遠越好,同一種類之中的距離越近越好,因此我們需要定義幾個要點的值。種類i的原始中心點為:(Di表示屬于種類i的點)種類i投影后的中心點為:權(quán)衡種類i投影后,種類點之間的分別程度(方差)為:最后我們能夠獲取一個下面的公式,表示LDA投影到w后的損失函數(shù):我們分類的目標是,使得種類內(nèi)的點距離越近越好(集中),種類間的點越遠越好。分母表示每一個種類內(nèi)的方差之和,方差越大表示一個種類內(nèi)的點越分別,分子為兩個種類各自的中心點的距離的平方,我們最大化J(w)就可以求出最優(yōu)的w了。想要求出最優(yōu)的w,能夠使用拉格朗日乘子法,但是現(xiàn)在我們獲取的J(w)里面,w是不能夠被單獨提出來的,我們就得想方法將w單獨提出來。我們定義一個投影前的各種型分別程度的矩陣,這個矩陣看起來有一點麻煩,其實意思是,若是某一個分類的輸入點集Di里面的點距離這個分類的中心店mi越近,則Si里面元素的值就越小,若是分類的點都緊緊地圍繞著mi,則Si里面的元素值越更湊近0.帶入Si,將J(w)分母化為:同樣的將J(w)分子化為:這樣損失函數(shù)能夠化成下面的形式:這樣就可以用最喜歡的拉格朗日乘子法了,但是還有一個問題,若是分子、分母是都能夠取任意值的,那就會使得有無量解,我們將分母限制為長度為1(這是用拉格朗日乘子法一個很重要的技巧,在下面將說的PCA里面也會用到,若是忘記了,請復習一下高數(shù)),并作為拉格朗日乘子法的限制條件,帶入獲?。哼@樣的式子就是一個求特色值的問題了。關(guān)于N(N>2)分類的問題,我就直接寫出下面的結(jié)論了:這同樣是一個求特色值的問題,我們求出的第
i大的特色向量,就是對應(yīng)的
Wi
了。這里想多談?wù)勌厣?,特色值在純?shù)學、量子力學、固體力學、計算機等等領(lǐng)域都有廣泛的應(yīng)用,特色值表示的是矩陣的性質(zhì),當我們?nèi)〉骄仃嚨那癗個最大的特色值的時候,我們能夠說提取到的矩陣主要的成分(這個和此后的PCA相關(guān),可可否是完滿同樣的見解)。在機器學習領(lǐng)域,很多的地方都要用到特色值的計算,比方說圖像鑒識、pagerank、LDA、還有此后將會提到的PCA等等。以下圖是圖像鑒識中廣泛用到的特色臉(eigenface),提取出特色臉有兩個目的,第一是為了壓縮數(shù)據(jù),關(guān)于一張圖片,只要要保留其最重要的部分就是了,此后是為了使得程序更簡單辦理,在提取主要特色的時候,很多的噪聲都被過濾掉了。跟下面將談到的PCA的作用特別相關(guān)。特色值的求法有很多,求一個D*D的矩陣的時間復雜度是O(D^3),也有一些求TopM的方法,比方說powermethod,它的時間復雜度是O(D^2*M),整體來說,求特色值是一個很費時間的操作,若是是單機環(huán)境下,是很限制的。PCA:主成分解析(PCA)與LDA有著特別近似的意思,LDA的輸入數(shù)據(jù)是帶標簽的,而PCA的輸入數(shù)據(jù)是不帶標簽的,因此PCA是一種unsupervisedlearning。LDA平時來說是作為一個獨立的算法存在,給定了訓練數(shù)據(jù)后,將會獲取一系列的鑒識函數(shù)(discriminatefunction),此后關(guān)于新的輸入,就可以進行展望了。而PCA更像是一個預辦理的方法,它能夠?qū)⒃瓉淼臄?shù)據(jù)降低維度,而使得降低了維度的數(shù)據(jù)之間的方差最大(也能夠說投影誤差最小,詳細在此后的推導里面會談到)。方差這個東西是個很幽默的,有些時候我們會考慮減少方差(比方說訓練模型的時候,我們會考慮到方差-誤差的平衡),有的時候我們會盡量的增大方差。方差就像是一種信奉(強哥的話),不用然會有很嚴實的證明,從實踐來說,經(jīng)過盡量增大投影方差的PCA算法,確實能夠提升我們的算法質(zhì)量。說了這么多,推推公式能夠幫助我們理解。我下面將用兩種思路來推導出一個同樣的表達式。第一是最大化投影后的方差,其次是最小化投影后的損失(投影產(chǎn)生的損失最?。?。最大化方差法:假設(shè)我們還是將一個空間中的點投影到一個向量中去。第一,給出原空間的中心點:假設(shè)u1為投影向量,投影此后的方差為:上面這個式子若是看懂了從前推導LDA的過程,應(yīng)該比較簡單理解,若是線性代數(shù)里面的內(nèi)容忘記了,能夠再復習一下,優(yōu)化上式等號右邊的內(nèi)容,還是用拉格朗日乘子法:將上式求導,使之為0,獲?。哼@是一個標準的特色值表達式了,λ對應(yīng)的特色值,u對應(yīng)的特色向量。上式的左邊獲取最大值的條件就是λ1最大,也就是獲取最大的特色值的時候。假設(shè)我們是要將一個D維的數(shù)據(jù)空間投影到M維的數(shù)據(jù)空間中(M<D),那我們?nèi)∏癕個特色向量組成的投影矩陣就是能夠使得方差最大的矩陣了。最小化損失法:假設(shè)輸入數(shù)據(jù)x是在D維空間中的點,那么,我們能夠用D個正交的D維向量去完滿的表示這個空間(這個空間中全部的向量都能夠用這D個向量的線性組合獲取)。在D維空間中,有無量多種可能找這D個正交的D維向量,哪個組合是最合適的呢?假設(shè)我們已經(jīng)找到了這D個向量,能夠獲?。何覀兡軌蛴媒品▉肀硎就队昂蟮狞c:上式表示,獲取的新的
x是由前
M個基的線性組合加上后
D-M
個基的線性組合,注意這里的z是關(guān)于每個
x都不一樣的,而
b關(guān)于每個
x是同樣的,這樣我們就可以用
M個數(shù)來表示空間中的一個點,也就是使得數(shù)據(jù)降維了。但是這樣降維后的數(shù)據(jù),必然會產(chǎn)生一些扭曲,我們用描述這類扭曲,我們的目標是,使得J最?。?/p>
J上式的意思很直觀,就是關(guān)于每一個點,將降維后的點與原始的點之間的距離的平方和加起來,求平均值,我們就要使得這個平均值最小。我們令:將上面獲取的z與b帶入降維的表達式:將上式帶入J的表達式獲?。涸儆蒙侠绽钩俗臃ǎù颂幝裕?,能夠獲取,獲取我們想要的投影基的表達式為:這里又是一個特色值的表達式,我們想要的前M個向量其實就是這里最大的的特色向量。證明這個還可以夠看看,我們J能夠化為:
M個特色值所對應(yīng)也就是當誤差J是由最小的D-M個特色值組成的時候,J獲取最小值。跟上面的意思同樣。以下圖是PCA的投影的一個表示,黑色的點是原始的點,帶箭頭的虛線是投影的向量,表示特色值最大的特色向量,pc2表示特色值次大的特色向量,兩者是互相正交的,是一個2維的空間,因此最多有兩個投影的向量,若是空間維度更高,則投影的向量會更多。
Pc1由于這原來總結(jié):本次主要講了兩種方法,PCA與LDA,兩者的思想和計算方法特別近似,但是一個是作為獨立的算法存在,另一個更多的用于數(shù)據(jù)的預辦理的工作。其他關(guān)于PCA和LDA還有核方法,本次的篇幅比較大了,先不說了,此后有時間再談:機器學習中的數(shù)學(5)-富強的矩陣奇異值分解(SVD)及其應(yīng)用版權(quán)聲明:本文由LeftNotEasy宣布于,本文能夠被全部的轉(zhuǎn)載或者部分使用,但請注明出處,若是有問題,請聯(lián)系wheeleast@前言:前一次寫了關(guān)于PCA與LDA的文章,PCA的實現(xiàn)一般有兩種,一種是用特色值分解去實現(xiàn)的,一種是用奇異值分解去實現(xiàn)的。在上篇文章中即是基于特色值分解的一種講解。特色值和奇異值在大多數(shù)人的印象中,常常是停留在純粹的數(shù)學計算中。而且線性代數(shù)或許矩陣論里面,也很少講任何跟特色值與奇異值相關(guān)的應(yīng)用背景。奇異值分解是一個有著很顯然的物理意義的一種方法,它能夠?qū)⒁粋€比較復雜的矩陣用更小更簡單的幾個子矩陣的相乘來表示,這些小矩陣描述的是矩陣的重要的特色。就像是描述一個人同樣,給別人描述說這個人長得濃眉大眼,方臉,絡(luò)腮胡,而且?guī)€黑框的眼鏡,這樣寥寥的幾個特色,就讓別人腦海里面就有一個較為清楚的認識,實質(zhì)上,人臉上的特色是有著無數(shù)種的,之因此能這么描述,是由于人天生就有著特別好的抽取重要特色的能力,讓機器學會抽取重要的特色,SVD是一個重要的方法。在機器學習領(lǐng)域,有相當多的應(yīng)用與奇異值都能夠扯上關(guān)系,比方做PCA,做數(shù)據(jù)壓縮(以圖像壓縮為代表)的算法,還有做找尋引擎語義層次檢索的SemanticIndexing)
featurereduction的LSI(Latent其他在這里抱怨一下,從前在百度里面找尋過SVD,出來的結(jié)果都是俄羅斯的一種狙擊槍(AK47同時代的),是由于穿越火線這個游戲里面有一把狙擊槍叫做SVD,而在Google
上面找尋的時候,出來的都是奇異值分解(英文資料為主)。想玩玩戰(zhàn)爭游戲,玩玩COD不是非常好嗎,玩山寨的CS有神馬意思啊。國內(nèi)的網(wǎng)頁中的話語權(quán)也被這些沒有太多營養(yǎng)的帖子所占據(jù)。誠意希望國內(nèi)的氣氛能夠更濃一點,搞游戲的人真實是喜歡制作游戲,搞DataMining的人是真實喜歡挖數(shù)據(jù)的,都不是可是為了混口飯吃,這樣談超越別人才有意義,中文文章中,能踏扎實實談?wù)劶夹g(shù)的太少了,改變這個情況,從我自己做起吧。前面說了這么多,本文主要關(guān)注奇異值的一些特色,其他還會稍稍提及奇異值的計算,但是本文嚴禁備在怎樣計算奇異值上張開太多。其他,本文里面有部分不算太深的線性代數(shù)的知識,若是完滿忘記了線性代數(shù),看本文可能會有些困難。一、奇異值與特色值基礎(chǔ)知識:特色值分解和奇異值分解在機器學習領(lǐng)域都是屬于滿地可見的方法。兩者有著很親密的關(guān)系,我在接下來會談到,特色值分解和奇異值分解的目的都是同樣,就是提取出一個矩陣最重要的特色。先談?wù)勌厣捣纸獍桑海┨厣担喝羰钦f一個向量v是方陣A的特色向量,將必然能夠表示成下面的形式:這時候λ就被稱為特色向量v對應(yīng)的特色值,一個矩陣的一組特色向量是一組正交向量。特色值分解是將一個矩陣分解成下面的形式:其中Q是這個矩陣A的特色向量組成的矩陣,Σ是一個對角陣,每一個對角線上的元素就是一個特色值。我這里引用了一些參照文件中的內(nèi)容來說明一下。第一,要明確的是,一個矩陣其實就是一個線性變換,由于一個矩陣乘以一個向量后獲取的向量,其實就相當于將這個向量進行了線性變換。比方說下面的一個矩陣:它其實對應(yīng)的線性變換是下面的形式:由于這個矩陣M乘以一個向量(x,y)的結(jié)果是:上面的矩陣是對稱的,因此這個變換是一個對元素將會對一個維度進行拉伸變換,當值
>1
x,y軸的方向一個拉伸變換(每一個對角線上的時,是拉長,當值<1時時縮短),當矩陣不是對稱的時候,若是說矩陣是下面的樣子:它所描述的變換是下面的樣子:這實際上是在平面上對一個軸進行的拉伸變換(如藍色的箭頭所示),在圖中,藍色的箭頭是一個最主要的變化方向(變化方向可能有不僅一個),若是我們想要描述好一個變換,那我們就描述好這個變換主要的變化方向就好了。反過頭來看看從前特色值分解的式子,分解獲取的矩陣是一個對角陣,里面的特色值是由大到小排列的,這些特色值所對應(yīng)的特色向量就是描述這個矩陣變化方向(從主要的變化到次要的變化排列)
Σ當矩陣是高維的情況下,那么這個矩陣就是高維空間下的一個線性變換,這個線性變化可能沒法經(jīng)過圖片來表示,但是能夠想象,這個變換也同樣有很多的變換方向,我們經(jīng)過特色值分解獲取的前N個特色向量,那么就對應(yīng)了這個矩陣最主要的N個變化方向。我們利用這前N個變化方向,就可以近似這個矩陣(變換)。也就是從前說的:提取這個矩陣最重要的特色??偨Y(jié)一下,特色值分解能夠獲取特色值與特色向量,特色值表示的是這個特色終究有多重要,而特色向量表示這個特色是什么,能夠?qū)⒚恳粋€特色向量理解為一個線性的子空間,我們能夠利用這些線性的子空間干很多的事情。但是,特色值分解也有很多的限制,比方說變換的矩陣必定是方陣。(說了這么多特色值變換,不知道有沒有討情楚,請各位多提提建議。))奇異值:下面談?wù)勂娈愔捣纸?。特色值分解是一個提取矩陣特色很不錯的方法,但是它可是對方陣而言的,在現(xiàn)實的世界中,我們看到的大多數(shù)矩陣都不是方陣,比方說有N個學生,每個學生有M科成績,這樣形成的一個N*M的矩陣就不能夠能是方陣,我們怎樣才能描述這樣一般的矩陣呢的重要特色呢?奇異值分解能夠用來干這個事情,奇異值分解是一個能適用于任意的矩陣的一種分解的方法
:假設(shè)A是一個N*M的矩陣,那么獲取的U是一個N*N的方陣(里面的向量是正交的,U里面的向量稱為左奇異向量),Σ是一個N*M的矩陣(除了對角線的元素都是0,對角線上的元素稱為奇異值),V’(V的轉(zhuǎn)置)是一個N*N的矩陣,里面的向量也是正交的,V里面的向量稱為右奇異向量),從圖片來反響幾個相乘的矩陣的大小可得下面的圖片那么奇異值和特色值是怎么對應(yīng)起來的呢?第一,
我們將一個矩陣
A的轉(zhuǎn)置
*A
,將會獲取一個方陣,我們用這個方陣求特色值能夠獲?。哼@里獲取的v,就是我們上面的右奇異向量。其他我們還可以夠獲?。哼@里的σ就是上面說的奇異值,u就是上面說的左奇異向量。奇異值σ跟特色值近似,在矩陣Σ中也是從大到小排列,而且σ的減少特其他快,在很多情況下,前10%甚至1%的奇異值的和就占了全部的奇異值之和的99%以上了。也就是說,我們也能夠用前r大的奇異值來近似描述矩陣,這里定義一下部分奇異值分解:r是一個遠小于m、n的數(shù),這樣矩陣的乘法看起來像是下面的樣子:右邊的三個矩陣相乘的結(jié)果將會是一個湊近于A的矩陣,在這兒,r越湊近于n,則相乘的結(jié)果越湊近于A。而這三個矩陣的面積之和(在儲藏見解來說,矩陣面積越小,儲藏量就越?。┮h遠小于原始的矩陣
A,我們?nèi)羰窍胍獕嚎s空間來表示原矩陣
A,我們存下這里的三個矩陣:U、Σ、V
就好了。二、奇異值的計算:奇異值的計算是一個難題,是一個
O(N^3)
的算法。在單機的情況下自然是沒問題的,matlab在一秒鐘內(nèi)就可以算出1000*1000的矩陣的全部奇異值,但是當矩陣的規(guī)模增加的時候,計算的復雜度呈3次方增加,就需要并行計算參加了。Google的吳軍老師在數(shù)學之美系列談到SVD的時候,提及Google實現(xiàn)了SVD的并行化算法,說這是對人類的一個貢獻,但是也沒有給出詳細的計算規(guī)模,也沒有給出太多有價值的信息。其實SVD還是能夠用并行的方式去實現(xiàn)的,在解大規(guī)模的矩陣的時候,一般使用迭代的方法,當矩陣的規(guī)模很大(比方說上億)的時候,迭代的次數(shù)也可能會上億次,若是使用Map-Reduce框架去解,則每次Map-Reduce完成的時候,都會涉及到寫文件、讀文件的操作。個人猜想Google云計算系統(tǒng)中除了Map-Reduce之外應(yīng)該還有近似于MPI的計算模型,也就是節(jié)點之間是保持通信,數(shù)據(jù)是常駐在內(nèi)存中的,這類計算模型比Map-Reduce在解決迭代次數(shù)特別多的時候,要快了很多倍。Lanczos迭代就是一種解對稱方陣部分特色值的方法(從前談到了,解A’*A獲取的對稱方陣的特色值就是解A的右奇異向量),是將一個對稱的方程化為一個三對角矩陣再進行求解。按網(wǎng)上的一些文件來看,Google應(yīng)該是用這類方法去做的奇異值分解的。請見Wikipedia上面的一些引用的論文,若是理解了那些論文,也“幾乎”能夠做出一個SVD了。由于奇異值的計算是一個很無聊,純數(shù)學的過程,而且先人的研究成就(論文中)幾乎已經(jīng)把整個程序的流程圖給出來了。更多的關(guān)于奇異值計算的部分,將在后邊的參照文件中給出,這里不再深入,我還是focus在奇異值的應(yīng)用中去。三、奇異值與主成分解析(PCA):主成分解析在上一節(jié)里面也講了一些,這里主要談?wù)勗鯓佑玫膯栴}實際上是一個基的變換,使得變換后的數(shù)據(jù)有著最大的方差。
SVD去解PCA的問題。PCA方差的大小描述的是一個變量的信息量,我們在講一個東西的牢固性的時候,常常說要減小方差,若是一個模型的方差很大,那就說明模型不牢固了。但是關(guān)于我們用于機器學習的數(shù)據(jù)(主若是訓練數(shù)據(jù)),方差大才有意義,否則輸入的數(shù)據(jù)都是同一個點,那方差就為了。以下面這張圖為例子:
0了,這樣輸入的多個數(shù)據(jù)就等同于一個數(shù)據(jù)這個假設(shè)是一個攝像機采集一個物體運動獲取的圖片,上面的點表示物體運動的地址,若是我們想要用一條直線去擬合這些點,那我們會選擇什么方向的線呢?自然是圖上標有signal的那條線。若是我們把這些點單純的投影到x軸或許y軸上,最后在x軸與y軸上獲取的方差是相似的(由于這些點的趨勢是在45度左右的方向,因此投影到x軸或許y軸上都是近似的),如果我們使用原來的xy坐標系去看這些點,簡單看不出來這些點真實的方向是什么。但是若是我們進行坐標系的變化,橫軸變成了signal的方向,縱軸變成了noise的方向,則就很簡單發(fā)現(xiàn)什么方向的方差大,什么方向的方差小了。一般來說,方差大的方向是信號的方向,方差小的方向是噪聲的方向,我們在數(shù)據(jù)發(fā)掘中或許數(shù)字信號辦理中,常常要提升信號與噪聲的比率,也就是信噪比。對上圖來說,若是我們只保留signal方向的數(shù)據(jù),也能夠?qū)υ瓟?shù)據(jù)進行不錯的近似了。PCA的全部工作簡單點說,就是對原始的空間中序次地找一組互相正交的坐標軸,第一個軸是使得方差最大的,第二個軸是在與第一個軸正交的平面中使得方差最大的,第三個軸是在與第1、2個軸正交的平面中方差最大的,這樣假設(shè)在N維空間中,我們能夠找到N個這樣的坐標軸,我們?nèi)∏皉個去近似這個空間,這樣就從一個N維的空間壓縮到r維的空間了,但是我們選擇的r個坐標軸能夠使得空間的壓縮使得數(shù)據(jù)的損失最小。還是假設(shè)我們矩陣每一行表示一個樣本,每一列表示一個feature,用矩陣的語言來表示,將一個m*n的矩陣A的進行坐標軸的變化,P就是一個變換的矩陣從一個N維的空間變換到另一個N維的空間,在空間中就會進行一些近似于旋轉(zhuǎn)、拉伸的變化。而將一個m*n的矩陣A變換成一個m*r的矩陣,這樣就會使得原來有n個feature變成了有r個feature了(r<n),這r個其實就是對n個feature的一種提煉,我們就把這個稱為feature的壓縮。用數(shù)學語言表示就是:
的,但是這個怎么和SVD扯上關(guān)系呢?從前談到,SVD得出的奇異向量也是從奇異值由大到小排列的,按PCA的見解來看,就是方差最大的坐標軸就是第一個奇異向量,方差次大的坐標軸就是第二個奇異向量我們回憶一下從前獲取的SVD式子:在矩陣的兩邊同時乘上一個矩陣V,由于V是一個正交的矩陣,因此V轉(zhuǎn)置乘以V獲取單位陣,因此能夠化成后邊的式子將后邊的式子與A*P那個m*n的矩陣變換為m*r的矩陣的式子比較看看,在這里,其實V就是P,也就是一個變化的向量。這里是將一個m*n的矩陣壓縮到一個m*r的矩陣,也就是對列進行壓縮,若是我們想對前進行壓縮(在PCA的見解下,對前進行壓縮能夠理解為,將一些相似的sample合并在一起,或許將一些沒有太大價值的sample去掉)怎么辦呢?同樣我們寫出一個通用的行壓縮例子:這樣就從一個m解的式子兩邊乘以
行的矩陣壓縮到一個U的轉(zhuǎn)置U'
r行的矩陣了,對
SVD
來說也是同樣的,我們對
SVD
分這樣我們就獲取了對前進行壓縮的式子。能夠看出,其實PCA幾乎能夠說是對裝,若是我們實現(xiàn)了SVD,那也就實現(xiàn)了PCA了,而且更好的地方是,有了以獲取兩個方向的PCA,若是我們對A’A進行特色值的分解,只能獲取一個方向的
SVD的一個包SVD,我們即可PCA。四、奇異值與潛藏語義索引
LSI
:潛藏語義索引(能夠直接用的,但是
LatentSemanticIndexingLSI也是一個嚴重依賴于
)與PCA不太同樣,最少不是實現(xiàn)了SVDSVD的算法,從前吳軍老師在矩陣計算與文本處
就理中的分類問題中談到:“三個矩陣有特別清楚的物理含義。第一個矩陣X中的每一行表表示思相關(guān)的一類詞,其中的每個非零元素表示這類詞中每個詞的重要性(或許說相關(guān)性),數(shù)值越大越相關(guān)。最后一個矩陣Y中的每一列表示同一主題一類文章,其中每個元素表示這類文章中每篇文章的相關(guān)性。中間的矩陣則表示類詞和文章雷之間的相關(guān)性。因此,我們只要對關(guān)系矩陣A進行一次奇異值分解,w我們就可以同時完成了近義詞分類和文章的分類。(同時獲取每類文章和每類詞的相關(guān)性)?!鄙厦孢@段話可能不太簡單理解,但是這就是LSI的精髓內(nèi)容,我下面舉一個例子來說明一下,下面的例子來自LSAtutorial,詳細的網(wǎng)址我將在最后的引用中給出:這就是一個矩陣,但是不太同樣的是,這里的一行表示一個詞在哪些title中出現(xiàn)了(一行就是從前說的一維feature),一列表示一個title中有哪些詞,(這個矩陣實際上是我們從前說的那種一行是一個sample的形式的一種轉(zhuǎn)置,這個會使得我們的左右奇異向量的意義產(chǎn)生變化,但是不會影響我們計算的過程)。比方說T1這個title中就有g(shù)uide、investing、marketstock四個詞,各出現(xiàn)了一次,我們將這個矩陣進行SVD,獲取下面的矩陣:
、左奇異向量表示詞的一些特色,右奇異向量表示文檔的一些特色,中間的奇異值矩陣表示左奇異向量的一行與右奇異向量的一列的重要程序,數(shù)字越大越重要。連續(xù)看這個矩陣還可以夠發(fā)現(xiàn)一些有意思的東西,第一,左奇異向量的第一列表示每一個詞的出現(xiàn)頻頻程度,誠然不是線性的,但是能夠以為是一個大概的描述,比方book是
0.15
對應(yīng)文檔中出現(xiàn)的現(xiàn)了3次;
2次,investing
是
0.74
對應(yīng)了文檔中出現(xiàn)了
9次,rich
是
0.36
對應(yīng)文檔中出0.49
其次,右奇異向量中一的第一行表示每一篇文檔中的出現(xiàn)詞的個數(shù)的近似,比方說,,出現(xiàn)了5個詞,T2是0.22,出現(xiàn)了2個詞。
T6
是此后我們反過頭來看,我們能夠?qū)⒆笃娈愊蛄亢陀移娈愊蛄慷既『?/p>
2維(從前是
3維的矩陣),投影到一個平面上,能夠獲取:在圖上,每一個紅色的點,都表示一個詞,每一個藍色的點,都表示一篇文檔,這樣我們能夠?qū)@些詞和文檔進行聚類,比方說stock和market能夠放在一類,由于他們老是出現(xiàn)在一起,real和estate能夠放在一類,dads,guide這類詞就看起來有點孤立了,我們就不對他們進行合并了。按這樣聚類出現(xiàn)的收效,能夠提取文檔會集中的近義詞,這樣當用戶檢索文檔的時候,是用語義級別(近義詞會集)去檢索了,而不是從前的詞的級別。這樣一減少我們的檢索、儲藏量,由于這樣壓縮的文檔會集和PCA是異曲同工的,二能夠提升我們的用戶體驗,用戶輸入一個詞,我們能夠在這個詞的近義詞的會集中去找,這是傳統(tǒng)的索引沒法做到的。不知道按這樣描述,再看看吳軍老師的文章,可否是對
SVD
更清楚了?
:-D參照資料:1)ATutorialonPrincipalComponentAnalysis,JonathonShlens這是我關(guān)于用SVD去做PCA的主要參照資料2)/samplings/feature-column/fcarc-svd關(guān)于svd的一篇見解好文,我開頭的幾個圖就是從這兒截取的)/index.php/news-and-articles/articles/30-singular-value-decomposition-tutorial.html前言:決策樹這類算法有著很多優(yōu)秀的特色,比方說訓練時間復雜度較低,展望的過程比較快速,模型簡單顯現(xiàn)(簡單將獲取的決策樹做成圖片顯現(xiàn)出來)等。但是同時,單決策樹又有一些不好的地方,比方說簡單over-fitting,誠然有一些方法,如剪枝能夠減少這類情況,但是還是不夠的。另一篇關(guān)于svd的入門好文)/index.php/news-and-articles/articles/33-latent-semantic-analysis-tutorial.htmlsvd與LSI的好文,我后邊LSI中例子就是來自此)/information-retrieval-tutorial/svd-lsi-tutorial-1-understanding.html另一篇svd與LSI的文章,也還是不錯,深一點,也比較長6)SingularValueDecompositionandPrincipalComponentAnalysis,RasmusElsborgMadsen,LarsKaiHansenandOleWinther,2004跟1)里面的文章比較近似機器學習中的算法(1)-決策樹模型組合之隨機森林與GBDT版權(quán)聲明:本文由LeftNotEasy宣布于,本文能夠被全部的轉(zhuǎn)載或許部分使用,但請注明出處,若是有問題,請聯(lián)系wheeleast@模型組合(比方說有Boosting,Bagging等)與決策樹相關(guān)的算法比很多,這些算法最后的結(jié)果是生成N(可能會有幾百棵以上)棵樹,這樣能夠大大的減少單決策樹帶來的弊端,有點近似于三個臭皮匠等于一個諸葛亮的做法,誠然這幾百棵決策樹中的每一棵都很簡單(相關(guān)于C4.5這類單決策樹來說),但是他們組合起來確是很富強。在近來幾年的paper上,如iccv這類重量級的會議,iccv09年的里面有很多的文章都是與Boosting與隨機森林相關(guān)的。模型組合+決策樹相關(guān)的算法有兩種比較基本的形式
-隨機森林與GBDT((GradientBoostDecisionTree)
,其他的比較新的模型組合+決策樹的算法都是來自這兩種算法的延伸。本文主要重視于
GBDT
,關(guān)于隨機森林可是大概提提,由于它相比較較簡單。在看本文從前,建議先看看機器學習與數(shù)學(3)與其中引用的論文,本文中的GBDT主要基于此,而隨機森林相比較較獨立?;A(chǔ)內(nèi)容:這里可是準備簡單談?wù)劵A(chǔ)的內(nèi)容,主要參照一下別人的文章,對于隨機森林與
GBDT
,有兩個地方比較重要,第一是
informationgain
,其次是決策樹。這里特別介紹
AndrewMoore
大牛的
DecisionTreesTutorial
,與
InformationGainTutorial
。Moore
的
DataMiningTutorial系列特別贊,看懂了上面說的兩個內(nèi)容此后的文章才能連續(xù)讀下去。決策樹實際上是將空間用超平面進行劃分的一種方法,每次切割的時候,都將當前的空間一分為二,比方說下面的決策樹:就是將空間劃分成下面的樣子:這樣使得每一個葉子節(jié)點都是在空間中的一個不訂交的地域,在進行決策的時候,會依照輸入樣本每一維feature的值,一步一步往下,最后使得樣本落入N個地域中的一個(假設(shè)有N個葉子節(jié)點)隨機森林(RandomForest):隨機森林是一個近來比較火的算法,它有很多的優(yōu)點:在數(shù)據(jù)集上表現(xiàn)優(yōu)秀在當前的很多數(shù)據(jù)集上,相對其他算法有著很大的優(yōu)勢它能夠辦理很高維度(feature很多)的數(shù)據(jù),而且不用做特色選擇在訓練完后,它能夠給出哪些feature比較重要在創(chuàng)辦隨機森林的時候,對
generlizationerror
使用的是無偏估計訓練速度快在訓練過程中,能夠檢測到
feature
間的互相影響簡單做成并行化方法實現(xiàn)比較簡單隨機森林顧名思義,是用隨機的方式成立一個森林,森林里面有很多的決策樹組成,隨機森林的每一棵決策樹之間是沒相關(guān)系的。在獲取森林此后,當有一個新的輸入樣本進入的時候,就讓森林中的每一棵決策樹分別進行一下判斷,看看這個樣本應(yīng)該屬于哪一類(關(guān)于分類算法),此后看看哪一類被選擇最多,就展望這個樣本為那一類。在成立每一棵決策樹的過程中,有兩點需要注意-采樣與完滿分裂。第一是兩個隨機采樣的過程,randomforest對輸入的數(shù)據(jù)要進行行、列的采樣。關(guān)于行采樣,采用有放回的方式,也就是在采樣獲取的樣本會集中,可能有重復的樣本。假設(shè)輸入樣本為N個,那么采樣的樣本也為N個。這樣使得在訓練的時候,每一棵樹的輸入樣本都不是全部的樣本,使得相對不簡單出現(xiàn)over-fitting。此后進行列采樣,從M個feature中,選擇m個(m<<M)。此后就是對采樣此后的數(shù)據(jù)使用完滿分裂的方式成立出決策樹,這樣決策樹的某一個葉子節(jié)點要么是沒法連續(xù)分裂的,要么里面的全部樣本的都是指向的同一個分類。一般很多的決策樹算法都一個重要的步驟-剪枝,但是這里不這樣干,由于從前的兩個隨機采樣的過程保證了隨機性,因此就算不剪枝,也不會出現(xiàn)over-fitting。按這類算法獲取的隨機森林中的每一棵都是很弱的,但是大家組合起來就很厲害了。我感覺能夠這樣比喻隨機森林算法:每一棵決策樹就是一個精曉于某一個窄領(lǐng)域的專家(由于我們從M個feature中選擇m讓每一棵決策樹進行學習),這樣在隨機森林中就有了很多個精曉不同領(lǐng)域的專家,對一個新的問題(新的輸入數(shù)據(jù)),能夠用不一樣的角度去對待它,最后由各個專家,投票獲取結(jié)果。隨機森林的過程請參照
Mahout
的
randomforest
。這個頁面上寫的比較清楚了,其中可能不理解的就是
InformationGain
,能夠看看從前介紹過的
Moore
的頁面。GradientBoostDecisionTree:GBDT是一個應(yīng)用很廣泛的算法,能夠用來做分類、回歸。在很多的數(shù)據(jù)上都有不錯的收效。GBDT這個算法還有一些其他的名字,比方說
MART(MultipleAdditiveRegressionTree)
,GBRT(GradientBoostRegressionTree)
,TreeNet
等,其實它們都是一個東西(參考自
wikipedia
–GradientBoosting
),發(fā)明者是
FriedmanGradientBoost實際上是一個框架,里面能夠套入很多不一樣的算法,能夠參照一下機器學習與數(shù)學(3)中的講解。Boost是"提升"的意思,一般Boosting算法都是一個迭代的過程,每一次新的訓練都是為了改進前一次的結(jié)果。原始的Boost算法是在算法開始的時候,為每一個樣本賦上一個權(quán)重值,初始的時候,大家都是同樣重要的。在每一步訓練中獲取的模型,會使得數(shù)據(jù)點的估計有對有錯,我們就在每一步結(jié)束后,增加分錯的點的權(quán)重,減少分對的點的權(quán)重,這樣使得某些點若是老是被分錯,那么就會被“嚴重關(guān)注”,也就被賦上一個很高的權(quán)重。此后等進行了N次迭代(由用戶指定),將會獲取N個簡單的分類器(basiclearner),此后我們將它們組合起來(比方說能夠?qū)λ鼈冞M行加權(quán)、或許讓它們進行投票等),獲取一個最后的模型。而GradientBoost與傳統(tǒng)的Boost的差別是,每一次的計算是為了減少前一次的殘差(residual),而為了除掉殘差,我們能夠在殘差減少的梯度(Gradient)方向上成立一個新的模型。因此說,在GradientBoost中,每個新的模型的簡歷是為了使得從前模型的殘差往梯度方向減少,與傳統(tǒng)Boost對正確、錯誤的樣本進行加權(quán)有著很大的差別。在分類問題中,有一個很重要的內(nèi)容叫做Multi-ClassLogistic,也就是多分類的Logistic問題,它適用于那些種類數(shù)>2的問題,而且在分類結(jié)果中,樣本x不是必然只屬于某一個類能夠獲取樣本x分別屬于多個類的概率(也能夠說樣本x的估計y吻合某一個幾何分布),這實際上是屬于GeneralizedLinearModel中談?wù)摰膬?nèi)容,這里就先不談了,此后有機遇再用一個特地的章節(jié)去做吧。這里就用一個結(jié)論:若是一個分類問題吻合幾何分布,那么就可以用Logistic變換來進行此后的運算。假設(shè)關(guān)于一個樣本x,它可能屬于K個分類,其估計值分別為F1(x)FK(x),Logistic變換以下,logistic變換是一個圓滑且將數(shù)據(jù)規(guī)范化(使得向量的長度為1)的過程,結(jié)果為屬于種類k的概率pk(x),關(guān)于Logistic變換后的結(jié)果,損失函數(shù)為:其中,yk為輸入的樣本數(shù)據(jù)的估計值,當一個樣本x屬于種類k時,yk=1,否則yk=0。將Logistic變換的式子帶入損失函數(shù),而且對其求導,能夠獲取損失函數(shù)的梯度:上面說的比較抽象,下面舉個例子:假設(shè)輸入數(shù)據(jù)x可能屬于5個分類(分別為1,2,3,4,5),訓練數(shù)據(jù)中,x屬于種類3,則y=(0,0,1,0,0),假設(shè)模型估計獲取的F(x)=(0,0.3,0.6,0,0),則經(jīng)過Logistic變換后的數(shù)據(jù)p(x)=(0.16,0.21,0.29,0.16,0.16),y-p獲取梯度g:(-0.16,-0.21,0.71,-0.16,-0.16)。觀察這里能夠獲取一個比較有意思的結(jié)論:假設(shè)gk為樣本當某一維(某一個分類)上的梯度:gk>0時,越大表示其在這一維上的概率p(x)越應(yīng)該提升,比方說上面的第三維的概率為0.29,就應(yīng)該提升,屬于應(yīng)該往“正確的方向”前進越小表示這個估計越“正確”gk<0時,越小,負得越多表示在這一維上的概率應(yīng)該降低,比方說第二維0.21就應(yīng)該獲取降低。屬于應(yīng)該朝著“錯誤的反方向”前進越大,負得越少表示這個估計越“不錯誤”總的來說,關(guān)于一個樣本,最理想的梯度是越湊近0的梯度。因此,我們要能夠讓函數(shù)的估計值能夠使得梯度往反方向搬動(>0的維度上,往負方向搬動,<0的維度上,往正方向搬動)最后使得梯度盡量=0),而且該算法在會嚴重關(guān)注那些梯度比較大的樣本,跟Boost的意思類似。獲取梯度此后,就是怎樣讓梯度減少了。這里是用的一個迭代+決策樹的方法,當初始化的時候,任意給出一個估計函數(shù)F(x)(能夠讓F(x)是一個隨機的值,也能夠讓F(x)=0),此后此后每迭代一步就根據(jù)當前每一個樣本的梯度的情況,成立一棵決策樹。就讓函數(shù)往梯度的反方向前進,最后使得迭代N步后,梯度越小。這里成立的決策樹和一般的決策樹不太同樣,第一,這個決策樹是一個葉子節(jié)點數(shù)J固定的,當生成了J個節(jié)點后,就不再生成新的節(jié)點了。算法的流程以下:(參照自treeBoost論文)表示給定一個初始值表示成立M棵決策樹(迭代M次)表示對函數(shù)估計值F(x)進行Logistic變換3.表示關(guān)于
K個分類進行下面的操作(其實這個
for
循環(huán)也能夠理解為向量的操作,每一個樣本點
xi都對應(yīng)了
K種可能的分類
yi
,所以yi,F(xi),p(xi)都是一個K維的向量,這樣或許簡單理解一點)表示求得殘差減少的梯度方向表示依照每一個樣本點x,與其殘差減少的梯度方向,獲取一棵由J個葉子節(jié)點組成的決策樹為當決策樹成立完成后,經(jīng)過這個公式,能夠獲取每一個葉子節(jié)點的增益(這個增益在展望的時候用的)每個增益的組成其實也是一個K維的向量,表示若是在決策樹預測的過程中,若是某一個樣本點掉入了這個葉子節(jié)點,則其對應(yīng)的K個分類的值是多少。比方說,GBDT獲取了三棵決策樹,一個樣本點在預測的時候,也會掉入3個葉子節(jié)點上,其增益分別為(假設(shè)為3分類的問題):(0.5,0.8,0.1),(0.2,0.6,0.3),(0.4,0.3,0.3),那么這樣最后獲取的分類為第二個,由于選擇分類2的決策樹是最多的。的意思為,將當前獲取的決策樹與從前的那些決策樹合并起來,作為新的一個模型(跟6中所舉的例子差不多)GBDT的算法大概就講到這里了,希望能夠填充一下上一篇文章中沒有討情楚的部分:)實現(xiàn):看理解了算法,就需要去實現(xiàn)一下,或許看看別人實現(xiàn)的代碼,這里介紹一下wikipedia中的gradientboosting頁面,下面就有一些開源軟件中的一些實現(xiàn),比方說下面這個:/參照資料:除了文章中的引用的內(nèi)容(已經(jīng)給出了鏈接)外,主要還是參照Friedman大牛的文章:Greedyfunctionapproximation:AGradientBoostingMachine機器學習中的算法
(2)-
支持向量機
(SVM)
基礎(chǔ)版權(quán)聲明:本文由LeftNotEasy宣布于本文能夠被全部的轉(zhuǎn)載或許部分使用,但請注明出處,若是有問題,請聯(lián)系wheeleast@
,前言:又有很長的一段時間沒有更新博客了,距離前一次更新已經(jīng)有兩個月的時間了。其中一個很大的原因是,不知道寫什么好-_-,近來一段時間看了看關(guān)于SVM(SupportVectorMachine)的文章,感覺SVM是一個特別幽默,而且自成一派的方向,因此今天準備寫一篇關(guān)于關(guān)于SVM的文章。關(guān)于SVM的論文、書籍都特其他多,引用強哥的話“SVM是讓應(yīng)用數(shù)學家真實獲取應(yīng)用的一種算法”。SVM關(guān)于大多數(shù)的一般人來說,要完滿理解其中的數(shù)學是特別困難的,因此要讓這些一般人理解,得要把里面的數(shù)學知識用簡單的語言去講解才行。而且想理解了這些數(shù)學,對學習其他的內(nèi)容也是大有裨益的。我就是屬于絕大多數(shù)的一般人,為了看理解SVM,看了很多的資料,這里把我的心得分享分享。其實現(xiàn)在能夠找到的,關(guān)于SVM的中文資料已經(jīng)很多了,但是個人感覺,每一個人的理解都不太同樣,因此還是決定寫一寫,一些同樣的地方必然是不能夠防備的,但是還是希望能夠?qū)懗鲆稽c與別人不同樣的地方吧。其他本文準備不談太多的數(shù)學(由于很多文章都談過了),盡量簡單地給出結(jié)論,就像題目同樣-機器學習中的算法(從前叫做機器學習中的數(shù)學),因此本系列的內(nèi)容將更重視應(yīng)用一些。若是想看更詳細的數(shù)學講解,能夠看看參照文件中的資料。一、線性分類器:第一給出一個特別特別簡單的分類問題(線性可分),我們要用一條直線,將以下圖中黑色的點和白色的點分開,很顯然,圖上的這條直線就是我們要求的直線之一(能夠有無數(shù)條這樣的直線)色的點=+1,直線成這類形式也是等價的
若是說,我們令黑色的點=-1,白f(x)=w.x+b,這兒的x、w是向量,其實寫f(x)=w1x1+w2x2+wnxn+b,當向量
x
的維度
=2
的時候,
f(x)
表示二維空間中的一條直線,
當
x
的維度=3
的時候,
f(x)
表示
3維空間中的一個平面,當
x的維度
=n>3的時候,表示n維空間中的n-1維超平面。這些都是比較基礎(chǔ)的內(nèi)容,若是不太清楚,可能需要復習一下微積分、線性代數(shù)的內(nèi)容。方才說了,我們令黑色白色兩類的點分別為+1,-1,因此當有一個新的點x需要展望屬于哪個分類的時候,我們用sgn(f(x)),就可以預測了,sgn表示符號函數(shù),當f(x)>0的時候,sgn(f(x))=+1,當f(x)<0的時候sgn(f(x))=–1。但是,我們怎樣才能獲取一個最優(yōu)的劃分直線f(x)呢?以下圖的直線表示幾條可能的f(x)一個很直觀的感覺是,讓這條直線到給定樣本中近來的點最遠,這句話讀起來比較拗口,下面給出幾個圖,來說明一下:第一種分法:第二種分法:這兩種分法哪一種更好呢?從直觀上來說,就是切割的縫隙越大越好,把兩個類其他點分得越開越好。就像我們平時判斷一個人是男還是女,就是很難出現(xiàn)分錯的情況,這就是男、女兩個種類之間的縫隙特其他大以致的,讓我們能夠改正確的進行分類。在SVM中,稱為MaximumMarginal,是SVM的一個理論基礎(chǔ)之一。選擇使得縫隙最大的函數(shù)作為切割平面是由很多道理的,比方說從概率的角度上來說,就是使得置信度最小的點置信度最大(聽起來很拗口),從實踐的角度來說,這樣的收效特別好,等等。這里就不張開講,作為一個結(jié)論就ok了,:)上圖被紅色和藍色的線圈出來的點就是所謂的支持向量(supportvector)。上圖就是一個對從前說的種類中的縫隙的一個描述。
ClassifierBoundary
就是
f(x)
,紅色和藍色的線(plusplane
與
minusplane
)就是
supportvector所在的面,紅色、藍色線之間的縫隙就是我們要最大化的分類間的縫隙。這里直接給出M的式子:(從高中的解析幾何就可以很簡單的獲取了,也能夠參照后邊Moore的ppt)其他支持向量位于wx+b=1與wx+b=-1的直線上,我們在前面乘上一個該點所屬的種類y(還記得嗎?y不是+1就是-1),就能夠獲取支持向量的表達式為:y(wx+b)=1,這樣就可以更簡單的將支持向量表示出來了。當支持向量確定下來的時候,切割函數(shù)就確定下來了,兩個問題是等價的。獲取支持向量,還有一個作用是,讓支持向量后方那些點就不用參加計算了。這點在后邊將會更詳細的講講。在這個小節(jié)的最后,給出我們要優(yōu)化求解的表達式:||w||的意思是w的二范數(shù),跟上面的M表達式的分母是一個
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 升旗儀式后的演講5篇
- 有關(guān)營銷實習報告5篇
- 銀行個人服務(wù)心得體會(8篇)
- 散裝熟食購售協(xié)議書范本
- 商務(wù)合同續(xù)簽公函范本
- 環(huán)衛(wèi)部環(huán)衛(wèi)工人作業(yè)規(guī)范培訓
- 音樂老師實習總結(jié)5篇
- 感恩老師演講稿模板合集(31篇)
- 墊資施工合同環(huán)保治理
- 喀什招投標項目融資方案
- 屋面融雪系統(tǒng)施工方案
- 二年級家長會語文老師課件
- 結(jié)構(gòu)加固改造之整體結(jié)構(gòu)加固教學課件
- 教堂安全風險分級管控體系方案全套資料(2019-2020新標準完整版)
- 歷史(心得)之在歷史教學中培養(yǎng)學生生態(tài)環(huán)境意識
- 有機磷農(nóng)藥中毒課件-整理
- 輪對故障發(fā)生的原因和危害分析及其防范措施
- 汽修廠搞個優(yōu)惠活動
- 底棲生物調(diào)查方法與分類鑒定
- GNSS定位測量-GNSS定位原理(工程測量)
- 雨污分流管網(wǎng)施工組織設(shè)計方案
評論
0/150
提交評論