機器學習基石筆記1
機器學習基石筆記1
lecture 1: The Learning Problem
1. 機器學習是什麽
通過對數據的經驗計算(experience computed),提升性能度量
3個關鍵性質
a) 存在一種可以學習的潛在的模式(underlying pattern)
b) 沒有明確的可編程的定義
c) 存在和模式相關的數據
2. 機器學習的應用
- 教育
- 推薦系統
- etc.
3. 機器學習的元素
4. 機器學習和其他領域的關系
領域 | 描述 |
---|---|
機器學習 | 使用數據計算假設g,以此估計目標函數f |
數據挖掘 | 使用大數據,發現有趣的特性 |
人工智能 | 計算得到一個具有智能行為的結果 |
統計學 | 使用數據從一個未知的分布得出推論 |
lecture 2: Learning to Answer Yes/No
1. 感知機假設集(hypothesis set)
定義
對於特征 $\textbf{x}=(x_1, x_2, ..., x_d)$,計算每一個特征的權重值,當
$\sum_{i=1}^dw_ix_i > threshold$,$y=1$
$\sum_{i=1}^dw_ix_i < threshold$,$y=-1$
可以將感知機理解為線性(二元)分類器
線性形式公式
$h(\textbf{x}) = sign\Big(\big(\sum_{i=1}^d w_i x_i\big) - threshold\Big) $
向量形式公式
2. 感知機學習 (PLA)
目標:需要一個g,用來估計目標函數f ($g \approx f$)
必要條件:$g \approx f on D$,理想情況是$g(x_n) = f(x_n) = y_n$
難點:$H$無窮大
思路:從某個 $g_0$ 開始,然後通過數據集 $D$ 糾正它的錯誤
tips: 之後會用權重向量 $\textbf{W}_0$ 代替 $g_o$
感知機算法
For t = 0, 1...
1) 找到下一個(Next) $\textbf{w}t$的錯誤,標記為$(\textbf{x}{n(t)}, y_{n(t)})$
$$sign\big( \textbf{w}t^T \textbf{x}
2) 嘗試通過更新$\textbf{w}t$的值來更正分類錯誤:
$$ \textbf{w}{t+1} \leftarrow \textbf{w}t + y{n(t)} \textbf{x}{n(t)} $$
直到不再有錯誤出現,返回最後的$\textbf{w}$ (稱之為 $\textbf{w}{PLA} $ )作為函數g
PLA的實現
1) 找到一個$\textbf{w}t$的錯誤,標記為$(\textbf{x}{n(t)}, y_{n(t)})$
$$sign\big( \textbf{w}t^T \textbf{x}{n(t)} \big) \neq y_{n(t)}$$
2) 通過更新$\textbf{w}t$的值來更正分類錯誤:
$$ \textbf{w}{t+1} \leftarrow \textbf{w}t + y{n(t)} \textbf{x}{n(t)} $$
直到遍歷數據集時不再有分類錯誤,則返回最後的$\textbf{w}$ (稱之為 $\textbf{w}{PLA} $ )作為函數g
tips: 取下一個樣本的操作可以用常規遍歷(naive cycle(1, 2, ..., N)),或者預先計算好的隨機排序
3. Guarantee of PLA
線性可分
如果PLA終止了且不再有分類錯誤,那麽存在w能夠線性劃分數據集D而沒有分類錯誤,那麽這樣的數據集D是線性可分的
PLA Fact
**$\textbf{w}_t$在更新後與$\textbf{w}_f$更加接近(aligned with)**
$\textbf{w}_t$不會增長得過快
從$\textbf{w}_o = 0$開始,經過了T次的更新以後:
$$ \frac{\textbf{w}_f^T}{\lVert \textbf{w}_f \lVert} \frac{\textbf{w}_t}{\lVert \textbf{w}_t \lVert} \ge \sqrt{T} · constant$$
$constant = \displaystyle\frac{\rho}{R}$,其中$\rho = min y_n\frac{\textbf{w}_f^T}{\lVert \textbf{w}_f \lVert} \textbf{x}_n$,$R = max \lVert \textbf{x}_n \lVert^2$
向量標準化後,其乘積會小於等於1,且在更新了T次後,有下界存在。
4. 更多關於PLA的知識
PLA
只要數據集線性可分,並且通過分類錯誤更新w,那麽
- $\textbf{w}_f$和$\textbf{w}_t$的內積會增長很快,而$\textbf{w}_t$的長度則增長緩慢
- PLA的分類邊界(PLA "lines")越來越接近$\textbf{w}_f$,並最終停止更新(halt)
優點
易於實現,速度快,能在任意的維度下工作
缺點
- 預設數據集是線性可分的,但該特性是事先不知道的(如果知道了,就不需要 PLA了=。=)
- 不能完全確定叠代步數($\rho$取決於$\textbf{w}_f$)
- 盡管實際上會很快
非線性可分
調整PLA方法,以得到一個足夠好的g
Pocket算法
初始化pocket 權重為$\hat{\textbf{w}}$
1) 找到一個(隨機的)$\textbf{w}t$的錯誤,標記為$(\textbf{x}{n(t)}, y_{n(t)})$
$$sign\big( \textbf{w}t^T \textbf{x}{n(t)} \big) \neq y_{n(t)}$$
2) 嘗試通過更新$\textbf{w}t$的值來更正分類錯誤:
$$ \textbf{w}{t+1} \leftarrow \textbf{w}t + y{n(t)} \textbf{x}{n(t)} $$
3) 如果$\textbf{w}{t+1}$的分類錯誤比$\hat{\textbf{w}}$少,則將$\hat{\textbf{w}}$更新為$\textbf{w}{t+1}$,直到足夠的叠代次數,返回最後的$\hat{\textbf{w}}$ (稱之為 $\textbf{w}{pocket} $ )作為函數g
lecture 3: Types of Learning
1. 不同輸出空間Y下的學習
多元分類
- 硬幣識別問題(識別不同面額的硬幣)
- 圖像分類 $\Rightarrow$ 蘋果,橙子,草莓……
- 郵件分類 $\Rightarrow$ 垃圾,重要郵件,社交,推銷,更新……
回歸
- 病癥恢復時間預測
- 公司數據 --> 股價
- 氣象數據 --> 溫度
結構學習
- 詞性標註
- 大量的目標分類,而沒有明確定義的分類信息
- 蛋白質數據 --> 蛋白質折疊
- 語音數據 --> 語音解析樹
Mini Summary
2. 不同數據標記的學習
監督學習
- 硬幣分類
監督學習:每個$\textbf{x}_n$都有對應的$\textbf{y}_n$
非監督學習
- 聚類:${\textbf{x}_n} \Rightarrow cluster(\textbf{x})$
($\approx$ "非監督 多分類 分類任務")- i.e. 文本主題分類
- 密度評估:${\textbf{x}_n} \Rightarrow density(\textbf{x})$
($\approx$ "非監督 有界的(bounded) 回歸任務")- i.e. 基於位置的交通情況報告 --> 危險區域
- 離群點檢測:${\textbf{x}_n} \Rightarrow unusual(\textbf{x})$
- i.e. 網絡日誌 --> 入侵警告
非監督學習:多樣的,可能有各種不同的目標$
半監督學習 (semi-supervised)
- 只有一部分標記的面部識別問題 --> face identifier (Facebook)
- 只有一部分標記的醫學問題 --> 醫療效果預測
半監督學習:當獲取全部label的代價高昂時,利用未標記數據學習的方法
強化學習
利用 $(\textbf{x}, \tilde{y}, goodness)$ 信息學習的方法
- (customer, ad choice, ad click earning) ? ad system
- (cards, strategy, winning amount) ? black jack agent
強化學習:利用部分的/ 不明確的信息(通常是順序的(sequentially))學習 $
Mini Summary
3. 不同學習思路下的學習 $f \Rightarrow (\textbf{x}_n, y_n)$
tips: 課件中用的是protocol (Protocol $\leftrightarrow$ Learning Philosophy)
Mini Summary
4. 不同輸入X下的學習
具體特征 (concrete feature)
X每一個維度都有復雜的物理意義,但對於機器學習而言,這類特征更易學習
- 硬幣分類中的硬幣大小
- 信用卡申請任務中的客戶信息
- 癌癥診斷中病患信息
- 通常在學習任務中包含了“人類智慧”(human intelligence)
原始特征 (raw feature)
通常需要手動或自動的轉換為具體的特征
- 手寫體識別中的圖像像素信息
- 語音信號數據
抽象特征 (abstract feature)
通常需要特征提取、特征轉換
- 在線教育系統中的學生ID
- 廣告系統中的廣告ID
Mini Summary
lecture 4: Feasibility of Learning
1. 學習是不可能的嗎?
從A learning Puzzle 和 No Free lunch 開始
因為對target function 一無所知,所以有可能假設得到的結果完全不對,即訓練誤差很小,但泛化誤差特別大的情況,這種情況相當於無法學習
2. Probability to Rescue
以從彈珠罐子中(罐子中只有橙色和綠色彈珠)抽樣為例,$\mu$表示罐子中橙色占總體的比例,$\nu$表示樣本中橙色的比例。
那麽能通過$\nu$來推斷$\mu$嗎
No: 抽樣的結果(彈珠比例)可能和總體完全不同!
Yes: 已知$\nu$有可能很接近未知的$\mu$
霍夫丁不等式 (Hoeffding‘s Inequality)
在一個大的樣本中(樣本容量為N),$\nu$近似於$\mu$(差異用$\epsilon$表示),且
$$ \mathbb{P}[|\nu - \mu| > \epsilon] \le 2 exp\big(-2\epsilon^2N\big)
$$
稱之為霍夫丁不等式,
$\nu = \mu$的假設是概率近似正確(PAC:probably approximately correct)的。
霍夫丁不等式的說明
- 對於所有的N和$\epsilon$都是有效的
- 不依賴於$\mu$,即不需要知道$\mu$具體是多少
- 更大的樣本容量N或者更寬松的gap $\epsilon$ 能得到更高的概率使得 $\nu \approx \mu$
霍夫丁不等式告訴我們,當N足夠大時,就能通過$\nu$來推斷 $\mu$
3. 推廣到學習問題
問題描述: 大的訓練樣本,有一定概率能夠通過已知的$\mathbb{P}[h(\textbf{x}_n) \ne y_n]$推斷未知的$\mathbb{P}[h(\textbf{x} \ne y_n)]$
對於一個特定的(fixed)h,在樣本很大的時候,樣本內誤差 $E_{in}(h)$ 有可能很接近 $泛化誤差E_{out}(h)$ (差別不大於$\epsilon$),即:
$$ \mathbb{p}[| E_{in}(h) - E_{out}(h) | > \epsilon ] \le 2 exp\big(-2 \epsilon^2 N \big) $$
類似於從罐子裏抽取彈珠的例子:
- 對所有的 N 和 $\epsilon$
- 不依賴於 $E_{out}(h)$,且不需要知道 $E_{out}(h)$
— f 和 P(目標函數產生的數據分布)可以是未知的 - $E_{in}(h) = E_{out}(h)$ 是PAC,概率近似正確的
結論:如果 $E_{in}(h) \approx E_{out}(h)$ 並且 $E_{in}(h)$足夠小 $\Longrightarrow$ $E_(out)(h)$足夠小 $\Longrightarrow$ 在數據分布為P的時候,$h \approx f$
那麽現在可以學習了嗎
Yes: 如果特定的h對應的$E_{in}(h)$很小並且學習算法能夠選到那個h $\Longrightarrow$ $g = f$是PAC的
No: 如果算法只能選到某一個特定的h,那麽$E_{in}(h)$幾乎總是不會很小 $\Longrightarrow$ $g \ne f$ 是PAC的
real learning
算法A能夠在假設空間H(例如PLA)中做選擇,而不是只能選擇某個特定的h
Verification
4. 推廣到真正的學習問題
對於一個特定的假設來說,霍夫丁不等式告訴我們:對從輸入空間中采樣得到的數據集的$E_{in}(h_m)$不會太高。但對於所有假設空間中的h來說,得到一個Bad Data的概率會驟然升高,類似於一群人拋硬幣,出現連續5個正面的概率問題。
Bad Data: $E_{out}(h)$和$E_{in}(h)$差別很大,一般情況是$E_{in}(h)$很小而$E_{out}(h)$很大
大量假設h對應的Bad Data問題
$\mathbb{P}_D[BAD D]$的上界
- 有限樣本版本的Hoeffding,對所有的M, N, $\epsilon$都有效
- 不依賴於任何的$E_{out}(h_m)$,即不需要知道$E_{out}(h_m)$
— f 和 P(目標函數產生的數據分布)可以是未知的 - $E_{in}(h) = E_{out}(h)$ 是PAC——概率近似正確的,而不用考慮具體的算法是怎樣的
有效的算法A:
選擇$E_{in}(h_m)$最小的假設$h_m$,將其作為最終的假設g
統計學習的流程
機器學習基石筆記1