├── README.md ├── ch01 ├── 01_handout.pdf ├── 1.md └── 1.pdf ├── ch02 ├── 02_handout.pdf ├── 2.md └── 2.pdf ├── ch03 ├── 3.md └── 3.pdf ├── ch04 ├── 4.md └── 4.pdf ├── ch05 ├── 5.md └── 5.pdf ├── ch06 ├── 6.md └── 6.pdf ├── ch07 ├── 7.md └── 7.pdf ├── ch08 ├── 8.md └── 8.pdf ├── ch09 ├── 9.md └── 9.pdf ├── ch10 ├── 10.md └── 10.pdf ├── ch11 ├── 11.md └── 11.pdf └── ch12 └── 12.md /README.md: -------------------------------------------------------------------------------- 1 | # TaiWanML 2 | 台大李宏毅机器学习基石学习笔记 3 | -------------------------------------------------------------------------------- /ch01/01_handout.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wen-fei/TaiWanML/f5928efc190bb0dc238a3b2b7550eaaf049fa0a6/ch01/01_handout.pdf -------------------------------------------------------------------------------- /ch01/1.md: -------------------------------------------------------------------------------- 1 | # 一、The learning problem 机器学习问题 2 | ## 1.1 Course Introduction 课程简介 3 | ## 1.2 What is Machine Learning 什么是机器学习 4 | > ### 三个ML(机器学习的英文缩写)的关键要素: 5 | 1. 存在一个模式或者说表现可以让我们对它进行改进提高; 6 | 7 | 2. 规则并不容易那么定义; 8 | 9 | 3. 需要有数据。 10 | ## 1.3 Applications of Machine Learning 机器学习的应用 11 | 简述下机器学习可以应用在在衣食住行育乐,包含了人类生活的方方面面,所以机器学习的应用场景很广泛很有市场。 12 | ## 1.4 Components of Machine Learning 机器学习的组成部分 13 | 从一个银行是否会发信用卡给用户的例子引出了机器学习可以分为哪几个部分(组件)。 14 | 15 | 1.输入(input):x∈X(代表银行所掌握的用户信息) 16 | 17 | 2.输出(output):y∈Y (是否会发信用卡给用户) 18 | 19 | 3.未知的函数,即目标函数(target function):f:X→Y(理想的信用卡发放公式) 20 | 21 | 4.数据或者叫做资料(data),即训练样本( training examples):D = {( ), ( ), …, ( )}(银行的历史记录) 22 | 23 | 5.假设(hypothesis),即前面提到的技能,能够具有更好地表现:g:X→Y (能够学习到的公式) 24 | 可以通过一个简单的流程图表示,如图1-1所示。 25 | 26 |
27 |
1-1 机器学习的简单流程图
28 | 29 | 从图中可以清楚机器学习就是从我们未知但是却存在的一个规则或者公式f中得到大量的数据或者说资料(训练样本),在这些资料的基础上得到一个近似于未知规则g的过程。 30 | 31 | 这么说还是有点抽象,特别是目标函数f又是未知的,那为什么还能找到一个假设g能够接近f呢? 32 | 33 | 还是以一个更加详细的流程图来说明这一问题,如图1-2。 34 |
35 |
1-2 详细的机器学习流程图
36 | 37 | 这个流程图和图1-1有些不同,其中ML被更详细的定义为机器学习算法(learning algorithm)一般用A表示。还多出来一个新的项目,就是假设空间或者叫做 **假设集合(hypothesis set)** 一般用H表示,它是包含各种各样的假设,其中包括好的假设和坏的假设,而这时A的作用就体现了,它可以从H这个集合中挑选出它认为**最好**的假设作为g。 38 | 39 | > 注: 40 | 41 | 1、这里还要说明的是机器学习的输入在这个流程图中就变成了两个部分,一个是训练样本集,而另一个就是假设空间H。 42 | 43 | 2、还有一点需要注意的是,我们所说的机器学习模型在这个流程图中也不仅仅是算法A,而且还包含了假设空间H。 44 | 45 | 3、要求得g来近似于未知目标函数f。 46 | 47 | 4、给出了机器学习的一个更准确点的定义,就是通过数据来计算得到一个假设g使它接近未知目标函数。 48 | 49 | 50 | 51 | ## 1.5 Machine Learning and Other Fields 机器学习与其他各个领域的关系 52 | ### 1.5.1 ML VS DM (Data Mining)机器学习与数据挖掘者叫知识发现(KDD Knowledge Discovery in Dataset) 53 | 54 | 上一节中已经给出了机器学习的概念,因此只介绍下数据挖掘的概念,就是从大量的数据中找出有用的信息。 55 | 56 | 从定义出发,我们可以将两者之间的关系分为3种。 57 | 58 | 1. 两者是一致的:能够找出的有用信息就是我们要求得的近似目标函数的假设。 59 | 2. 两者是互助的:能够找出的有用信息就能帮助我们找出近似的假设,反之也可行。 60 | 3. 传统的数据挖掘更关注与从大量的数据中的计算问题。 61 | 总的来时,两者密不可分。 62 | 63 | ### 1.5.2 M L VS AI (artificial intelligence)机器学习与人工智能。 64 | 65 | 人工智能的大概概念就是电脑能够表现出一些智慧行为。 66 | 67 | 从定义可以得到,机器学习是实现人工智能的一种方式。 68 | 69 | ### 1.5.3 ML VS statistic 机器学习与统计。 70 | 71 | 统计也需要通过数据,来做一个未知的推论。 72 | 73 | 因此统计是一种实现机器学习的方法。 74 | 75 | 传统的统计学习更关注与数学公式,而非计算本身。 -------------------------------------------------------------------------------- /ch01/1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wen-fei/TaiWanML/f5928efc190bb0dc238a3b2b7550eaaf049fa0a6/ch01/1.pdf -------------------------------------------------------------------------------- /ch02/02_handout.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wen-fei/TaiWanML/f5928efc190bb0dc238a3b2b7550eaaf049fa0a6/ch02/02_handout.pdf -------------------------------------------------------------------------------- /ch02/2.md: -------------------------------------------------------------------------------- 1 | # 二、Learning to Answer Yes/No 二元分类 2 | ## 2.1 Perceptron Hypothesis Set 感知器的假设空间 3 | 4 | 还是银行发信用卡的例子,银行可能掌握了用户的各种属性,如年龄,年薪,工作年限,负债情况等等,这些属性可以作为上面提到的样本输入$X=\{x1,x2,x3,x4\}^T$的向量属性值。但是这样还是无法进行机器学习,因为我们还需要另一个输入,即假设空间$\mathbf{H}$。假设空间该如何表示呢?本节提出了一种表示方式,这种学习的模型称之为**感知器(Perceptron)**。 5 | 6 | 这种假设空间的思想就类似考试给的成绩,对每一题给一个特定的分数,即权重,说白了就是给输入向量的每个属性乘以一个加权值$w_i$,在设计一个及格线,即所谓的阈值或者叫**门槛值(threshold)**,如果加权求和的分数大于这个及格线就叫及格了,即对应的输出值为1,小于这个及格线成为不及格,对应的输出值为-1。其中h(x)∈H,如公式2-1所示 7 | $$h(x) = sign(\sum_{i=1}^d{w_ix_i} - threshold)$$ 8 | 9 |
公式 2-1
10 | 其中sign括号中所包含的内容大于0时,取+1;小于0时,取-1。 11 | 12 | 此时可以对h(x)做一些数学上的简化,注意这仅仅是一种数学表示方式的简化,如公式2-2所示。 13 | $$ 14 | \begin{aligned} 15 | h(x) &= sign{\lgroup\lgroup{\sum_{i=1}^d} - threshold\rgroup\rgroup} \\ 16 | &= sign{\lgroup\lgroup{\sum_{i=1}^d} + (-threshold*1)\rgroup\rgroup} \\ 17 | &= sign{\lgroup\lgroup{\sum_{i=1}^d} + (w_0*x_0)\rgroup\rgroup} \\ 18 | &= sign{\lgroup\lgroup{\sum_{i=0}^d{w_ix_i}} \rgroup\rgroup} \\ 19 | &= sign{(W^T\cdot X)} 20 | \end{aligned} 21 | $$ 22 | 23 |
公式2-2
24 | 如上所示,将阈值的负数表示为权值向量中的一项,用$w_0$ 表示,而对应权值分量$w_0$的输入分量则被默认为1,用$x_0$ 最终将公式简化为两个向量内积的形式,其中T表示转置。 25 | 26 | 这里必须说明一个问题,就是不同h(x) 对应着不同的向量,即可以说假设空间H就是向量$W$的取值范围。 27 | 28 | 这么描述还是很抽象,因此引入一种方式就是使用图像(或者可以说是几何)来更形象更具体的来说明以上函数。(这里说点题外话,由于二元函数和三元函数可以使用几何图像来一一对应,用几何的方式更直观的表示函数的意义,方便大家理解,这在以后的章节中会不断使用) 29 | 30 | 为了理解的方便将输入向量的**维度限制为两个**,即h函数可以表示成公式2-3。 31 | $$h(x) = sign(w_0 + w_1x_1 + w_2x_2)$$ 32 |
公式2-3
33 | 34 | 将输入向量对应于一个二维平面上的点(如果向量的维度更高,对应于一个高维空间中的点)。 35 | 36 | 输出y(在分类问题中又称作标签,label)使用○表示+1,×表示-1。 37 | 38 | 假设h对应一条条的直线(如果在输入向量是高维空间的话,则对应于一个超平面)这里不止一条,不同的权值向量$W$ 对应不同的直线,因为sign是以0为分界线的函数,所以可以设$w_0+w_1x_1+w_2x_2=0$,该式恰是一条直线的表示。 39 | 40 | 因此每条边的一边为正的,而另一边为表示为负的。 41 | 42 | 最终得到的图像如图2-1所示。 43 | 44 |
45 | 46 |
47 |
图2-1 感知器在维度为2时的几何表示
48 | 因此这里将感知器作为一条二元线性分类器(linear ( binary) classifiers)。 49 | 50 | ## 2.2 Perceptron Learning Algorithm (PLA) 感知器学习算法 51 | 在第一章中,我们介绍过一个机器学习模型由两部分组成,而上一节仅仅介绍了它其中的一部分即假设空间H如何表示。 52 | 53 | 本节我们将更详细的介绍感知器的算法A,即如何从假设空间中找到一个近似未知目标函数f的最好假设g(x)。 54 | 55 | 问题是,我们如何找到这个g(x)呢? 56 | 57 | 首先考虑,g(x)和目标函数f越接近越好,但问题是我们不知道f(如果知道了就不需要学习了) 58 | 59 | 但是我们知道些什么呢?知道的是样本输入x在f(x)作用下得到的标记y。 60 | 61 | 所以如果我们能使得g(x)在所有的样本输入中都能够得到跟f函数作用过输入得到的输出一样的话,我们认为这时的g是不错的。(在后面的章节还会在这种思想的基础上更深入的讨论这一问题) 62 | 63 | 但是问题又来了,假设空间H的函数h(x)有无数种表示,即向量w有无数种取值。(如在二元输入时,假设空间对于在二维平面上的直线,在那个空间中可以画出无数条直线) 64 | 65 | 面对这无数多种情况,我们又该如何求解? 66 | 67 | 我们想到一个简单的方式,就是一步一步的修正错误的分类,在二维平面中可以想象成一条初始的直线,在经过不断的纠正它的错误(就是旋转平移之类的)使得最终的结果可以达到希望的效果。 68 | 69 | 还要在重复上一节中已经得到的一个结论,在感知器模型中,每一个假设函数h都对应一个权值向量。因此我们要做的就是不断修正这个权值向量使得最接近目标函数f。 70 | ### PLA介绍 71 | 首先我们在设置初始 $w_0$(注意此处是向量不是向量的分量!),比如设置为0向量,然后使用训练样本来将权值向量修正的更接近目标函数f。其修正步骤如下: 72 | 73 | 将权值向量的修正次数表示为t,t=0,1,2,… 74 | 75 | 在何种情况下需要修正向量 呢?如公式2-4所示。 76 | $$sign(w_i^T \cdot X_{n(t)})$$ 77 | 78 | 其中训练样本 $(x_n^T \cdot y_{n(t)})$,$x_{n(t)}$为在t次时使用的输入向量x,而$y_{n(t)}$ 为在t次时的标记量 79 | 80 | 该公式2-4的意思就是在t次时,选择的权值向量,有一个训练 $(x_n^T \cdot y_{n(t)})$样本使得在经过$h_t(x)$ (即$w$)假设计算的得到的标签与f(x)得到的标签不一致。 81 | 82 | 在这种情况下就需要对权值向量进行修改,使它符合条件。修改的公式如公式2-5所示。 83 | $$w_{t+1} = w_t + y_{n(t)} \cdot x_{n(t)} $$ 84 | 85 | 从直觉上理解这个公式相对困难,我们还是将它化成一个几何图形,更准确的说法变成向量加减的形式去理解它,如图2-2所示。 86 | 87 |
88 | 89 |
公式2-5的几何解释
90 | 91 | 图2-2a中是在本身标记为+1时,权值向量和输入向量的内积为负数,对权值向量略作修改,加上一个标记y和输入向量的乘积,得到一个新的权值向量,可以看出新的权值向量和输入向量的相乘之后符合了标记的要求。 92 | 93 | 图2-2b中是在本身标记为-1时,权值向量和输入向量的内积为正数,对权值向量略作修改,加上一个标记y和输入向量的乘积,得到一个新的权值向量,可以看出新的权值向量和输入向量的相乘之后符合了标记的要求。 94 | 95 | 如此这般的重复查找错误样本和修改加权向量,直到再也找不到可以使公式2-4成立的样本为止,此时得到的加权向量,即为我们想要的最终g。 96 | 97 | 描述了上面内容之后,你很可能有一个疑问就如何查找错误样本点,或者如何确定没有错误的点了。 98 | 99 | 一个简单的方式就是将训练样本编号,从1到n,整个训练样本就有n个点。以按从1到n的顺序不断查找错误点,如果没有错就自动的用下一个样本点继续查找,当从1到n这n个样本点都没有产生错误时,算法即结束得到g。将这种方式的算法叫做Cyclic PLA。 100 | 101 | 这时候就又出来几个新的问题,第一,这个算法一定会找到一个能使所有的样本都不符合(即都被分对了类)的情况吗?就是这个算法会不会停止?第二个问题这个算法找到的真的是最好的g吗?看起来好像只是在训练样本中才符合这一性质,如果出现新的样本的话又会如何呢? 102 | 103 | 第一个问题下一小节将进行介绍,而其他问题会在后面的章节中讨论。 104 | ## 2.3 Guarantee of PLA PLA算法可行的保障 105 | PLA算法只有在满足训练样本是线性可分(linear separable)的情况下才可以停止。 106 | 107 | 什么是线性可分呢?简单的说就是存在一条直线能将两类样本点完全分开。 108 | 109 | 如图2-3所示。 110 |
111 | 112 |
113 |
图2-3 线性可分与线性不可分
114 | 其中最左边的为线性可分的训练样本,而右边两个图形为线性不可分的两种情况,这两种情况会在后面的章节一一解释。 115 | 116 | 我们需要证明在线性可分的情况下,权值向量在经过一段时间的修正会停止,即t次修正会有一个**上界**。 117 | 118 | 首先我们考虑是否每次修正都可以使得权值向量$w_r$ 变得更好,就是是否会更接近未知的目标函数所表示的向量。有了这个思路,我们先假设目标函数的权值向量为$w_f$,可以求解出两个向量相似度的度量方式有很多,其中比较常用的一种方式就是求两个向量的内积,于是我们对$w_r$和$w_f$做内积。其中T表示为停止时的次数。 119 | 120 | 直接使用这两个向量做内积,其内积越大并不能代表这两个向量越接近,因为向量本身的变长也可以导致这一现象。因此我们需要求解的是这两个向量做归一化(就是各自除以自身的L1范式得到单位向量)之后的内积,这时它俩的内积有了上界即为1,如公式2-6所示 121 | $$\frac{w_f^Tw_T}{||w_f^T||\cdot||w_T||}$$ 122 | 123 | 乍一看公式2-6完全无从下手,$w_f^T$是未知目标向量,$w_T$是终止时的向量,也是一个未知向量,因此思路就是将其中一个未知量消除,消除$w_f^T$的可能性不大,因此选择消除$w_T$在公式中的不确定性,如公式2-7所示是解决归一化之前两个向量内积的问题。 124 | $$ 125 | \begin{aligned} 126 | W_f^T &\ge W_f^T(W_{T-1} + Y_{n(T-1)}X_{n(T-1)}) \\ 127 | &= W_f^TW_{T-2} + Y_{n(T-1)}W_f^TX_{n(T-1)} 128 | \end{aligned} 129 | $$ 130 | 取所有样本中$Y_{n(T-1)}W_{n(T-1)}$的最小乘积(因为$W_f^T$是在线性可分情况下的目标函数,所以所有的$Y_{n(T-1)}W_f^TX_{n(T-1)}$必定大于等于0) 131 | $$ 132 | \begin{aligned} 133 | &\ge W_f^TW_{T-1} + \min_nY_nW_f^TX_n \\ 134 | &\ge W_f^TW_{T-2} + 2\min_nY_nW_f^TX_n 135 | \end{aligned} 136 | $$ 137 | 进行迭代 138 | $$ 139 | \ge W_f^TW_0 + T \min_nY_nW_f^TX_n 140 | $$ 141 | 142 | 又因为初始值设置为0向量,因此$W_0 = 0$ 143 | 144 | $$ 145 | = T\min_nY_nW_f^TX_n 146 | $$ 147 | 148 | 除了$W_T$不容易确定之外,$W_T$的L1范式$||W_T||$也不容易得出,如公式2-8是求解L1范式的不等式,其思想如公式2-7。 149 | $$ 150 | \begin{aligned} 151 | ||W_T|| &= ||W_{T-1} + Y_{n(T-1)}X_{n(T-1)}|| \\ 152 | &= ||W_{T-1}||^2 + ||Y_{n(T-1)}X_{n(T-1)}||^2 + 2Y_{n(T-1)}W_{T-1}X_{n(T-1)} 153 | \end{aligned} 154 | $$ 155 | 因为只有在犯错的情况下才会进行改变,那什么时候是犯错,就是在公式2-4成立的情况,即$sign(W_t^T \cdot X_{n(t)})$,该公式等价于$Y_{n(t)} \cdot X_{n(t)} \le 0$ ,因此如下2-8 156 | $$ 157 | \begin{aligned} 158 | &\le ||W_{T-1}||^2 + ||Y_{n(T-1)}X_{n(T-1)}||^2 + 0 \\ 159 | &\le ||W_{T-1}||^2 + \max||X_n||^2 \\ 160 | &\le ... \le ||W_0||^2 + T\max_n||X_n||^2 \\ 161 | &= T\max_n||X_n||^2 162 | \end{aligned} 163 | $$ 164 | 通过公式2-7和公式2-8可以将公式2-6写成如公式2-9,如下式所示。 165 | $$ 166 | \begin{aligned} 167 | \frac{W_f^TW_T}{||W_f^T||\cdot||W_T||} 168 | &\ge \frac {T \min_n Y_nW_f^TX_n}{W_f^T \sqrt{T \max_n||X_n||^2}} \\ 169 | &= \sqrt T \frac {\min_n Y_n \frac{W_f^T}{||W_f^T||}X_n}{\sqrt{\max_n||X_n||^2}} \\ 170 | &= \sqrt T \cdot C 171 | \end{aligned} 172 | $$ 173 | 174 | 将公式2-9中的常数设置为C,该公式如公式2-10所示。 175 | $$ 176 | \begin{aligned} 177 | \frac {\min_n Y_n \frac{W_f^T}{||W_f^T||}X_n}{\sqrt{\max_n||X_n||^2}} 178 | \end{aligned} 179 | $$ 180 | 181 | 可以看出权值向量和目标函数内积会以的速度不断的增长,但是这种增长不是没有限制的,它最多只能等于1。 182 | 183 | 因此有以下结论,如公式2-11所示。 184 | $$ 185 | \begin{aligned} 186 | 1 &\ge \frac{w_f^Tw_T}{||w_f^T||\cdot||w_T||} \\ 187 | &\ge \sqrt T \frac {\min_n Y_n \frac{W_f^T}{||W_f^T||}X_n}{\sqrt{\max_n||X_n||^2}} 188 | \end{aligned} 189 | $$ 190 | 191 | 求解得到公式2-12的结论。 192 | $$ 193 | \begin{aligned} 194 | T \le \frac{\max_n||X_n||^2}{\min_nY_n \frac{W_f^T}{||W_f^T||}X_n} 195 | \end{aligned} 196 | $$ 197 | 198 | 将公式2-12中的值分别使用简单的数字符号代替,如公式2-13和公式2-14所示。 199 | $$ 200 | R^2 = \max_n||X_n||^2 201 | $$ 202 | 203 | $$ 204 | \rho = \lgroup \min_n \frac{W_f^T}{||W_f^T||}X_n\rgroup^2 205 | $$ 206 | 从公式2-12中就可以看出T是有上界,即在线性可分的情况下PLA算法最终会停止,找到一个最接近目标函数的假设函数g。 207 | 208 | ## 2.4 Non-Separable Data 线性不可分的数据 209 | 上一节的阐述PLA这个算法一定会停下来这一结论,是建立在存在一个目标函数,可以将所有的数据点都线性分开这个假设的基础之上。对于一堆复杂的数据,如何能确定它一定是线性可分的?比如一个PLA算法运行了很长时间仍然没有停止,此时存在两种可能性, 210 | 211 | 一是该数据集是线性可分的,但是还没有运行结束; 212 | 213 | 另一种,压根就不存在一条直线可以将数据集分开,就是压根这个算法就不会终止。 214 | 215 | 假如是后者又该如何处理? 216 | 217 | 首先还是要解释下为什么会出现后者,此种情况出现的概率大吗? 218 | 219 | 出现不可分的一种可能是从未知目标函数中产生的训练样本存在噪音(noise),如录入样本时有人工的错误等情况导致数据本身不正确,使得最终本可以线性可分的样本集变得线性不可分了,如图2-4所示。 220 |
221 |
图2-4 加入噪音的机器学习流程图
222 | 223 | 而噪音占整个数据集的比例一般不会太大,如图2-5所示。这种情况下我们又该如何计算出最佳的假设g呢? 224 |
225 |
图2-5 存在噪音时线性不可分的情况
226 | 227 | 一种新的思路是找出犯错最少的权值向量 ,如公式2-15所示。 228 | $$W_g = \arg\min_w \sum_{n=1}^N sign(W^TX_n) \ne Y_n$$ 229 | 230 | 其中表示当满足条件时输出1,否则为0。但是这个公式在数学上是NP难问题,我们无法直接求解,于是我们需要找出一种近似的算法来求解这个问题。 231 | 232 | 这里介绍一个叫pocket的算法,它的本质是一种贪心算法,做一简单的介绍: 233 | 234 | 1. 也是随机的初始化一个权值向量 235 | 2. 随机的使用n个点中的一个点去发现是否有错误(此处与cyclic PLA使用的循环方式有所不同,不是按顺序一个一个的查看是否符合条件,而是在**n个点中随机的抽取**,这种方式可以增加其寻找最优解的速度) 236 | 3. 和PLA一样使用公式2-5进行修正. 237 | 4. 如果有了修正,则计算出刚刚修正过的权值向量和上一个权值向量到底谁犯的错误比较少,将少的保留重复第2步到第4步的动作。 238 | 239 | 假如很长时间都没有新的权值向量比当前的权值向量犯错更少,则返回该向量作为函数g。 -------------------------------------------------------------------------------- /ch02/2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wen-fei/TaiWanML/f5928efc190bb0dc238a3b2b7550eaaf049fa0a6/ch02/2.pdf -------------------------------------------------------------------------------- /ch03/3.md: -------------------------------------------------------------------------------- 1 | # 三、Types of Learning 机器学习的分类 2 | ## 3.1 Learning with Different Output Space 不同类型的输出空间 3 | ### 3.1.1 是非题 -- binary classification 二元分类 4 | 为线性可分(linear binary separable),如可以使用PLA求解;b是包含噪音可以使用pocket求解,而c会在后面章节中详细叙述,属于多项式可分解。当然解决以上三种二元分类问题的机器学习方法很多,因为二元分类问题是机器学习中很重要、核心的问题。 5 | ### 3.1.2 Multiclass Classification 多元分类问题 6 | 1. 硬币分类,硬币共有4种。抽象的来说可以分类K中,K可以用1,2,3,4来表示。根据不同的硬币特征,画出图如下: 7 |
8 | 9 | 2. 二元分类是特殊的多元分类,即K=2的情况 10 | 3. 应用方面: 11 | * 手写识别数字 0-9 12 | * 一张图里有水果识别是哪一种 13 | * 分类电子邮件是重要的、社交的、广告的等 14 | * 尤其是视觉或听觉的辨析 15 | 4. 现在的输出Y通常不再是-1和1两种,而是一个范围输出,比如成绩打分范围是0-100,医院预测病人恢复需要多少天等等,这种在统计学里面做回归分析(Regression) 16 | ### 3.1.3 Regression回归分析 17 | 1. 输出是一个实数 18 | 19 | 20 | 多类别分类问题,式其他很多复杂问题的延伸。例如,在自然语言处理方面,一个英文句子每个单词的词性是什么?这可以看做是一个更复杂的多类别问题,可以从多个句子中学的一个句子的结构。这是由多个单词共同组成的一个结构。 21 | 这又叫做结构学习(structured learning) 22 | ### 3.3.4 结构学习 23 | 当然还有其他更为复杂的问题,比如很多很多类型的分类问题。 24 | ## 3.2 Learning with Different Data Label 不同的数据标记 25 | > 监督式学习 supersvised learning 26 | 27 | 样本数据有明确的标签,即答案。例如对于一个硬币分类问题,数据已经明确这个硬币是什么了。 28 | 29 | > 非监督式学习 unsupervised learning 30 | 31 | 样本数据没有标签,不知道是什么 32 | 33 | > 半监督式学习 semi-supervised learning 34 | 35 | 例如要对树分类,树的样本非常庞大,我们只能对一部分数据进行标注标签,而其他大多数数据是没有标签的,可以通过这些有标签的而帮助没有标签的学习 36 | 37 | > 强化学习 reinforcement learning 38 | 39 | 是一种惩罚/奖励机制。例如我们训练狗狗时候,让狗狗坐下,狗狗却尿尿,我们惩罚它。狗狗跟我们握手,我们觉得虽然不是坐下,但也是一种好的行为,便奖励它。通过大量的训练,以达到好的结果。 40 | 41 | > active learning 42 | 43 | 举个例子,一个摄影师有很多照片,他想把这些照片分类,但是他没有时间一个一个去标注。于是写一个算法让机器自动分类,当机器觉得对某张照片的分类不是很有信心的时候便询问摄影师,让摄影师来决定,这“问”的过程,便是让机器主动问问题的过程,也就是active。 44 | 45 | ## 3.3 Learning with Different Protocol 不同方式获取数据 46 | 对此节的内容进行简单阐述,在不同的协议中可以将机器学习分为三大类: 47 | 48 | 1. 批量(batch)学习就是将很多数据一次性的给算法进行学习,最常见的方式; 49 | 2. 在线(online)学习就是一点一点将数据传输进去,如PLA和增强学习都适用于这种形式; 50 | 3. 主动(active)学习是主动提出问题让算法解决,可以节省大量的训练和标记消耗。 51 | 52 | ## 3.4 Learning with Different Input Space 不同的输入空间 53 | 54 | 输入又可以称之为特征(features),其主要分为三种: 55 | 56 | 1. 具体特征(Concrete Features),具体特征最大特点就是便于机器学习的处理,也是基础篇中主要讨论的情形。这种情况是人类或者机器通过一定的方式提取获得的,具有实用性。 57 | 2. 原始特征(Raw Features),如图片的像素等等,是最为常见到的资料,但是需要经过处理,转换成具体特征,才容易使用,实用性不太大。 58 | 3. 抽象特征(Abstract Features),如一些ID之类的看似无意义的数据,这就更需要特征的转换、提取等工作(相对于原始特征而言),几乎没有实用性。 -------------------------------------------------------------------------------- /ch03/3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wen-fei/TaiWanML/f5928efc190bb0dc238a3b2b7550eaaf049fa0a6/ch03/3.pdf -------------------------------------------------------------------------------- /ch04/4.md: -------------------------------------------------------------------------------- 1 | # 四、Feasibility of Learning 机器学习的可能性 2 | ## 4.1 Learning is Impossible 学习可能是做不到的 3 | 在训练样本集(in-sample)中,可以求得一个最佳的假设g,该假设最大可能的接近目标函数f,但是在训练样本集之外的其他样本(out-of-sample)中,假设g和目标函数f可能差别很远。 4 | ## 4.2 Probability to the Rescue 可能的补救方式 5 | 通过上一小节,我们得到一个结论,机器学习无法求得近似目标函数f的假设函数g。 6 | 7 | 回忆在以前学过的知识中,有无遇到过类似的问题:通过少量的已知样本推论整个样本集的情况。 8 | 9 | 是否想到一个曾经学过的知识,其实就是概率统计中的知识。 10 | 11 | 通过一个例子来复习下该知识。有一个罐子,这个罐子里盛放着橙色和绿色两种颜色的小球,我们如何在不查遍所有小球的情况下,得知罐子中橙子小球所占的比例呢?抽取样本,如图4-1所示。 12 |
13 |
图4-1 抽取样本
14 | 15 | 假设罐子中橙色小球的概率为$\mu$,不难得出绿色小球的概率为$1- \mu$,其中$\mu$ 为未知值; 16 | 17 | 而通过抽样查出的橙色小球比例为$\nu$,绿色小球的比例为$1-\nu$ ,是从抽样数据中计算出的,因此为已知值。 18 | 19 | 如何通过已知样本,求得未知的样本? 20 | 21 | 可以想象到,在很大的几率上接近的结果。因为在罐子里的小球均匀搅拌过后,抽出小球中的橙色小球比例很有可能接近整个罐子中橙色小球的比例,不难想象在抽出的小球数量等于罐中小球数量时,两者完全一致。 22 | 23 | 这其中不了解的是,到底有多大的可能性两者接近?此处使用数学的方式给予答案,如公式4-1所示。 24 | $$ 25 | P[|\nu-\mu| > \varepsilon] \le 2 \exp(-2 \varepsilon_2 N) 26 | $$ 27 | 28 | 该公式称之为霍夫丁不等式(Hoeffding's Inequality),其中P为概率符号,$|\nu - \mu|$表示$\nu$与$\mu$的接近程度, $\varepsilon$为此程度的下界,N表示样本数量,其中不等式左边表示$\nu$与$\mu$之间相差大于某值时的概率。从该不等式不难得出,随着样本量的增大,$\nu$与$\mu$相差较大的概率就不断变小。两者相差越多,即$\varepsilon$越大,该概率越低,就意味着$\nu$与$\mu$**相等**的结论大概近似正确(probably approximately correct PAC)。 29 | 30 | 同时可以得出当N足够大时,能够从已知的 $\nu$推导出未知的$\mu$ 。 31 | 32 | 33 | ## 4.3 Connection to Learning 联系到机器学习上 34 | 上一节得出的结论可以扩展到其他应用场景,其中包括机器学习。 35 | 36 | 为方便理解,做一个对比表,如表4-1所示。 37 | 38 |
表4-1 机器学习与统计中的对比
39 | 40 | | 罐子小球 | 机器学习 | 41 | | ---------------------------- |:-------------:| 42 | | 未知的橙色小球比例$\mu$ | 某一确定的假设在整个X输入空间中,输入向量x满足条件$h(x) = f(x)$ 的占整个输入空间的比例| 43 | | 抽取的小球∈整个罐子中的小球 | 训练输入样本集$x\in$整个数据集X| 44 | | 橙色小球 | 假设h作用于此输入向量x与给定的输出不相等$\Leftrightarrow h(x) \ne f(x)$ | 45 | | 绿色小球 | 假设h作用于此输入向量x与给定的输出相等$\Leftrightarrow h(x) = f(x)$| 46 | |小球样本是从罐子中独立随机抽取的 |输入样本x是从整个数据集D中独立随机选择的| 47 | 48 | 更通俗一点的解释上表表达的内容:训练输入样本集类比随机抽取的小球样本;此样本集中,先确定一个假设函数h,满足条件$h(x) \ne f(x)$的输入向量x占整个样本的比例类比于橙色小球在随机抽取小球样本的比例$\nu$,写成公式的形式可以入公式4-2所示;因此使用上一节中的PAC((可能近似正确的理论),在整个输入空间中这个固定的假设函数h同目标函数f不相等的输入量占整个输入空间数量的概率 $\mu$( $\mu$的取值如公式4-3所示)与上述随机样本中两个函数不相等的样本数占抽样数的比例$\nu$ 相同,这一结论也是大概近似正确的。 49 | $$ \nu = \frac{1}{N} \sum_{i=1}^N[[h(x_i) \ne f(x_i)]] \qquad x_i \in X \qquad \text{公式4-2}$$ 50 | $$ \mu = E_{x \sim P}[[h(x) \ne f(x)]] \qquad \text{公式4-3}$$ 51 | 52 | 其中N为随机独立抽样的样本数,X为整个输入空间, $[[\quad]]$满足条件为1否则为0,E为取期望值。 53 | 54 | 对1.4节的机器学习流程图进行扩展,得到如图4-2所示。 55 |
56 |
图4-2 引入统计学知识的机器学习流程图
57 | 58 | 其中虚线表示未知概率P对随机抽样以及概率$\mu$ 的影响,实线表示已经随机抽出的训练样本及某一确定的假设对比例 $\nu$的影响。 59 | 60 | 得出的结论如下:对任意已确定的假设函数h,都可以通过已知的$E_{in} = \frac{1}{N} \sum_{i=1}^N[[h(x_i)\ne f(x_i)]]$求出未知的 $E_{out} = E_{x \sim P}[[h(x) \ne f(x)]]$。 61 | 62 | 以后我们将使用和$E_{in}$ 和$E_{out}$这种专业的符号,分别表示在某一确定的假设函数h中,随机抽样得到的样本错误率和整个输入空间的错误率,同样可以使用霍夫丁不等式对以上得到的结论做出相应的数学表达,如公式4-4所示。 63 | $$P[|E_{in} - E_{out}| > \varepsilon] \le 2\exp(-2\varepsilon^2N) \qquad \text {公式4-4}$$ 64 | 65 | 但是,我们想得到的不是给定一个已确定的假设函数h,通过样本的错误比例来推断出在整个输入空间上的错误概率,而是在整个输入空间上同目标函数f最接近的假设函数h。 66 | 67 | 那如何实现最接近呢?说白了错误率最低。只需在上述结论上再加一个条件,即错误比例 $E_{in}$很小即可。总结下,在结论$E_{in} (h) \approx E_{out}(h)$基础之上,加上 $E_{in}(h)$很小,可以推出$E_{out}(h)$ 也很小,即在整个输入空间中h≈f。 68 | 69 | 上面说了那么多,可能很多人已经糊涂了,因为这并不是一个学习问题,而是一个固定假设函数h,判断该假设函数是否满足上述性质,这准确的讲是一种确认(Verification),确实如此,这种形式不能称为学习,如图4-3所示。 70 |
71 |
图4-3 确认流程图
72 | 73 | ## 4.4 Connection to Real Learning 联系到真正的学习上 74 | 75 | 首先我们要再次确认下我们上一小节确定的概念,要寻找的是一个使得$E_{in}$很小的假设函数h,这样就可以使得h和目标函数f在整个输入空间中也很接近。 76 | 继续以丢硬币为例,形象的观察这种学习方法有无问题,如图4-4所示。 77 |
78 |
图4-4 丢硬币的例子
79 | 80 | 假设有150个人同时丢五次硬币,统计其中有一个人丢出五次全部正面向上的概率是多少,不难得出一个人丢出五次正面向上的概率为$\frac{1}{32}$,则150人中有一人丢出全正面向上的概率为$1- (\frac{31}{32}) ^{150} > 99\%$ 。 81 | 82 | 这其中抛出正面类比于绿色小球的概率也就是$1- E_{in}$。当然从选择的角度肯定要选择犯错最小的,即正面尽可能多的情况,此例中不难发现存在全部都为正面的概率是非常大的,此处应注意,选择全为正面的或者说$E_{in}$ 为0 并不正确(因为想得到的结果是 $\frac{1}{32}$,而不是99%)这一结论与真实的情况或者说$E_{out}$ 差的太远(我们不仅仅要满足$E_{in}$ 很小条件,同时还要使得 $E_{in}$与$E_{out}$不能有太大差距)。因此这种不好的样本的存在得到了很糟糕的结果。 83 | 84 | 上面介绍了坏的样例(bad sample),把本来很高的$E_{out}$,通过一个使得$E_{in}$的坏抽样样本进行了错误的估计。 85 | 86 | 到底是什么造成了这种错误,要深入了解。我们还需要介绍坏的数据(bad data)的概念。(这里写一下自己的理解,坏的样本bad sample∈坏的数据bad data) 87 | 88 | 坏的数据就是使得 $E_{in}$与$E_{out}$ 相差很大时,抽样到的N个输入样本(我的理解不是这N个输入样本都不好,可能只是有几个不好的样本,导致该次抽样的数据产生不好的结果,但此次抽样的数据集被统一叫做坏的数据),根据霍夫丁不等式这种情况很少出现,但是并不代表没有,特别是当进行假设函数的选择时,它的影响会被放大,以下进行一个具体的说明 89 | 90 | 如果通过算法找出的g满足$E_{in}(g) \approx 0$ ,则通过PAC的规则可以保证$E_{out}(g) \approx 0$。 91 | -------------------------------------------------------------------------------- /ch04/4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wen-fei/TaiWanML/f5928efc190bb0dc238a3b2b7550eaaf049fa0a6/ch04/4.pdf -------------------------------------------------------------------------------- /ch05/5.md: -------------------------------------------------------------------------------- 1 | # 五、Training versus Testing 训练与测试 2 | ## 5.1 Recap and Preview 回顾以及预览 3 | 首先回顾一下上一章学过的内容,学习在何种情况下是可行的。 4 | 5 | 在可学习的数据来自于一个统一的分布(distribution),且假设空间中的假设函数为有限个的情况下,其学习流程图如图5-1所示。 6 |
7 |
图5-1 一种可行的学习流程图
8 | 9 | 此图和前几章中的流程图最大的不同是加入了一个模块,准确的说是一种假设情况,假设训练数据样本和未知的测试样本来自**同一的分布**(这点尤为重要现有的大部分机器学习算法都从这点出发,好像迁移学习不是),并且假设空间的假设是有限的情况下,即|H| = M,M是有限的值,在训练样本N足够大,假设空间中的所有的假设都会遵循PAC准则,确保$E_{in} \approx E_{out}$,每一个假设函数都可以满足近似相等的性质,因此可以通过算法在这些假设空间中找一个$E_{in}(g) \approx 0$的假设,同样PAC也保证了$E_{out}(g) \approx 0$。因此可以说机器学习在这种情况下是可行的。(训练样本和测试样本满足同分布,假设空间有限,并且训练数据足够大) 10 | 11 | 在第四章中介绍的假设空间的大小M与上述两个问题存在何种关系?通过一个表格进行分析,如表5-1所示。 12 | 13 | | |M很小的时候 |M很大的时候 | 14 | |-----------------|:--------------------:|-------| 15 | |第一个问题$E_{in}(g) \approx E_{out}(g)$ | 满足, $P_D[BADD] \ le 2M \cdot \exp(\cdot)$ M小的时候,两者不相等的几率变小了 | 不满足,$P_D[BADD] \le 2M \cdot \exp(\cdot)$ M大的时候,两者不相等的几率变大了| 16 | |第二个问题 $E_{in}(g) \approx 0$ | 不满足,在M变小的时候,假设的数量变小,算法的选择变小,可能无法找到$E_{in}(g)$ 接近0的假设| 满足, 在M变大的时候,假设的数量变大,算法的选择变大,找到$E_{in}(g) \approx 0$ 假设的几率变大| 17 | 18 | 显然M趋于无穷大时,表现非常不好,如何解决这个问题呢? 19 | 20 | 需要寻找一个小于无限大M的替代值,并且这个值还和假设空间有关系,用 $m_H$表示。以后的几章中讨论如何在M为无限大时,保证$E_{in}(g) \approx E_{out}(g)$。 21 | 22 | ## 5.2 Effective Number of Lines 线的有效数量 23 | 24 | 第四章的结尾求出了在有限假设空间中 $E_{in}(g) \approx E_{out}(g)$ 的上限,当时,使用联合上限(union bound),实际不等式的上界被**放大**了太多。假设在假设空间中包含无限多的假设函数,则此上限为无穷大,而真正合理的上界是**不应该大于1**(因为是个概率问题,其最大值也不会超过1)。 25 | 26 | 造成这一问题的原因是什么呢?很容易想到这个联合上界是不是过于宽松了。对,问题确实出在此处,学过集合的同学肯定都知道,两个集合的或集写成两个集合相加的形式时,一定要减去它俩的交集。而我们这里的问题出在,这几个集合不仅相交,而且交集很大,却**没有被减掉**,因此上界过于宽松。 27 | 28 | 继续回到假设空间的问题上,两个假设函数出现完全相同坏数据的可能性很大,如上一章表4-3的h2和h3就出现了几个相同的坏数据。举个简单的例子,在二维平面上进行二元线性分类,假设两条直线h1和h2很接近,那么就不难得出两种假设的坏数据也基本重叠,其实这种数据的分布应为图5-2所示。 29 |
30 |
图5-2 不好数据的分布
31 | 32 | 如果可以将这无限大的假设空间分成有限的几类,按照样本数据划分方式进行分类,如是 和 被定义为两种不同的类别。这一思路的原因个人认为有两个:一是这本身就是一个数据分类错误率的问题,从数据分类方式着手也很切要害;二是训练样本必然是有限的,分类的方式也是有限的,可以将无限的问题转换成有限的问题。 33 | 34 | 先从最简单的分一个样本点着手,假设是一个二元线性分类问题,一个样本的例子比较容易理解,如图 5-3所示。 35 |
36 |
图5-3 单一训练样本分类问题
37 | 38 | 一个样本点分类可以有几种方式?无非两种,该样本为正,或者为负。而假设空间中的所有假设或者称之为直线,都只能分属于这两种情况。 39 | 40 | 继续观察两个样本的情况,如图5-4所示。 41 |
42 |
图5-4 两个训练样本分类问题
43 | 44 | 这种情况可以分为如图所示的4种情况,也就是所有的直线可以分属这4个类中。 45 | 46 | 继续观察三个样本的情况,如图5-5所示。 47 |
48 |
图5-5 三个训练样本分类问题
49 | 50 | 出现了8种情况,但是如果样本的分布转变一下呢?比如三排成一线,就只有6类,如图5-6所示。 51 |
52 |
图5-6 三个训练样本排成一条直线的分类问题
53 | 54 | 继续观察四个样本的情况,如图5-7所示。 55 |
56 |
图5-7 四个训练样本分类问题
57 | 58 | 说明一下此处只画了8种情况(其中一种还不可能线性可分),因为直接将其颠倒就可以得到剩下的8种情况,完全是对称的,所示总共有14种可以划分的种类。 59 | 60 | 不再无休止的继续举例,做一个总结。从上述内容可以看出,将无限多的假设和有限多的训练数据建立了一种关系,如图5-为是样本为二维时,二元线性可分的类型与样本数量的关系图。 61 |
62 |
图5-7 二元线性可分的类型与样本数量的关系图
63 | 从图中可以推到出下述公式成立,如公式5-1所示。 64 | $$ 65 | P[|E_{in}(g) - E_{out}(g)| > \varepsilon] \le 2 \cdot effective(N) \cdot \exp(-2 \varepsilon^2N) 66 | $$ 67 | 68 | 其中N在大于3的情况下,必然远小于2的N次方。其实即使是等于2的N次方,也可以说明右边的式子在N趋于无穷大的情况下是一个趋近于零的值,原因很简单,e这个自然常数的值大于2.7也大于2,因此右式是个递减函数,此处不做过多的推导了。 69 | 70 | ## 5.3 Effective Number of Hypotheses 超平面的有效数量 71 | 72 | 上一节的内容介绍了,将无限多的假设转换成为有限多种类型上。 73 | 74 | 这种以训练样本的分类情况来确定一类假设的方式,称之为二分类(dichotomy),使用符号表示为H(x1,x2,…,xN),即假设空间在特定的训练样本集合(x1,x2,…,xN)上被分为几类。如表5-2所示,对二分类空间与假设空间做出比较。 75 | 76 |
表5-2 假设空间与二分空间的对比
77 | 78 | | |假设空间|二分H(x1, x2, ..., xN)| 79 | |----|:-----:|:-------------------:| 80 | |举例| 在空间中所有的线| {OOX, OOO,OXX,...}| 81 | |大小| 无限大| 上限为 $2^x$ | 82 | 83 | 以二元线性可分的情况举例,假设空间是在二维平面上的所有直线,它一定是无限的;而二分空间就是能将二维平面上的样本点划分为不同情况的直线种类(不同情况具体是什么意思,参见上一节),而它最多只是$2_N$,因此是有限的。 84 | 85 | 现在的思路就是使用H(x1,x2,…,xN)的大小来取代无限大的M,如何取代呢? 86 | 87 | 会发现H(x1,x2,…,xN)的取值取决于训练样本的分布情况,因此要取消这种依赖的关系,取消的方式就是寻找在样本点个数固定的情况下最大的H(x1, x2, …, xN)取值,公式如5-2所示。 88 | $$ 89 | m_H(N) = \max_{x_1,x_2, ..., X_N eX}|H(x_1, x_2, ..., x_N)| 90 | $$ 91 | 92 | 符号$m_H(N)$表示一个比无限大的M小且与假设空间H有关的**关于样本大小N**的函数。这一函数叫做成长函数(growth function)。 93 | 94 | 如何具体化(就是只使用训练样本的大小N来表达出该函数)成长函数成为接下来需要解决的问题。先从简单的例子着手一步一步的推导到在感知器下该函数的具体表达。 95 | 96 | 第一个例子是举一个最简单的情况,在一维实数的情况下,并且限制分类的正方向指向固定的一边,求解成长函数。给这一分类情况起名叫做正射线(positive rays),如图5-8所示。 97 | 98 |
99 |
图5-8 正射线的二元分类
100 | 101 | 用数学的方式表示如下: 102 | 103 | 1. 输入数据样本为 $x \in R$,R为实数集; 104 | 2. 其假设空间可以表示为$h(x) = sign(x-a)$,其中a是阈值,表示大于某个实数a数据被分为正类,反之为负类。 105 | 3. 本质是在一维平面上的感知器,只是比一维感知器少了相反方向可以为正的情况(此种分类已经规定向右的方向为正,而一维感知器可以规定相反的方向也为正,就比它多了一倍)。 106 | 107 | 正射线分类的成长函数很容易得出,如公式5-3所示。 108 | 109 | $$m_H(N) = N + 1$$ 110 | 111 | 求出的思路很简单, N个点两两之间的空隙个数为N-1,再加上端点的个数2(左端点是全正,右端点是全负),且可得出在N很大的情况下公式5-4成立。 112 | $$N+1 \le 2^N$$ 113 | 114 | 课后题中提到了不规定正方向的情况下成长函数的计算即求在一维情况下感知器的分类情况,如公式5-5所示。 115 | $$m_H(N) = 2 \cdot N$$ 116 | 117 | 求解的思路为,在N个点上两两之间有2·(N-1)中可能,因为正方向没有规定了,所以此处比正射线的种类多出了一倍,剩下样本点都为正类,或者都为负,这两种情形,因此再加上一个2。 118 | 119 | 下一个例子还是在一维空间里,与正射线分类不同的是,这是一种中间为正两边为负的情况,叫做中间为正的分类(positive interval),如图5-9所示。 120 | 121 |
122 |
图5-9 中间为正的分类
123 | 124 | 其成长函数不难求出,如公式5-6所示。 125 | 126 | $$ 127 | m_H(N) = C_{N+1}^2 + 1 = \frac{(N+1)\cdot N}{2} + 1=\frac{1}{2}N^2 + \frac{1}{2}N + 1 128 | $$ 129 | 130 | 求解思路如下:此为一个两端都不固定范围的分类(正射线是固定一个端点,直接到头都为一种类型),因此在N+1个空隙中选择两个作为端点(样本两两之间有N-1个空隙,两端还各有一个),因此为一个组合问题 ,但是少算了一种全负情况,即两个端点在同一个空隙之中(是哪个空隙不重要,只要落到一起即为全负),所以再加1。 131 | 132 | 同样在N很大时,也小于上限,如公式5-7所示。 133 | $$ 134 | \frac{1}{2}N^2 + \frac{1}{2}N + 1 \le 2^N 135 | $$ 136 | 137 | 接着举一个二维平面上的例子,以凸图形分类为例,在凸区域内部为正,外部为负,也就是凸区域的边界作为假设函数的划分线,如图5-10所示。 138 | 139 |
140 |
图5-10 a) 蓝色部分表示一种凸的图形 b)蓝色部分表示非凸的图形
141 | 142 | 如何求解在这种情形下的成长函数?成长函数是寻找一个最大值的情形,因此要取一些极端的情况,比如所有的点都落在一个圆圈上,用一个凸多边形将所有正类的样本点连接起来,将此图形稍微的放大一点,得到的凸多边形,其中间的区域为正,外边的区域为负,如图5-11所示。 143 | 144 |
145 |
图5-11 凸多边形分类
146 | 147 | 课程里说到此处就直接给出结果了,如公式5-8所示。 148 | $$m_H(N) = 2^N$$ 149 | 150 | 如果N个样本点可以写出 种类型的假设,即公式5-8成立的情况下,我们称N个样本点满足完全二分类情形(shattered),即可以分为 种二分类(dichotomy)。 151 | 152 | ## 5.4 Break Point 突破点 153 | ![Markdown](http://i4.nbimg.com/602813/6c2de4cb566aec16.png) 154 | 155 | 更希望得到一种多项式(polynomial)形式的成长函数,而不是指数(exponential)形式的,因为这样上界$2m_H(N) \cdot \exp(-2 \varepsilon^2)$ 的下降速度将会更快。能否找出一种规律将表中二维感知器的成长函数也写成多项式形式的呢?于是提出了一个新的概念,突破点(break point)。 156 | 157 | 那什么叫突破点呢?对于三个样本点的感知器,所有的样本还是满足完全二分类情形(shattered,也就是还是可以最大化分类的),但是四个样本是却不能满足完全分类情形(不能满足 种分类了),于是我们称不能满足完全分类情形的样本数量为突破点,可以想象得出当有更多的样本点时,一定也不能满足完全分类情形。因此二维感知器成长函数的突破点是4。在通过一个表5-4来说明上节提到的所有分类情况。 158 | 159 | ![Markdown](http://i1.nbimg.com/602813/883bc632121d17b6.png) 160 | 161 | 从表中可以看出可能成长函数和突破点之间有一定的关系,即突破点是k的情况下,成长函数$m_H(N) = O(n^{k-1})$ 。(但是这是一个过于宽松的上界,从表5-4的第二行可以看出成长函数实际比这个规律要小) -------------------------------------------------------------------------------- /ch05/5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wen-fei/TaiWanML/f5928efc190bb0dc238a3b2b7550eaaf049fa0a6/ch05/5.pdf -------------------------------------------------------------------------------- /ch06/6.md: -------------------------------------------------------------------------------- 1 | # 六、Theory of Generalization 泛化理论(举一反三) 2 | ## 6.1 Restriction of Break Point 突破点的限制 3 | 4 | 回顾一下上一章中提到的成长函数$m_H(N)$的定义:假设空间在N个样本点上能产生的最大二分(dichotomy)数量,其中二分是样本点在二元分类情况下的排列组合。 5 | 6 | 上一章还介绍了突破点(break point)的概念,即不能满足完全分类情形的样本点个数,完全二分类情形(shattered)是可分出$2^N$ 种二分类(dichotomy)的情形。 7 | 8 | 继续举例说明,假设一种分类情形最小的突破点为2,即 k=2。 9 | 10 | 容易求出在N=1 时,成长函数 $m_H(N) = 2$ 11 | 12 | 在N=2时,成长函数$m_H(N)<2_N=4$ (突破点是2),因此最大的二分类个数不可能超过3,假设为3。 13 | 14 | 继续观察N=3时的情形,因理解稍微有些复杂,还是以图的形式表达,如图6-1所示。 15 | 16 | 如图6-1a)表示在三个样本点时随意选择一种二分的情况,这种分类没有任何问题,不会违反任意两个样本点出现四种不同的二分类情况(因为突破点是2); 17 | 18 | 如图6-1b)表示在a)的基础上,添加不与之前重复的一种二分类,出现了两种不冲突的二分类,此时同样也没有任何问题,不会违反任意两个样本点出现四种不同的二分类情况; 19 | 20 | 如图6-1c) 表示在b)的基础上,再添加不与之前重复的一种二分类,出现了三种不冲突的二分类,此时同样也没有任何问题,不会违反任意两个样本点出现四种不同的二分类情况; 21 | 22 | 如图6-1d) 表示在c)的基础上,再添加不与之前重复的一种二分类,问题出现了,样本$x_2,x_3$ 出现了四种不同的二分情况,和已知条件中k=2矛盾(最多只能出现三种二分类),因此将其删去。 23 | 24 | 如图6-1e) 表示在c)的基础上,再添加不与之前重复的一种二分类,此时同样也没有任何问题,不会违反任意两个样本点出现四种不同的二分类情况; 25 | 26 | 如图6-1f) 表示在e)的基础上,再添加不与之前重复的一种二分类,问题又出现了,样本$x_1,x_3$出现了四种不同的二分情况,和已知条件中k=2的条件不符(最多只能出现三种二分类),因此将其删去。 27 | 28 | 29 |
30 | 31 |
32 |
a)      b)
33 | 34 |
35 | 36 |
37 |
c)      d)
38 | 39 |
40 | 41 |
42 |
e)      f)
43 |
图6-1 样本数为3时的二分类情形
44 | 45 | 在突破点是2,样本点为3时,最多只能有四种二分类情况,而 $4 \ll 2^3$。 46 | 47 | 从上述情形,可以做一个猜想,成长函数$m_H(N)$ 小于等于某个与突破点**k有关的二次项**,如果可以证明这一结论,即能寻找到一个可以取代无限大M的数值,同理即能公式4-6在假设空间为无限大时也是成立,即机器是可以学习的。 48 | 49 | 假设突破点k=1,在样本数为3时,最大的二分类个数是多少?答案是1,可以想象,在样本为1时,只有一种分类情形,假设这种情形是正,则以后所有样本也为正,才能满足上述条件,所以样本N不论为多少,其最大二分类数都是1。 50 | 51 | ## 6.2 Bounding Function - basic function 上限函数的基本情形 52 | 根据上一小节的例子,提出一个新的概念,上限函数 $B(N,k)$(bounding function),其定义为在最小突破点为k时,表示成长函数 $m_H(N)$ **最大值**的函数。此函数将成长函数从各种假设空间的关系中解放出来,不用再去关心具体的假设,只需了解此假设的突破点,突破点相同的假设视为一类,抽象化成长函数与假设的关系。 53 | 54 | 二分类的个数或者称之为成长函数$m_H(N)$ 说白了就是二元(在图中表示为"×"或者"○ "的符号)符号在在长度为N的情况下的排列组合(每个不同的排列代表一个二分类,每种二分类可看做一个向量)个数。 55 | 56 | 在强调一遍,提出这种上限函数的好处在于,它的性质可以不用关心到底使用的是何种假设空间,只需要知道突破点便可以得到一个上限函数来对成长函数做约束。 57 | 58 | 例如:$B(N,3)$ 可以同时表示一维空间的感知器(1D perceptrons)和间隔为正(positive intervals)的两种假设空间,因为两者都满足k=3 。注意一维的成长函数为$m_H(N) = 2N$,而间隔为正的成长函数为$m_H(N) = 1/2N^2 + 1/2N + 1$,$B(N,3)$ 一定比这两种情况中最大的还要大,才能约束成长函数,回忆上限函数的定义,是成长函数$m_H(N)$最大值的函数表示,从这个例子中可以理解为何还会出现"最大值"。 59 | 60 | 想要证明$B(N,k) < poly(N)$ 。 61 | 62 | 先观察已知的 $B(N,k)$如何表示,通过列表方式找出规律,如图6-2所示。 63 | 64 |
65 |
66 |
图6-2 已知的$B(N,k)$ 取值
67 | 68 | 在 N=k的这条斜线上,所有值都等于$2^N -1$ ,这一原因在上一节推导中已经提到过,原因是突破点代表不能完全二分类的情况,因此在此情况下最大的二分类数可以是$2^N -1$ 。在这条斜线的右上角区域所有的点都满足完全二分类的,因此值为 $2^N$。 69 | 70 | 而在斜线右下角上已给出数值的点都是在上一节中已求出答案的点,空白地方的值则是下节需要介绍的内容。 71 | 72 | 当突破点等于K的时候,成长函数的上限成为上限函数,公式如下 73 | 74 | 75 | $$B(N,k) = \max(m_H(N))$$ 76 | ## 6.2 Bounding Function - Inductive Cases 上限函数的归纳情形 77 | 78 | 这一小节主要是将上一小节空白的内容填写上,从已有的数据上可以看出一个似乎是正确的结论:每个值等于它正上方与左上方的值相加。 79 | 如公式6-1所示。 80 | $$B(N,k) = B(N-1, k) + B(N-1, k-1)$$ 81 | 82 | 当然单从观察是无法证明该公式是成立的,以下从结论出发来验证它的正确性。 83 | 84 | 首先通过计算机求出N=4, k=3 的所有二分情况(自己编写程序加上限制条件,在16个二分类中找出符合条件的),其结果如图6-3所示。 85 | 86 |
87 |
图6-3 N=4,k=3的所有二分类
88 | 89 | 图6-3中的展示效果还是有些混乱,对这11种情况做一次重新排序,将$x_4$与$x_1~x_3$ 分开观察,如图6-4所示,橙色部分为 $x_1~x_3$两两一致、 $x_4$成对(pair)出现的二分类,设橙色部分一共 $\alpha$ 对二分类,即 $2 \alpha$种二分类;紫色部分为各不相同的$x_1 ~ x_3$ ,设紫色部分一共 $\beta$ 种,得公式6-2。 90 | $$B(4,3) = 11 = 2 \times 4 + 3 = 2 \alpha + \beta$$ 91 | 92 |
93 |
图6-4 以成对和单个的形式展示
94 | 95 | 注意$k=3$ ,意味着在样本点为3时,不能满足完全二分的情形。需要观察在样本数为3时,这11种分类会有何变化,不妨假设这三个样本是$x_1 ~ x_3$ ,于是只剩如图6-5所示的7种二分类情形。 96 | 97 | 98 |
99 |
图6-5 三个样本时缩减之后的二分类
100 | 101 | 其中橙色部分,原本两两成对出现的二分类,在去掉$x_4$ 所属的那列样本之后,就合并成了4种二分类情况($\alpha = 4$ ),紫色部分不变依然为3种二分情况( $\beta =3$)。因为已知$N=4, k=3$ ,在样本数为3时,图6-5中即表示样本书为3 的情况,其一定不能满足完全二分,因此与$\alpha \text{与} \beta$ 一定满足公式6-3。 102 | $$\alpha + \beta \le B(3,3)$$ 103 | 104 | 继续观察橙色部分的区域,如图6-6所示。 105 |
106 |
图6-6 三个样本时橙色区域的二分类
107 | 108 | 以下使用反证法证明。假设$x_1 ~ x_3$三个样本在如上图所示的四种二分类情况下,满足任意两个样本都可完全二分类。将$x_1 ~ x_3$中任意两列取出,同之前被删除的$x_4$列相结合,一定可得到一种三个样本都满足完全二分类的情形(因为不论是哪两列与相结合都会得到8种二分类,每一行二分类都对应两个不同标记的,因此为8种。且两列四行的二分类是全完二分的,在此基础上加上不同属性的列,应该也不会重复,因此一定也是全完二分的)。但是此结论和已知任意三个样本不能完全二分冲突了,因此假设不成立,即在图6-6中一定存在某两个样本点不能完全二分的情况,因此得出如公式6-4所示的结论。 109 | $$\alpha \le B$$ 110 | 111 | 由公式6-2~公式6-4推导出公式6-5。 112 | $$ 113 | \begin{aligned} 114 | B(4,3) &= 2\alpha + \beta \\ 115 | &= \alpha + (\alpha + \beta) \\ 116 | &\le B(3,3) + B(3,2) 117 | \end{aligned} 118 | $$ 119 | 120 | 最终还能推导出公式6-6的通用结论,也就是开始时公式6-1的猜想。 121 | $$ 122 | \begin{aligned} 123 | B(N,k) &= 2\alpha + \beta \\ 124 | &= \alpha + (\alpha + \beta) \\ 125 | &\le B(N-1) + B(N-1, k-1) 126 | \end{aligned} 127 | $$ 128 | 129 | 根据这一结论将图6-2补齐,如图6-7所示。 130 | 131 |
132 |
图6-7 补齐后的上限函数表
133 | 134 | 最后可以通过如下方式证明公式6-7是成立的。 135 | $$ 136 | B(N,k) = \sum_{i=0}^{k-1}C_N^i 137 | $$ 138 | 139 | 首先需要预先了解组合中的一个定理,如公式6-8所示。 140 | $$ 141 | C_n^k = C_{N-1}^k + C_{N-1}^{k-1} 142 | $$ 143 | 很容易证明K=1 情况下公式6-7成立,如公式6-9所示。 144 | $$ 145 | B(N,1) = 1 = C_N^0 \le \sum_{i=0}^{1-1}C_N^i 146 | $$ 147 | 148 | 上一节中已经给出了证明,不仅仅是满足不等号条件,而且满足等号。 149 | 150 | 再使用数学归纳法证明在的情况,公式6-7成立。 151 | 152 | 假设公式6-10成立,则可以得到在的情况下公式6-11成立,同时结合公式6-6的结论,公式6-12也能被推导出来。 153 | 154 | ![Markdown](http://i4.bvimg.com/602813/636b87fb13dcd9ab.png) 155 | 156 | 这一结果意味着:成长函数 $m_H(N)$的上限函数$B(N,k)$ 的上限为$N^{k-1}$ 。 157 | 158 | # 6.4 A Pictorial Proof 一种形象化的证明 159 | 160 | 至此说明了(不敢叫证明)一个在机器学习领域很著名的理论——V-C上界制(Vapnik-Chervonenkis bound)。 161 | 162 | 2维的感知器,其突破点为4,因此其成长函数为$O(N^3)$,可以使用这个VC上界来说明在样本N足够大时候,发生坏事的情况很少,即选择一个在样本中错误率很小的g,可以得出其在整个数据上错误率也很低的结论,说明机器学习是可能的。 -------------------------------------------------------------------------------- /ch06/6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wen-fei/TaiWanML/f5928efc190bb0dc238a3b2b7550eaaf049fa0a6/ch06/6.pdf -------------------------------------------------------------------------------- /ch07/7.md: -------------------------------------------------------------------------------- 1 | # 七、The VC Dimension VC维 2 | 3 | ## 7.1 Definition of VC Dimension VC维的定义 4 | 5 | 先对上一章的内容作简单总结:如果一个假设空间存在突破点。则一定存在成长函数$m_H(N)$被某个上限函数$B(N,k)$所约束,可求出上限函数等于一个组合的求和形式$\sum_{i=0}^{k-1}C_N^i$,易知该形式的最高次项是$N^{k-1}$。图7-1a)和b)分别是以上限函数为成长函数上限的情况和以为成长函数上限的情况。 6 | 7 |
8 |
9 |
图7-1 a) 以上限函数为上限 b) 以$N^{k-1}$为上限 10 |
11 | 从图中可以看出在$N \ge 2$ 且 $K \ge 3$的情况下,满足$B(N,k) \le N{K-1}$,得到公式7-1。 12 | $$ 13 | m_H(N) = B(N,k) = \sum_{i=0}^{k-1}C_N^i \le N^{k-1} 14 | $$ 15 | 16 | 通过公式7-1和上一章的结论可以得出公式7-2。 17 | $$ 18 | \begin{aligned} 19 | P_D[|E_{in}(g) - E_{out}(g)| > \varepsilon] 20 | &\le P_D[\exists h \in s.t. |E_{in} - E_{out}| > \varepsilon] \\ 21 | &\le 4m_H(2N)\exp(-\frac{1}{8}\varepsilon^2N) \\ 22 | &\le^{\text{if K exists}} 4N^{k-1}\exp(-\frac{1}{8}\varepsilon^2N) 23 | \end{aligned} 24 | $$ 25 | 26 | 该公式的意义是在输入样本N很大时,VC限制一定成立,同时等式的左边也一定会在$k \ge 3$ 的情况下被以多项式形式($N^{k-1}$)所约束(注意这里$N \ge 2$的条件没有了,原因很简单,VC限制是样本N很大的情况下产生的,因此一定满足$N \ge 2$的条件),而在k<3的情况下有其他的限制可以满足(比如前几章提到的如正射线之类的分类不需要多项式形式的限制也可以约束住成长函数)。 27 | 28 | 至此得知,满足以下几个条件,机器便可以学习: 29 | 30 | 1. 假设空间的成长函数有一个突破点k(有好的假设空间H); 31 | 2. 输入数据样本N足够的大(有好的输入样本集D); 32 | 33 | 1和2通过VC限制共同推出了$E_{in}$和$E_{out}$有很大的可能很接近。 34 | 35 | 1. 一个算法A能够找出一个使 $E_{in}$ 足够小的g(好的算法A); 36 | 37 | 再结合1和2得出的结论就可以进行学习了(当然这里需要一点好的运气)。 38 | 39 | 接下来介绍一下这一节的正题,VC维度或者VC维(VC dimension)是什么意思。 40 | 41 | 它的定义和突破点(break point)有很大关系,是最大的一个不是突破点的数。 42 | 43 | VC维是假设空间的一个性质,数据样本可以被完全二分的最大值。用$d_{VC}$作为VC维的数学符号,假如突破点存在的话,即最小的突破点减去1,如公式7-3所示;如果不存在突破点的话,则VC维为无限大。 44 | $$d_{VC} = '\text{最小的}k' -1$$ 45 | 46 | 如果输入数据量N小于VC维$d_{VC}$,则有可能输入数据D会被完全的二分类,这里不是一定,只能保证存在。 47 | 48 | 如果输入数据量N(或者用k表示)大于VC维$d_{VC}$,则有k一定是假设空间H的突破点。 49 | 50 | 使用VC维$d_{VC}$对公式7-1进行重写,在$N \ge 2$ 且$ d_{VC} ge 2$时,如公式7-4所示。 51 | $$ 52 | m_H(N) \le N^{d_{VC}} 53 | $$ 54 | 对第五章中提到的几种分类,使用VC维取代突破点,表示VC维与成长函数的关系,如表7-1所示。 55 |
56 | 57 | 对上述条件1中好的假设空间重新做一个定义,**即有限的VC维$d_{VC}$**。 58 | 59 | 一个有限的VC维总是能够保证寻找到的近似假设g满足$E_{in}(g) \approx E_{out}(g)$,这一结论与下述部分没有关系: 60 | 61 | 1. 使用的算法A,即使很大$E_{in}(g)$,也依然能满足上述的性质; 62 | 2. 输入数据的分布P; 63 | 3. 未知的目标函数f。 64 | 65 | 即VC维可应对任意的假设空间,任意的数据分布情况,任意的目标函数。 66 | 67 | 满足这一性质可以得到如图7-2所示的流程图,其中灰色的部分表示上述几个不会影响$E_{in}(g) \approx E_{out}(g)$这一结果的部分。 68 |
69 |
图7-2 由VC维保证机器可以学习的流程图
70 | 71 | ## 7.2 VC Dimension of Perceptrons 感知器的VC纬 72 | 73 | 以下两个条件保证了2维线性可分的数据是可以学习的。 74 | 75 | 1. 线性可分的数据通过PLA算法运行足够长的时间(T步骤足够大),则会找出一条可以正确分类的直线,使得样本中没有产生分错类的情况,即$E_{in}(g) = 0$; 76 | 2. 在训练样本和整个数据集都服从同一分布P的前提下,有VC限制保证了,在且训练样本N足够大时,$E_{in}(g) \approx E_{out}(g)$。 77 | 78 | 以上两个条件共同得出$E_out(g) \approx 0$的结论。 79 | 80 | 这一节讨论的是PLA能否处理维数大于二维的数据。 81 | 82 | 从上一节的内容得知:只要求出$d_{VC}$是一个有限数,则可以使用VC限制来保证$E_{in}(g) \approx E_{out}(g)$。于是问题变成了在维数大于二维时,感知器的VC维$d_{VC}$如何表示(能否表示成一个有限数)。 83 | 84 | 两种已知感知器的VC维表示。1维感知器的VC维:$d_{VC} =2$;2维感知器的VC维:$d_{VC} = 3$。 85 | 86 | 能否以此类推得出d维感知器的VC维:$d_{VC} = d + 1$呢? 87 | 88 | 上述只是一种猜想,接下来是对此猜想进行证明,证明的思路也很传统,证明等于号的成立分为两步:证明大于等于$d_{VC}$以及小于等于$d_{VC} \le d+1$。 89 | 90 | 证明大于等于的思路:证明存在d+1数量的某一数据集可以完全二分;证明小于等于的思路:证明任何d+2数量的数据集都不可以完全二分。 91 | 92 | 首先证明大于等于。因为只需要证明存在,不妨构造一个输入样本集,假设样本为一个行向量,其中第一个样本为0向量,第二个样本是其第一个分量为1其他分量为0的向量,第三个样本是其第二个分量为1其他分量为0的向量,以此类推,第d+1个样本是其第d个分量为1其他分量为0的向量,如: ,,,…,,在感知器中样本X如公式7-5所示,其中每一个样本加上默认的第0个分量,其值为1(从阈值b变成$w_0$所乘的样本分量)。 93 | $$ 94 | \begin{bmatrix} 95 | 1 & x_1 \\ 96 | 1 & x_2 \\ 97 | 1 & x_3 \\ 98 | \vdots & \vdots \\ 99 | 1 & X_{d+1} 100 | \end{bmatrix} = 101 | \begin{bmatrix} 102 | 1 & 0 & 0 & 0 & \cdots & 0 \\ 103 | 1 & 0 & 0 & 0 & \cdots & 0 \\ 104 | 1 & 0 & 0 & 0 & \cdots & 0 \\ 105 | \vdots & \vdots & & & \ddots &0 \\ 106 | 1 & 0 & 0 & 0 & \cdots & 0 107 | \end{bmatrix} 108 | $$ 109 | 110 | 很容易证明该矩阵式可逆:除了第一行之外的每一行都减去第一行得到一个对角矩阵,因此为满秩,可逆。 111 | 112 | 需要证明的是可以完全二分,关注的重点为输出标记向量 $y_T = []y_1, y_2, y_3, \cdots, y_{d+1}]$。只要找出各种权值向量$W$ 能将上述输入样本集X映射到全部的二分情况下y的上就可以了。 113 | 114 | 需要证明的是可以完全二分,关注的重点为输出标记向量 。只要找出各种权值向量$W 能将上述输入样本集X映射到全部的二分情况下的$y$上就可以了。 115 | 116 | 已知感知器可以使用$sign(Xw)=y$ 表示。而只要权值向量使得$Xw=y$成立,就一定满足$sign(Xw)=y$ 的需求。假设其中输入矩阵如公式7-5所示,即X是可逆矩阵,输出向量y的任意一种二分类情况都可以被一个假设函数w划分出,原因是权值向量$w$ 满足 $w = X^{-1}y$ ,即任何一种二分类情况都会有一个权向量w与之对应,因此满足$d_{vc} \ge d + 1$成立。 117 | 118 | 证明小于等于的思路:证明小于等于是不能如上,举一个特殊输入数据集,因为其要证明在所有的情况下,证明过程稍微复杂一些,先以一个2维空间的例子为切入点。 119 | 120 | 假设一个2维空间,则需要观察在2+2个输入数据量,不妨假设这四个输入样本分别是$x_1 = [0,0]$,$x_2 = [1,0]$,$x_3 = [0,1]$,$x_4 = [1, 1]$。输入数据集X如公式7-6所示。 121 | 122 | $$ 123 | X = 124 | \begin{bmatrix} 125 | 1 & x_1 \\ 126 | 1 & x_2 \\ 127 | 1 & x_3 \\ 128 | 1 & x_4 129 | \end{bmatrix} = 130 | \begin{bmatrix} 131 | 1 & 0 & 0 \\ 132 | 1 & 0 & 0 \\ 133 | 1 & 0 & 0 \\ 134 | 1 & 0 & 0 135 | \end{bmatrix} 136 | $$ 137 | 138 | 可以想象在标记 $y_1$为-1,$y_2$与$y_3$为+1时,不可以为-1,如图7-3所示。 139 |
140 |
141 |
图7-3 2维数据样本不可二分的情况
142 | 143 | 用数学的形式如何表达?首先根据这四个样本可以确保公式7-7成立。 144 | $$x_4 = x_3 + x_2 - x_1$$ 145 | 146 | 该公式等号两边同时左乘权值向量$w$依旧成立,但在满足 $y_1=-1$,$y_2$与$y_3$为+1这一条件时,公式左边一定大于0,如公式7-8所示。 147 | $$wx_4 = wx_3 + wx_2 - wx_1 > 0$$ 148 | 其中,$wx_3 = 1$, $wx_2=-1$, $wx_1 = -1$ 149 | 150 | 这种样本间线性依赖(linear dependence)的关系导致了无法二分。 151 | 152 | 那在高维空间结果如何呢? 153 | 154 | 假设在d维空间中d+2个样本,其输入样本集如公式7-9所示。 155 | $$X = 156 | \begin{bmatrix} 157 | 1 & X_1 \\ 158 | 1 & X_2 \\ 159 | 1 & X_3 \\ 160 | \vdots & \vdots \\ 161 | 1 & X_{d+2} 162 | \end{bmatrix} 163 | $$ 164 | 165 | 因为样本间的线性依赖关系,一定可以得到公式7-10,其中 $a_i(i = 1,2,\cdots,d+2)$ 表示系数,该系数可正可负,也可以等于0,但是不可以全为0. 166 | $$ 167 | x_4 = a_1X_1 + a_2X_2 + \cdots + a_{d+1}X_{d+1} 168 | $$ 169 | 170 | 此处使用反证法:设存在一个这样的二分情况,$y^T = [sign(a_1), sign(a_2), \cdots, sign(a_{d+1}), -1]$,在公式7-10的等号两边左乘权值向量$W$得公式7-11。 171 | 172 | $$ 173 | w^TX_{d+2} = a_1w^Tx_1 + a_2w^Tx_2 + \cdots + a_{d+1}w^Tx_{d+1} > 0 174 | $$ 175 | 176 | 因为$a_i$和$y^T$的第i个分量同号(i=1,2,…,d+1),因此左项必然为正,假设不成立,因此在任何d+2个输入数据集中必然都存在不能满足的二分类,即$d_{VC} \le d + 1$。 177 | 178 | 至此大于等于以及小于等于都证明结束,起初的猜想$d_{VC} = d+1$成立。 179 | 180 | ## 7.3 Physical Intuition of VC Dimension VC维的直觉 181 | 182 | 上一节内容将感知器中数据的维度与VC维联系到了一起,也明白了起名时VC维中的维的含义。而在感知器中,数据样本的维度又与权值向量的维度一致,不同的权值向量对应着不同的假设函数,因此称假设函数的参数$w^T = [w_0, w_1, w_2, \cdots, w_d]$是假设空间上的自由度(degree of freedom)。如果从假设空间的数量|H|角度上描述,则自由度是无限大的;但是从感知器在二元分类上这一限制条件入手,则可以使用VC维作为自由度的衡量。 183 | 184 | 通过之前学习过的两个列子来更具体的看待VC维和假设空间参数之间的关系,如图7-4所示。 185 |
186 | 187 |
188 |
图7-4 a) 正射线
189 |
190 | 191 |
192 |
b) 间隔为正的分类
199 | 200 | 201 | 202 | 此处写点自己的思考:在一些书中,参数较多的模型都称为复杂模型,很少给出解释,这一节的内容给出了很好的解释,因为在很多情况下模型参数的个数大致等于VC维的个数。参数越多或者说模型越复杂,越有可能找出使最小的假设函数g,但是这需要大量训练样本的支持,因为只有在训练样本数量N足够大时,才能使更复杂(即参数更多或者说VC维更大)得模型出现不好情况的几率变小,如上表的右列。 203 | 204 | ## 7.4 Interpreting VC Dimension 解释VC纬 205 | 206 | VC限制的公式如7-12所示。 207 | 208 | $$ 209 | P_D[|E_{in}(g) - E_{out}(g) > \varepsilon |] \le 4(2N)^{d_{VC}}exp(- \frac{1}{8} \varepsilon^2 N) 210 | $$ 211 | 212 | 不等式的右边用符号$\delta$ 表示,则好事情$|E_{in}(g) - E_{out}(g) \le \varepsilon|$发生的几率一定大于等于 $1- \delta$,$E_{in}(g)$与$E_{out}(g)$接近程度可以使用含有$delta$的公式表示,如公式7-13所示。 213 | 214 | $$ 215 | \delta = 4(2N)^{d_{VC}}exp(-frac{1}{8} \varepsilon^2 N) 216 | \frac{\delta}{4(2N)^{d_{VC}}} = exp(-\frac{1}{8} 217 | \varepsilon^2N) 218 | $$ 219 | $$\frac{4(2N)^{d_{VC}}}{\delta} = exp(\frac{1}{8} \varepsilon^2N) 220 | $$ 221 | $$ 222 | \ln (\frac{4(2N)^{d_{VC}}}{\delta}) = \frac{1}{8} \varepsilon^2N 223 | $$ 224 | $$\sqrt{\frac{8}{N} \ln(\frac {4(2N)^d_{VC}}{\delta})} = \varepsilon 225 | $$ 226 | 227 | 228 | 其中与接近程度,即被称为泛化误差(generalization error),通过上式证明该误差小于等于 229 | $$ 230 | \sqrt{\frac{8}{N} \ln(\frac{4(2N)^{d_{VC}}}{\delta})} 231 | $$ 232 | 因此$E_{out}(g)$的范围公式可以用7-14表示 233 | $$ 234 | E_{in}(g) - \sqrt{\frac{8}{N} \ln(\frac {4(2N)^{d_{VC}}}{\delta})} \le E_{out(g)} \le E_{in}(g) + \sqrt{\frac{8}{N} \ln(\frac {4(2N)^{d_{VC}}}{\delta})} 235 | $$ 236 | 237 | 其中最左边的公式一般不去关心,重点是右边的限制,表示错误的上限。 238 | 239 | $\sqrt{\frac{8}{N} \ln(\frac {4(2N)^{d_{VC}}}{\delta})}$又被写成函数$\Omega(N,H, \delta)$称为模型复杂度(model complexity)。 240 | 241 | 通过一个图表来观察VC维到底给出了哪些重要信息,如图7-5所示。 242 |
243 |
图 7-5 错误率与VC维的关系
244 | 245 | 其中蓝色线表示$E_{in}$随VC维$d_{VC}$的变化;红色部分为模型复杂度$\Omega(N,H, \delta)$随$d_{VC}$的变化;紫色部分为$E_{out}$随VC维$d_{VC}$的变化,其中$E_{out}$可以表示用$E_{in}$与$\Omega(N,H, \delta)$表示成的$E_{out} < E_{in} + \sqrt{\frac{8}{N} \ln(\frac {4(2N)^{d_{VC}}}{\delta})}$形式。 246 | 247 | 其中$E_{in}$随着$d_{VC}$的增加而减小,不难理解,因为越大可以选择的假设空间就越大,就有可能选择到更小的$E_{in}$;模型复杂度$\Omega(N,H, \delta)$随$d_{VC}$的增加而增加也不难理解,从$\Omega(N,H, \delta) = \sqrt{\frac{8}{N} \ln(\frac {4(2N)^{d_{VC}}}{\delta})}$就能得出关系;而$E_{out}$因为这前两者的求和,因此出现了一个先降低后增加的过程,使其最小的取值为${d_{VC}}^*$。使得$E_{out}$最小才是学习的最终目的,因此寻找${d_{VC}}^*$很重要。 248 | 249 | VC维除了表示模型复杂度之外还可以表示样本的复杂度(sample complexity)。 250 | 251 | 假设给定需求$\varepsilon = 0.1$ ,$\delta = 0.1$ ,$d_{VC} = 3$,求N为多少时,即输入样本多大时才可以满足这些条件。我们将N的各个数量级代入公式$4(2N)^{d_{VC}} \exp(-\frac{1}{8} \varepsilon^2N)$,与$delta = 0.1$作比较,得到图7-6。 252 |
253 |
图7-6 N的取值与的关系
254 | 255 | 从图中可以得出在N差不多2万9千时,才可以训练出满足条件的模型,这是一个很大的数字,即数据的复杂度和VC维存在一个理论上的关系,$N \approx 10000d_{VC}$ 。但在实际应用中,倍数远比这小的多,大概是$N \approx 10d_{VC}$。造成这一现象的原因使自VC限制是个非常宽松的约束。宽松的原因主要来自以下四个: 256 | 257 | 1. 霍夫丁不需要知道未知的$E_{out}$,VC限制可以用于各种分布,各种目标函数; 258 | 2. 成长函数$m_H(N)$取代真正的二分类个数本身就是一个宽松的上界,VC限制可以用于各种数据样本; 259 | 3. 使用二项式$N^{d_{VC}}$作为成长函数的上界使得约束更加宽松,VC限制可以用于任意具有相同VC维$d_{VC}$的假设空间; 260 | 4. 联合限制(union bound)并不是一定会选择出现不好事情的假设函数,VC限制可以用于任意算法。 261 | 262 | 其实很难找出在这四个方面都可以任意选择且比VC限制约束更紧的限制了,了解VC限制的重点其实也并不是它的约束宽松与否,而是它给予我们的哲学启示。 -------------------------------------------------------------------------------- /ch07/7.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wen-fei/TaiWanML/f5928efc190bb0dc238a3b2b7550eaaf049fa0a6/ch07/7.pdf -------------------------------------------------------------------------------- /ch08/8.md: -------------------------------------------------------------------------------- 1 | # 八、Noise and Error 噪音(杂讯)和错误 2 | ## 8.1 Noise and Probabilistic Target 噪音(杂讯)和概率目标函数 3 | 这一小节主要讨论有噪音(在2.4节提到的)的情况下是否VC限制仍可用,其流程图如图8-1所示。 4 |
5 |
图8-1 含有噪音的机器学习流程图
6 | 7 | 什么是噪音,或者噪音产生的原因有哪些?仍然举银行发放信用卡的例子,用来更形象的阐述产生噪音的3种原因: 8 | 9 | 1. 标记y中存在的噪音,即错误的标记。如将本应该发放信用卡的用户,错误的标记为不符合规定的用户。 10 | 2. 标记y中存在的另一种噪音,即不同的评判标准评定同一输入样本得到不同结果,如两个用户所有的属性条件都一致,标示为一个可以发放,而另一个不可以发放。 11 | 3. 输入样本x中存在的噪音,即输入信息不准确,如用户的信息录入错误。 12 | 13 | 回到此节的重点,存在噪音时,VC限制还能起作用吗?接下来给予一个简单的推导,不同于前几章,此种情况的VC限制完整的重新推导一遍,本节主要提供的是一种证明思路。 14 | 15 | 小球罐子的例子再次登场,之前谈论的没有噪音条件时输入样本和整体样本都服从同一个概率分布。不论是罐子中存在的小球还是抽样出来的小球,其颜色都是固定不变的。此种情况,使用的是确定性(deterministic)的小球。其中小球的颜色类比于目标函数f(x)与假设函数h(x)是否一致。标记y取决于目标函数f,此学习方法叫做判别方法;但是在现实中多数为含有噪音的情况,数据依然服从统一的概率分布,但小球颜色并不固定,可以想象为颜色在不停变色的小球,只能在某一时刻才能确定它的颜色,这种小球可以叫做概率性(probabilistic)的小球。对应到机器学习上,是含有噪音的样本,即$[|y \ne h(x)|]$并不确定,其中标记y服从概率分布$P(y|x)$ ,这一形式被称为目标分布(target distribution)而不是目标函数,此方法叫做生成方法。 16 | 17 | 为何称为目标分布,举一个简单的例子,如一个样本点符合以下公式8-1。 18 | $$ 19 | P(+1|x) = 0.7 20 | $$ 21 | $$ 22 | P(-1|x) = 0.3 23 | $$ 24 | 则一定会选择错误率小的目标(mini-target),根据此原则该例选择标记为+1的,而中30%几率标记为-1又是什么意思呢?是噪音。目标函数f是一个特殊的目标分布,其概率符合公式8-2。 25 | $$ 26 | P(+1|x) = 1 \Leftrightarrow y=f(x) 27 | $$ 28 | $$ 29 | P(-1|x) = 0.3 \Leftrightarrow y \ne f(x) 30 | $$ 31 | 32 | 至此出现了两个分布函数$P(x)$和$P(y|x)$,$P(x)$越大意味着x被选为训练样本的概率越大,$P(x)$越大意味着该样本是某一类的几率越大,两者结合,即在常见的样本点上分的类尽量正确。 33 | 34 | 因此得出VC限制依然适用,因为这种含有噪音的输入样本以及标记分别服从$P(x)$和$P(y|x)$,即$(x,y)$服从$P(x,y)$的联合概率分布。 35 | 36 | 了解了本节内容之后,结合噪音和目标分布的概念对机器学习流程图进行修改,如图8-2所示,其中目标函数f变成了目标分布,它产生训练样本的标记y,同时测试的标记y也服从该分布。 37 | 38 |
39 |
图8-2 结合噪音与目标分布的机器学习流程图
40 | 41 | ## 8.2 Error Measure 错误衡量 42 | 43 | 这一小节主要介绍错误的衡量方式对机器学习的影响。 44 | 45 | 以上很多章节都在描述如何使机器学到东西,即如何使得假设函数g和目标函数f接近,即如何使得$E_{out}(g) = E_{X ~ P}[|g(x) \ne f(x)|]$尽可能的小。已知的错误衡量$E(g,f)$ 都考虑了哪些问题呢?主要有以下三个因素: 46 | 47 | 1. 整个样本空间(out-of-sample):所有未知的样本x的平均; 48 | 2. 一个点一个点评估(pointwise):每个点单独评估; 49 | 3. 使用分类(classification)的评估方式:$[|g(x) \ne f(x)|]$,因为是二元分类只有两个类别,因此相同为0,不同为1。 50 | 51 | 上述这种分类的错误(classification error)又被叫做0/1错误(0/1 error) 52 | 53 | 可以使用函数 $err()$表示逐点的错误衡量(pointwise error measure),因此训练样本的错误衡量及整个样本空间的错误衡量可分别使用公式8-3和公式8-4表示。 54 | $$ 55 | E_{in}(g) = \frac{1}{N} \sum_{n=1}^N err(g(X_n), f(X_n)) \qquad \text{(公式8-3)} 56 | $$ 57 | $$ 58 | E_{out}(g) = E_{X \sim P}err(g(X), f(X)) \qquad \text{(公式8-4)} 59 | $$ 60 | 为了表述的简单,又将假设函数$g(x)$表示为$\vec{y}$ ,目标函数$f(x)$表示为$y$ 。 61 | 62 | 除了常用在分类(classification)上的0/1错误衡量之外,还有用在回归(regression)上的平方错误(square error)衡量,它也是一种逐点(pointwise)的错误衡量方式,如公式8-5所示。 63 | $$ 64 | err(\vec{y}, y) = (\vec{y},y)^2 65 | $$ 66 | 67 | 给出了两种错误衡量的表达形式,接着讲一下错误衡量和学习之间的关系。错误衡量对机器学习有着指导作用。 68 | 69 | 在含有噪音的情况下,目标分布函数$P(y|x)$和逐点错误函数$err()共同决定了理想的错误率最小目标函数(ideal mini-target)f。 70 | 71 | 目标分布函数$P(y|x)对错误率最小目标函数f的影响在上一节中已经阐述过了,接下来通过一个例子来说明逐点错误函数对其的影响。 72 | 73 | 假设3个目标分布函数$P(y=1|x)=0.2$,$P(y=2|x)=0.7$,$P(y=3|x)=0.1$。在0/1错误衡量的情况下,不难得出各类错误率,如图8-3所示。 74 | 75 | 76 |
77 |
图8-3 0/1错误衡量的情况下各标记的错误率
78 | 79 | 不难得出y=2时错误率最低,因此应选择y=2的标记,其中有个怪异的标记为1.9,该标记在0/1错误衡量的标准下错误率为1。 80 | 81 | 换一种错误衡量方式还是对这些目标分布的错误率进行计算,如图8-4为平方错误衡量下各标记的错误率。 82 | 83 |
84 |
图8-4 平方错误衡量下各标记的错误率
85 | 86 | 此时错误率最低的标记恰恰是在0/1错误衡量中错误率为1的标记1.9,因此使用平方错误衡量时选择标记y=1.9。 87 | 88 | 很容易推出在两种错误衡量下最小目标函数f可以分别使用公式8-6和公式8-7表示。 89 | $$ 90 | f(x) = arg \max_{y \in Y} P(y|x) \quad \text{(公式8-6)} 91 | $$ 92 | $$ 93 | f(x) = \sum_{y \in Y} y P(y|x) \quad \text{(公式8-7)} 94 | $$ 95 | 96 | 至此在上一节的基础上对机器学习流图做了进一步的修改,如图8-5所示,加入了错误衡量的模块,该模块对算法和最终的假设选择都起着很大影响。 97 | 98 |
99 |
图8-5 含有错误衡量的机器学习流图
100 | 101 | ## 8.3 Algorithmic Error Measure 算法的错误衡量 102 | 103 | 对于二元分类问题错误的类型也分为两类,如图8-6所示。 104 | 105 |
106 |
图8-6 分类错误的两种错误类型
107 | 108 | 在目标函数f为+1时,假设函数g却给出了-1,这种错误叫做错误的拒绝(false reject),另一种是在目标函数f为-1时,假设函数g却给出了+1,这种错误叫做错误的接受(false accept)。 109 | 110 | 上一节中提到的0/1错误衡量简单的将这两类错误的损失画上了等号,其实在现实中这两种错误在不同的场景其损失是不同的。 111 | 112 | 举两个常见的例子,在超市给年消费额高的会员发放赠品时,如果出现了错误的接受,就意味着该会员没有资格领取到赠品,超市还是给他发放了赠品,该损失只是超市多发了一些赠品;但如果是错误的拒绝,意味着该会员有资格领取到赠品,超市却拒绝给他发放了,这损失的是超市的信誉,可能就会因此大批的用户。另一个例子是在安全部门中,员工有查看某一资料的权限,系统却拒绝了他的请求,这是一种错误的拒绝,作为员工,最多也就是抱怨一下,但是如果是一个员工没有查看某一资料的权限,系统却同意了,这是一种错误的接受,这个损失就可能会非常大,甚至有可能威胁到国家的利益。这两种情况的损失可能如图8-7所示。 113 | 114 |
115 |
图8-7 a)超市发放赠品的错误损失 b)安全部门的错误损失
116 | 117 | 这两个错误损失也证明了在不同的应用中需要使用不同的错误衡量。 118 | 119 | 在设计算法时,最好方式当然按照各种错误损失的情况设计错误衡量,用到算法中去,但是最大的问题是错误损失的数值如何确定(如图中这些10和1000如何定量的给出)。因此在进行算法设计时,通常采用替代的方式来进行设计,目前主要有两种替代方式的原则,如下所示: 120 | 121 | 1. 可以说得通:在分类错误衡量中,可以想象这种噪音的情况相对于整体一定是小的,因此只需要找到一个足够小的错误即可;在平方错误衡量中,只要认同噪音服从高斯分布,减小高斯中平方项,就如同在减少平方错误。将这种近似的错误衡量方式用$err$表示。 122 | 2. 友善的:很容易设计一种算法A。如寻找最小的0/1错误是一个NP难问题,而真正在做的算法时,运用错误率比前者更小的原则,即寻找越来越小的错误率。以后的章节中会提到两种方式:直接求出结果(closed-form solution);凸求解方程(convex objective function)。 123 | 124 | 因为在设计算法时,很难知道具体的错误衡量$err$,因此产生了近似的错误衡量,这是本节的重点,在加入了$err$之后,机器学习的流程图如图8-8所示。 125 | 126 |
127 |
图8-8使用近似错误衡量的机器学习流图
128 | 129 | ## 8.4 Weighted Classification 加权分类 130 | 131 | 上一节中提到的如图8-3存在的这种错误表示方式,可以称之为成本矩阵(cost matrix)或损失矩阵(loss matrix)再或者错误矩阵(error matrix)。 132 |
133 |
图8-3 错误矩阵
134 | 135 | 使用如上的错误矩阵分别表示E_{in}(h)与$E_{out}(h)$,如公式8-8和公式8-9所示。 136 | 137 | $$ 138 | E_{out}(h) = E_{(x,y) \sim F} \left\{ \begin{aligned} 139 | 1 \qquad if y+=1 \\ 140 | 1000 \qquad if y=-1\end{aligned} \right\}\cdot [|y \ne h(x)|] \qquad \text{(公式8-8)} 141 | $$ 142 | 143 | $$ 144 | E_{in}(h) = \frac{1}{N} \sum_{n=1}^N \left\{ \begin{aligned} 145 | 1 \qquad if y+=1 \\ 146 | 1000 \qquad if y=-1\end{aligned} \right\}\cdot [|y \ne h(x)|] \qquad \text{(公式8-9)} 147 | $$ 148 | 149 | 因为VC限制可以在各种算法中起作用,因此在求解已知的算法中只需要使得$E_{in}(h)$尽可能的小,但是这里使用$E_{in}(h)$的和之前的提到的没有加权$E_{in}(h)$的还是有些区别,为了有所区分,将加权的(weighted)$E_{in}(h)$表示为$E_{in}^w(h)$,公式如8-10所示。 150 | $$ 151 | E_{in}^w(h) = \frac{1}{N} \sum_{n=1}^N \left\{ \begin{aligned} 152 | 1 \qquad if y+=1 \\ 153 | 1000 \qquad if y=-1\end{aligned} \right\}\cdot [|y \ne h(x)|] \qquad \text{(公式8-10)} 154 | $$ 155 | 156 | 假设在一种不是线性可分的情况下(如果是线性可分一定会产生$E_{in}^w (h)= 0$的情况),比如pocked算法,先对在这一情况时算法思路进行一个猜想,大部分和原来的算法一致,即如果$W_{t+1}$ 的$E_{in}^w(h)$比$\vec{w}$的更小,则使用$W_{t=1}$取代原来的$\vec{w}$。 157 | 158 | Pocket算法可以使用$E_{in}^{0/1}(h)$作为错误衡量是被证明了的,但是上述加权的方式却没有被证明,该如何寻找一种保障pocket算法在加权错误的情况下,可以使用类似以上的方式的算法流程呢? 159 | 160 | 一个简单的方式是将上述使用$E_{in}^w(h)$的原始问题转变成一种使用$E_{in}^{0/1}(h)$且与原始问题等价的问题,如图8-4所示。 161 | 162 |
163 |
图8-4 a)使用的原始问题 b) 使用 的等价问题
164 | 165 | 等价问题是将原始问题中数据集D中标记为-1的所有数据样本都复制1000次,再将损失矩阵表示不含加权的损失矩阵,而这种损失矩阵正是pocket算法使用的错误衡量方式,唯一的区别,如样本 $X_2$ 出错,被复制的其他的999个 $X_2$ 也跟着一起犯错了,损失相当于是以前的1000倍。当然细心的人已经发现了,在算法做搜寻的过程中碰到标记为-1的数据样本的几率也增大了1000倍。 -------------------------------------------------------------------------------- /ch08/8.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wen-fei/TaiWanML/f5928efc190bb0dc238a3b2b7550eaaf049fa0a6/ch08/8.pdf -------------------------------------------------------------------------------- /ch09/9.md: -------------------------------------------------------------------------------- 1 | # 九、Linear Regression 线性回归 2 | 3 | ## 9.1 Linear Regression Problem 线型回归问题 4 | 5 | 在第二章中提到的银行发放信用卡问题,通过是否发放信用卡引出了二元分类问题;本章再次使用这个例子通过发放用户多大额度的信用卡引出回归(regression)或者说线性回归(linear regression)的问题。回归问题与二元分类问题最大的不同在于输出空间,二元分类的输出空间为二元标记,要么+1要么-1,而回归问题的输出空间是整个实数空间,即$ y \in R $ 。 6 | 7 | 以银行发放信用卡为例,输入集合依然是用户的特征空间,如年龄,收入等等,可以使用与二元分类一致的表示方式$x^T = [X_0, X_1, \cdots, X_d] $;因为输出集合的转变导致回归问题的假设函数与二元分类中的有所不同,但思想一致,仍需考虑对每个输入样本的各个分量进行加权求和,因此最终目标函数f(含有噪音,使用y表示)的表示如公式9-1所示。 8 | 9 | $$ y \approx \sum_{i=0}^dW_iX_i $$ 10 | 11 | 而假设函数的向量表示如公式9-2所示: 12 | 13 | $$ h(x) = w^TX \qquad \text{公式9-2}$$ 14 | 15 | 从公式9-2的表示可以方便看书,与二元分类假设函数的表示只差了一个取正负号的函数sign。 16 | 17 | 使用图像的方式更形象的描述线性回归,如图9-1所示。 18 | 19 | ![Markdown](http://i4.bvimg.com/602813/1c486fcc10c5c5a7.png) 20 | 21 |
图9-1 a) 1维输入空间的线性回归 b) 2维空间的线性回归
22 | 23 | 图9-1a中表示输入空间为1维的线性回归表示,其中圆圈○表示输入样本点,蓝色直线表示假设函数$h(x) = W^TX$,连接圆圈与蓝色直线之间的红色线段表示样本点到假设函数的距离,称为剩余误差(residuals),在9-1b中有类似表示。而设计算法的核心思想是使**总体剩余误差最小**。 24 | 25 | 上一章中也提到过回归使用的错误衡量是平方误差$err(\vec y , y) = (\vec y, y)^2$,因此$E_{in}(h)$如公式9-3所示。 26 | 27 | $$E_{in}(h) = \frac{1}{N} \sum^N_{n=1}(h(x_n) - y_n)^2 \qquad \text{公式9-3}$$ 28 | 29 | 同理,$E_{out}(W)$表示公式9-5所示,注意这里使用的是含有噪音的形式,因此$(x,y)$服从联合概率分布P。 30 | 31 | $$ E_{out}(W) = E_{(x,y) \sim P}(W^Tx_n - y_n)^2 \qquad \text{公式9-5}$$ 32 | 33 | VC限制可以约束各种情况的学习模型,当然回归类型的模型也被也受此约束,想要学习到知识,只需要寻找$E_{in}(W)$足够小可以满足$E_{out}(W)$足够小的需求。 34 | 35 | 36 | 37 | ## 9.2 Linear Regression Algorithm 线性回归算法 38 | 39 | 此节重点是如何寻找最小的$E_{in}(W)$,为了表达的方便,将求和公式转换成向量与矩阵的形式,将公式9-4转换成公式9-6的形式。$$E_{in}(W) = \frac{1}{N} \sum_{n=1}^N(W^Tx_n - y_n)^2 = \frac{1}{N} \sum_{n=1}^N(x_n^TW - y_n)^2 $$ 40 | 41 | (次方便显示将 向量W与向量X位置交换,因为是向量内积,符合交换律) 42 | 43 | $$ = \frac{1}{N} \left \| \begin{aligned} x_1^TW -y_1 \\ x_2^TW- y_2 \\ \cdots \\ x_N^TW - y_N \end{aligned} \right \| ^2 $$ 44 | 45 | (将平方和转换成矩阵平方的形式) 46 | 47 | $$ = \frac{1}{N} \left \| \begin{bmatrix} -x_1^T- \\ -x_2^T- \\ \cdots \\ -x_N^T- \end{bmatrix}W - \begin{bmatrix} y_1 \\ y_2 \\ \cdots \\ y_N \end{bmatrix} \right \|^2 $$ 48 | 49 | (再拆解成矩阵X和向量w与向量y的形式) 50 | 51 | $$ = \frac{1}{N} \left \| \underbrace{X^R}_{N \times (d+1)} \underbrace w_{(d+1) \times 1} - \underbrace y_{N \times 1} \right \|^2$$ 52 | 53 | 再回到最初的目标寻找一个最小的$E_{in}(W)$ , 如公式9-7所示: 54 | 55 | $$\min_w E_{in}(W) = \min_w || X^T w - y||^2$$ 56 | 57 | 求解此问题,需要了解左式,其唯一(d=1时)示意如图9-2所示 58 | 59 | ![Markdown](http://i1.bvimg.com/602813/68c73269610d328d.png) 60 | 61 |
图9-2 一维示意图
62 | 63 | 可以看出该函数为连续(continuous)、可微(differentiable)的凸(convex)函数,其中连续及可微的概念,学过高等数学的都应该有所了解,凸函数说的通俗点就如图9-2所示,像一个山谷一样的形式(注意国内数学教材中的凹函数是这里凸函数的定义,有点囧),寻找的最佳的$E_{in}(W)$便是山谷的最低点, 对应图中的黑点,以数学的形式表示即梯度(gradient)为0 的点。(我理解的梯度,大概意思是某一向量其各个分量的偏导数组成的向量),梯度为的表示方式如公式9-8所示。 64 | 65 | $$\nabla_w E_{in}(W) = \begin{bmatrix} \frac{\partial E_{in}(w)}{\partial w_1} \\ \frac{\partial E_{in}(w)}{\partial w_2} \\ \vdots \\ \frac{\partial E_{in}(w)}{\partial w_d} \end{bmatrix} = \begin{bmatrix}0 \\ 0 \\ 0 \\ 0 \end{bmatrix}$$ 66 | 67 | 其中 $\nabla$ 即梯度符号,需要寻找的是$W_{LIN}$,该向量满足$\nabla_w E_{in}(W_{LIN}) = 0$,这里$W_{LIN}$的下标表示线型linear的意思,紧接着的问题是如何求解$\nabla_w E_{in}(W_{LIN}) = 0$ 的$W_{LIN}。 68 | 69 | 继续对公式9-6做转化,如公式9-9所示。 70 | 71 | $$E_{in}(w) = \frac{1}{N}|| X^Tw - y||^2 = \frac{1}{N}(w^T \underbrace{X^TX}_Aw - 2w^T \underbrace{X^Ty}_b + \underbrace{y^Ty}_c)$$ 72 | 73 | 其中$X^TX$用矩阵A表示, $X^Ty$用向量b表示,$y^Ty$用标量c表示,紧接着对$E_{in}(w)求梯度。向量对向量求导,可能很多人都没有接触甚至没有听说过,最多也就是了解向量对某标量求导。可通过图9-3在w为标量情况下的对比形式,理解$E_{in}(w)$求梯度的步骤。 74 | 75 | ![Markdown](http://i1.bvimg.com/602813/2d02a315162836a5.png) 76 | 77 | ![Markdown](http://i1.bvimg.com/602813/4910ebe26cd5562f.png) 78 | 79 | 图9-3 a) w为标量时求$E_{in}(W)$的梯度,b)w为向量时$E_{in}(w)$的梯度 80 | 81 | 线性代数的美妙之处就在于此,如此的相似,因此$\nabla E_{in}(w)$ 可以写成公式9-10的形式 82 | 83 | $$ \nabla_wE_{in}(W) = \frac{2}{N}(X^TXw - X^Ty)$$ 84 | 85 | 另公式9-10求梯度结果为0,即使$E_{in}(w)$ 最小。在输入空间X与输出向量y都为已知的情况下,如何求解最佳的假设函数,$W_{LIN}$ 呢?求解该问题分为两种情况,一是在$X^TX$可逆的情况下,求解该问题很简单,将公式9-10右边的部分设为0,如公式9-11所示。 86 | 87 | $$W_{LIN} = \underbrace{(X^TX)^{-1}X^T}_{X^{\uparrow}}y \quad \text{公式9-11}$$ 88 | 89 | 其中$X^ \uparrow $ 表示矩阵X的伪逆(pseudo-inverse),注意此处输入矩阵X在很少的情况下才是方阵(N=d+1时)。而这种伪逆矩阵的形式和方阵中的逆矩阵具有很多相似的性质,因此才有此名称。还有一点需要说明,$X^TX$大部分的情况下是可逆的,原因是在进行机器学习时,通常满足$N \ge d+1$,即样本数量N远远大于样本的维度d加1,因此在$X^TX$中存在足够的自由度使其可以满足可逆的条件。 90 | 91 | 另一种是$X^TX$不可逆的情况,实际上可以得到许多满足条件的解,只需要通过其他的方式求解出$X^ \uparrow $,选择其中一个满足条件$W_{LIN} = X^ \uparrow y $的解。 92 | 93 | 总结下线性回归算法的求解过程,首先通过已知的数据集,构建输入矩阵X与输出向量y,如公式9-12所示。 94 | 95 | $$ X^T = \underbrace{\begin{bmatrix} -x_1^T- \\ -x_2^T- \\ \vdots \\ -x_N^T- \end{bmatrix}}_{N \times (d+1)} \qquad y= \underbrace{\begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_N\end{bmatrix}}_{N \times 1} $$ 96 | 97 | 通过公式9-12直接求得违逆$\underbrace{X^{\uparrow}}_{(d+1)\times N}$ 98 | 99 | 再通过公式9-11求得假设函数,如公式9-13所示 100 | 101 | $$\underbrace{ W_{LIN}}_{(d+1)\times 1} = X^{\uparrow}y$$ 102 | 103 | ## 9.3 Generalization Issue 泛化问题 104 | 105 | 本小节讨论的问题理解起来不简单,目前自己还是一知半解,如有表述不正确的地方还希望指正。 106 | 107 | 首先要回答一个问题,上一小节中使用到的求解最佳假设函数$W_{LIN}$的算法,是否能算是机器学习? 108 | 109 | 如回答不是,其理由很简单,求解只一步就完成了,不像前面章节中提到的学习方法需要很多步的过程。实际上,这种求解方式在数学中被称作解析解(analytical solution)或者叫封闭解或闭式解(closed-form solution),此种解是一些严格的公式,给出任意的自变量就可以求出其因变量,通常与数值解对应。因此这种求解方式并不像之前提到的PLA等算法时一步一步迭代求出的$E_{in}(W)$的最小解。 110 | 111 | 回答是的理由更看重结果,这种直接求解方式是数学推导中的精确解,因此求出的$W_{LIN}$一定是$E_{in}(w)$的最小解,符合求解条件,而且求解伪逆算法(此方法被称为高斯消元法,又见高斯,查了一下一共有110项以他名字命名的成果,整个机器学习笔记中你还会不断的听到以他命名的成果)并非如公式展示中显示的那样,一步就可以得出最终结果,而是需要几次的循环迭代(观察了矩阵求伪逆的程序,好像是三层循环,也就印证了NG在他机器学习课程中提到的矩阵求逆的复杂度为$O(N^3)$ ,只是被程序封装的看不出迭代的过程而已。而判断是否发生机器学习过程最主要标准是学习到的$E_{out}(w)$足够好! 112 | 113 | 其实通过改进VC限制,也可以证明在线性回归问题中VC起到了很好的约束作用,即找到了好的$E_{in}(W)$就可以保证$E_{out}(W)$还不错,这里不再证明,因为是件非常繁琐的过程。此处只需要记住VC限制不只在二元分类问题中起作用,在线性回归问题中也发挥着作用。 114 | 115 | 但是本节使用一种比VC限制更容易证明的保证,来说明解析解也可以得到一个好的$E_{out}(W)$ 116 | 117 | 以下给出证明:为什么解析解求出的$E_{in}(W_{LIN})$的结果是好的。而有关的$E_{out}(W_{LIN})$证明与之类似。 118 | 119 | 首先观察$E_{in}$ 的平均,用符号$\bar E_{in}$ 表示,可写成公式9-14所示。 120 | 121 | $$E_{in} = E_{D \sim P^N}\{E_{in}(W_{LIN} wrt D) \} = noise level \cdot (1 - \frac{d+1}{N}) $$ 122 | 123 | 其中E表示期望,不断的从整体样本空间中抽取样本集,算其平均值,w.r.t表示关于,noise level 表示数据中的噪音,N为每次抽样的样本数量,d+1为权值向量w的纬度。 124 | 125 | 从上一节中得知,可以将$E_{in}(W_{LIN})$ 写成公式9-15, 注意y与$\vec y$ 是向量形式。 126 | 127 | $$E_{in}(W_{LIN}) = \frac{1}{N}||y - \vec y ||^2 = \frac{1}{N}||y-X\underbrace{X^{\uparrow}y}_{W_{LIN}}||^2 = \frac{1}{N}||(I - XX^{\uparrow})y||^2$$ 128 | 129 | 其中I是$N \times N $的单位矩阵,$XX^{\uparrow}$ 可以使用$N \times N$的H矩阵(hat matrix)表示。 130 | 131 | 此处通过几何图形来更具体的了解H矩阵的物理意义,如果9-4所示。 132 | 133 | ![Markdown](http://i1.bvimg.com/602813/843f3cdb95874f3b.png) 134 | 135 |
图9-4 有关H矩阵的几何图形
136 | 137 | 其中紫色向量表示实际输出向量y。 138 | 139 | 粉色区域表示输入矩阵X乘以不同权值向量w所构成的空间,从这个定义得知,解析解求得最优权值向量$W_{LIN}$所表示的输出向量$\hat y = Xw_{LIN}$ 也落在该空间中,其中$\hat y$ 也N维向量,不难想象$\hat y$正是实际输出向量y在该空间上的投影。 140 | 141 | 而绿色虚线表示实际输出与最优假设输出之间的差距,写作$ y - \hat y$。 从上述情况可知,$ y - \hat y \bot \text{粉色空间}$ 142 | 143 | 因此得知H矩阵是一个投影过程,向量$\hat y$ 是向量y通过矩阵H所做的投影,可以将矩阵H理解为一系列旋转缩放的动作,有$\hat y = Hy$。$I-H$ 的矩阵同样是一个投影过程,$y - \hat y$ 是向量y通过$I - H$ 的线性变化得到的向量。 144 | 145 | 在图9-4中再加入一点元素,构成图9-5。 146 | 147 | ![Markdown](http://i4.bvimg.com/602813/3b7902697aada1d2.png) 148 | 149 |
图9-5 加入理想的目标输出f(x)
150 | 151 | 如果实际输出矩阵y由理想的目标输出f(x)加上噪音部分共同构成(如图中红色和黑色虚线部分),则其中$y-\hat y$的形式也可以通过噪音按照$I-H$的变换方式构成。因此,得到公式9-16所示。 152 | 153 | $$E_{in}(W_{LIN}) = \frac{1}{N}|| y - \hat y||^2 = \frac{1}{N}||(I-H)noise||^2 = \frac{1}{N}(N - (d+1))||noise||^2$$ 154 | 155 | 其中$N - (d+1)$ 是通过$I - H$的迹(trace)得出的。在求解之前,可以想象$(I-H)^2 = I - H$,因为经过两次转换所得到的还是第一次时的误差向量,trace(I-H)的求解过程如公式9-17所示。 156 | 157 | $$trace(I-H) = trace(I) - trace(H)$$ 158 | 159 | (根据迹的性质,$ trace(A+B) = trace(A) + trace(B)$) 160 | 161 | = $N - trace(XX^{\uparrow}) = N - trace(X(X^TX)^{-1}X^T) = N - trace(X^TX(X^TX)^{-1})$ 162 | 163 | (根据迹的性质$ trace(ABC) = trace(CAB) $) 164 | 165 | = $ N - trace(\underbrace{I}_{(d+1)\times(d+1)}) = N - (d+1) \qquad \text{公式9-17}$ 166 | 167 | 最终介绍下该I-H这种转换的物理意义:原来有一个有N个自由度的向量y,投影到一个有d+1维的空间x(代表一列的自由度,即单一输入样本的参数),而余数剩余的自由度最大只有N-(d+1)种。 168 | 169 | 最终可以写出$\vec E_{in}$的结果,同理也可以写出 $\vec E_{out}$的噪音表示,如公式9-18和公式9-19所示。 170 | 171 | $\vec E_{in} = noise level \cdot (1 - \frac{d+1}{N}) \qquad \text{公式9-18}$ 172 | 173 | $\vec E_{out} = noise level \cdot (1 + \frac{d+1}{N}) \qquad \text{公式9-19}$ 174 | 175 | 因为前者做了优化,所以 $\vec E_{in}$ 有机会比「理想值」多 fit 数据中的 噪音一点点,所以会比「理想值」好一点;但 $\vec E_{out}$的部份则要付出代价(想象在测试的时候,拿到了与训练数据「完全不同」的噪音),所以可能反而多远离理想值一些。 176 | 177 | 从上面两个公式可以得到一个学习鸿沟图,如图9-6所示。 178 | 179 | ![Markdown](http://i4.bvimg.com/602813/cc3a988c84849811.png) 180 | 181 |
图9-6 机器学习的学习鸿沟
182 | 183 | 其中N在趋于无穷大时,$\vec E_{in}$ 与$\vec E_{out}$两者都会趋近于noise level的值,即$\sigma ^ 2$ 184 | 185 | 泛化误差之间的差距:$\frac{2(d+1)}{N}$ 186 | 187 | 至此可以表明在线性回归中可以寻找到很好的$E_{out}$,因此线性回归可以学习。 188 | 189 | ## 9.4 Linear Regression for Binary Classification 使用线性回归做二元分类 190 | 191 | 首先对比二元线性分类与线性回归之间的差异,分别在三个部分进行对比,输出空间、假设函数和错误衡量函数,如图9-7所示。 192 | 193 | ![Markdown](http://i4.bvimg.com/602813/e8c70be129db9e20.png) 194 | 195 | 图9-7 二元线性分类与线性回归的对比 196 | 197 | 从求解问题的难度考虑,二元分类的求解是一个NP难问题,只能使用近似求解的方式,而线性回归通过求解析解,求解方便,程序编写也简单。 198 | 199 | 因此考虑能否通过求解线性回归的方式求二元分类问题,因为二元分类的输出空间{-1,+1}属于线性回归的输出空间,即$\{-1, 1\} \in R$。其中数据集的标记大于零的表示+1,小于零的表示-1,通过线性回归求得的解析解$E_{LIN}$,直接得出最优假设 $g(x) = sign(W_{LINX})$。但是这种推理只符合直觉,而如何使用数学知识去说明这种方式的合理性呢? 200 | 201 | 观察两种错误衡量方式,$err_{0/1}$和分$err_{lr}$别表示为公式9-20和公式9-21。 202 | 203 | $err_{0/1} = [|sign(w^Tx) \ne y|] \qquad \text{公式9-20}$ 204 | 205 | $err_{lr} = (w^Tx - y)^2 \qquad \text{公式9-21}$ 206 | 207 | 观察两公式的共同特点都含有$w^Tx$这一向量内积的形式,如果将作$w^Tx$为横轴,将err结果作为纵轴,可以画出图9-8。 208 | 209 | 其中图9-8a)为y=+1时,两err值的图像表示;而图9-8b)为y=-1时,两err值的图像表示。两幅图中红色的线表示$err_{lr}$,蓝色的先表示$err_{0/1}$。 210 | 211 | ![Markdown](http://i4.bvimg.com/602813/a1767f28bff17fc2.png) 212 | 213 | 图9-8 a)y=+1时,两err值 的表示 b) y=-1时两err值的表示 214 | 215 | 从图中得出公式9-22的结论。 216 | 217 | $err_{0/1} \le err_{lr}$ 218 | 219 | 回忆下第七章中证明的二元分类下$E_{out}$的上限,结合公式9-22的结论,得公式9-23。 220 | 221 | $ classification E_{out}(W) \le classification E_{in}(W) + \sqrt{\frac{8}{N} \ln(\frac {4(2N)^{d_{VC}}}{\delta})} \le regressionE_{in}(W) + \sqrt{\frac{8}{N}\ln (\frac{4(2N)^{d_{VC}}}{\delta})}$ 222 | 223 | 因此二元分类问题得到了一个更宽松的上界,但是也是一种更有效率的求解方式。 224 | 225 | 在实际运用中,一般都将通过线性回归求得的解析解$W_{LIN}$作为PLA或者pocket的初始值$W_{0}$达到快速求解的目的 。 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | -------------------------------------------------------------------------------- /ch09/9.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wen-fei/TaiWanML/f5928efc190bb0dc238a3b2b7550eaaf049fa0a6/ch09/9.pdf -------------------------------------------------------------------------------- /ch10/10.md: -------------------------------------------------------------------------------- 1 | # 十、Logistic Regression Logistic回归 2 | 3 | ## 10.1 Logistic Regression Problem Logistic回归问题 4 | 5 | 使用二元分类分析心脏病复发问题,其输出空间只含有两项{+1,-1},分别表示复发和不发复发。在含有噪音的情况下,目标函数f可以使用目标分布P来表示,如公式10-1所示,此情形的机器学习流程图如图10-1所示。 6 | 7 | $f(x) = sign(P(+1|x) - \frac{1}{2}) \in \{+1, -1\}$ 8 | 9 | ![Markdown](http://i4.bvimg.com/602813/e5826fa1ae0d2d32.png) 10 | 11 | 图10-1 心脏病复发二元分类流程图 12 | 13 | 但是通常情况下,不会确定的告知患者,心脏病一定会复发或者一定不会,而是以概率的方式告知患者复发的可能性,如图10-2所示,一位患者心脏病复发的可能性为80%。 14 | 15 | ![Markdown](http://i4.bvimg.com/602813/af5dfec11e4f39b5.png) 16 | 17 | 图10-2 以概率的形式表示复发可能性 18 | 19 | 此种情况被称为软二元分类(soft binary classification),目标函数f的表达如公式10-2所示,其输出以概率的形式,因此在0~1之间。 20 | 21 | $f(x) = P(+1|x) \in [0,1]$ 22 | 23 | 面对如公式10-2的目标函数,理想的数据集D(输入加输出空间)应如图10-3所示。 24 | 25 | ![Markdown](http://i1.bvimg.com/602813/d45adbec81f5f6a4.png) 26 | 27 | 图10-3 理想的数据集D 28 | 29 | 所有的输出都以概率的形式存在,如$y_1 = 0.9$ ,用心脏病复发的例子来说明,一般病人只有心脏病发与没复发两种情况,而不可能在病历中记录他曾经的病发概率,现实中的训练数据应如图10-4所示。 30 | 31 | ![Markdown](http://i1.bvimg.com/602813/18fcc08bede30ef9.png) 32 | 33 | 图10-4 实际训练数据 34 | 35 | 可以将实际训练数据看做含有噪音的理想训练数据。 36 | 37 | 问题是如何使用这些实际的训练数据以解决软二元分类的问题,即假设函数如何设计。 38 | 39 | 首先回忆在之前的几章内容中提到的两种假设函数(二元分类和线性回归)中都具有的是哪部分? 40 | 41 | 答案是求输入$x=(x_0, x_1, x_2,...,x_d)$ 各属性的加权总分数(score),(还记得第二章中用成绩分数来说明加权求和的意义吗?)可以使用公式10-3表示。 42 | 43 | $s = \sum_{i=0}^dw_ix_i = W^TX$ 44 | 45 | 如何把该得分从在整个实数范围内转换成为一个0~1之间的值呢?此处就引出了本章的主题,logistic函数(logistic function)用$\theta(s)$表示。分数s越大风险越高,分数s越小风险越低。假设函数h如公式10-4所示,函数曲线的示意图如图10-5所示。 46 | 47 | $h(x) = \theta(W^TX)$ 48 | 49 | ![Markdown](http://i1.bvimg.com/602813/c96c921a55c67e5d.png) 50 | 51 | 具体的logistic函数的数学表达式如公式10-5所示。 52 | 53 | $\theta(s) = \frac{e}{e+e^s} = \frac{1}{1+e^{-s}}$ 54 | 55 | 代入几个特殊的数值检验是否能将整个实数集上的得分映射到0~1之间,代入负无穷,得$\theat(-\infty)=0$;代入0,得;$\theta(0)=\frac{1}{2}$代入正无穷,得$\theta(+\infty)=1 $。logistic函数完美的$\theta(s)$将整个实数集上的值映射到了0~1区间上。 56 | 57 | 观察函数的图形,该函数是一个平滑(处处可微分),单调(monotonic)的S形(sigmoid)函数,因此又被称为sigmoid函数。 58 | 59 | 通过logistic函数的数学表达式,重写软二元分类的假设函数表达,如公式10-6所示。 60 | 61 | $h(X) = \frac{1}{1+e^{-W^TX}}$ 62 | 63 | ## 10.2 Logistic Regression Error Logistic回归错误 64 | 65 | 将logisitic回归与之前学习的二元分类和线性回归做一对比,如图10-7所示。 66 | 67 | ![Markdown](http://i1.bvimg.com/602813/e691d586642461ef.png) 68 | 69 | 图10-7 二元分类、线性回归与logistic回归的对比 70 | 71 | 其中分数s是在每个假设函数中都会出现的$w^Tx$,前两个学习模型的错误衡量分别对应着0/1错误和平方错误,而logistic回归所使用的err函数应如何表示则是本节要介绍的内容。 72 | 73 | 从logistic回归的目标函数可以推导出公式10-7成立。 74 | 75 | $f(x) = P(+1|X) \Leftrightarrow P(y|x) = \left \{ \begin{aligned}f(x) \quad for \quad y&=+1 \\ 1-f(x) \quad for \quad y &= -1\end{aligned} \right \} $ 76 | 77 | 其中花括号上半部分不难理解,是将目标函数等式左右对调的结果,而下半部分的推导也很简单,因为+1与-1的几率相加需要等于1。假设存在一个数据集$D=\{(x_1, o),(x_2,\times), \cdots, (x_N, \times)\}$ ,则通过目标函数产生此种数据集样本的概率可以用公式10-8表示。 78 | 79 | $P(D) = P(x_1)P(o|x_1)\times P(x_2)P(\times | x_2) \times \cdots\times P(x_N)P(o|x_N)$ 80 | 81 | 就是各输入样本产生对应输出标记概率的连乘。而从公式10-7可知公式10-8可以写成公式10-9的形式。 82 | 83 | $P(D) = P(x_1)f(x_1)P(o|) \times P(x_2)(1-f(x_2)) \times \cdots \times P(x_N)(1-f(x_N))$ 84 | 85 | 但是函数f是未知的,已知的只有假设函数h,可不可以将假设函数h取代公式10-9中的f呢?如果这样做意味着什么?意味着假设函数h产生同样数据集样本D的可能性多大,在数学上又翻译成似然(likelihood),替代之后的公式如公式10-10所示。 86 | 87 | $P(D) = P(x_1)h(x_1) \times P(x_2)(1-h(x_2)) \times \cdots \times P(x_N)(1-h(x_N))$ 88 | 89 | 假设假设函数h和未知函数f很接近(即err很小),那么h产生数据样本D的可能性或叫似然(likelihood)和f产生同样数据D的可能性(probability)也很接近。函数f既然产生了数据样本D,那么可以认为函数f产生该数据样本D的可能性很大。因此可以推断出最好的假设函数g,应该是似然最大的假设函数h,用公式10-11表示。 90 | 91 | $g = \arg \max_k likelihood(h)$ 92 | 93 | 在当假设函数h使用公式10-6的logistic函数,可以得到如公式10-12的特殊性质。 94 | 95 | $1-h(x) = h(-x)$ 96 | 97 | 因此公式10-10可以写成公式10-13。 98 | 99 | $likehood(h) = P(x_1)h(x_1)\timesP(x_2)h(-x_2)\times \cdots \times P(x_N)h(-x_N) $ 100 | 101 | 此处注意,计算最大的$likehood(h)$时,所有的对$P(x_i)$大小没有影响,因为所有的假设函数都会乘以同样的$P(x_i)$,即h的似然只与函数h对每个样本的连乘有关,如公式10-14。 102 | 103 | $likehood(logistic \quad h) \propto \prod _{n=1}^Nh(y_nx_n)$ 104 | 105 | 其中$y_n$表示标记,将标记代替正负号放进假设函数中使得整个式子更加简洁。寻找的是似然最大的假设函数h,因此可以将公式10-14代入寻找最大似然的公式中,并通过一连串的转换得到公式10-15。 106 | 107 | $$\max_k likehood(logistic \quad h) \propto \prod _{n=1}^{N}$$ 108 | 109 | $$\max_w likehood(w) \propto \prod _{n=1}^N\theta(y_nw^Tx_n)$$ 110 | 111 | (假设函数h与加权向量w一一对应) 112 | 113 | $$\max_w \ln\prod_{n=1}^N\theta(y_nw^Tx_n)$$ 114 | 115 | (连乘不易求解最大问题,因此取对数,此处以自然对数e为底) 116 | 117 | $$\min_w \frac{1}{N} \sum_{n=1}^N-\ln\theta(y_nw^Tx_n) $$ 118 | 119 | (之前都是在求最小问题,因此将最大问题加上一个负号转成了最小问题,为了与以前的错误衡量类似,多成了一个$\frac{1}{N}$。) 120 | 121 | $$\min_w \frac{1}{N}\sum_{n=1}^N\ln(1+\exp(-y_nw^Tx_n))$$ 122 | 123 | (将$\theta(s) = \frac{1}{1+e^{-s}}$代入表达式得出上述结果) 124 | 125 | $$\min_w \underbrace{\frac{1}{N} \sum_{n=1}^Nerr(w,x_n,y_n)}_{E_{in}(w)}$$ 126 | 127 | 公式10-15中$err(w,x,y) = \ln(1+\exp(-yw^Tx))$,这个错误函数称作交叉熵错误(cross-entropy error)。 128 | 129 | ## 10.3 Gradient of Logistic Regression Error Logistic回归错误的梯度 130 | 131 | 推导出logistic回归的$E_{in}(w)$ ,下一步的工作是寻找使得最$E_{in}(w)$小的权值向量w。 132 | 133 | $E_{in}(w)$的表达如公式10-16所示。 134 | 135 | $$E_{in}(w) = \frac{1}{N}\sum_{n=1}^N\ln(1+\exp(-y_nw^Tx_n)$$ 136 | 137 | 仔细的观察该公式,可以得出该函数为连续(continuous)可微(differentiable)的凸函数,因此其最小值在梯度为零时取得,即$\nabla E_{in} (w)= 0$ 。那如何求解$\nabla E_{in} (w)$呢?即为对权值向量w的各个分量求偏微分,对这种复杂公式求解偏微分可以使用微分中的连锁律。将公式10-16中复杂的表示方式用临时符号表示,为了强调符号的临时性,不使用字母表示,而是使用 o和$\Box$ ,具体如公式10-17。 138 | 139 | $$E_{in}(w) = \frac{1}{N} \sum_{n=1}^N\ln \underbrace{(1+\exp(\underbrace{-y_nw^Tx_n)}_{o})}_{\Box}$$ 140 | 141 | 对权值向量w的单个分量求偏微分过程如公式10-18所示。 142 | 143 | $$\begin{aligned}\frac{\partial E_{in}(w)}{\partial w_i} \\ &= \frac{1}{N}\sum_{n=1}^N(\frac{\partial\ln(\Box)}{\partial\Box})(\frac{\partial(1+\exp(O))}{\partial O})(\frac{\partial - y_nw^Tx_n}{\partial w_i}) \\ &= \frac{1}{N}\sum_{n=1}^N(\frac{1}{\Box})(\exp(O))(-y_nx_{n,i}) \\ &= \frac{1}{N}\sum_{n=1}{N}(\frac{\exp(O)}{1+\exp(O)})(-y_nx_{n,i}) \\ &= \frac{1}{N} \sum_{n=1}{N}\theta(O)(-y_nx_{n,i}) \end{aligned} $$ 144 | 145 | 其中$\theta$ 函数为10.1节中介绍的logistic函数。而求梯度的公式可以写成公式10-19所示。 146 | 147 | $$\nabla E_{in}(w) = \frac{1}{N}\sum_{n=1}^N\theta(-y_nw^Tx_n)(-y_nx_n)$$ 148 | 149 | 求出$E_{in}(w)$的梯度后,由于为$E_{in}(w)$凸函数,令为零$\nabla E_{in}(w)$求出的权值向量w,即使函数取得最$E_{in}(w)$小的w。 150 | 151 | 观察$\nabla e_{in}(w)$,发现该函数是一个 $\theta$函数作为权值,关于$(-y_nx_n)$的加权求和函数。 152 | 153 | 假设一种特殊情况,函数的所有权值为零,即所有$\theta(-y_nw^Tx_n)$都为零,可以得出趋$-y_nw^Tx_n$于负无穷,即$-(-y_nw^Tx_n) = y_nw^Tx_n \ge 0$,也意味着所有的$y_n$都与对应的$w^Tx_n$同号,即线性可分。 154 | 155 | 排除这种特殊情况,当加权求和为零时,求该问题的解不能使用类似求解线性回归时使用的闭式解的求解方式,此最小值又该如何计算? 156 | 157 | 还记得最早使用的PLA的求解方式吗?迭代求解,可以将PLA的求解步骤合并成如公式10-20的形式。 158 | 159 | $$w_{i+1} = w_i + [|sign(w_i^Tx_n) \ne y_n|]y_nx_n$$ 160 | 161 | $sign(w_i^Tx_n) = y_n$时,向量不变;$sign(w_i^Tx_n) \ne y_n$时,加上$y_nx_n$。将使用一些符号将该公式更一般化的表示,如公式10-21所示。 162 | 163 | $$w_{i+1} = w_i + \underbrace{1}_\eta \cdot \underbrace{[|sign(w^T_ix_n) \ne y_n|]y_nx_n}_upsilon$$ 164 | 165 | 其中多乘以一个1,用$\eta$ 表示,表示更新的步长,PLA中更新的部分用v来代表,表示更新的方向。而这类算法被称为迭代优化方法(iterative optimization approach)。 166 | 167 | ## 10.4 Gradient Descent 梯度下降 168 | 169 | Logistic回归求解最小$E_{in}(w)$也使用上节中提到的迭代优化方法,通过一步一步改变权值向量$w$,寻找使得最小$E_{in}(w)$的变权值向量$w$,迭代优化方法的更新公式如公式10-22所示。 170 | 171 | $$w_{i+1} = w_i + \eta \cdot v$$ 172 | 173 | 针对logistic回归个问题,如何设计该公式中的参数$\eta$和是$v$本节主要解决的问题。 174 | 175 | 回忆PLA,其中参数$v$来自于修正错误,观察logistic回归的$E_{in}(w)$,针对其特性,设计一种能够快速寻找最佳权值向量的$w$方法。 176 | 177 | 如图10-8为logistic回归的$E_{in}(w)$关于权值向量w的示意图为一个平滑可微的凸函数,其中图像谷底的点对应着最佳w,使得$E_{in}(w)$最小。如何选择参数$\eta$和可以使$v$得更新公式快速到达该点? 178 | 179 | ![Markdown](http://i1.bvimg.com/602813/fcd3cd2e7702281f.png) 180 | 181 | 图10-8 logistic回归的$E_{in}(w)$示意图 182 | 183 | 为了分工明确,设v作为单位向量仅代表方向,$\eta$代表步长表示每次更新改变的大小。在$\eta$固定的情况下,如何选择的方v向保证更新速度最快?是按照$E_{in}(w)$最陡峭的方向更改。即在$\eta$固定,$|v|=1$的情况下,最快的速度(有指导方向)找出使得$E_{in}(w)$最小的w,如公式10-23所示。 184 | 185 | $$\min_{|v|=1}E_{in}(\underbrace{w_t + \eta v}_{w_{t+1}})$$ 186 | 187 | 以上是非线性带约束的公式,寻找最小w仍然非常困难,考虑将其转换成一个近似的公式,通过寻找近似公式中最小w,达到寻找原公式最小w的目的,此处使用到泰勒展开(Taylor expansion),回忆一维空间下的泰勒公式,如公式10-24所示。 188 | 189 | $$f(x) = f(x_0) + \frac{f^{'}(x_0)}{1!}(x-x_0) + \frac{f^{(2)}(x_0)}{2!}(x-x_0)^2 + \cdots + \frac{f^{(n)}(x_0)}{n!}(x-x_0)^n + R(x)$$ 190 | 191 | 同理,在$\eta$很小时,将公式10-23写成多维泰勒展开的形式,如公式10-25所示。 192 | 193 | $$\min_{|v|=1}E_{in}(w_t + \eta v^T) \approx E_{in}(w_t) + ((w_t + \eta v^T) - w_t)\frac{\nabla E_{in}(w_t)}{1!} = E_{in}(w_t) + \eta v^T \nabla E_{in}(w_t)$$ 194 | 195 | 其中$w_t$相当于公式10-24中的$x_0$,$\nabla E_{in}(w_t)$相当于。通俗$\frac{f^{'}(x_0)}{1}$点解释,将原$E_{in}(w_t)$的曲线的形式看做一小段一小段的线段的形式,即$E_{in}(w_t + \eta v^T)$的曲线可以看做$E_{in}(w)$周围一段很小的线段。 196 | 197 | 因此求解公式10-26最小情况下的w,可以认为是近似的求解公式10-23最小状况下的w。 198 | 199 | $$\min_{|v| =1} \underbrace{E_{in}(w_t)}_{known} + \underbrace{\eta}_{give \quad positive}v^T \underbrace{\nabla E_{in}(w_t)}_{known}$$ 200 | 201 | 该公式中$E_{in}(w_t)$是已知值,而为$\eta$给定的大于零的值,因此求公式10-26最小的问题又可转换为求公式10-27最小的问题。 202 | 203 | $$\min_{|v|=1}v^T \nabla E_{in}(w^t)$$ 204 | 205 | 两个向量最小的情况为其方向相反,即乘积为负值,又因$v$是单位向量,因此方向v如公式10-28所示。 206 | 207 | $v = -\frac{\nabla E_{in}(w_t)}{||\nabla E_{in}(w_t)||}$ 208 | 209 | 在$\eta$很小的情况下,将公式10-27代入公式10-22得公式10-28,具体的更新公式。 210 | 211 | $$w_{t+1} = w_t - \eta \frac{\nabla E_{in}(w_t)}{||\nabla E_{in}(w_t)||}$$ 212 | 213 | 该更新公式表示权值向量w每次向着梯度的反方向移动一小步,按照此种方式更新可以尽快速度找到使得$E_{in}(w_t)$最小的w。此种方式称作梯度下降(gradient descent),简写为GD,该方法是一种常用且简单的方法。 214 | 215 | 讲完了参数v的选择,再回头观察事先给定的参数$\eta$的取值对梯度下降的影响,如图10-9所示。 216 | 217 | ![Markdown](http://i4.bvimg.com/602813/fd4359f0e9d71a31.png) 218 | 219 | 图10-9参数$\eta$的大小对梯度下降的影响 220 | 221 | 如图10-9最左,$\eta$太小时下降速度很慢,因此寻找最优w的速度很慢;图10-9中间,当$\eta$太大时,下降不稳定,甚至可能出现越下降越高的情况;合适的$\eta$应为随着梯度的减小而减小,如图最右所示,即参数$\eta$是可变的,且与梯度大小$||\nabla E_{in}(w_t)||$成正比。 222 | 223 | 根据$\eta$与梯度大小成$||\nabla E_{in}(w_t)||$正比的条件,可以将重新$\eta$给定,新的$\eta$如公式10-28所示。 224 | 225 | $$\eta_{new}=\frac{\eta_{old}}{||\nabla E_{in}(w_t)||}$$ 226 | 227 | 最终公式10-27可写成公式10-29。 228 | 229 | $$w_{t+1} = w_t - \eta \nabla E_{in}(w_t)$$ 230 | 231 | 此时的$\eta$被称作固定的学习速率(fixed learning rate),公式10-29即固定学习速率下的梯度下降。 232 | 233 | Logistic回归算法的步骤如下: 234 | 235 | 设置权值向量w初始值为$w_0$ ,设迭代次数为t,$t=0,1,\cdots$; 236 | 237 | 计算梯度$\nabla E_{in}(w_t) = \frac{1}{N} \sum_{n=1}^N \theta (-y_nW_t^Tx_n)(-y_nx_n)$ 238 | 239 | 对权值向量w进行更新,$w_{t+1} = w_t - \eta \nabla E_{in}(w_t)$ 240 | 241 | 直到$\nabla E_{in}(w_t) \approx 0$或者迭代次数足够多。 -------------------------------------------------------------------------------- /ch10/10.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wen-fei/TaiWanML/f5928efc190bb0dc238a3b2b7550eaaf049fa0a6/ch10/10.pdf -------------------------------------------------------------------------------- /ch11/11.md: -------------------------------------------------------------------------------- 1 | # 十一、Linear Models for Classification 用于分类的线性模型 2 | 3 | ## 11.1 Linear Models for Binary Classification 用于二元分类的线性模型 4 | 5 | 目前叙述的算法模型主要有3类:线性二元分类,线性回归,logistic回归,这三个模型的最主要的相同点在假设函数和错误函数中都出现了线性得分函数(linear scoring function),如公式11-1所示。 6 | 7 | $s = w^Tx$ 8 | 9 | 三类模型与得分s之间的关系如图11-1所示。 10 | 11 | ![Markdown](http://i4.bvimg.com/602813/d97737b51385624b.png) 12 | 13 | 图11-1 三类模型与得分s的关系 14 | 15 | 最左为线性二元分类,其假设函数为![img](http://images.cnitblog.com/blog/489652/201503/141033010899368.png),一般使用0/1错误,通过![img](http://images.cnitblog.com/blog/489652/201503/141033015584913.png)求解最优权值向量w比较困难;中间为线性回归模型,其假设函数为![img](http://images.cnitblog.com/blog/489652/201503/141033019956512.png),一般使用平方错误,可直接通过解析解求解最优w;最右为logistic回归模型,假设函数为![img](http://images.cnitblog.com/blog/489652/201503/141033027619614.png),使用交叉熵错误,通过梯度下降法求出近似的w。 16 | 17 | 从上述分析不难看出,线性二元分类问题的求解方式最为困难,但与另外两种模型存在着共同点——得分s,能否利用这两种模型的算法近似求得二分类问题的最优w呢? 18 | 19 | 回顾10.2节,logistic回归的错误,可用符号![img](http://images.cnitblog.com/blog/489652/201503/141033031992214.png) 表示,其中CE为交叉熵(cross-entropy )的缩写,可以写成公式11-2所示。 20 | 21 | $$err_{CE} = err(w,x,y) = err_{CE}(s,y) = \ln(1+\exp(-yw^T)) = ln(1+\exp(-ys))$$ 22 | 23 | 是否二元分类模型和线性回归模型的错误函数可以写成关于$ys$ 的形式?答案是可以的,如图11-2所示。 24 | 25 | ![Markdown](http://i4.bvimg.com/602813/9787a921a675457d.png) 26 | 27 | 图11-2 三类模型的错误函数 28 | 29 | 二元分类模型和线性回归模型错误函数中的转换都用到了$y \in \{+1, -1\}$ 的性质。接着观察三类模型的错误函数与ys之间的关系。本节开头回顾了s的物理意义为得分,此处ys的物理意义是正确的得分 ,因此ys越大越好,表示两者接近且同号。 30 | 31 | 根据图11-2中的三类模型的错误函数有关ys的公式,可以得出如图11-3所示的关系图。 32 | 33 | ![Markdown](http://i4.bvimg.com/602813/b338aa4f00a92dd9.png) 34 | 35 | 图11-3 三类模型的错误函数与ys的关系图 36 | 37 | 其中蓝色的折线表示0/1错误$err_{0/1}$ ,在ys大于0时,$err_{0/1}=0$,反之$err_{0/1}=1$;红色的抛物线表示平方错误$srr_{SQR}$,在 $ys \ll 1$时与$err_{0/1}$在该范围内所表现出的特征相似,但是在$ys \gg 1$时与在该范围内所表达的效果相去甚远,因此只有在$err_{SQR}$很小的情况下,可以使用$err_{SQR}$取代$err_{0/1}$;墨绿的曲线表示$err_{CE}$,同样如图11-3所示也只有在$err_{CE}$很小的情况下,$err_{CE}$和$err_{0/1}$可互相取代。但是$err_{CE}$跟想得到的错误曲线还有一些差距,因此略做转变,得到公式11-3。 38 | 39 | $$err_{SCE} = log_2(1 + \exp(-ys))$$ 40 | 41 | 其中$err_{SCE}$表示缩放的(scaled)$err_{CE}$,即对$srr_{CE}$做了一个换底,因此可以得到图11-4。 42 | 43 | ![Markdown](http://i1.bvimg.com/602813/606e9292d6340c73.png) 44 | 45 | 图11-4$err_{SCE}$关于ys的图 46 | 47 | 如图11-4中墨绿色的线表示$err_{SCE}$,从图中可以看出,该错误函数很适合做$err_{0/1}$的上限,在$err_{SCE}$很小的情况下,$err_{SCE}$和$err_{0/1}$可互相取代,如公式11-4所示。 48 | 49 | $$err_{0/1}(s,y) \le err_{SCE}(s,y) = \frac{1}{\ln2} err_{CE}(s,y)$$ 50 | 51 | 通过公式11-4可以得出$E_{in}^{0/1}$和$E_{out}^{0/1}$的上限,如公式11-5和公式11-6所示。 52 | 53 | $$E_{in}^{0/1} \le E_{in}^{SCE}(w) = \frac{1}{\ln 2}E_{in}^{CE}(w)$$ 54 | 55 | $$E_{out}^{0/1} \le E_{out}^{SCE}(w) = \frac{1}{\ln 2}E_{out}^{CE}(w)$$ 56 | 57 | 再通过VC限制理论可以得到公式11-7。 58 | 59 | $$E_{out}^{0/1} \le E_{out}^{SCE}(w) + \Omega^{0/1}= \frac{1}{\ln 2}E_{out}^{CE}(w) + \Omega^{0/1}$$ 60 | 61 | 第一个不等号连接的是在VC限制下$E_{out}^{0/1}(w)$和其上界,概念见7.4节, 其中$\Omega^{0/1}$函数是在7.4节中提到过的模型复杂度,在二元分类中可以写成的形$\sqrt{\frac{8}{N}\ln(\frac{4(2N)^{d_{VC}}}{\delta})}$式。 62 | 63 | 因此得到如下结论:小的$E_{out}^{0/1}(w)$可以通过小的$E_{in}^{CE}(w)$得出。同理可以证明小的$E_{out}^{0/1}(w)$也可以通过小的$E^{SQR}_{in}(w)$得出,即线性回归模型和logistic回归模型可以用作二元分类。 64 | 65 | 算法流程一般是在输出空间$y \in \{-1, +1\}$ 的情况下,通过线性回归和logistic回归相对应的求解方法求出最优 $w_{REG}$; 66 | 67 | 将求得的$w_{REG}$代入公式sign,得到最优假设函数 $g(x) = sign(w_{REG}^Tx)$。 68 | 69 | 三类模型做分类的利弊分析如表11-1所示。 70 | 71 | ![Markdown](http://i1.bvimg.com/602813/bd139a7dc18dc7c0.png) 72 | 73 | 线性回归一般只作为PLA、pocket、logistic回归的初始向量$w_0$ ;logistic回归经常取代pocket算法。 74 | 75 | ## 11.2 Stochastic Gradient Descent 随机梯度下降 76 | 77 | 如公式11-8为迭代优化算法的通式,学过的PLA的迭代算法如公式11-9,logistic回归中梯度下降的迭代公式如公式11-10。 78 | 79 | $w_{t+1} = w_t + \eta \cdot v$ 80 | 81 | $$w_{t+1} = w_t + y_{n(t)} \cdot x_{n(t)}$$ 82 | 83 | $$w_{t+1} = w_t - \eta \nabla E_{in}(w_t) = w_t - \eta(\frac{1}{N} \sum_{n=1}^{N}\theta(-y_nw_t^Tx_n)(-y_nx_n)) = w_t + \eta(\frac{1}{N} \sum_{n=1}^N \theta(-y_nw_t^Tx_n)(y_nx_n)$$ 84 | 85 | 对比以上两种迭代优化方法:PLA与logistic回归的梯度下降。发现PLA只需要通过一个样本点便可计算出$w_{t+1}$,即每次迭代的时间复杂度为 $O(1)$;logistic回归的梯度下降需要遍历所有的样本点才能计算出$w_{t+1}$,即每次迭代的时间复杂度为$O(n)$。有无可能将logistic回归每次迭代时间复杂度降为$O(1)$? 86 | 87 | 观察公式11-10,方向向量v,v≈$-\nabla E_{in}(w_t)$,该梯度是通过所有的样本点加权求和再取平均得到的,如何使用一个样本点的取值近似整体的平均值? 88 | 89 | 可以将求平均的过程理解为求期望值,此处使用在N个样本中随机抽取一个样本点求出的梯度取代原来的期望梯度,这种随机选取的梯度称为随机梯度(stochastic gradient),可用符号$\nabla _w err(w, x, y)$表示,而真实的梯度与随机梯度的关系如公式11-11。 90 | 91 | $$\nabla E_{in}(w_t) = \varepsilon_{random \quad n} \nabla _w err(w,x_n,y_n) $$ 92 | 93 | 随机梯度值可以看做真实的梯度值加上一个噪音,使用随机梯度取代真实梯度做梯度下降的算法称作随机梯度下降(stochastic gradient descent),简称SGD。这种替代的理论基础是在迭代次数足够多的情况下,平均的随机梯度和平均的真实梯度相差不大。 94 | 95 | 该算法的优点是简单,容易计算,适用于大数据或者流式数据;缺点是不稳定。 96 | 97 | Logistic回归的随机梯度下降的迭代如公式11-12所示。 98 | 99 | $w_{t+1} = w_t + \eta \underbrace{(-y_nw_t^Tx_n)(y_nx_n)}_{-\nabla_w err(w,x_n,y_n)}$ 100 | 101 | 是否联想到了其他的迭代算法?PLA,如公式11-13所示。 102 | 103 | $$w_{t+1} = w_t + \underbrace{1}_\eta \underbrace{[|sign(w_t^Tx_n) \ne y_n|]y_nx_n}_{v}$$ 104 | 105 | 因此logistic回归随机梯度下降类似于"软"的PLA,为什么称为软的?原因是它的$y_nx_n$之前的权值并没有那么绝对不是1就是0,而是一个在0~1之间的值。在公式11-12中,如果$\eta =1$且$w_t^Tx_n$始终是一个很大的值,则logistic回归随机梯度下降相当于是PLA。 106 | 107 | ## 11.3 Multiclass via Logistic Regression 通过logistic回归实现多类别分类 108 | 109 | 多类别分类有许多应用场景,特别是在识别(recognition)领域。 110 | 111 | 如图11-5为,输出空间y为四类别的情况,即$y \in \{ \Box, ◇,△, ☆\}$。 112 | 113 | ![Markdown](http://i2.bvimg.com/602813/91d26dbf60a6248f.png) 114 | 115 | 图11-5 四分类问题 116 | 117 | 实际多类别问题也可以使用二元分类问题![img](http://images.cnitblog.com/blog/489652/201503/141033452618931.png) 的思路进行分类,如将原四类问题分解为是否为![img](http://images.cnitblog.com/blog/489652/201503/141033457147301.png) ,即将![img](http://images.cnitblog.com/blog/489652/201503/141033462927645.png)与其他的类别分离,生成一个新的二元分类问题,即![img](http://images.cnitblog.com/blog/489652/201503/141033466839932.png),通过此方式得到一个分类超平面,如图11-6所示。 118 | 119 | ![Markdown](http://i1.bvimg.com/602813/2c60368e8ab010ac.png) 120 | 121 | 图11-6 以是否为![img](http://images.cnitblog.com/blog/489652/201503/141033477921904.png)进行二元分类 122 | 123 | 同理可以以是否为![img](http://images.cnitblog.com/blog/489652/201503/141033482308204.png)生成一个新的二元分类问题,即![img](http://images.cnitblog.com/blog/489652/201503/141033486059019.png),该分类超平面如图11-7所示。 124 | 125 | ![Markdown](http://i1.bvimg.com/602813/6018d2464f917bdd.png) 126 | 127 | 图11-7 以是否为![img](http://images.cnitblog.com/blog/489652/201503/141033494172433.png)进行二元分类 128 | 129 | 另外两种情况就不一一列举,最终以是否为每个类别得到的二元分类如图11-8。 130 | 131 | ![Markdown](http://i1.bvimg.com/602813/75f0371b50e3ff33.png) 132 | 133 | 图11-8 四个类别各自的二元分类情况 134 | 135 | 当将图11-8的四种情况合并在一个图中会发现有一些无法处理的情形,如图11-9所示。 136 | 137 | 138 | 139 | ![Markdown](http://i1.bvimg.com/602813/e37e775a977f9f41.png) 140 | 141 | 图11-8 四种情况合并图 142 | 143 | 其中四个边缘的三角阴影所在的区域为相邻两个类别都争夺的区域,如最上方的三角区域是类别![img](http://images.cnitblog.com/blog/489652/201503/141033508701678.png)和类别![img](http://images.cnitblog.com/blog/489652/201503/141033512613965.png)重叠的区域;还有图正中的区域又不属于任何类别。这些问题如何解决? 144 | 145 | 使用以前学过的软性分类,还是关于类别![img](http://images.cnitblog.com/blog/489652/201503/141033516677320.png)的二元分类问题,此处不再使用硬划分,而是使用该样本点是![img](http://images.cnitblog.com/blog/489652/201503/141033523704936.png)的可能性,即![img](http://images.cnitblog.com/blog/489652/201503/141033534801609.png) ,如图11-9所示。 146 | 147 | ![Markdown](http://i1.bvimg.com/602813/8a5388d4843ed827.png) 148 | 149 | 图11-9 关于类别![img](http://images.cnitblog.com/blog/489652/201503/141033549951638.png)的软化分 150 | 151 | 余下三种情况不再一一举例,最终得到的四种类别的分类情况和合并后的情况分别如图11-10和图11-11所示。 152 | 153 | ![Markdown](http://i1.bvimg.com/602813/d036398981dedcba.png) 154 | 155 | 图11-10四个类别各自的软二元分类情况 156 | 157 | ![Markdown](http://i1.bvimg.com/602813/c0b6fafeb2b01c86.png) 158 | 159 | 图11-11四个类别软二元分类合并后情况 160 | 161 | 如何判断样本点属于哪个类别,可以分别计算样本点在四种软二元分类情况下概率,选择其中概率最大的一个作为所属类别,如公式11-14所示。 162 | 163 | $$g(x) = arg \max_{k \in \gamma }\theta(w^T_{[k]}x)$$ 164 | 165 | 其中求概率的公式使用logistic函数$\theta$ ,k表示类别,注意到logistic函数是一个单调函数,因此可以消去该函数,直接使用个类别的得分值作比较,如公式11-5所示。 166 | 167 | $$g(x) = arg \max_{k \in \gamma } w^T_{[k]}x$$ 168 | 169 | 用此种思路设计的算法称作一对多(One Versue All),简称为OVA,表示一个类别对其他所有类别,算法流程如下: 170 | 171 | 在整个训练数据集D上,$D_{[k]} = \left \{ (x_n, y_n = 2[|y_n=k|] - 1) \right \}_{n=1}^N$ (在y=k时为+1,y≠k时为-1,符号$[|\cdot|]$取1或者0 ),使用logistic函数计算各个类别的权值向量$w_{[k]}$ ; 172 | 173 | 返回假设函数g,$g(x) = arg \max_{k \in \gamma}w^T_{[k]}x$。 174 | 175 | 该算法的优点是简单有效,易于类似于logistic函数的二元分类问题扩展成多类别分类;缺点是当类别特别多时,产生了不平衡的现象(如类别特别多,则+1的数据量就很少,大部分都是-1,数据量严重不平衡)。 176 | 177 | ## 11.4 Multiclass via Binary Classification 通过二元分类实现多类别分类 178 | 179 | 上一节的最后提到OVA的方式在类别非常多的情况下,出现了训练数据严重失衡的现象,于是本节介绍一种应对这类不平衡问题的方法。 180 | 181 | 还是上节中使用的四分类问题,不像OVA在整个数据集中计算是否为![img](http://images.cnitblog.com/blog/489652/201503/141034013398241.png)的权值向量w,此种方法是任意选择四类中的两类,如类别![img](http://images.cnitblog.com/blog/489652/201503/141034019643599.png)和类别![img](http://images.cnitblog.com/blog/489652/201503/141034027306701.png),将两个类别分别设为+1和-1,形式如![img](http://images.cnitblog.com/blog/489652/201503/141034034646857.png),在包含两类的数据集上计算权值向量w,如图11-12。 182 | 183 | ![Markdown](http://i1.bvimg.com/602813/f5db90576599c587.png) 184 | 185 | 图11-12类别![img](http://images.cnitblog.com/blog/489652/201503/141034049176102.png)和类别![img](http://images.cnitblog.com/blog/489652/201503/141034055117918.png)的二分类 186 | 187 | 如上述情况相同,从四种类别中选取两种做二元分类,一共可得6种对比($C_4^2 = 6$ ),各对比如图11-13所示。 188 | 189 | ![Markdown](http://i1.bvimg.com/602813/f505057dc7008665.png) 190 | 191 | 图11-13 6种对比情况 192 | 193 | 如图11-13得到6个不同的权值向量w,如何判断某新进样本属于哪个分类?如11-14中紫色的样本点在6中情况下所属的类别,前三种属于![img](http://images.cnitblog.com/blog/489652/201503/141034069642460.png),第4种属于![img](http://images.cnitblog.com/blog/489652/201503/141034074337005.png),后两种属于![img](http://images.cnitblog.com/blog/489652/201503/141034079647632.png),只需要找出在所有对比中胜利次数最多的类别,因此该点属于![img](http://images.cnitblog.com/blog/489652/201503/141034084171705.png)。这种方式如同投票选举,样本点属于所有类别对比中赢得次数最多的那种类别。 194 | 195 | 这种分类方式称为一对一(one vervuse one),简称OVO。其算法流程如下: 196 | 197 | 所有类别的任意两个类别做对比,使用二元分类算法,在数据集D,![img](http://images.cnitblog.com/blog/489652/201503/141034584496556.png) 求出最佳的权值向量![img](http://images.cnitblog.com/blog/489652/201503/141034589802886.png); 198 | 199 | 通过投票返回假设函数g。 200 | 201 | 其优点是简单有效,在做两两对比时,每次使用的不是全部训练数据,而是仅属于当前两类的训练数据,能将所有类似于二元分类的算法扩展成多元分类问题; 缺点是对比次数是![img](http://images.cnitblog.com/blog/489652/201503/141034594492729.png) ,即![img](http://images.cnitblog.com/blog/489652/201503/141034598399313.png) ,其中K表示类别数,因此就需要花费更多的存储空间、计算时间。 -------------------------------------------------------------------------------- /ch11/11.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wen-fei/TaiWanML/f5928efc190bb0dc238a3b2b7550eaaf049fa0a6/ch11/11.pdf -------------------------------------------------------------------------------- /ch12/12.md: -------------------------------------------------------------------------------- 1 | # 十二、Nonlinear Transformation 非线性转换 2 | 3 | ## 12.1 Quadratic Hypotheses 二次的假设空间 4 | 5 | 在之前的章节中,学习的机器学习模型都为线性模型,即假设空间都为线性的,使用的得分为线性得分(linear scores)$s = w^Tx$ 。这种线性模型的最大好处是理论上可以使用VC限制进行约束(假设是非线性的各种曲线或者超曲面,则每种假设都可以完全二分,即 $2^N$种二分类),这保证了 $E_{in} = E_{out}$;当遇到如图12-1的情况,则很难寻找到一个直线能将两类尽可能的分离,即存在很大的 $E_{in}$。该如何打破这种限制? 6 | 7 | ![Markdown](http://i2.bvimg.com/602813/1fb691f8defbcc70.png) 8 | 9 | 图12-1 线性不可分的情况 10 | 11 | 观察图12-1发现该数据集为线性不可分(non-linear separable)的情况,可以使用圆圈将样本集分离,如图12-2所示,此种方式称作圆圈可分(circular separable),该图使用一个半径为$\sqrt{0.6}$ 圆心在原点的圆划分,假设函数h如公式12-2所示,该公式的含义为将样本点到原点距离的平方与数值0.6作比较,如果比0.6小,则标记为+1;反之为-1。 12 | 13 | ![Markdown](http://i1.bvimg.com/602813/f1855ece82a0f38e.png) 14 | 15 | 图12-2 圆圈可分的情况 16 | 17 | $$h_{SEP}(x) = sign(-x_1^2 - x_2^2 + 0.6)$$ 18 | 19 | 难道需要再将以前学过的线性PLA,线性回归的算法都重新设计一遍,变成圆圈PLA,圆圈回归重新学习?当然不会这样,以下介绍一种思想通过已有知识解决上述新提出的算法模型。 20 | 21 | 将公式12-1中变量以及参数做一些转变,变成熟悉的线性模型,如公式12-2所示。 22 | 23 | $$h_{SEP}(x) = sign(\underbrace{0.6}_{w_0} \times \underbrace{1}_{x_0} + \underbrace{(-1)}_{w_1} \times \underbrace{x_1^2}_{x_1} + \underbrace{(-1)}_{w_2} \times \underbrace{x_2^2}_{x_2}) = sign(w_0 \cdot z_0 + w_1 \cdot z_1 + w_2 \cdot z_2) = sign(w^Tz)$$ 24 | 25 | 该公式将圆圈可分$\{ (x_n, y_n)\}$ 转换成线性可分$\{(z_n,y_n)\}$,得到的结果如图12-3所示。称这种将输入空间$x \in X \rightarrow^{\Theta} \text{输出空间} z\in Z$ 的过程称为特征转换(feature transform $\Theta$)。 26 | 27 | ![Markdown](http://i1.bvimg.com/602813/fabab0f3eda9165f.png) 28 | 29 | 图12-3 在Z空间线性可分的情况 30 | 31 | 问题出现了,是否新的空间中数据线性可分,则在原空间中原数据一定是圆圈可分?搞清此问题之前,需要了解在新的空间中如何线性可分的。 32 | 33 | 新的空间Z的表示如公式12-3所示。 34 | 35 | $$(z_0, z_1, z_2) = z = \Phi(x) = (1, x_1^2, x_2^2) $$ 36 | 37 | 在空间X中假设函数h与空间Z假设函数$h$ 的关系如公式12-4所示。 38 | 39 | $$h(x) = \widetilde h(z) = sign(\widetilde w_0 + \widetilde w_1x_1^2 + \widetilde w_2x_2^2)$$ 40 | 41 | 公式12-4即为在X空间中假设函数的表达式,其中$(\widetilde w_0, \widetilde w_1, \widetilde w_2)$为权值向量,观察权值向量的不同取值对X空间的中的假设函数的表达式有何不同,如表12-1所示。 42 | 43 | ![Markdown](http://i2.bvimg.com/602813/5a20f08c6f4b2595.png) 44 | 45 | 因此通过这种形式转换的Z空间的直线对应着原X空间中特殊的二次曲线(quadratic curves)。为何说是特殊的?从表12-1第一行表示的圆只能是圆心过原点的圆,不能随意表示各种情况的圆。 46 | 47 | 如果想要表示X空间中所有的二次曲面,Z空间该佮表示呢?设计一个更大的Z空间,其特征转换如公式12-5所示。 48 | 49 | $$\Phi _2(x) = (1, x_1, x_2, x_1^2, x_1x_2, x_2^2)$$ 50 | 51 | 通过以上特征转换,Z空间中的每个超平面就对应X空间中各种不同情况的二次曲线。则X空间中的假设空间H如公式12-6所示。 52 | 53 | $$H_{\Phi_2} = \{h(x):h(x) = \widetilde h(\Phi_2(x)) \}$$ 54 | 55 | 其中$\widetilde h$表示Z空间中的假设函数。使用一个例子表示,如公式12-7为斜椭圆的表达式,可以得出权值向量 $\widetilde w^T = [33, -20, -4, 3, 2, 3]$。 56 | 57 | $$2(x_1 + x_2 - 3)^2 + (x_1 - x_2 - 4)^2 = 1 \qquad \text{公式12-7}$$ 58 | 59 | 使用公式12-5的特征转换,可以表示X空间中所有的线(包括直线和各种类型的二次曲线)和常数(全为正或全为负)。 60 | 61 | ## 12.2 Nonlinear Transform 非线性转换 62 | 63 | 从X空间转换到Z空间,则在Z空间中获得的好的线性假设函数,相当于在X空间中获得了好的二次假设函数,即在Z空间中存在一个可分的直线对应于在X空间存在一个可分的二次曲线。如何在Z空间中寻找好的假设函数呢? 64 | 65 | 将在Z空间的数据集写成如$\{(z_n = \Phi(x_n), y_n )\}$ ,前面的章节讲述了如何在X空间的数据集中$\{(x_n, y_n)\}$寻找最好的假设函数,因此可以使用前面章节学习到的方法对Z空间的数据集进行训练。 66 | 67 | 简述下此种学习方式的步骤,转换与学习步骤如图12-4所示: 68 | 69 | 通过特征转换函数$\Phi$ 将在X空间中不可分的数据集$\{(x_n, y_n)\}$转换成在Z空间中可分的数据集$\{(z_n = \Phi(x_n), y_n )\}$; 70 | 71 | --------------------------------------------------------------------------------