机器学习笔记之基础概念
本文基本按照《统计学习方法》中第一章的顺序来写,目录如下:
1. 监督学习与非监督学习
2. 统计学习三要素
3. 过拟合与正则化(L1、L2)
4. 交叉验证
5. 泛化能力
6. 生成模型与判别模型
7. 机器学习主要问题
8. 提问
正文:
1. 监督学习与非监督学习
从标注数据中学习知识的规律以及训练模型的方法叫做监督学习,但由于标注数据获取成本较高,训练数据的数量往往不够,所以就有了从非标注数据,也就是非监督数据中学习的方法。
由于非监督数据更容易获取,所以非监督学习方法更适合于互联网时代,Deep Learning就是一种非监督的学习方法,机器学习笔记并不包含这部分内容,后续会专门写一个集合,记录自己在DL方面的提炼和思考。
2. 统计学习三要素
在《统计学习方法》中,李航博士提出了统计学习方法的三要素,即:模型、策略、算法,博主觉得也可以叫做:数学模型、学习目标、优化算法,这样更加一目了然。
数学模型——学习的目的在于学到一个由输入到输出的映射,这一映射就是数学模型,该模型即可以是概率模型,也可以是非概率模型,概率模型由条件概率P(Y|X)表示,非概率模型由决策函数Y=f(x)表示,建模的时候,通常既可以使用概率模型也可以使用非概率模型,这里又会涉及到第二个要素:学习目标的选择,如果是概率模型,通常选择最大似然函数作为其学习目标。
学习目标——有了模型的假设空间,之后要考虑的就是按照什么样的准则去选择最优的模型(模型参数),模型的输出与期望输出之间会有一定的差距,这个差距代表的就是当前模型的好坏程度,学习目标就是要构造一个能够表示模型好坏的函数,这个函数通常叫做损失函数,或者叫误差函数、代价函数等,损失函数的选择也是十分重要的,这直接关系到学习的效果。
优化算法——有了模型和目标函数,剩下的就是怎么求解了(模型的参数),如果最优化问题有解析解,那问题就比较简单,但通常解析解都不存在,这就得用数值计算的方法去求解,并要尽量找到全局最优解才好,通常的优化算法有:梯度下降法、牛顿法、拟牛顿法等等。
以上就是统计学习的三要素,任何一个统计学习任务都必须有这三要素。
3. 过拟合与正则化(L1、L2)(待补充完整)
模型是一种抽象,抽象度过低,就是欠拟合,抽象度过高,就是过拟合。
这部分的内容在Andrew的课程(欠拟合与过拟合的概念)中有较为详细的解释,这里就不多做重复了。
为了防止模型过拟合,通常需要使用正则化方法,对目标函数做一个惩罚,以保证其学习到的模型尽量简单够用即可,正则化的思想符合奥卡姆剃刀原则,即在所有的模型参数中,选择那个能够很好解释已知数据且最好用的模型,其实就是对学习加了一个刹车闸,防止过学习、过拟合了,让模型既能够很好的表现已知数据,又能够很好的预测未知数据,处于最佳的平衡状态。
正则化通常使用L1与L2两个范数,此部分后续补充。。。
4. 交叉验证(待补充)
5. 泛化能力(待补充)
6. 生成模型与判别模型
按模型特点来划分,可以分为生成模型与判别模型。
生成模型是指由数据学习联合概率分布P(X, Y),然后求条件概率分布P(Y|X)作为预测模型:
P(Y|X) = P(X, Y)/P(X) = P(X|Y) * P(Y)/P(X)
之所以叫做生成方法,是因为给定输入X到产出Y的每一步这个生成过程都是可以推导得到的,例如:朴素贝叶斯方法。
以垃圾邮件分类任务为例,模型中Y是邮件类别,X是邮件内容,容易得到这样的统计数据P(X|Y)和P(Y),其中P(X|Y)是在某个类别下某些内容出现的概率,以及P(Y)该类别整体的概率,由此可得联合概率P(X, Y),如果内容是一个个独立的词条组成,则从X到产出Y的每一步都可以由上述统计值生成推导而来。
与之相对应的,判别方法是指直接学习决策函数Y=f(x)或条件概率P(Y|X),判别模型不关心模型的产生过程,只关心输入X可以产出什么样的Y即可,对比生成模型,判别模型有点不求甚解的味道,不过两种方法各有优缺点,常用的判别方法有:最大熵、SVM等。
总结:
a. 生成模型可以还原出联合概率分布P(X, Y),而判别方法不能,其缺点是直接使用概率模型,需要先验概率知识(P(X|Y)),却不能添加特征,因为特征属于中间数据,概率模型直接使用最终的概率知识P(X|Y),与判别模型不同在于,得到P(X|Y)的过程中有哪些特征导致了这个概率的生成,生成模型并不关心,如果训练数据不充分,或者数据并不吻合独立性等假设,则训练出的效果就会打折扣。
b. 判别模型恰好相反,由于其直接面对预测,且不关心生成过程,只关注那些观测到的各种局部特征,由此来训练模型,所以可以方便的添加各种特征,学习的准确率也往往更高。
7. 机器学习主要问题
按面向的不同问题或任务来划分,可以将机器学习任务划分为:
a. 分类
给定输入,预测其属于哪个类别(输出),如:垃圾邮件分类等,输出需要是有限个、离散值。
b. 回归
给定输入与输出(连续值),学习两者之间的关系或叫做函数拟合,其最常用的损失函数是平方损失函数(Least Squares),如:房价回归/预测、股票走势回归/预测等。
c. 聚类
给定多个输入,将其聚成K个类别,与分类问题的区别是分类问题已知类别,给定一个输入,要预测其属于哪个类别,聚类问题有:用户按兴趣聚类。
d. 标注
给定一组连续的输入,预测其中每一个输入的类别,如:序列标注等。
e. 特征学习
给定输入,学习其更抽象的特征,例如:DL中的图像识别问题。
8. 提问
a. 什么时候使用决策函数y=f(x),什么时候使用概率模型p(y|x)?
多数时候两者都可以,例如分类任务,有些时候最适合用决策函数,如回归任务,有些时候问题更适合转换为概率问题,因此采用概率模型,个人理解就像经济学家看待世界,所有的行为都有其背后的经济规律,可以用经济学模型来解释,而社会学家呢,则习惯用社会学的知识来看待和解释现象背后的规律,站得角度不同,利用的知识体系稍有不同,正如看同样的病症,有中医和西医两套理论,站在概率的角度,所有的输入X都有一定概率归为Y,所以一切问题都以P(Y|X)来构建模型。
b. 什么时候用最小二乘法(Least Squares),什么时候用极大似然估计(Maximum Likelihood)?
极大似然其实就是为了求概率最大化时的一种方法,而最小二乘则是在估计决策函数时使用的。
这两个问题告诉我们,求解不同的数学模型时应该使用不同的学习目标。
转载请注明引用自: