--- tags: 機器學習技法 --- Ch16 Finale === ## Content [TOC] ## [Slides & Videos](https://www.csie.ntu.edu.tw/~htlin/mooc/) ### Exploiting Numerous Features via Kernel ![](https://i.imgur.com/hGwDxzZ.png) - **kernel 的幾何意義就是做特徵轉換之後的內積**,簡化它的計算。 - ***作業裡面有 decision stump kernel @@*** - > Q: 該做作業啦 - Sum of Kernels - ***講解作業的時候提到的@@*** - 把兩個 kernel 加起來,也是 kernel @@,它的幾何意義是混和兩種特徵轉換@@ - Product of Kernels - 把兩個 kernel 乘起來,也是 kernel,幾何意義是把兩個 kernel 各自埋藏的特徵轉換 做組合之後,形成一個更複雜的特徵轉換@@ - > Q: 啊那跟 sum of kernels 差在哪? - Mercer Kernels - 它裡面的特徵轉換不見得能夠推導出來,但是是可以用的。 ### Exploiting Predictive Features via Aggregation ![](https://i.imgur.com/fJWmqD2.png) - hypothesis as feature transform - Decision Stump 我們可以把它看成最簡單的 perceptron(只有直線or橫線);也可以把它看成最簡單的 decision tree(高度只有1) - **decision tree 和 nearest neighbor 是 conditional aggregation** - 如果我們有無限多個小 $g$,可不可以把它組合起來 aggregation? - 利用 kernel trick,把無限多個 decision stump 放在 kernel 裡面,那透過 SVM 學出來的東西就像是無限多個 decision stump aggregation - > Q: 不懂@@ 回去複習 - 又或者 decision tree 在切割的時候是用很簡單的 decision stump,我們能不能改成用 SVM 切? - **融會貫通就可以生出各種不同的模型,來符合我們的需求。** ### Exploiting Hidden Features via Extraction ![](https://i.imgur.com/HXb51Pi.png) - 也不一定要把特徵轉換當成已經給定或者是藏在 kernel 裡面什麼的,**我們可以把特徵轉換直接用某些變數來決定,而這些變數是可以被 optimize 的。** - 以下都可以視為讓 ML 學 feature transform - NN - RBFNet - Matrix Factorization - 如果把 user factor 當成 feature transform 那 movie factor 就是 linear model - 反之亦然 - AdaBoost/GradientBoost - 例如 decision tree 的參數就是我們要切在哪裡 - **融會貫通之後,可以做一些不同組合,也可以在不同文獻中看到這些不同的變化。** - 用 gradient boosting 來找 neurons - Matrix Factorization 學出的 factor 不一定要套矩陣乘法來 predict 呀,我們可以改接一個 NN 來 predict ### Exploiting Low Dim. Features via Compression ![](https://i.imgur.com/cXoMTfg.png) - decision stump 或 decision tree 的 branching 其實就是在找 feature 中最好的單一維度 - **Matrix Factorization 反而是把低(1)維度的數字投影到較高維度的向量上。把抽象的 feature 變具體** - 這些模型其實可以幫助我們做 feature selection ### Fun Time: 融會貫通時間 ![](https://i.imgur.com/SOh1JN3.png) - PCA 就 linear transform - AdaBoost-Stump 可以看成一堆 $g_t$ 用來切 +1/-1 然後再做 linear aggregation - 因此類似於 - ![](https://i.imgur.com/Ciz0fQf.png) ## [Error Optimization Techniques](https://www.coursera.org/learn/machine-learning-techniques/lecture/8A0NF/error-optimization-techniques) ### Numerical Optimization via Gradient Descent ![](https://i.imgur.com/ySomTiY.png) - **可以用 functional gradient descent 來看 AdaBoost/GradientBoost** - **functional gradient descent 走的方向是一個 function 而不是 vector** - AdaBoost/GradientBoost 同時也是 steepest descent,不只走一小步,它們走很大步來讓 error 降到最低。 - 2nd order techniques 例如牛頓法 - GD under constraints 會得到不同模型 ### Indirect Optimization via Equivalent Solution ![](https://i.imgur.com/r1QsYPE.png) - Kernel Logistic Regression / Kernel Ridge Regression 等同於解 representer theorem - > Q: 有點忘了,回去複習 - 乾我發現我PCA沒看完 - **問題的轉化通常需要比較多的數學,因此要深入了解 ML model 可以多去看線性代數&最佳化的文獻裡的相關數學。** - **許多 boosting 的方法以及 kernel 的方法都會用這種技巧來轉化問題變得更好解** ### Complicated Optimization via Multiple Steps ![](https://i.imgur.com/iykgCk1.png) - Multi-Stage 很難的問題,一小塊一小塊解決 - probabilistic SVM 先解一個 SVM,再做微調 - > Q: 有點忘了,回去複習 - RBFNet 先找 centers,再把 hypotheses 合起來 - Alternating Optimization - steepest descent 也是交互優化,一個是方向,一個是多大步 - Divide and Conquer ### Fun Time: Optimization Techniques ![](https://i.imgur.com/eAizMhJ.png) ## [Overfitting Elimination Techniques](https://www.coursera.org/learn/machine-learning-techniques/lecture/faBgS/overfitting-elimination-techniques) ### Overfitting Elimination via Regularization ![](https://i.imgur.com/IErKPu5.png) - large margin - SVM - AdaBoost 也可以間接達成 large margin - voting/averaging - uniform blending - Bagging - Random Forest - denoising - > Q: data augmentation 應該算是 denoising? - pruning - early stopping - 可以用在任何 Gradient-Descent based 的方法 - constraining - autoencoder 的 encoder 和 decoder 的 weight 要一樣 - RBFNet 的 centers 數量 - Regularization 可以說是最重要的 technique ### Overfitting Elimination via Validation ![](https://i.imgur.com/53klW2T.png) - 如果說 regularization 是剎車,那 validation 就是儀錶板 - > Q: 為何說 support vector 的數量算是 validation? - OOB - blending 和 pruning 的時候也可以用到 validation 的方式。 - internal validation 應該是在內部做額外的 validation 吧 ## [Machine Learning in Practice](https://www.coursera.org/learn/machine-learning-techniques/lecture/xNIUp/machine-learning-in-practice) ### NTU KDDCup 2010 World Champion Model ![](https://i.imgur.com/NSP9yA9.png) ### NTU KDDCup 2011 Track 1 World Champion Model ![](https://i.imgur.com/wPXjqic.png) ### NTU KDDCup 2012 Track 2 World Champion Model ![](https://i.imgur.com/P1eIx9U.png) - **這麼常拿冠軍有個秘訣是:有系統地做好 linear blending without overfitting** ### NTU KDDCup 2013 Track 1 World Champion Model ![](https://i.imgur.com/3MtjmVB.png) - **另一個關鍵就是:想辦法利用 domain knowledge 了解目標以及問題。** ### ICDM 2006 Top 10 Data Mining Algorithms ![](https://i.imgur.com/dWK0KUm.png) - Data Mining 領域常用的演算法們 (2006) - EM 其實就是 alternating optimization 的一個特例 - PageRank 類似 matrix factorization,最後在解一個很大的 eigen value 的問題 - Naive Bayes 可以看成一個特殊的線性模型,它的 weights 是透過 data 的統計特性而不是透過最佳化決定的。 - > Q: 應該也是可以透過最佳化觀點來看吧 ### Machine Learning Jungle ![](https://i.imgur.com/Ijtaye2.png) - 再看一次這個 slide 發現這次對這些東西都很熟悉啦~ ### Summary ![](https://i.imgur.com/LIqvaKF.png) - 太神拉 田神~~ - > Q: 該找個時間把作業寫一寫啦~~