1. 程式人生 > >Lecture 2: Learning to Answer Yes/no

Lecture 2: Learning to Answer Yes/no

algorithm 新的 叠代 圖片 檢查 並且 AD 決定 嘗試

Roadmap

技術分享圖片

1.感知器假設集

假設空間 \(H\) 到底是什麽樣子?
技術分享圖片

\(H\)中的一個\(h\)\(h\)\(\mathbf{W}\) 和 閾值決定(閾值可以作為\(w_0\)

舉個具體的栗子:
技術分享圖片

2.感知器學習算法(Perceptron Learning Algorithm, PLA)

如何選擇 \(g\) ?
\(H\) = all possible perceptrons, \(g\) = ? \(\approx f\) => 直接找到與 \(f\) 相近的 \(g\) 很困難

idea:隨機從一個 \(g_0\) 出發,每一輪(\(t\))找到一個犯錯的點,逐步修正\(g_t\)


具體算法:(用權重向量 \(\mathbf{W_0}\) 表示 \(g_0\)
技術分享圖片

修正錯誤 \(\mathbf{W_{t+1}} = \mathbf{W_t} + y_nx_n\) ( (\(x_n, y_n\)) 是犯錯誤的點,\(\mathbf{W}\) 是分類線的法向量)
技術分享圖片

3.PLA的保證(可收斂)

假設數據線性可分,PLA何時停止更新?
\(\mathbf{W_f}\) 是理想狀態下的模型
\(\mathbf{W_f W_t}\) 越大,兩個向量越接近
技術分享圖片

如果每次只隨機尋找犯錯誤的點,\(\mathbf{W_t}\)的更新會很慢,要在犯錯的點中找到 \(||x_n||^2\)最大的點
技術分享圖片

PLA更新多少次會停下?T的上界是多少?
T <= 1/ \({constant^2}\) \({ constant^2 }\) = \({R^2}\) / \({\rho^2}\)
技術分享圖片
技術分享圖片

4.線性不可分的數據

如果數據線性不可分呢?
上述的保證假設數據是線性可分的,但是不一定,另外, \({\rho}\)是由\(\mathbf{W_f}\) 得出,\(\mathbf{W_f}\) 未知。

數據中可能存在少量雜訊(noise),我們嘗試找一條犯錯最小的線呢?
技術分享圖片

找到最完美的線,NP-hard問題。嘗試找到一條差不多的線
Pocket 算法
每次找到一條新的線和當前pocket中的線進行比較,選擇犯錯更少的那條放入pokect中。
叠代足夠多次後,停下。
技術分享圖片


PS:pocket比PLA要慢,pokect需要存儲每次選擇的線,並且每次需要檢查出哪一條線更好。

Summary

技術分享圖片

Lecture 2: Learning to Answer Yes/no