机器学习基石笔记1
机器学习基石笔记1
lecture 1: The Learning Problem
1. 机器学习是什么
通过对数据的经验计算(experience computed),提升性能度量
3个关键性质
a) 存在一种可以学习的潜在的模式(underlying pattern)
b) 没有明确的可编程的定义
c) 存在和模式相关的数据
2. 机器学习的应用
- 教育
- 推荐系统
- etc.
3. 机器学习的元素
4. 机器学习和其他领域的关系
领域 | 描述 |
---|---|
机器学习 | 使用数据计算假设g,以此估计目标函数f |
数据挖掘 | 使用大数据,发现有趣的特性 |
人工智能 | 计算得到一个具有智能行为的结果 |
统计学 | 使用数据从一个未知的分布得出推论 |
lecture 2: Learning to Answer Yes/No
1. 感知机假设集(hypothesis set)
定义
对于特征 \(\textbf{x}=(x_1, x_2, ..., x_d)\),计算每一个特征的权重值,当
\(\sum_{i=1}^dw_ix_i > threshold\),\(y=1\)
\(\sum_{i=1}^dw_ix_i < threshold\),\(y=-1\)
可以将感知机理解为线性(二元)分类器
线性形式公式
$h(\textbf{x}) = sign\Big(\big(\sum_{i=1}^d w_i x_i\big) - threshold\Big) $
向量形式公式
2. 感知机学习 (PLA)
目标:需要一个g,用来估计目标函数f (\(g \approx f\))
必要条件:\(g \approx f\ on\ D\),理想情况是\(g(x_n) = f(x_n) = y_n\)
难点:\(H\)无穷大
思路:从某个 \(g_0\) 开始,然后通过数据集 \(D\) 纠正它的错误
tips: 之后会用权重向量 \(\textbf{W}_0\) 代替 \(g_o\)
感知机算法
For t = 0, 1...
- 找到下一个(Next) \(\textbf{w}_t\)的错误,标记为\((\textbf{x}_{n(t)}, y_{n(t)})\)
- 尝试通过更新\(\textbf{w}_t\)的值来更正分类错误:
直到不再有错误出现,返回最后的\(\textbf{w}\) (称之为 $\textbf{w}_{PLA} $ )作为函数g
PLA的实现
- 找到一个\(\textbf{w}_t\)的错误,标记为\((\textbf{x}_{n(t)}, y_{n(t)})\)
- 通过更新\(\textbf{w}_t\)的值来更正分类错误:
直到遍历数据集时不再有分类错误,则返回最后的\(\textbf{w}\) (称之为 $\textbf{w}_{PLA} $ )作为函数g
tips: 取下一个样本的操作可以用常规遍历(naive cycle(1, 2, ..., N)),或者预先计算好的随机排序
3. Guarantee of PLA
线性可分
如果PLA终止了且不再有分类错误,那么存在w能够线性划分数据集D而没有分类错误,那么这样的数据集D是线性可分的
PLA Fact
-
\(\textbf{w}_t\)在更新后与\(\textbf{w}_f\)更加接近(aligned with)
-
\(\textbf{w}_t\)不会增长得过快
从\(\textbf{w}_o = 0\)开始,经过了T次的更新以后:
\(constant = \displaystyle\frac{\rho}{R}\),其中\(\rho = min \ y_n\frac{\textbf{w}_f^T}{\lVert \textbf{w}_f \lVert} \textbf{x}_n\),\(R = max \lVert \textbf{x}_n \lVert^2\)
向量标准化后,其乘积会小于等于1,且在更新了T次后,有下界存在。
4. 更多关于PLA的知识
PLA
只要数据集线性可分,并且通过分类错误更新w,那么
- \(\textbf{w}_f\)和\(\textbf{w}_t\)的内积会增长很快,而\(\textbf{w}_t\)的长度则增长缓慢
- PLA的分类边界(PLA "lines")越来越接近\(\textbf{w}_f\),并最终停止更新(halt)
优点
易于实现,速度快,能在任意的维度下工作
缺点
- 预设数据集是线性可分的,但该特性是事先不知道的(如果知道了,就不需要 PLA了=。=)
- 不能完全确定迭代步数(\(\rho\)取决于\(\textbf{w}_f\))
- 尽管实际上会很快
非线性可分
调整PLA方法,以得到一个足够好的g
Pocket算法
初始化pocket 权重为\(\hat{\textbf{w}}\)
- 找到一个(随机的)\(\textbf{w}_t\)的错误,标记为\((\textbf{x}_{n(t)}, y_{n(t)})\)
- 尝试通过更新\(\textbf{w}_t\)的值来更正分类错误:
- 如果\(\textbf{w}_{t+1}\)的分类错误比\(\hat{\textbf{w}}\)少,则将\(\hat{\textbf{w}}\)更新为\(\textbf{w}_{t+1}\),直到足够的迭代次数,返回最后的\(\hat{\textbf{w}}\) (称之为 $\textbf{w}_{pocket} $ )作为函数g
lecture 3: Types of Learning
1. 不同输出空间Y下的学习
多元分类
- 硬币识别问题(识别不同面额的硬币)
- 图像分类 \(\Rightarrow\) 苹果,橙子,草莓……
- 邮件分类 \(\Rightarrow\) 垃圾,重要邮件,社交,推销,更新……
回归
- 病症恢复时间预测
- 公司数据 --> 股价
- 气象数据 --> 温度
结构学习
- 词性标注
- 大量的目标分类,而没有明确定义的分类信息
- 蛋白质数据 --> 蛋白质折叠
- 语音数据 --> 语音解析树
Mini Summary
2. 不同数据标记的学习
监督学习
- 硬币分类
监督学习:每个\(\textbf{x}_n\)都有对应的\(\textbf{y}_n\)
非监督学习
-
聚类:\(\{\textbf{x}_n\} \Rightarrow cluster(\textbf{x})\)
(\(\approx\) "非监督 多分类 分类任务")- i.e. 文本主题分类
-
密度评估:\(\{\textbf{x}_n\} \Rightarrow density(\textbf{x})\)
(\(\approx\) "非监督 有界的(bounded) 回归任务")- i.e. 基于位置的交通情况报告 --> 危险区域
-
离群点检测:\(\{\textbf{x}_n\} \Rightarrow unusual(\textbf{x})\)
- i.e. 网络日志 --> 入侵警告
非监督学习:多样的,可能有各种不同的目标$
半监督学习 (semi-supervised)
- 只有一部分标记的面部识别问题 --> face identifier (Facebook)
- 只有一部分标记的医学问题 --> 医疗效果预测
半监督学习:当获取全部label的代价高昂时,利用未标记数据学习的方法
强化学习
利用 \((\textbf{x}, \tilde{y}, goodness)\) 信息学习的方法
- (customer, ad choice, ad click earning) ⇒ ad system
- (cards, strategy, winning amount) ⇒ black jack agent
强化学习:利用部分的/ 不明确的信息(通常是顺序的(sequentially))学习 $
Mini Summary
3. 不同学习思路下的学习 \(f \Rightarrow (\textbf{x}_n, y_n)\)
tips: 课件中用的是protocol (Protocol \(\leftrightarrow\) Learning Philosophy)
Mini Summary
4. 不同输入X下的学习
具体特征 (concrete feature)
X每一个维度都有复杂的物理意义,但对于机器学习而言,这类特征更易学习
- 硬币分类中的硬币大小
- 信用卡申请任务中的客户信息
- 癌症诊断中病患信息
- 通常在学习任务中包含了“人类智慧”(human intelligence)
原始特征 (raw feature)
通常需要手动或自动的转换为具体的特征
- 手写体识别中的图像像素信息
- 语音信号数据
抽象特征 (abstract feature)
通常需要特征提取、特征转换
- 在线教育系统中的学生ID
- 广告系统中的广告ID
Mini Summary
lecture 4: Feasibility of Learning
1. 学习是不可能的吗?
从A learning Puzzle 和 No Free lunch 开始
因为对target function 一无所知,所以有可能假设得到的结果完全不对,即训练误差很小,但泛化误差特别大的情况,这种情况相当于无法学习
2. Probability to Rescue
以从弹珠罐子中(罐子中只有橙色和绿色弹珠)抽样为例,\(\mu\)表示罐子中橙色占总体的比例,\(\nu\)表示样本中橙色的比例。
那么能通过\(\nu\)来推断\(\mu\)吗
No: 抽样的结果(弹珠比例)可能和总体完全不同!
Yes: 已知\(\nu\)有可能很接近未知的\(\mu\)
霍夫丁不等式 (Hoeffding's Inequality)
在一个大的样本中(样本容量为N),\(\nu\)近似于\(\mu\)(差异用\(\epsilon\)表示),且
称之为霍夫丁不等式,
\(\nu = \mu\)的假设是概率近似正确(PAC:probably approximately correct)的。
霍夫丁不等式的说明
- 对于所有的N和\(\epsilon\)都是有效的
- 不依赖于\(\mu\),即不需要知道\(\mu\)具体是多少
- 更大的样本容量N或者更宽松的gap \(\epsilon\) 能得到更高的概率使得 \(\nu \approx \mu\)
霍夫丁不等式告诉我们,当N足够大时,就能通过\(\nu\)来推断 \(\mu\)
3. 推广到学习问题
问题描述: 大的训练样本,有一定概率能够通过已知的\(\mathbb{P}[h(\textbf{x}_n) \ne y_n]\)推断未知的\(\mathbb{P}[h(\textbf{x} \ne y_n)]\)
对于一个特定的(fixed)h,在样本很大的时候,样本内误差 \(E_{in}(h)\) 有可能很接近 \(泛化误差E_{out}(h)\) (差别不大于\(\epsilon\)),即:
类似于从罐子里抽取弹珠的例子:
- 对所有的 N 和 \(\epsilon\)
- 不依赖于 \(E_{out}(h)\),且不需要知道 \(E_{out}(h)\)
— f 和 P(目标函数产生的数据分布)可以是未知的 - \(E_{in}(h) = E_{out}(h)\) 是PAC,概率近似正确的
结论:如果 \(E_{in}(h) \approx E_{out}(h)\) 并且 \(E_{in}(h)\)足够小 \(\Longrightarrow\) \(E_(out)(h)\)足够小 \(\Longrightarrow\) 在数据分布为P的时候,\(h \approx f\)
那么现在可以学习了吗
**Yes: ** 如果特定的h对应的\(E_{in}(h)\)很小并且学习算法能够选到那个h \(\Longrightarrow\) \(g = f\)是PAC的
**No: **如果算法只能选到某一个特定的h,那么\(E_{in}(h)\)几乎总是不会很小 \(\Longrightarrow\) \(g \ne f\) 是PAC的
real learning
算法A能够在假设空间H(例如PLA)中做选择,而不是只能选择某个特定的h
Verification
4. 推广到真正的学习问题
对于一个特定的假设来说,霍夫丁不等式告诉我们:对从输入空间中采样得到的数据集的\(E_{in}(h_m)\)不会太高。但对于所有假设空间中的h来说,得到一个Bad Data的概率会骤然升高,类似于一群人抛硬币,出现连续5个正面的概率问题。
**Bad Data: ** \(E_{out}(h)\)和\(E_{in}(h)\)差别很大,一般情况是\(E_{in}(h)\)很小而\(E_{out}(h)\)很大
大量假设h对应的Bad Data问题
\(\mathbb{P}_D[BAD\ D]\)的上界
- 有限样本版本的Hoeffding,对所有的M, N, \(\epsilon\)都有效
- 不依赖于任何的\(E_{out}(h_m)\),即不需要知道\(E_{out}(h_m)\)
— f 和 P(目标函数产生的数据分布)可以是未知的 - \(E_{in}(h) = E_{out}(h)\) 是PAC——概率近似正确的,而不用考虑具体的算法是怎样的
有效的算法A:
选择\(E_{in}(h_m)\)最小的假设\(h_m\),将其作为最终的假设g