# 機器學習基石 林軒田 ## 流程 ![](https://i.imgur.com/AxPMWL6.png) ## PLA 1. 每次查看否有錯誤來進行更新 ![](https://i.imgur.com/JG9HUsu.png) 3. set須為線性可分,PLA才能停下。 ## vc-dimension 可以想成有多少自由度,通常實務上所需的資料量為10*vc-dimension,而理論上需要10000*vc-dimesion ## error measure 錯誤衡量上會根據問題的不同有不一樣的衡量方式像再惡意程式偵測中,如果是惡意程式卻偵測成正常程式所付出的代價要比正常的程式被偵測成惡意的程式還要大。 除此之外當data的資料非常不平衡時也能利用調整權重的方式來讓機器能學出較好的hypothesis function。 對於linear regression,可以直接利用***psedo-inverse***來直接算出gradient為0的地方,即可得到最好的weight。 ## logistics regression problem $\theta(s)=\frac{e^s}{1+e^s}$ ## cross entropy error err(w,x,y)=ln(1+exp(-ywx)):這是描述答案與真實資料一樣的機率有多相近,其原本是連乘,透過log轉成連加的形式。 ## linear regression model 我們可以利用logistic或linear regression的方式來逼近classification的問題。 ## stochastic gradient 隨機的計算gradient,讓每次update的time complexity能從O(N)下降到O(1),從期望來看,平均應該還是走向正確的方向,和PLA每次都只看一個點更新有點類似。 ### 實際利用時的概念 * 要選擇停止的條件->通常就是讓時間跑久一點。 * 再來就是要調整好learning rate,在經驗選擇0.1是不錯的 ## One-Versus-ALL(OVA) Decomposition 是常用的multiclass的模型,meta-alogrithm ## overfitting four reasons of serious overfitting: * $data size N\downarrow$ * $stochastic$ $noise\uparrow$(隨機雜訊) * $deterministicd$ $noise\uparrow$(target function too complexity) * $excessive$ $power\uparrow$ avoid overfitting: * **start from simple model** * **data cleaning/pruning** 可能資料標示錯誤,可以重新標示或將其刪除 * **data hinting** 將原本的資料可能透過旋轉或偏移來製造更多資料 * **regularization** 將原本較高維的weight下降來減少overfitting,可以利用lagrange multiplier來簡化問題,像weight-decay,除此之外more noise 也需要more regularization * **validation** 流程:先用$D_{train}$找出各種模型的最佳解,在用$D_{validation}$來找出裡面各種模型中最好的一個,最後在將$D_{train}\cup D_{validation}$來將此模型train得更好,而常用的的validation size的大小為$\frac{N}{5}$ 另一種利用leave-one-out的方式是V-fold Corss Validation,實務上常把資料切成10分,9份訓練1分做validation ## leraning principle * **simple is better** linear first,be careful about data over-modeled * **sampling bias** 在蒐集資料時要小心有偏差,訓練資料與test資料需要來自相同的distribution。we need match test scenario as much as possible * **data snooping** ![](https://i.imgur.com/LLUbhX4.png) # 機器學習技法 ## SVM 不單單只是將點分開,還要使離點最印的點越大越好,這樣更能忍受noise的影響,經過推倒後可得知目標為 $\min \limits_{b,w}\frac{1}{2}w^Tw$ $subject$ $to$ $y_n(w^Tx_n+b)\geq 1$$for$ $all$ $n$ 而此問題其實為解決二次的最佳化問題![](https://i.imgur.com/0f4peJw.png) ### 實做練習 https://github.com/Aesop-programmer/ML/blob/main/SVM_practice.ipynb