参数
参数分为两种:可学习得到的参数,和超参数。
机器学习可以归结为学习一个映射函数f : x y,将输入变量 x映射为输出变量y。一般我们可以假设映射函数为y = f(x, θ)。其中θ 即为函 数的参数。参数可以通过学习算法进行学习。
除了可学习的参数之外,还有一类参数是用来定义模型结构或训练策略的, 这类参数叫做超参数(Hyper-Parameter)。超参数和可学习的参数不同,通常是按照人的经验设定,或者通过网格搜索(Grid Search)对一组超参数组合进行不断试错调整。 常见的超参数:聚类算法中的类别个数、梯度下降法的步长、正则项的系数、神经网络的层数、支持向量机中的核函数等。
特征学习
特征学习分成两种:特征选择和特征抽取。
特征选择(Feature Selection) 是选取原始特征集合的一个有效子集,使得基于这个特征子集训练出来的模型准确率最高。简单地说,特征选择就是保留有用特征,移除冗余或无关的特征。 最暴力的做法是测试每个特征子集,看机器学习模型哪个 子集上的准确率最高,但这种方式效率太低。常用的方法是采样贪心的策略,由空集合开始,每一轮添加该轮最优的特征;或者从原始特征集合开始,每次删 除最无用的特征。
特征抽取(Feature Extraction)是构造一个新的特征空间,并将原始特征 投影在新的空间中。以线性投影为例,原始特征向量x ∈ R d,经过线性投影后 得到在新空间中的特征向量x ′。 经典的特征抽取方法有主成分分析(Principle Components Analysis,PCA) 和线性判别分析(Linear Discriminant Analysis,LDA)等。 特征选择和特征抽取又都可以分为有监督和和无监督学习。有监督学习目 标是抽取对模型最有用的特征,而无监督学习的目标是减少冗余信息。
特征学习的目的:降维度,减小维数灾难;去除冗余信息,去除噪声信息,提高计算效率,缩短训练时间;简化模型,提高模型泛华能力,避免过拟合。
数据
作用 | ||
---|---|---|
训练集 | 训练模型,确定模型参数 | 学习样本数据集,通过匹配一些参数来建立一个分类器。建立一种分类的方式,主要是用来训练模型的。 |
验证集 | 确定网络结构,或者控制模型复杂程度的参数 | 对学习出来的模型,调整分类器的参数,如在神经网络中选择隐藏单元数。验证集还用来确定网络结构或者控制模型复杂程度的参数。 |
测试集 | 测试模型的推广能力 | 主要是测试训练好的模型的分辨能力(识别率等) |
机器学习三要素
模型
目标函数假设空间线性模型非线性模型
学习准则
训练集中的样本独立同分布要求样本分布p(x, y)未知但必须是固定的,不会随时间而变化,否则无法学习。
期望风险
损失函数
0-1 损失函数
平方损失函数
交叉熵损失函数(负对数似然损失函数)
经验风险最小化(empirical risk minimization,ERM)导致的问题:在模型能力强,训练样本较少,包含一定的噪声时,经验风险最小化原则会导致过拟合——致模型在训练集上错误率很低,但是在未知数据上错误率很高。
结构风险最小化(structure risk minimization,SRM)为了解决过拟合问题,一般在经验风险最小化的基础上再引入参数的正则化(regularization),来限制模型能力,使其不要过度地最小化经验风险。
机器学习中的学习准则并不仅仅是拟合训练集上的数据,同时也要 使得泛化错误最低。
优化算法
凸优化为了可以找到最优的模型以及充分利用凸优化中一些高效、成熟的优化方 法,比如共轭梯度、拟牛顿法等,很多机器学习方法都都倾向于选择合适的假设空间和风险函数以构造一个凸的优化目标函数。但也有很多模型,比如神经网络的优化目标是非凸的,只能退而求其次找到局部最优解。
梯度下降
随机梯度下降法(stochastic gradient descent,SGD)在最优化问题中,最简单、常用
小批量随机梯度下降(Mini-Batach Stochastic Gradient Descent)
批量梯度下降法
验证集在梯度下降训练的过程中,由于过拟合的原因,在训练样本上收敛的参数, 并不一定在测试集上最优。每次迭代时,把新得到的模型f(x, θ)在验证集上进行测试,并计算错误率。如果 在验证集上的错误率不再下降,就停止迭代。这种策略叫提前停止(early-stop) 。如果没有验证集,可以在训练集上进行交叉验证。避免迭代次数过多,而过拟合。
学习方法
监督学习有标签数据的学习
回归(连续函数的预测)
分类(单分类/多分类)
结构化(语言合成、人脸识别、机器翻译)
半监督学习带标签训练数据不足的情况
非监督学习只给予未标记的数据
聚类
迁移学习用无关数据来优化function
强化学习function的自我反省和修正
监督学习 | 无监督学习 | 强化学习 | |
---|---|---|---|
输入 | 有标签 | 无标签 | 决策过程 |
反馈方式 | 直接反馈 | 无反馈 | 奖励 |
目标 | 分类、预测 | 发现隐藏结构 | 动作 |
过拟合
从本质上来说,过拟合是因为模型的学习能力太强,除了学习到了样本空间的共有特性外,还学习到了训练样本集上的噪声。因为这些噪声的存在,导致了模型的泛化性能下降。
产生原因:
过分追求经验风险最小化;
数据集太小;
数据中存在噪声;
解决方案:
提前停止(early stopping)
划分出验证集(Validation Dataset)来测试每一次迭代的参数在验证集上是否最优。如果在验证集上的错误率不再下降,就停止迭代,因为再训练下去模型的泛化性能只会更差。实际训练中一般每隔一段时间(比如每1000次迭代)就保存一次模型,然后选择在验证集上效果最好的模型作为最终的模型。
weight penality L1&L2
过拟合的本质就是对于非本质特征的噪声过于敏感,把训练集中的噪声当作了特征,以至于在测试集上的表现较差。当权值比较小时,当输入有轻微的改动(噪声)时,结果所受到的影响也比较小,所以惩罚项能在一定程度上防止过拟合。
数据增强(data augmentation)
Dropout
Dropout的作用对象是layer,对于某一层中的每个节点,使得某节点以一定的概率p不参与到训练的过程中(即前向传导时不参与计算,后向传播计算时不参与梯度更新)。
原理:
节点之间的耦合度(敏感度)降低了,从而促使模型学到更加鲁棒的特征。
避免了对于训练样本的过分学习。
在测试阶段,dropout layer的所有节点都用上了,这样就起到了ensemble的作用。
参数学习
最小二乘估计也称为最小均方误差(least mean squares,LMS)算法。最小二乘法估计要求XX T 是满秩的,存在逆矩阵,也就是要求x的每一维之间是线性不相关的。如果XX T 不可求逆矩阵,说明在训练数据上,输入的不同特征之间是线性相关的。 因此,当XX T 不可逆时,可以使用主成分分析等方法来预处理数据,消除不同特征之间的相关性,然后再使用最小二乘估计方法来求解。
岭回归最小二乘法估计的基本要求是各个特征之间要相互独立,但实际应用中,特征之间可能会有较大的共线性(multicollinearity),即XX T 的秩会解决于0,进而使得最小二乘法估计的计算变得很不稳定。
最大似然估计机器学习任务可以分为两类,一类是样本的特征向量 x 和标签 y 之间如果存在未知的函数关系 y = h(x),另一类是条件概率 p(y|x) 服从某个未知分布。第2.4.1中介绍的最小二乘估计是属于第一类,直接建模 x 和标签 y 之间的函数关系。最大似然估计(maximum likelihood estimate,MLE)是指找到一组参数w使得似然函数L(w|D)最大,等价于对数似然函数最大。
评价方法
混淆矩阵
TEST POSITIVE TEST NEGATIVE CONDITION POSITIVE number of True Positive number of False Negative CONDITION NEGATIVE number of False Positive number of True Negative
查准率(Precision)
查全率(Recall)
F1值(F1 value)
准确率(Accuracy)
错误率(Error Rate)
理论支持
可能近似正确(PAC)
机器学习做的事情,是你给我数据之后,希望能够以很高的概率给出一个好模型。比如说我们可以估算,需要多大规模的数据样本,才能对某个问题做到什么样的程度。如果你对这个问题的要求非常高,但是要达到这个效果所需要的样本规模大到无法满足,那这个问题就是不可学习的。
没有免费午餐(NFL)
不能脱离具体问题来谈论算法的优劣,任何算法都有局限性。必须要“具体问题具体分析”。所以不存在对每个问题都是用的算法,可能流行的“十大机器学习算法”试过一遍也找不到work的算法,但这并不能证明机器学习的局限性。
参考资料:
邱锡鹏《神经网络与深度学习》