博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习基石笔记1
阅读量:5272 次
发布时间:2019-06-14

本文共 6369 字,大约阅读时间需要 21 分钟。

机器学习基石笔记1

lecture 1: The Learning Problem

1. 机器学习是什么

通过对数据的经验计算(experience computed),提升性能度量

3个关键性质

a) 存在一种可以学习的潜在的模式(underlying pattern)
b) 没有明确的可编程的定义
c) 存在和模式相关的数据

2. 机器学习的应用

  • 教育
  • 推荐系统
  • etc.

3. 机器学习的元素

compenents1

compenents2

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) $

向量形式公式

ml_lecture2_1_1.PNG

2. 感知机学习 (PLA)

目标:需要一个g,用来估计目标函数f (\(g \approx f\))

必要条件\(g \approx f\ on\ D\),理想情况是\(g(x_n) = f(x_n) = y_n\)
难点\(H\)无穷大
思路:从某个 \(g_0\) 开始,然后通过数据集 \(D\) 纠正它的错误

tips: 之后会用权重向量 \(\textbf{W}_0\) 代替 \(g_o\)

感知机算法

For t = 0, 1...

1) 找到下一个(Next) \(\textbf{w}_t\)的错误,标记为\((\textbf{x}_{n(t)}, y_{n(t)})\)
\[sign\big( \textbf{w}_t^T \textbf{x}_{n(t)} \big) \neq y_{n(t)}\]
2) 尝试通过更新\(\textbf{w}_t\)的值来更正分类错误:
\[ \textbf{w}_{t+1} \leftarrow \textbf{w}_t + y_{n(t)} \textbf{x}_{n(t)} \]
直到不再有错误出现,返回最后的\(\textbf{w}\) (称之为 $\textbf{w}_{PLA} $ )作为函数g

PLA的实现

1) 找到一个\(\textbf{w}_t\)的错误,标记为\((\textbf{x}_{n(t)}, y_{n(t)})\)

\[sign\big( \textbf{w}_t^T \textbf{x}_{n(t)} \big) \neq y_{n(t)}\]
2) 通过更新\(\textbf{w}_t\)的值来更正分类错误:
\[ \textbf{w}_{t+1} \leftarrow \textbf{w}_t + y_{n(t)} \textbf{x}_{n(t)} \]
直到遍历数据集时不再有分类错误,则返回最后的\(\textbf{w}\) (称之为 $\textbf{w}_{PLA} $ )作为函数g

tips:下一个样本的操作可以用常规遍历(naive cycle(1, 2, ..., N)),或者预先计算好的随机排序

3. Guarantee of PLA

线性可分

如果PLA终止了且不再有分类错误,那么存在w能够线性划分数据集D而没有分类错误,那么这样的数据集D是线性可分的

PLA Fact

  • \(\textbf{w}_t\)在更新后与\(\textbf{w}_f\)更加接近(aligned with)

    ml_lecture2_3_1.PNG

  • \(\textbf{w}_t\)不会增长得过快

    ml_lecture2_3_2.PNG

\(\textbf{w}_o = 0\)开始,经过了T次的更新以后:

\[ \frac{\textbf{w}_f^T}{\lVert \textbf{w}_f \lVert} \frac{\textbf{w}_t}{\lVert \textbf{w}_t \lVert} \ge \sqrt{T} · constant\]
\(constant = \displaystyle\frac{\rho}{R}\),其中\(\rho = min \ y_n\frac{\textbf{w}_f^T}{\lVert \textbf{w}_f \lVert} \textbf{x}_n\)\(R = max \lVert \textbf{x}_n \lVert^2\)

向量标准化后,其乘积会小于等于1,且在更新了T次后,有下界存在。

4. 更多关于PLA的知识

PLA

只要数据集线性可分,并且通过分类错误更新w,那么

  • \(\textbf{w}_f\)\(\textbf{w}_t\)的内积会增长很快,而\(\textbf{w}_t\)的长度则增长缓慢
  • PLA的分类边界(PLA "lines")越来越接近\(\textbf{w}_f\),并最终停止更新(halt)

