台大林轩田老师《机器学习基石》课程笔记1:When can machine learn?
1. When can machines learn?
1.1 The learning problem
1.1.1 What is ML?
- 什么是“学习”:人类通过观察(observation)、积累经验,掌握某项技能或能力(skill);
- 什么是“skill”:能提升某些性能指标的能力;
- 什么是“ML”:学习对象由人换成机器;
- 机器学习可以被定义为:Improving some performance measure with experence computed from data. 也就是机器从数据中总结经验,从数据中找出某种规律或者模型,并用它来解决实际问题。
1.1.2 应用ML的三个核心特征
- 存在某种模式(即存在由输入到输出的映射关系f)
- 人类难以显式地定义规则
- 有数据可供学习
1.1.3 应用领域
-
衣食住行育乐等均可以用到
-
比如线上辅导系统:
- 方案:评估学生能力与题目难度的大小;
- 量化:某个学生的各个知识点掌握情况以及运算能力,某道题目的知识点位置和难度等;
-
比如电影推荐系统:
- 方案:用户特征和电影特征的匹配度;
- 量化:用户的特征(喜欢动作片,不喜欢爱情片等,某些明星、演技等),电影特征;
- 输入(量化特征)和输出(rating)
1.1.4 Components & Process of ML
- 组件:输入 输出 Data 算法 假设空间 目标函数f(未知的pattern) 求得的近似函数矩g
- 流程:算法A利用D,从H中选出一个最优的假设以获得对应的g
1.1.5 ML与相关领域的关系
- ML:Use data to compute hypothesis g that approximates target f
- Data Mining: Use (huge) data to find property that is interesting
- 若该性质就是映射模式f,则DM就相当于ML
- 若该性质和f相关,则两者可以互相支持
- AI: Compute something that shows intelligent behavior
- ML是实现AI的一种途径
- Statistics: Use data to make inference about an unknown process
- 若要推断的是f,则统计可用于ML
- 传统统计学通常侧重于在一定的数学假设下获得可证明的推论,对数据计算要求不高
- 总体而言,各有侧重点,但总体没有十分明确的界限
1.2 Learning to answer Yes/No
1.2.1 假设空间
以信用卡审批系统为例,一个很符合直觉的方法是,针对申请者的各个特征进行打分,(此处按照权重打分,是否也可以按照阶段性打分?)如果分数达到一个阈值,即认为满足要求。整理得到假设空间\(h(X)=sign(W^T*X)\),即该维度下所有超平面的集合。
1.2.2 算法(PLA,Perceptron learning algorithm)
目的:从假设空间中选出最优的假设函数g
难点:H是无限的,且f未知
思路:欲使g≈f,则f可做的映射,g也能做,即g(X)=f(X)=Y;可先随机设定\(g^0\),然后逐步修正。
方法:1.找到一个错误点;2.按照\(W_{t+1} = W_t + y_t * X_t\)更新(注意其物理含义,法向量与错误点正或反向量之和,注意法向量方向为正);3.重复前两步直至没有错误点。
实现:用Python实现。
经典应用:垃圾邮件识别。若垃圾邮件经常出现某些词,而正常邮件中这些词的频率较低,则这些词就是权重较大的敏感词。
1.2.3 遗留问题:
- 算法为什么会起作用?
- 每一步更新为:若\(sign(W^T * X_n)≠y_n\),则\(W_{t+1} = W_t + y_n * X_n\)。两边同乘\(y_n * X_n\),得到\(y_n*W_{t+1}*X_n ≥ y_n* W_t * X_n\)。即算法每一步更新都在尽力增大\(y_n*W_{t}*X_n\),该值大于0即表示分类正确。
- 每一步更新,都有可能使得其他\(y_n*W_{t}*X_n\)变回负值,但只要满足条件就能最终全部正确分类。
- 算法能停下来吗?
- 若数据集D线性可分,则一定可以停下来。
- 证明过程及其物理含义。
- 找到的g真的就是f吗?(即泛化能力如何)
- 优缺点比较:
- 优点:实现简单、速度快、可解释、对维度数量不敏感;
- 缺点:D线性不可分时候算法振荡不收敛;γ未知,不知道何时算法停下来。(故实际应用时候若发现算法迟迟停不下来,无法判断是未到时间,还是算法根本就不收敛。)
1.2.4 Pocket Algorithm
针对D线性不可分的情况,修改PLA算法,使用贪心策略,即更新前先在整个数据集中比较一番。故相较于PLA,速度慢。
注:主要是想解决D含噪声的情况,若实际就是线性不可分,可能就会选择其他算法。
1.3 ML分类
1.3.1 Learning with Different Output Space Y
- 二元分类:输出有两个,包括信用卡发放、垃圾邮件判别、患者疾病诊断、答案正确性估计等等,二元分类有线性模型也有非线性模型,根据实际问题情况,选择不同的模型;
- 多元分类:输出有k个,一般多元分类的应用有数字识别、图片内容识别等等;
- 回归:输出是连续的,比如预测房屋价格、股票收益多少等;
- 结构化学习(Structured Learning),比如NLP中,输出与输入的结构有关;
1.3.2 Learning with Different Data Label \(y_n\)
- Supervised Learning:有标签;可以是二元分类、多元分类或者是回归等;
- Unsupervised Learning:无标签,比如聚类(clustering)问题(对网页上新闻的自动分类);密度估计(交通路况分析);异常检测(用户网络流量监测)。问题比较分散。
- Semi-supervised Learning:囿于成本等因素,只有一部分数据有输出标签yn;
- Reinforcement Learning:比如根据用户点击、选择而不断改进的广告系统。
1.3.3 Learning with Different Protocol \(f(x_n,y_n)\)
按照不同的协议,机器学习可以分为batch, online, active。这三种学习类型分别可以类比为:填鸭式,老师教学以及主动问问题。
- Batch Learning:在实际应用中最为广泛;
- Online:在线学习模型,数据是实时更新的,根据数据一个个进来,同步更新算法,比如在线邮件过滤系统;
- Active Learning:让机器具备主动问问题的能力,在获取样本label比较困难的时候,可以节约时间和成本,只对一些重要的label提出需求。
1.3.4 Learning with Different Input Space X
- concrete features:比如说硬币分类问题中硬币的尺寸、重量等;比如疾病诊断中的病人信息等具体特征。concrete features对机器学习来说最容易理解和使用。
- raw features:比如说手写数字识别中每个数字所在图片的mxn维像素值;比如语音信号的频谱等。raw features一般比较抽象,经常需要人或者机器来转换为其对应的concrete features,这个转换的过程就是Feature Transform。
- abstract features:比如某购物网站做购买预测时,提供给参赛者的是抽象加密过的资料编号或者ID,这些特征X完全是抽象的,没有实际的物理含义。所以对于机器学习来说是比较困难的,需要对特征进行更多的转换和提取。
1.4 Feasibility of learning(学习的可行性)
1.4.1 No Free Launch定理
假设目标函数f是在其可能性空间中是均匀分布的,而无论哪种学习算法,其自身的归纳偏好决定了它必定最终倾向了其中的某个函数f,因此最终这些算法的期望水平就是一样的,和瞎猜没区别。
但是在具体的实际场景中,某些f代表的可能性发生的概率大,某些f代表的可能性发生的概率小,某些可能性则根本不会发生。它们的概率不是均等的,因此不再满足NFL定理的前提。
因此,脱离具体问题,空泛地谈论什么学习算法更好毫无意义。学习算法自身的归纳偏好和问题是否匹配,往往起到了决定性的作用。
1.4.2 统计学中由样本推断整体的保证(用于类比)
通常采用随机采样的方式推断整体的信息,其可行性的保证为:
- 样本与总体独立同分布(iid);
- Hoeffding不等式 \(P(|\overline X - E(X)| >= ε)<=2 exp(-2Nε^2)\) 保证了偏差在一定的小范围内,即训练准确率=预测准确率是Probably Approximately Correct (PAC)的 ,(偏差超出范围的概率很小,因为不好的数据集出现的可能性很低。若偏差超出范围,说明这个数据集是不好的,就是踩雷了,比如连抛5次硬币均出现正面,以此样本推断整体就很可能出现大偏差。随着样本集容量N的增大,踩雷概率越来越小。)
- D是已采集到的一个数据集;如果这个数据集对某一个h是不好的,那就是这个h在这个D上踩雷。一旦踩雷,就说明这个h无法在这个数据集上展现出自身的特点,这样就通常会导致算法无法在这个假设空间中选出最好的假设函数(第二道防线只能用来验证,无法用于选择g)。
- 正常情况下,随机变量的平均值 \(\overline X\) 应该随着样本量N的增加而逐渐趋向于期望E(X)。所以当N是一个比较大的数时,通常认为\(\overline X = E(X)\),但也会出现偏差很大的情况(尽管概率很小)。比如统计一个正常学校的男女比例时,给定的假设空间只有一个假设函数,即{样本的男女比例=全校的男女比例},这时候随机抽样100人,但有可能会全部抽到男生,尽管概率很小,但确确实实发生了,这时候就可以说这个假设函数在这个数据集上踩雷了。
- 我们希望的是,假设空间中的任何一个假设函数,在已知的数据集上都不会踩雷,即任何一个假设函数都能在这个数据集上体现出本身的特点,这样我们才能放心大胆地选出最合适的那个假设函数。所以我们就很想知道,如何才能把假设空间踩雷(里面任何一个函数踩雷都算)的概率压在很小的范围内(不可能压到0,因为只要抽样数据集小于全部数据,那抽样数据集就一定有概率是一个坏数据集),因为这样一来,我们就可以近似认为选出来的g就是假设空间里面最好的。
- 当然,即便我们把假设空间踩雷的概率压到一个很小的范围,仍然有可能会出现选出来的假设函数g在数据集上表现很好,但在未知数据中表现很差的情况。于是我们再设置一个测试集,在Hoeffding不等式的庇佑下,这个g在测试集中的错误率就可以代表在整个未知数据中的错误率(就相当于假设空间中只有一个假设函数的情况。)即设置了两道防线。
1.4.3 假设空间中只有一个假设函数
假设空间中只有一个假设函数时,机器学习是可行的。因为在Hoeffding不等式的庇佑下,这一个假设函数在训练集中的错误率就可以代表在整个未知数据中的错误率。(类比于1.4.2)
1.4.4 假设空间中存在有限个假设函数
当假设空间中有M个假设函数时,任意一个hypothesis踩雷都是我们不希望看到的,因为任何一个hypothesis都有可能被学习算法选作最终的模型。所以,现在就来看看至少有一个hypothesis踩雷的概率:\(P(踩雷)<=2 M exp(-2Nε^2)\)。这意味着当假设空间中有M个hypothesis时,踩雷的概率变成了只有一个hypothesis时的M倍。
这说明只有有限个假设函数时,ML仍然是可行的,只要样本数N足够大,仍然可以保证“训练准确率”与“预测准确率”的差值,这个值超出误差范围的概率会非常小,仍然是PAC的。