寫在最前:本系列主要是在閱讀 Mehryar Mohri 等的最新書籍《Foundations of Machine Learning》以及 Schapire 和 Freund 的 《Boosting: Foundations and Algorithms》過程中所做的筆記。主要討論三個部分的內容。第一部分是PAC的基本概念,介紹了泛化誤差和經驗誤差,並且討論了假設集$H$有限時的泛化邊界。第二部分介紹了假設集$H$無限時的泛化邊界,引入了三種衡量$H$復雜程度的機制,分別是Rademacher Complexity,Growth Function和VC-dimension。其中,Rademacher Complexity通過衡量對隨機噪聲的擬合好壞來評估一個函數族的復雜程度;但它在計算上是個NP問題。Growth Function則通過對任意$m$個點的樣本划分結果所實現的總次數來衡量,由於$m$的任意性,它仍然是很難計算的。VC-dimension則是通過打散這一概念來衡量。第三部分介紹了Boosting方法。通過組合弱學習器,Boosting以很高的概率獲得一個性能任意好的強學習器。我們具體介紹了AdaBoosting算法及其特性,並試圖用之前建立的理論來分析AdaBoosting。
Foundations of Machine Learning: The PAC Learning Framework(1)
在計算學習理論,probably approximately correct learning(PAC learning)是分析機器學習的一個數學框架。這個框架解決了這樣的一些問題:
- 什么樣的概念是能夠被有效的學習出來?
- 要達到一個成功的學習過程,至少要多少樣本?
(一)PAC 學習模型。
(1)基本概念以及假設。
$\mathcal{X}:$輸入空間(input space),所有可能的示例集合。
$\mathcal{Y}:$輸出空間(output space),所有可能的標簽或者目標值的集合。當$\mathcal{Y}=\{0,1\}$時叫做二分類(binary classification)。
概念(Concept) $c:\mathcal{X} \rightarrow \mathcal{Y}$,是從input space 到output space 的一個映射。
概念集合(Concept Class) $C: $所有$c$的集合。
假設集(Hypothesis Set) $H:$所有假設$h$的集合。學習者會從這個集合中選出一個假設,做為最后的學習的結果。注意,這與前面的 Concept class並不一定一致。
一個假設:所有的樣本是根據一個未知的分布$D$,以$iid$(獨立同分布)的形式采樣出來的。
有了上述的基本概念以及$iid$的假設后,我們可以如下描述一個學習的過程:
樣本 $S=\{x_1,x_2,...,x_m\}$以$iid$形式根據分布$D$采樣,基於某個特定的concept $ c \in C$,得到一組labels $ \{c(x_1),c(x_2),...,c(x_m)\}$。我們的任務就是根據訓練集$\{(x_1,c(x_1)),...,(x_m,c(x_m))\}$,在Hypothesis Set $H$里選擇一個$h_s \in H$,使$h_s$最接近與concept $ c$。那么我們應該怎樣去衡量“最接近”,以下定義兩個衡量的標准。
(二)泛化錯誤以及經驗錯誤。
定義 1.1 泛化錯誤(generalization error):給定一個假設 $h \in H$,一個目標概念 $c \in C$,以及一個分布 $D$,那么 $h$ 的泛化錯誤定義為:
$$\mathcal{R}(h)= \mathop{Pr}_{x\backsim D}[h(x)\neq c(x)]=E_{x\backsim D}[\mathbb{I}(h(x)\neq c(x))]$$
這里的 $\mathbb{I}(w)$ 表示指示函數,當事件 $w$ 發生時其值為1,不發生時其值為0。
也就是說在分布$D$已知的情況下,用$h$去近視$c$會產生的真正錯誤。但通常這個分布$D$是未知的,所以上述泛化錯誤很難計算,所以用經驗錯誤來估計上述錯誤。
定義 1.2 經驗錯誤(empirical error):給定一個假設 $h \in H$,一個目標概念 $c \in C$,以及一個樣本 $S=\{x_1,x_2,...,x_m\}$,$h$ 的經驗錯誤定義如下:
$$\widehat{\mathcal{R}}(h)=\frac{1}{m}\sum_{i=1}^{m}\mathbb{I}_(h(x)\neq c(x))$$
因此,empirical error 實際上是樣本的平均錯誤,而 generalization error 是分布 $D$下的期望錯誤。並且二者有如下的關系:
\begin{eqnarray*}E[\widehat{\mathcal{R}}(h)] &=& E_{s\sim D^m}[\widehat{\mathcal{R}}(h)] \\&=& \frac{1}{m}\sum_{i=1}^{m}E_{s \backsim D^m}[\mathbb{I}(h(x_i \neq c(c_i)))]\\&=& \frac{1}{m}\sum_{i=1}^{m}E_{x\backsim D}[\mathbb{I}(h(x) \neq c(x))]\\&=& E_{x \backsim D}[\mathbb{I}(h(x) \neq c(x))] \\&=& \mathcal{R}(h)\end{eqnarray*}
(三)PAC-學習。
定義 1.3 PAC-學習(PAC-learning):我們說一個概念集合 C 是PAC可學習的,當且僅當存在一個算法 $\mathcal{A}$ 以及一個多項式函數 $poly(\cdot,\cdot,\cdot,\cdot)$,使得對任意的 $\epsilon > 0$ 和 $\delta > 0$ 對所有在 $\mathcal{X}$ 上的分布 $D$,以及對所有的目標概念 $c \in C$,當樣本大小$m$滿足 $m\geq poly(1/\varepsilon,1/\delta,n,size(c))$ 時,以下不等式成立:
$$\mathop{Pr}_{S\sim D^m}[\mathcal{R}(h_S)\leq \varepsilon]\geq 1-\delta,$$
如果算法 $\mathcal{A}$ 的運行時間為 $poly(1/\varepsilon,1/\delta,n,size(c))$,那么我說概念集合 C 是有效的PAC可學習。當這樣的算法存在時,我們把它叫做概念集合 C 的 PAC學習算法。
怎樣去理解上述定義?對於一個$concept \ class \ C$,如果存在一個算法$\mathcal{A}$,在觀察到一定數量的點后,返回一個假設$h$,並且這個假設$h$一很高的概率$(1-\delta)$保證$h$與$concept \ c$的接近度小於$\epsilon$,那么這個$concept \ class \ C$就是PAC-learnable。
關於PAC框架的定義,必須注意三點:
- 它是一個distribution-free model,也就是說沒有對分布作任何假設。
- 測試樣本和訓練樣本必須來自同分布。
- PAC解決的是某一概念集C,而不是某個特定的概念。
(四)例子:與坐標軸對齊的矩形。
我們來學習這樣一個問題:輸入空間為二維平面$R^2$,在這個二維平面上,只有某個與坐標軸對齊的矩陣內的點的label為+1,其他label為-1。我們來證明該問題是PAC-learnable。首先,把這個問題抽象成一個數學模型。其中,$\mathcal{A}=R^2,\mathcal{Y}=\{+1,-1\}$,概念集合 $C=\{$所有與坐標軸對齊的矩形內的點為+1$\}$,假設集 $H=\{$所有與坐標軸對齊的矩形內的點為+1$\}$。
圖一:目標概念 R 和可能的假設 R'
如圖一所示,$R$(虛線框)代表一個特定的概念 $R\in C$,$R'$(實線框)代表假設$R' \in H$。其中:
- false positive: 本來為-1的被假設$R'$標成+1,稱為假陽性。
- false negative: 本來為+1的被假設$R'$標成-1,稱為假陰性。
為了證明上述$concept \ class$是$PAC-learnable$,即我們要證明存在某個算法$\mathcal{A}$使$PAC-learnable$的條件成立。現在我們構造這樣一個算法$\mathcal{A}$:給定一個樣本$S$,算法總是返回一個包括所有$+1$的最小矩形。即如圖二,算法返回實線矩陣$R'$。可以看出這個算法不可能產生false positive,只可能在陰影部分產生false negative錯誤。
圖二:算法$\mathcal{A}$的執行示例
現在我們來證明這個算法是PAC可學習的。令$R \in C$為目標$concept$。固定$\epsilon>0$.記$\mathop{Pr}[R]$為區域$R$所代表的概率質量,也就是基於分布$D$隨機取一個點,落入區域$R$的概率。若$\mathop{Pr}[R] \leq \epsilon$,則$\mathop{Pr}[shaded \ area] \leq \mathop{Pr}[R] \leq \epsilon$,即$\mathcal{R}[R_s] \leq \epsilon$恆成立,故一定是PAC-learnable。
所以,我們假設 $\mathop{Pr}[R] > \epsilon$。我們定義沿着$R$擴展出去的矩陣區域為$r_1,r_2,r_3,r_4$,並且每個區域的概率為$\epsilon /4$。這些區域可以通過從空矩陣開始增長,直到它們的概率質量達到$\epsilon / 4$。如圖三所示:
圖三:四個沿着R擴展出去的矩陣
如果$R_s$與四個矩陣都相交的話,那么如圖四所示可知:
\begin{align}\mathcal{R}[R_s] &= \mathop{Pr}[shaded \ area]&\leq \mathop{Pr}[r_1] + \mathop{Pr}[r_1] + \mathop{Pr}[r_3] + \mathop{Pr}[r_4]&= \epsilon\end{align}
圖四:四個矩陣與$R_s$都相交
相反,如果$\mathcal{R}[R_s] \leq \epsilon$,那么$R_s$就不一定會同時與$r_1,r_2,r_3,r_4$相交。如圖四中下半圖所示,重疊的部分可保證即使不與$R_s$相交也能使下式成立:
$$\mathop{Pr}[r_1]+\mathop{Pr}[r_2]+\mathop{Pr}[r_3]+\mathop{Pr}[r_4]=\epsilon$$
換句話說,從概率的角度來講:
$$\mathop{Pr}_{s \backsim D^m}[\mathcal{R} \leq \epsilon] > \mathop{Pr}_{s \backsim D^m}[R_s \ intersect \ with \ r_1,r_2 ,r_3,r_4 \ at \ the \ same \ time]$$
它的逆否命題為:
\begin{eqnarray}& & \mathop{Pr}_{s \backsim D^m}[\mathcal{R}[R_s] > \epsilon] \nonumber\\&\leq& 1 - \mathop{Pr}_{s\backsim D^m}[R_s \ intersect \ with \ r_1,r_2 ,r_3,r_4 \ at \ the \ same \ time]\nonumber\\ &=& \mathop{Pr}_{s\backsim D^m}[R_s \ non-intersect \ with \ r_1,r_2,r_3,r_4 \ at \ least \ one]\nonumber\\ &=& \mathop{Pr}_{s\backsim D^m}[\bigcup_{i=1}^{4}\{R_s\bigcap r_i=\varnothing\}] \ \ \ \ \ \ (Use \ Union \ Bound)\nonumber\\ &\leq& \sum_{i=1}^{4}\mathop{Pr}_{s\backsim D^m}[\{R_s \bigcap r_i = \varnothing\}]\\ &\leq& 4(1-\epsilon/4)^m\label{equ:1}\\ &\leq& 4exp(-m\epsilon/4)\end{eqnarray}
不等式\ref{equ:1}成立是因為,假如$R_s\bigcap r_i\neq\varnothing$,那么根據算法$\mathcal{A}$產生$R_s$的方法在$R_s\bigcap r_i$中必定有一個lable為+1的點,要使$R_s\bigcap r_i=\varnothing$那么所有的點至少應該不落入$r_i$區域內,即概率為$(1-\epsilon/4)^m$。現在可以得到,若要使$\mathop{Pr}_{s\backsim D^m}[\mathcal{R}[R_s]>\epsilon] \leq \delta$,則必有
$$4exp(-m\epsilon/4)\leq \delta \Longleftrightarrow m \geq \frac{4}{\epsilon}log\frac{4}{\delta}$$
即當$m\geq \frac{4}{\epsilon}log\frac{4}{\delta}$時,$\mathop{Pr}_{s\backsim D^m}[\mathcal{R}[R_s] > \epsilon] \leq \delta$成立。證明結束。
思考問題:將算法$\mathcal{A}$換成返回最大的不包括負label的圓形,是否可以證明它是PAC-learnable?