1、机器学习的一些概念
- 有监督、无监督:
有监督机器学习又被称为“有老师的学习”,所谓的老师是指标签。监督学习就是最常见的分类(注意和聚类区分)问题,通过已有的训练样本(即已知数据及其对应的输出)去训练得到一个最优模型(这个模型属于某个函数的集合,最优表示某个评价准则下是最佳的),再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现分类的目的。也就具有了对未知数据分类的能力。
无监督机器学习被称为“没有老师的学习”,无监督相比于有监督,输入数据没有被标记,也没有确定的结果。样本数据类别未知,需要根据样本间的相似性对样本集进行分类(聚类,clustering)试图使类内差距最小化,类间差距最大化。通俗点将就是实际应用中,不少情况下无法预先知道样本的标签,也就是说没有训练样本对应的类别,因而只能从原先没有样本标签的样本集开始学习分类器设计。 - 泛化能力:
泛化能力(generalization ability)是指一个机器学习算法对于没有见过的样本的识别能力。我们也叫做举一反三的能力,或者叫做学以致用的能力。举个例子,小学生先通过学习十以内的加减乘除,知道什么是四则运算和怎么具体去算数,以后遇到百以内或者千以内的数字也知道怎么去做四则运算。我们只教会他十以内的运算,他自己就能推广到百以内或者千以内的运算,这种能力就是泛化能力。
- 过拟合与欠拟合(方差和偏差以及各自的解决办法):
过拟合:小学生学习四则运算,老师教过1+1=2,那么学生只记住了1+1=2,以后做题的时候碰到1+1知道答案是2,但是碰到10+10就不知道怎么计算答案,学生只是死记硬背1+1的答案是2,没理解四则运算的规律,不会推广到10+10,也就是泛化能力非常低,同时我们也把这种现象叫做过拟合(over-fitting)了。
过拟合是一种分类器会发生的现象,而泛化能力可以理解为对分类器的一种性能的评价,过拟合表现为算法模型的高方差,模型训练时的结果很好,但是在预测时结果不好。
产生过拟合的原因:模型的复杂度太高,比如:网络太深;过多的变量(特征);训练数据非常少。
避免过拟合的方法有很多:(1)尽量减少特征的数量、(2)early stopping、(3)数据集扩增、(4)dropout、(5)正则化包括L1、L2、(6)清洗数据。
欠拟合under-fitting)是和过拟合相对的现象,可以说是模型的复杂度较低,没法很好的学习到数据背后的规律。就好像开普勒在总结天体运行规律之前,他的老师第谷记录了很多的运行数据,但是都没法用数据去解释天体运行的规律并预测,这就是在天体运行数据上,人们一直处于欠拟合的状态,只知道记录过的过去是这样运行的,但是不知道道理是什么。
欠拟合指的是模型不够复杂,没有很好地捕捉到数据特征,不能够很好地拟合数据,对应模型的高偏差。
解决欠拟合可以从寻找更好的特征(具有代表性的)和使用更多的特征(增大输入向量的维度)。具体的方法:1、添加更多的特征项(比如上下文特征、位置特征等);2、添加多项式特征(例如将线性模型通过添加二次项或者三次项使模型泛化能力更强);3、减少正则化参数,正则化的目的是用来防止过拟合的,但是现在模型出现了欠拟合,则需要减少正则化参数。 - 交叉验证:
一个交叉验证将样本数据集分成两个互补的子集,一个子集用于训练(分类器或模型)称为训练集(training set);另一个子集用于验证(分类器或模型的)分析的有效性称为测试集(testing set)。利用测试集来测试训练得到的分类器或模型,以此作为分类器或模型的性能指标。得到高度预测精确度和低的预测误差,是研究的期望。为了减少交叉验证结果的可变性,对一个样本数据集进行多次不同的划分,得到不同的互补子集,进行多次交叉验证。取多次验证的平均值作为验证结果。
用交叉验证的目的是为了得到可靠稳定的模型。
2、线性回归的原理
线性回归为何叫线性?实际上,像在处理Google的股票统计数据时,我们使用线性回归是在这堆数据所在的N维空间中找到一条线来描述这些数据的规律,因此才叫线性回归。这个过程称为拟合,这条线成为拟合线。
这条拟合线上的某个数据点或多或少都会偏离实际统计的值。实际统计数据和拟合线对应数据的差叫残差。很明显,残差可以反映模型的预测误差。
但是残差有正有负的,不方便计算。而且实际运用中我们不需要关注残差的正负,因为正负并不能描述误差的大小程度。为了降低计算复杂性,我们使用这个差值的平方进行计算。你可能会想到,差值的平方不是把差值给改了吗,没关系吗?答案是:数据确实变了,但没影响。因为我们真正使用的是残差的绝对值,用它描述误差大小的程度,而对这个绝对值进行平方后有同样的效果,毕竟 y = ∣ x ∣ {y = |x|} y=∣x∣ 与 y = x 2 {y = x^2} y=x2有同样的单调性。
结合上述平方的想法,为了让预测更加准确,我们应该选择一条线,能够使得线上每个点与实际数据的残差平方的总和最小。这样的线才能叫最佳拟合线。直观理解,线性回归其实就是这么一条直线。
3、线性回归的目标函数、损失函数(代价函数)
线性回归试图学得 f ( x i ) = w ∗ x i + b {f(x_i) = w*x_i + b} f(xi)=w∗xi+b(目标函数)使得 f ( x i ) ≃ y i {f(x_i)\simeq y_i} f(xi)≃yi,如何确定 w {w} w和 b {b} b呢?关键在于如何衡量 f ( x ) {f(x)} f(x)与 y {y} y之间的差别。
均方误差是回归任务中常用的性能度量,因此我们试图让均方误差(损失函数,或代价函数)最小化,即
( w ∗ , b ∗ ) = a r g m i n ( w , b ) ∑ i = 1 m ( f ( x i ) − y i ) 2 = a r g m i n ( w , b ) ∑ i = 1 m ( y i − w x i − b ) 2 {(w^*,b^*)=argmin_{(w,b)} \sum_{i=1}^{m}(f(x_i)-y_i)^2=argmin_{(w,b)} \sum_{i=1}^{m}(y_i-wx_i-b)^2} (w∗,b∗)=argmin(w,b)∑i=1m(f(xi)−yi)2=argmin(w,b)∑i=1m(yi−wxi<