Foundations of Machine Learning 内容整理 —— Introduction
一、machine learning 的定义
machine learning 广义上可以被定义为使用某种经验提升算法表现或使预测更精确的一种计算方法。在这里,经验指过去的某种信息,通常是为了分析问题收集的数据。
二、machine learning 算法好坏的评价标准
- 时间复杂度
- 空间复杂度
- 样例复杂度:算法所需要用到的数据大小
三、machine learning 主要应用领域
- 分类:给每个对象安排一个类别。例如:文档分类把文档分为政治、商业、体育、天气等类别;图像分类把图像分为建筑、肖像、动物等类别。
- 回归:给每个对象预测一个真实值。例如:预测股票价格。在这类问题中,对于不正确的预测的惩罚通常用预测结果与真实结果之间的差距表示;而在分类问题中,通常不会考虑两个类别之间是否接近。
- 排序:根据某种规则对对象排序。例如:网页搜索。
- 聚类:把对象分为不同区域。聚类通常被用在大型数据集上。例如:在社交网络分析中,聚类算法会在一大群人中定义社区。
- 降维或流形学习:把最初对对象的表示转换到一个更低的维度上同时保持最初表示形式的部分属性。例如:在计算机视觉的问题中处理数字图像。
四、machine learning 中的一些基本定义(以垃圾邮件分类为例)
- 样例:用来学习或评价的数据。在垃圾邮件分类问题中,样例是用来学习和测试的邮件内容的集合。
- 特征:属性的集合,通常是一个向量。在本问题中,属性可能有邮件的长度,发信人的名字,标题的各种特性、邮件正文中的关键字等等。
- 标签:样例的值或类别。在分类问题中,每个样例被分到一个特定的类,例如,垃圾邮件/非垃圾邮件;在回归问题中,每个样例被赋予一个值。
- 训练集:用来训练的样例。在本问题中,训练集包括一系列邮件和他们的标签。
- 验证集:用来调整参数的样例。machine learning 算法通常有一个或多个参数,验证集可以用来帮助选择合适的参数。
- 测试集:用来测试算法效果的样例。在本问题中,测试集由一系列邮件构成,算法需要根据 feature 计算邮件对应的标签。然后将这些预测标签与正确的标签比较,以此来评价算法性能。
- 损失函数:用来计算预测结果与标准结果之间差距的函数。设所有标签的集合为 γ ,所有预测的标签的集合为 γ′ ,损失函数是可以表示为一个映射 L:γ×γ′→R+ 。常见的损失函数包括:0-1损失函数以及平方损失函数。
- 映射:把 feature 映射到标签的一系列函数。通常情况下这些函数会把 feature 映射到另一个集合上。在本问题中,这些函数可以把邮件的特征向量映射成一个实数作为邮件的分数,分数越高就越可能是垃圾邮件。
五、训练集、验证集和测试集的划分方法
- 根据需要调整的参数的数目确定验证集的大小。
- 当标记的数据量相对比较小时,训练集应该大于测试集,因为训练样例会直接影响训练效果。
六、交叉验证
- 用途:当标记的数据集比较小,因此不能设置验证集时,通常用交叉验证的方法使标记的数据既能用来训练又能用来选择参数。
- 算法详解:
设 θ 为算法的参数。对一个给定的 θ ,该方法首先随机把具有 m 个样例的集合S 划分为 n 个子集。因此第i 个子集为一个包含 mi 个样例的集合 ((xi1,yi1),...,(ximi,yimi)) 。
对任意 i∈[1,n] ,算法在除了第 i 个子集外的所有样例上计算出一个映射hi ,同时 hi 的表现情况通过在第 i 个子集上测试得到。
最终,这组参数的好坏通过计算hi 上的平均错误率确定。参数的质量被记为 RˆCV(θ) :
RˆCV(θ)=1n∑ni=11mi∑mij=1L(hi(xij),yij) - 通常各个子集的大小相同
-
n
的选择:若
n 的值很大,则每次训练时所用的训练数据相差不大,训练结果相关性比较大;反之,则每次训练所有的数据差别很大,训练结果之间差异比较大。通常 n 的值会设为5或10。
六、machine learning 的分类
- 监督学习:利用一系列标记好的训练数据进行训练。这种方法通常用于分类、回归、排序问题。
- 非监督学习:利用未标记的训练数据进行训练。聚类和降维都属于这类问题。
- 半监督学习:用来训练的数据部分是标记好的,部分是没有标记的。通常半监督学习用于未标记的训练数据很容易获得但标记数据需要花很大代价获得的情况。
- 直推式学习:用来训练的数据部分是标记好的,部分是没有标记的,但直推式学习只需要预测特定测试点的标签。
- 在线学习:与其他种类相比,在线学习的特点是涉及多轮,并且测试和训练是混合进行的。在每一轮都会收到一个未标记的训练点,进行预测,与真实标签对比计算
loss 。在线学习的目标是使所有轮中的累积损失最小。 - 增强学习:增强学习的测试和训练也是混合进行的。为了收集信息,学习过程不断与环境交互,并影响环境,同时对每一步行动立刻收到奖励。增强学习的目的是在一系列行动和与环境的交互中获得最大的奖励。
- 主动学习:主动学习要求学习过程中自适应地或交互地收集训练样本。主动学习的目标是用较少的标记好的样例实现与标准监督学习相当的性能,通常用于标签比较难于获得的应用,例如计算生物学。