文章目录
机器学习
监督学习
监督学习(Supervised Learning)算法构建了包含输入和所需输出的一组数据的数学模型。这些数据成为训练数据,由一组训练样本组成。(就是函数对应关系)
监督学习主要包括分类和回归(使用哪一种取决于输出值的类型)
当输出被限制为有限的一组值(离散数值)时使用分类算法;
当输出可以具有范围内的任何数值(连续数值)时使用回归算法
相似度学习是和回归和分类都密切相关的一类监督机器学习,他的目标是使用相似性函数从样本中学习,这个函数可以度量两个对象之间的相似度或关联度。他在排名、推荐系统、视觉识别跟踪、人脸识别等方面有很好的应用场景。
监督学习的实例
深入了解监督学习
监督学习三要素
- 模型:总结数据的内在规律,用数学函数描述的系统
- 策略:选取最优模型的评价准则
- 算法:选取最优模型的具体方法
监督学习实现步骤
- 得到一个有限的训练数据集合
- 确定包含所有学习模型的集合
- 决定模型选择的准则,也就是学习策略
- 实现求解最优模型的算法,也就是学习算法
- 通过学习算法选择最优模型
- 利用得到的最优模型,对新数据进行预测或分析
模型评估策略
- 模型评估
- 训练集和测试集
- 损失函数和经验风险
- 训练误差和测试误差
- 模型选择
- 过拟合和欠拟合
- 正则化和交叉验证
训练集和测试集
- 训练集:输入到模型中对模型进行训练的数据集合
- 测试集:模型训练完成后测试训练效果的数据集合
损失函数
- 损失函数用来衡量模型预测误差的大小
- 定义:选取模型f为决策函数,对于给定的输出参数X,f(X)为预测结果,Y为真实结果;f(X)和Y之间可能会有偏差,我们就用损失函数来度量预测偏差的程度,记作L(Y,f(X))
- 损失函数是模型里面系数的函数
- 损失函数值越小,模型就越好
加平方绝对值是为了避免负数
经验风险
模型f(X)关于训练数据集的平均损失称为经验风险(Empirial risk,记作Remp)
经验风险最小化(Empirical Risk Minimization,ERM)
- 这一策略认为,经验风险最小的模型就是最优模型
- 样本足够大时,ERM有很好的学习效果,因为有足够多的“经验”
- 样本较小时,ERM就会出现一些问题
训练误差和测试误差
- 训练误差
- 训练误差(training error)是关于训练集的平均损失
- 训练误差的大小,可以用来判断给定问题是否容易学习,但本质上并不重要
- 训练误差(training error)是关于训练集的平均损失
过拟合和欠拟合
欠拟合(under-fitting)
- 模型没有很好地捕捉到数据特征,特征集过小,导致不能很好的拟合数据
- 欠拟合的本质就是对数据的特征“学习”得 不够
过拟合(over-fitting)
- 把训练数据学习的太彻底,以至于把噪声数据的特征也学习到了,特征集过大,这样就会导致在后期测试的时候不能够很好的识别数据,即不能正确分类,模型泛化能力太差
模型的选择
- 当模型复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后再曾大
- 当模型复杂度过大时,就会发生过拟合;所以模型复杂度应该适当
正则化
- 结构风险最小化(Structural Risk Minimization,SRM)
- 是在ERM基础上,为了防止过拟合而提出来的策略
- 在经验风险上加上表示模型复杂度的正则化项(regularizer),或者叫惩罚项
- 正则化项一般是模型复杂度的单调递增函数,即模型越复杂,正则化值越大
- 结构风险最小化的典型实现是正则化(regularization)
- 形式:
- 第一项是经验风险,第二项J(f)是正则化项,人是调整两者关系的系数
- 正则化项可以取不同的形式,比如,特征向量的L1范数(绝对值求和)或L2范数(平方求和开根号)
- 形式:
奥卡姆剃刀
如无必要,勿增实体
正则化符合奥卡姆剃刀原理,他的思想是:在所有可能选择的模型中,我们应该选择能够很好地解释已知数据并且十分简单的模型
如果简单的模型已经够用,我们不应该一味地追求更小的训练误差,而把模型变得越来越复杂
交叉验证
- 数据集划分
- 如果样本数据充足,一种简单的方法是随即将数据集切成三部分:训练集(training set)、验证集(validation set)和测试集(test set)
- 训练集用于训练模型,验证集用于模型选择,测试集用于学习方法评估
- 数据不充足时,可以重复利用数据——交叉验证(cross validation)
- 简单交叉验证
- 数据随机分为两部分,如70%作为训练集,剩下30%作为测试集
- 训练集在不同条件下(比如参数个数)训练模型,得到不同的模型
- 在测试集上评价各个模型的测试误差,选出最优模型
- S折交叉验证
- 将数据随机切分为S个互不相交、相同大小的子集;S-1个做训练集,剩下一个做测试集
- 重复进行训练集、测试集的选取,有S中可能的选择
+留一交叉验证
- 简单交叉验证
分类和回归
- 监督学习主要可以划分为两类,即分类问题和回归问题
- 分类问题预测数据属于那一类别——离散
- 回归问题根据数据预测一个数值——连续
- 通俗地讲,分类问题就是预测数据属于那一种类型,房屋是属于卖得出去类型还是卖不出去类型
- 回归问题就是预测一个数值,比如给出房屋的一些特征,预测房价
- 但如果将上面的房屋出售问题改成预测房屋出售的概率,得到的结果将不再是可以售出(1)和不能售出(0),将会是一个连续的数值,例如:0.5 ,这就变成了一个回归问题
分类问题
分类器(classifier):监督学习从数据中学习一个分类模型或分类决策函数,称为分类器;分类器对新的输入进行预测,称为分类
分类问题包括学习和分类两个过程。学习过程中,根据已知的训练数据集利用学习方法学习一个分类器;分类过程中,利用已习得的分类器对新的输入进行分类
分类问题可以用很多学习方法来解决,比如k近邻、决策树、感知机、逻辑斯蒂回归、支撑向量机、朴素贝叶斯法、神经网络等
评价分类器性能的指标一般是分类准确率(accuracy),它定义为分类器对测试集正确分类的样本数与总样本书之比
对于二类分类问题,常用的评价指标是精确率(precision)与召回率(recall)
通常以关注的类为正类,其他为负类,按照分类器在测试集上预测的正确与否,会有四种情况,他们分别记作
- TP:将正类预测为正类的数目
- FN:将正类预测为负类的数目
- FP:将负类预测为正类的数目
- TN:将负类预测为负类的数目
回归问题
-
回归问题的分类
- 按照输入变量的个数:一元回归和多元回归
- 按照类型:线性回归和非线性回归
-
回归学习的损失函数——平方损失函数
-
如果选取平方损失函数作为损失函数,回归问题可以用最小二乘法(least squares)来求解
-
模型求解算法(学习算法)
-
梯度下降算法
注:为啥要迭代,迭代就是对每一点都计算一遍。因为每点处的负梯度不同,所以每点处都得算一遍。
-
牛顿法和拟牛顿法
-