任何對機器學習有興趣,想了解基本原理,前沿課題和應用實踐的大學計算機系或相關科系的高年級本科生,研究生,以及青年教師,和在高科技企業中從事相關工作的技術人員。
余凱博士與張潼教授
Day 1
lecture 1: Introduction to ML and review of linear algebra, probability, statistics (kai)
lecture 2: linear model (tong)
lecture 3: overfitting and regularization (tong)
lecture 4: linear classification (kai)
Day 3
lecture 9: overview of learning theory (tong)
lecture 10: optimization in machine learning (tong)
lecture 11: online learning (tong)
lecture 12: sparsity models (tong)
Day 5
lecture 17: matrix factorization and recommendations (kai)
lecture 18: learning on images (kai)
lecture 19: learning on the web (tong)
lecture 20: summary and road ahead (tong)
第1課:緒論課
第2課:線性模型
1. 怎樣從訓練數據估計線性模型的參數?即截距和斜率。
3. 模型中2個參數的重要性怎么估計?
更廣義的線性模型并不一定是一個線性方程。只是其參數可能是線性的。線性模型能夠模擬非線性函數。
特征向量元素屬性的重要性評價常見的有以下2種方法:第一是抽掉一個特征想,然后計算其殘差變化值與全部特征都用上的比值,所得到的分數為F-score,F-score越大,說明該屬性越重要。第2種方法是采用t分布來假設檢驗得到Z-score,即假設對應特征屬性不存在(即其值為0)時,出現樣本數據的概率為Z-score,如果Z-score越大,說明該屬性越不重要。
Regularization中文意思是規則,指的是在overfitting和underfitting之間做平衡,通過限制參數空間來控制模型的復雜度。測試誤差和訓練誤差之間差一個規則項,其公式為:
模型越復雜說明模型越不穩定,學習到的目標函數越不光滑,也就越容易over-fitting。所以需要控制模型的復雜度,一般來說有2種方法,即減少模型中參數的個數或者減小參數的空間大小,目前用得最多的就是減小參數的空間大小,是通過規則項達到的。規則項的引入同時也需要引入一個調節的參數,該參數的大小一般通過交叉驗證獲得。如果規則項是2次的,則也稱為ridge回歸,規則項是一次的則稱為lasso回歸。Ridge回歸的優點是解比較穩定,且允許參數的個數大于樣本的個數。Lasson回歸的優點是有稀疏解,不過解不一定穩定。
第4課:線性分類器
據余老師講,從06年開始,人工神經網絡又開始熱起來了,主要體現在deep learning領域。
當數據為大樣本數據時,用線性SVM模型比較好。
RKHS表示定理:即模型的參數是在訓練樣本的線性子空間中,是訓練樣本的線性組合。這不僅適用于svm,對其他的模型,比如感知機,RBF網絡,LVQ,boosting,logistic回歸等模型都成立。
邏輯回歸和svm的區別只是loss函數的不同,logstic回歸的loss函數為logstic函數,核svm的loss函數為hinge loss。兩者有著相同的性能,邏輯回歸是帶概率的輸出,更容易用于多分類問題。不過目前,這2種方法都是舊方法了。
因此我們在設計一個模型時,需要考慮采用什么樣的loss函數?采用什么樣的基函數h(x)?h(x)是有限維的還是無限維的?是否需要學習h(x)?用什么樣的方法來優化目標函數,QP,LBFGS,還是梯度下降等?
參數模型和非參數模型的區別不是看模型中是否有參數,所有的模型都是有參數的,非參數模型是指隨著樣本數的增加,其模型中的參數的個數也跟著增加。反之就為參數模型了。常見的非參數模型有高斯過程,核svm,dirichlet過程等。
模型選擇在實際應用過程中非常有用,一般把與模型有關的數據分為3部分,訓練數據,驗證數據和測試數據,如下圖所示:
其中訓練數據和驗證數據都是已有的樣本數據,即已觀察到了的數據。測試數據是未來實際應用中產生的數據,是事先不知道的。
模型選擇問題就是說怎樣驗證一個模型是否好。模型的好壞最終是要看它在測試數據集上的表現。因此在未觀測到測試數據時,我們只能用驗證數據集來代替它進行測試。一般采用的方法為交叉驗證,比如說LOOCV,即留一法交叉驗證,類似的還有k折交叉驗證。交叉驗證的主要目的是防止訓練出來的模型過擬合。但是在當今由于數據都是海量的,交叉驗證方法使用越來越少了,因為如果訓練數據集非常大的話,一般不會產生過擬合現象。