Lecture 2: Learning to Answer Yes/no
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