---
# System prepended metadata

title: Ch16 Finale
tags: [機器學習技法]

---

---
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: 該找個時間把作業寫一寫啦~~