优点

易于实现,速度快,能在任意的维度下工作

缺点

  • 预设数据集是线性可分的,但该特性是事先不知道的(如果知道了,就不需要 PLA了=。=)
  • 不能完全确定迭代步数(\(\rho\)取决于\(\textbf{w}_f\)
    • 尽管实际上会很快

非线性可分

调整PLA方法,以得到一个足够好的g

Pocket算法

初始化pocket 权重为\(\hat{\textbf{w}}\)
1) 找到一个(随机的)\(\textbf{w}_t\)的错误,标记为\((\textbf{x}_{n(t)}, y_{n(t)})\)
\[sign\big( \textbf{w}_t^T \textbf{x}_{n(t)} \big) \neq y_{n(t)}\]
2) 尝试通过更新\(\textbf{w}_t\)的值来更正分类错误:
\[ \textbf{w}_{t+1} \leftarrow \textbf{w}_t + y_{n(t)} \textbf{x}_{n(t)} \]
3) 如果\(\textbf{w}_{t+1}\)的分类错误比\(\hat{\textbf{w}}\)少,则将\(\hat{\textbf{w}}\)更新为\(\textbf{w}_{t+1}\),直到足够的迭代次数,返回最后的\(\hat{\textbf{w}}\) (称之为 $\textbf{w}_{pocket} $ )作为函数g

lecture 3: Types of Learning

1. 不同输出空间Y下的学习

多元分类

  • 硬币识别问题(识别不同面额的硬币)
  • 图像分类 \(\Rightarrow\) 苹果,橙子,草莓……
  • 邮件分类 \(\Rightarrow\) 垃圾,重要邮件,社交,推销,更新……

回归

  • 病症恢复时间预测
  • 公司数据 --> 股价
  • 气象数据 --> 温度

结构学习

  • 词性标注
  • 大量的目标分类,而没有明确定义的分类信息
  • 蛋白质数据 --> 蛋白质折叠
  • 语音数据 --> 语音解析树

Mini Summary

ml_lecture3_1_1.PNG

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

ml_lecture3_2_1.PNG

3. 不同学习思路下的学习 \(f \Rightarrow (\textbf{x}_n, y_n)\)

tips: 课件中用的是protocol (Protocol \(\leftrightarrow\) Learning Philosophy)

Mini Summary

ml_lecture3_3_1.PNG

4. 不同输入X下的学习

具体特征 (concrete feature)

X每一个维度都有复杂的物理意义,但对于机器学习而言,这类特征更易学习

  • 硬币分类中的硬币大小
  • 信用卡申请任务中的客户信息
  • 癌症诊断中病患信息
  • 通常在学习任务中包含了“人类智慧”(human intelligence)

原始特征 (raw feature)

通常需要手动或自动的转换为具体的特征

  • 手写体识别中的图像像素信息
  • 语音信号数据

抽象特征 (abstract feature)

通常需要特征提取、特征转换

  • 在线教育系统中的学生ID
  • 广告系统中的广告ID

Mini Summary

ml_lecture3_4_1.PNG

lecture 4: Feasibility of Learning

1. 学习是不可能的吗?

从A learning Puzzle 和 No Free lunch 开始

因为对target function 一无所知,所以有可能假设得到的结果完全不对,即训练误差很小,但泛化误差特别大的情况,这种情况相当于无法学习

2. Probability to Rescue

以从弹珠罐子中(罐子中只有橙色和绿色弹珠)抽样为例,\(\mu\)表示罐子中橙色占总体的比例,\(\nu\)表示样本中橙色的比例。

那么能通过\(\nu\)来推断\(\mu\)

No: 抽样的结果(弹珠比例)可能和总体完全不同!
Yes: 已知\(\nu\)有可能很接近未知的\(\mu\)

