机器学习三要素:模型,策略与算法

摘要: 李航在《统计学习方法》中将统计学习方法的三要素——模型、策略、算法总结为机器学习方法的提纲挈领。这篇博文主要总结归纳《统计学习方法》中对于这三要素的阐述。

@[toc]

最近在读李航的《统计学习方法》,作者从统计学习的方法来分析机器学习技术,分析很细致深刻,值得反思,未来将逐步总结相关内容,期待更多共鸣与思考。

什么是统计机器学习

统计学习又叫统计机器学习,是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科。

统计学习的对象是具备一定统计规律的数据,同时对数据有一个强假设:数据是独立同分布产生的。学习的模型属于某个函数的集合,称为假设空间(hypothesis space),应用某个评价准则(evaluation criterion) 从假设空间中选取一个最优的模型,使它对已知训练数据和未知测试数据在给定评价准则下有最优的预测结果,这个模型的选取过程由算法实现。这样统计学习的方法由模型的假设空间、模型选择的准则以及模型的学习算法组成,称为统计机器学习的三要素。

概念定义

  • 输入空间: 输入变量$X={x_1, x_2, …, x_N}$ 构成的空间;
  • 输出空间:对于输入变量的真实输出$Y={y_1, y_2,…,y_N}$ 构成的空间;
  • 特征空间:每个输入变量都可以由一组特征向量表示,这些特征向量构成了特征空间;
    • 模型实际上都是定义在特征空间上的;
  • 假设空间: 包含所有可能的映射关系集合 $F={ f|y=f_{\theta}(X), \theta \in R^n}$
    • 输入到输出的映射的集合,表示为条件概率分布$\hat P(X|Y)$ 或决策函数 $Y = \hat f(X)$
  • 参数空间: 构成假设空间每个映射函数的参数所形成的空间;
  • 监督学习的联合概率分布

监督学习假设输入与输出的随机变量$X$ 和 $Y$ 遵循联合概率分布 $P(X,Y)$ , 机器学习的前提是假设该概率分布存在,但具体定义是未知的(如果知道的话也没必要通过机器学习来获取的了,直接可以通过条件函数来预测未知结果)。训练数据和测试数据被看作是依据联合概率分布$P(X,Y)$ 独立同分布产生的。这是机器学习数据具备一定统计规律的基本假设。

模型

如下图所示,在机器学习中,模型描述的是一组从输入到输出的映射关系的函数表示。

model

在监督学习中,模型就是从假设空间中所要学习条件概率分布$\hat P(X|Y)$ 或决策函数 $Y = \hat f(X)$ 。

策略

策略描述了学习的目标函数,通过什么样的准则使学习的方向最终逼近最终的优化目标从而能够从假设空间中选取最优的模型。一般采用损失函数或代价函数来对模型的好坏进行度量。损失函数是$f(X)$ 和 $Y$ 的非负实值函数,记作 $L(Y, f(X))$ 。

损失函数数值越小,模型越好,损失函数的期望为:

这是理论上模型$f(X)$ 关于联合分布的平均意义下的损失,称为风险函数期望损失。由于$P(X,Y)$ 未知,所以期望损失无法直接计算。因此引入另一个概念:经验风险(损失)

经验风险是模型关于训练样本的平均损失。根据大数定理,当样本容量N趋于无穷时,经验风险趋于期望风险。所以可以用经验风险估计期望风险,但由于现实世界中训练样本数目有限,所以需要对经验风险进行一定的矫正(如正则化)。

当样本容量很小时,经验风险最小化学习会产生过拟合现象,于是引入修正方案:结构风险最小化(SRM):

结构风险是在经验风险基础上加上表示模型复杂度的正则化项(惩罚项)$J(f)$ ,它描述了模型的复杂度。

过拟合:如果在假设空间中存在“真”模型,过拟合可以理解为所选模型复杂度由于比真模型更高,包含了更多的参数,对训练数据预测比”真”模型更好,但对新数据的预测很差。(训练数据中掺杂着噪声,所以即使”真”模型也无法一定完全拟合训练数据)。

过拟合问题告诉我们,对模型好坏的评价不是完全靠在训练数据上的经验风险或结构风险来决定的,而是学习方法的泛化能力,这是期望损失本身要表达的意思。如果学到一个模型$\hat f$,那么用这个模型对未知数据预测的误差即为泛化误差

泛化误差具备如下性质:

  1. 它是样本容量的函数,随着样本容量增加,泛化误差上界趋于0;
  2. 它是假设空间容量的函数,假设空间越大,模型就越难学,泛化误差上界就越大。

算法

算法将机器学习问题转换为最优化问题进行求解。设计目标是寻找全局最优解并使得求解过程足够高效。


参考

  1. ​《统计学习方法》

深度学习基础之模型压缩

深度学习中模型压缩关键技术总结。

深度学习基础篇将从几个不同的层面来总结在过去一段时间对于深度学习关键技术的理解,通过知识体系的归纳了解知识体系的不足,提升对核心技术点的认识。所有系列文章将在未来一段时间内容随着掌握了解的深入迭代更新。目前主要希望对如下几个领域进行归纳汇总:

  1. 问题定义
  2. 目标及评估
  3. 数据准备与预处理
  4. 激活函数的归纳及总结
  5. 优化算法的归纳及总结
  6. 正则化与泛化性能
  7. 模型压缩
  8. 数据扩充

为了增加深度学习模型的容量,往往包含了大量的待训练参数和模型规模,以VGG-16为例,参数数目为1亿3千万,占用空间500MB,如果利用VGG-16进行一次图片识别任务,需要进行309亿次的浮点运算(FLOPs)。如此大的模型体积和对算力的依赖,为深度学习模型迁移到嵌入式设备或者利用CPU进行推理带来了很大的难度,为此通过合理的模型压缩技术在保证模型性能没有明显下降的情况下降低模型体积和参数数目成为一个热点的研究问题。

同时,研究发现深度神经网络面临严峻的过参数化问题,需要注意的是,这种冗余在模型训练阶段是十分必要的。因为深度神经网络面临的是一个极其复杂的非凸优化问题,对于现有的基于梯度下降的优化算法而言,这种参数上的冗余保证了网络能够收敛到一个比较好的最优值。因而在一定程度上,网络越深,参数越多,模型越复杂,其最终的效果也往往越好。

按照压缩过程对网络结构的破坏程度,我们将模型压缩技术分为“前端压缩”与“后端压缩”两部分。所谓“前端压缩”,是指不改变原网络结构的压缩技术,主要包括知识蒸馏、紧凑的模型结构设计以及滤波器层面的剪枝等;而“后端压缩”则包括低秩近似、未加限制的剪枝、参数量化以及二值网络等,其目标在于尽可能地减少模型大小,因而会对原始网络结构造成极大程度的改造。其中,由于“前端压缩”未改变原有的网络结构,仅仅只是在原模型的基础上减少了网络的层数或者滤波器的个数,其最终的模型可完美适配现有的深度学习库。相比之下,“后端压缩”为了追求极致的压缩比,不得不对原有的网络结构进行改造,如对参数进行量化表示等,而这样的改造往往是不可逆的。同时,为了获得理想的压缩效果,必须开发相配套的运行库,甚至是专门的硬件设备,其最终的结果往往是一种压缩技术对应于一套运行库,从而带来了巨大的维护成本。

剪枝与稀疏约束

知识蒸馏

参数量化

二值网络

参考

  1. 《解析卷积神经网络—深度学习实践手册》
  2. Keras文档
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×