1.机器学习的一些概念

1)根据训练数据是否拥有标记信息,学习任务可大致划分为两大类:“监督学习”(supervised learning)和“无监督学习”(unsupervised learning),分类和回归是前者的代表,而聚类则是后者的代表。

有监督学习:有监督的学习的数据具备特征(features)与预测目标(label),通过算法训练并建立模型。当有新的数据时,我们就可以使用模型进行预测。

无监督学习:对于无监督的学习,从现有数据我们不知道要预测的答案,所以没有label(预测目标)。例如,cluster集群算法将数据分成几个差异性最大的群组,而群组内的则相似程度最高。

2)泛化能力

机器学习的目标是使学得的模型能很好地适用于“新样本”,而不是仅仅在训练样本上工作得很好;即便对聚类这样的无监督学习任务,我们也希望学得的簇划分能适用于没在训练集中出现的样本。学得模型适用于新样本的能力,称为“泛化”(generalization)能力。

具强泛化能力的模型能很好地适用于整个样本空间。于是,尽管训练集通常只是样本空间的一个很小的采样,我们仍希望它能很好地反映出样本空间的特性,否则就很难期望在训练集上学得的模型能在整个样本空间上都工作得很好。通常假设样本空间中全体样本服从一个未知“分布”(distribution)D,我们获得的每个样本都是独立地从这个分布上采样获得的,即“独立同分布”(independent and identically distributed,简称i.i.d.)。一般而言,训练样本越多,我们得到的关于D 的信息越多,这样就越有可能通过学习获得具有强泛化能力的模型。

3)过拟合欠拟合

我们实际希望的,是在新样本上能表现的很好的学习器.为了达到这个目的,应该从训练样本中尽可能学出适用于所有潜在样本的“普遍规律”,这样才能在遇到新样本时做出正确的判别.然而,当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降.这种现象在机器学习中称为“过拟合”(overfitting).与“过拟合”相对的是“欠拟合”(underfitting),这是指对训练样本的一般性质尚未学好。

4)偏差与方差

偏差(bias)和方差(variance)是统计学的概念,首先得明确的,方差是多个模型间的比较,而非对一个模型而言的,对于单独的一个模型,比如说:

进行回归任务的CNN模型_数据


这样的一个给定了具体系数的估计函数,是不能说f(x)的方差是多少。而偏差可以是单个数据集中的,也可以是多个数据集中的,这个得看具体的定义。

对学习算法除了通过实验估计其泛化性能,人们往往还希望了解它“为什么”具有这样的性能。“偏差-方差分解”(bias-variance decomposition)是解释学习算法泛化性能的一种重要工具。

偏差-方差试图对学习算法的期望泛化错误率进行拆解。我们知道,算法在不同训练集上学得的结果很可能不同,即便这些训练集是来自同一个分布。对测试样本x,令yD为x在数据集中的标记,y为x的真实标记,f(x;D)为训练集D上学得模型f在x上的预测输出。以回归任务为例,学习算法的期望预测为

进行回归任务的CNN模型_方差_02


回顾偏差、方差、噪声的含义:偏差(2.40)度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差(2.38)度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声(2.39)则表达了在当前任务上任何学习算法所能达到的预期泛化误差的下界,即刻画了学习问题本身的难度。偏差-方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分拟合数据,并且使方差较小,即使得数据扰动产生的影响小。

一般来说,偏差与方差是有冲突的,这称为偏差-方差窘境(bias-variance dilemma)。图2.9给出了一个示意图。给定学习任务,假定我们能控制学习算法的训练程度(很多学习算法都可控制训练程度,例如决策树可控制层数,神经网络可控制训练轮数,集成学习方法可控制基学习器个数。),则在训练不足时,学习器的拟合能力不够强,训练数据的扰动不足以使学习器产生显著变化,此时偏差主导了泛化错误率;随着训练程度的加深,学习器的拟合能力逐渐增强,训练数据发生的扰动渐渐能被学习器学到,方差逐渐主导了泛化错误率;在训练程度充足后,学习器的拟合能力已非常强,训练数据发生的轻微扰动都会导致学习器发生显著变化,若训练数据自身的、非全局的特性被学习器学到了,则将发生过拟合。

进行回归任务的CNN模型_进行回归任务的CNN模型_03


5)交叉验证

交叉验证(cross validation)是一种常用的模型选择方法,常常在数据不充足的情况下使用,其基本思想是:重复使用数据。把给定的数据进行切分,切分的数据集组合分为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择。

2.线性回归的原理

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,其表达形式为y=wx+e,e为误差服从均值为0的正态分布。

回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析。

3.线性回归损失函数、代价函数、目标函数

1)损失函数

对于训练数据样本有如下的拟合直线

进行回归任务的CNN模型_进行回归任务的CNN模型_04


据此构建一个损失函数如下:

进行回归任务的CNN模型_方差_05


通过最小化这个损失函数来求得拟合直线的最佳参数θ,实际上就是求损失函数C在取得最小值情况下θ的值。

参考博客:

2)代价函数

为了度量预测函数的精确性,引入了代价函数,它用对所有基于输入(x)的预测结果和输出(y)取平均差。

进行回归任务的CNN模型_泛化_06


参考博客:https://www.jianshu.com/p/04d255ecabf3 3)目标函数

目标函数=损失函数+正则项

参考博客:

4.优化方法(梯度下降法、牛顿法、拟牛顿法)

1)梯度下降法

梯度下降法,就是利用负梯度方向来决定每次迭代的新的搜索方向,使得每次迭代能使待优化的目标函数逐步减小。梯度下降法是2范数下的最速下降法。 最速下降法的一种简单形式是:x(k+1)=x(k)-a*g(k),其中a称为学习速率,可以是较小的常数。g(k)是x(k)的梯度。梯度其实就是函数的偏导数。

参考博客:

2)牛顿法

牛顿法的基本思想是利用迭代点处的一阶导数(梯度)和二阶导数(Hessen矩阵)对目标函数进行二次函数近似,然后把二次模型的极小点作为新的迭代点,并不断重复这一过程,直至求得满足精度的近似极小值。牛顿法的速度相当快,而且能高度逼近最优值。牛顿法分为基本的牛顿法和全局牛顿法。

3)拟牛顿法

拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度。通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性。这类方法大大优于最速下降法,尤其对于困难的问题。另外,因为拟牛顿法不需要二阶导数的信息,所以有时比牛顿法更为有效。如今,优化软件中包含了大量的拟牛顿算法用来解决无约束,约束,和大规模的优化问题。