1. 程式人生 > >機器學習基石筆記1

機器學習基石筆記1

網絡日誌 所有 手動 cli 次數 poc 基於 mat 概率問題

機器學習基石筆記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}

{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

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