霍夫丁不等式 (Hoeffding's Inequality)

在一个大的样本中(样本容量为N),\(\nu\)近似于\(\mu\)(差异用\(\epsilon\)表示),且

\[ \mathbb{P}[|\nu - \mu| > \epsilon] \le 2\ exp\big(-2\epsilon^2N\big) \]
称之为霍夫丁不等式,
\(\nu = \mu\)的假设是概率近似正确(PAC:probably approximately correct)的。

霍夫丁不等式的说明

  • 对于所有的N和\(\epsilon\)都是有效的
  • 不依赖于\(\mu\),即不需要知道\(\mu\)具体是多少
  • 更大的样本容量N或者更宽松的gap \(\epsilon\) 能得到更高的概率使得 \(\nu \approx \mu\)

霍夫丁不等式告诉我们,当N足够大时,就能通过\(\nu\)来推断 \(\mu\)

3. 推广到学习问题

问题描述: 大的训练样本,有一定概率能够通过已知的\(\mathbb{P}[h(\textbf{x}_n) \ne y_n]\)推断未知的\(\mathbb{P}[h(\textbf{x} \ne y_n)]\)

ml_lecture4_3_1.PNG

对于一个特定的(fixed)h,在样本很大的时候,样本内误差 \(E_{in}(h)\) 有可能很接近 \(泛化误差E_{out}(h)\) (差别不大于\(\epsilon\)),即:

\[ \mathbb{p}[| E_{in}(h) - E_{out}(h) | > \epsilon ] \le 2 exp\big(-2 \epsilon^2 N \big) \]

类似于从罐子里抽取弹珠的例子:

  • 对所有的 N 和 \(\epsilon\)
  • 不依赖于 \(E_{out}(h)\),且不需要知道 \(E_{out}(h)\)
    — f 和 P(目标函数产生的数据分布)可以是未知的
  • \(E_{in}(h) = E_{out}(h)\) 是PAC,概率近似正确的

结论:如果 \(E_{in}(h) \approx E_{out}(h)\) 并且 \(E_{in}(h)\)足够小 \(\Longrightarrow\) \(E_(out)(h)\)足够小 \(\Longrightarrow\) 在数据分布为P的时候,\(h \approx f\)

那么现在可以学习了吗

Yes: 如果特定的h对应的\(E_{in}(h)\)很小并且学习算法能够选到那个h \(\Longrightarrow\) \(g = f\)是PAC的

No: 如果算法只能选到某一个特定的h,那么\(E_{in}(h)\)几乎总是不会很小 \(\Longrightarrow\) \(g \ne f\) 是PAC的

real learning

算法A能够在假设空间H(例如PLA)中做选择,而不是只能选择某个特定的h

Verification

ml_lecture4_3_2.PNG

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问题

ml_lecture4_4_1.PNG

\(\mathbb{P}_D[BAD\ D]\)的上界

ml_lecture4_4_2.PNG

  • 有限样本版本的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

统计学习的流程

ml_lecture4_4_3.PNG

转载于:https://www.cnblogs.com/shencc3/p/7903702.html

你可能感兴趣的文章
string与stringbuilder的区别
查看>>
2012-01-12 16:01 hibernate注解以及简单实例
查看>>
iOS8统一的系统提示控件——UIAlertController
查看>>
PAT甲级——1101 Quick Sort (快速排序)
查看>>
python创建进程的两种方式
查看>>
1.2 基础知识——关于猪皮(GP,Generic Practice)
查看>>
迭代器Iterator
查看>>
java易错题----静态方法的调用
查看>>
php建立MySQL数据表
查看>>
最简单的线程同步的例子
查看>>
旅途上看的电影和观后感
查看>>
Ztree异步树加载
查看>>
关于IE和火狐,谷歌,Safari对Html标签Object和Embed的支持问题
查看>>
poj3320 Jessica's Reading Problem(尺取思路+STL)
查看>>
分布式计算开源框架Hadoop介绍
查看>>
安卓平台接口剖析
查看>>
坏的事情不都会带来坏的结果
查看>>
RPC的基础:调研EOS插件http_plugin
查看>>
第二次团队冲刺第二天
查看>>
bzoj 2257 (JSOI 2009) 瓶子与燃料
查看>>