http://www.cnblogs.com/tornadomeet/archive/2012/11/12/2766458.html
過擬合和規則項
Regularization中文意思是規則,指的是在overfitting和underfitting之間做平衡,通過限制參數空間來控制模型的復雜度。測試誤差和訓練誤差之間差一個規則項,其公式為:
模型越復雜說明模型越不穩定,學習到的目標函數越不光滑,也就越容易over-fitting。所以需要控制模型的復雜度,一般來說有2種方法,即減少模型中參數的個數或者減小參數的空間大小,目前用得最多的就是減小參數的空間大小,是通過規則項達到的。規則項的引入同時也需要引入一個調節的參數,該參數的大小一般通過交叉驗證獲得。如果規則項是2次的,則也稱為ridge回歸,規則項是一次的則稱為lasso回歸。Ridge回歸的優點是解比較穩定,且允許參數的個數大於樣本的個數。Lasson回歸的優點是有稀疏解,不過解不一定穩定。
如果碰到參數個數大於樣本個數,這時候就不能夠用參數個數來做規則化了,而是采用縮小參數空間的方法,這樣的話既在統計學上對特征數量集大時有魯棒性,同時在數值計算上方程解也具備穩定性。
http://www.cnblogs.com/tornadomeet/archive/2012/11/06/2756361.html
隨機深林的優點:比較適合做多分類問題;訓練和預測速度快;對訓練數據的容錯能力,是一種有效地估計缺失數據的一種方法,當數據集中有大比例的數據缺失時仍然可以保持精度不變;能夠有效地處理大的數據集;可以處理沒有刪減的成千上萬的變量;能夠在分類的過程中可以生成一個泛化誤差的內部無偏估計;能夠檢測到特征之間的相互影響以及重要性程度;不過出現過度擬合;實現簡單容易並行化。
http://www.cnblogs.com/tornadomeet/archive/2013/03/21/2973231.html
PCA的具有2個功能,一是維數約簡(可以加快算法的訓練速度,減小內存消耗等),一是數據的可視化。
在使用PCA前需要對數據進行預處理,首先是均值化,即對每個特征維,都減掉該維的平均值,然后就是將不同維的數據范圍歸一化到同一范圍,方法一般都是除以最大值。但是比較奇怪的是,在對自然圖像進行均值處理時並不是不是減去該維的平均值,而是減去這張圖片本身的平均值。因為PCA的預處理是按照不同應用場合來定的。
PCA的計算過程主要是要求2個東西,一個是降維后的各個向量的方向,另一個是原先的樣本在新的方向上投影后的值。
有一個觀點需要注意,那就是PCA並不能阻止過擬合現象。表明上看PCA是降維了,因為在同樣多的訓練樣本數據下,其特征數變少了,應該是更不容易產生過擬合現象。但是在實際操作過程中,這個方法阻止過擬合現象效果很小,主要還是通過規則項來進行阻止過擬合的。
並不是所有ML算法場合都需要使用PCA來降維,因為只有當原始的訓練樣本不能滿足我們所需要的情況下才使用,比如說模型的訓練速度,內存大小,希望可視化等。如果不需要考慮那些情況,則也不一定需要使用PCA算法了。
Whitening的目的是去掉數據之間的相關聯度,是很多算法進行預處理的步驟。比如說當訓練圖片數據時,由於圖片中相鄰像素值有一定的關聯,所以很多信息是冗余的。這時候去相關的操作就可以采用白化操作。數據的whitening必須滿足兩個條件:一是不同特征間相關性最小,接近0;二是所有特征的方差相等(不一定為1)。常見的白化操作有PCA whitening和ZCA whitening。
http://www.cnblogs.com/tornadomeet/archive/2012/11/12/2766458.html
模型平均
Model selection 和 model combination的不同使用體現在,如果某個模型以絕對的優勢好於其他所有模型,那么這時候我們就采用model selection,因為不僅有好的性能,還可以獲得好的可解釋性。如果所有的模型在性能表現上都差不多,沒有所謂的好壞,且模型本身又有很大的不同,這時候就可以采用model combination來大大提高其性能了。通常來說,model combination比model selection要穩定些。
Bagging也是一種均一模型平均,它的所有模型的學習算法一樣,只是輸入樣本采用bootstrip獲得。因為是采用boostrip獲得的,所以其訓練樣本有些不一定用到了,而有些則重復用到了。這樣每個學習出來的model不是很穩定,因而這也擴大了model之間的差異性,提高了集群學習的性能。Bagging是減小學習的方差,而boosting是減小學習的偏差。
最后模型平均的一個比較出名的應用場合就是把決策樹改造成隨機森林的例子。因為單顆決策樹雖然有可解釋性,能夠很好的處理非均勻的特征以及是一種非線性的方法,但是它的最大缺點就是分類結果不准確,因此在樣本選擇和輸入特征選擇方面采用了隨機的方法得到不同的模型后,再做平均就成了隨機森林,理論和實驗表明隨機森林的效果要比決策樹好很多。
AdaBoosting是對分類錯誤的樣本加大其權重來達到resamble的效果。且采用貪婪算法進行loss的函數的優化。
機器學習中的優化問題
機器學習中大部分問題都可以歸結為參數優化問題,即找到最適合目標函數的參數,該參數一般滿足使目標函數最大或者最小。
常見的優化方法有梯度下降法,該方法是每次沿着梯度下降最快的那個方向尋找函數值,不斷迭代就可以尋找到近似的極值。該方法的學習速率(即每次沿梯度方向前進的距離)和收斂速率是最值得關注的。一般來講,如果函數是光滑且是嚴格為凸函數的,則其收斂速度最快,其實是光滑但不嚴格凸的,最慢的要數非光滑函數。因此當函數有一部分是光滑,而另一部分不光滑時,我們可以采用Proximal 梯度下降法,該方法是最近幾年熱門起來的,效果比梯度下降要好,更新的類似的算法還有Nestervo這個學者的Accelerated 梯度法(全是數學公式,完全看不懂)。為了求出局部極值點,一般可以采用近似泰勒展開中的H矩陣來求得,典型的算法有LBFGS。另外當需要優化的參數為一個向量時,不一定需要把這個向量的元素對等考慮,我們可以分開優化,即每次只優化參數向量中的一個,其它的保持不變,這樣循環直到收斂。最后老師講了凸函數的優化問題還可以采用Dual 梯度下降法。
Online learning
Online learning指的是每當來一個數據,就會學習一個最優的預測函數,其最優的准則是當前位置loss函數值最小,因此每一步的預測函數都有可能不同,這就是Online learning。其實很早前就有online learning的例子,比如說感知機學習規則。
在了解Online learning之前需要了解regret 分析這個概率,regret指的是,Online learning中每次學習的誤差減去使用用當前為止的最優函數而產生的誤差的平均值,當然我們希望regret越小越好。
Online learning的關鍵是需要更不斷新狀態。其實Online learning也是一個優化問題,我們可以把機器學習中的優化問題全部轉換成對應的Online learning。比如說凸優化,梯度下降法,proximal descent。其中將proximal descent轉換成online版本可以采用L1規則化,Dual averaging, 保持second order信息等。統計梯度下降可以用來優化大規模的數據,它的不同變種主要來源於不同的proximal 函數,不同的學習率,是否是dual averaging, 是否是averaging, 是否是acceleration等。
deep learning最近非常火熱,多用deep learning來做一些視覺問題,其效果能提高不少。Deep learning的意思是可以自動來學習一些特征,比如說在視覺的分類或者識別中,一般都是特征提取+分類器設計,並且提取到的特征的好壞直接影響了分類器的分類效果,但是在目前的計算機視覺領域,其特征的提取都是我們人工設計的,需要針對不同的應用場合來提取不同的特征,余老師開玩笑的說,計算機視覺最近10年的最大成就就是有了個SIFT特征,但是它是基於RGB圖像提出的,而今各種傳感器,比如Kinect等。我們又得去重新設計它的特征,難道我們還要等10年么?因此可以看出,一個通用的特征提取框架需要給出,這就是deep learning,也叫做feature learning,也就是說給了很多樣本,系統能夠自動去學習這些樣本的特征,而不是依靠人工來設計。聽起來是多么的誘人!這就更類似於AI了。Deep learning主要是確定一個算法的層次結構,這個層次結構非常重要,它的想法和人體大腦皮層的工作機制類似,因為人大腦在識別某些東西的時候也是一個層次結構的。課件中主要接受了multi-scale models和hierarchical model,structure spectrum等,但沒有具體展開,只是做了一個綜述性的介紹。
Transfer learning & Semi-supervised learning
一方面由於有些問題的訓練樣本數據非常少,且樣本的獲取代價非常高,或者是模型的訓練時間特別長,另一方面由於很多問題之間有相似性,所以TL(transfer learning)就產生了。TL主要是把多個相似的task放在一起來解決,它們共享同一個輸入空間和輸出空間,TL常見的例子有傳感器網絡預測,推薦系統,圖像分類等。常見的用來解決TL問題有下面幾個模型,HLM(層次線性模型),NN,回歸線性模型,這些模型本質上都是學校一個隱含的相同的特征空間。另外老師也講到了TL和GP(高斯過程)的對比,高斯過程是一個貝葉斯核機器的非線性算法,通過對先驗樣本的采用學習可以得到尖銳的后驗概率模型,它是一種非參數的模型。TL方法主要分為4大類:樣本之間的遷移,特征表達的遷移,模型的遷移和相關領域知識的遷移。其中特征表達的遷移和模型的遷移在數學本質上是類似的,也是學者們研究的重點。
SSL(Semi-supervised learning)是為了達到用少量標注了的樣本+大量沒有標注的樣本,來學習一個比單獨用少量標注樣本效果更好的模型。老師舉了一個混合高斯分布的例子來解釋SSL學習的效果,通過這個例子引出了SSL的一個通用模型。本課還簡單的介紹了co-training 方法,所謂co-training,就是把表組好的數據分成幾類,每一類都train一個model,然后把這些model作用到unlabel的樣本上,通過優化方法達到輸出一致的效果。最后介紹的Graph Laplacian以及它的harmonic 解就完全木有看懂。
Recommendation Systems
在對Recommendation Systems進行設計的一個主流方法之一是將Recommendation Systems問題看做是一個分類問題,即把用戶i對所有電影打分看做是要預測的標簽,而其他所有人對電影的打分看做是特征,主要采用的方法是朴素貝葉斯,KNN等(其他大部分的分類算法都可以派上用場)。Recommendation Systems問題的另一主流方法是把它看成矩陣分解(MF)問題,這在實際應用中是效果最好的。因為我們觀察到的數據是很稀疏的,很多位置都是missing的,且這些數據之間內部是存在一個簡單結構的,因此我們可以把需要填充的矩陣R分解成2個低秩矩陣的乘積,這可以采用SVD或者SVD+一些優化的方法來解決。
由此可以看出,Recommendation Systems是一個典型的ML問題。
(轉) http://www.cnblogs.com/tornadomeet/archive/2012/11/12/2766458.html