机器学习——基本原理

一、芒果的例子

在我们第一次买芒果的时候,并不知道什么样的芒果甜,什么样的芒果口感好,但是对于一个天天吃芒果的人,他肯定知道什么品牌,颜色,大小,品种的芒果好吃,天天吃芒果的人通过每天买的芒果,根据芒果的特征逐渐找到对应的规律,在下一次买芒果的时候就可以通过自己总结出来的归路来判断芒果是否甜,计算机的学习过程也是如此,只有通过获得大量的数据,找到最合适的函数,然而计算机本身不会找规律(函数),我们需要假设一些函数,让计算机一个一个去尝试,最后找到一个最接近真实规律的函数。这些假设的函数合集被称为假设空间,而前面用于计算机找规律的数据被称为训练集,大部分时候还需要一部分数据用来测试函数的准确性,这部分数据被称为测试集,测试集和训练集统称为数据集
机器学习——基本原理_第1张图片

二、三大要素

1.模型

模型就是计算机通过不停的比较从假设空间里面找到最能反映真实客观规律的函数或者条件概率分布。

2.学习准则

学习准则是在计算机找到模型的过程中,应该遵循的准则。我们通过计算期望风险(期望错误)、经验风险、结构风险来判断模型的好坏。

1)期望风险:

越好的模型必然越接近于真实客观规律,期望风险通过损失函数来量化模型与真实规律之间的差异,在计算机中我们需要的得到的是一个能够大体描述特征与结果关系的函数,用我们高中最常用的线性函数来表示y=ax+b我们需要的函数,确定函数本质上是确定函数参数,a和b,但是我们肯定是没有办法找到一个函数完全满足所有特征值,我们只能让每个函数最后求出来的值与实际的值最小,于是通过损失函数来数据化函数值和真实值之间的差异。
损失函数
0-1损失函数:如果模型和规律相同返回0,不相同返回1,虽然很直接的比较了两者之间的差异,但是结果不连续导致导数为0,难以优化,可用连续可微的损失函数替代。
平方损失函数:损失函数等于(真实函数-模型海曙)2 /2
机器学习——基本原理_第2张图片
平方损失函数一般不用于分类问题
交叉熵损失函数Hinge损失函数等

损失函数 优劣
0-1 数学性不好不适合优化
平方 不适合用于分类问题 ,经常用于回归问题
交叉熵(负对数似然) 可用于二分类和多分类
log对数(逻辑回归) 适合用于多分类,健壮性不强相对于Hinge对噪声更敏感
Hinge 适合用于二分类问题

2)经验风险

在训练一个未知规律的训练集的时候,我们无法通过模型和实际规律比较的方法来计算期望风险,但是我们可以通过给定的训练集就散经验风险,经验风险本质上是模型的训练集上的平均损失。机器学习——基本原理_第3张图片

3)结构风险

根据大数定理可知,训练集越大经验风险越接近期望风险,但是我们并没有办法获得一个无限的训练集,而对于训练数据少和噪声以及模型能力强的训练集,根据经验风险最小准则,可能导致过拟合
过拟合是指对训练集里面的模型正确率很高,但是对于未知数据模型的错误率很高。
为了解决过拟合的问题,在经验风险最小化的基础上引入参数的正则化,使其不要过度的经验风险最小化。未完待续……

3.优化算法

梯度下降

前面讲到过损失函数的目的是为了数据化预测值和真实值之间的差异,可以看出想要得到损失函数的最小值,其实本质上就是确定函数中的参数(因为特诊变量都是数据给出的)当对应的模型参数让损失函数达到最小值的时候,就能确定最优的模型函数。
比如线性函数中的a和b,以平方损失函数为例,损失函数的值就是真实值和预测值之间的距离,距离越小说明预测的越准确,把所有点的差距加起来求最小值就一定能找到一个最优的参数a和b,这个过程被称为优化算法。
想要求这个损失函数的最小值,最暴力的方法就是将参数从负无穷遍历到正无穷,这样我们找到最小值就可以了,但是这样做的效率会非常低
常见的优化算法主要是梯度下降法,高中的时候我们就学过如何求最小值,第一步是求导,第二部是找导函数等于0的点,第三部是比较导函数等于0的点,找到最小值,梯度下降就是用的这个思想,我们对当前点参数求偏导,偏导值表示这个参数在此参数维度上的偏移值(梯度,导数,斜率),根据偏移值我们就能确定最小值在当前点的左边还是右边,那么我们就顺着这个偏移值移动一点,这一过程就被称为一次梯度下降(就像下楼梯一样),重复上面的操作,每次梯度下降都会靠近最小值一点点,经过n次梯度下降,直到参数对应偏移值接近于0的时候,那么我们就能找到最小值,但是这里的最小值有可能是局部最优解(极值)而不是我们的全局最优解(实际最小值),如果损失函数是线性函数,那么就不会有太大的问题
机器学习——基本原理_第4张图片
在做梯度下降的速度是根据偏导数的大小来的,需要在偏导前面设置一个参数来控制,这个参数我们成为学习速率,下降的速度,如果参数过小下降速度会非常的慢,每次梯度下降就走一点点,如果参数设置的过大就会出现直接越过最小值,在下一次梯度下降的时候就会出现方向,然后又因为步伐过大,反复在最小值左右横跳
机器学习——基本原理_第5张图片

学习速率优化

1)最简单的优化算法是根据迭代次数来组件减小学习速率,每迭代一次就更靠近最小值,学习速率也会越低
2)Adagrad:
机器学习——基本原理_第6张图片

优化算法 优劣
批量梯度下降法 最常用的优化算法
随机梯度下降法 解决批量梯度开销大的问题
小批梯度下降法 解决随机梯度无法充分利用并行计算能力
提前停止 解决批量梯度下降法过拟合的问题

三、线性回归实例

1.参数学习方法

给定一个训练集,我们希望能够得到最优的线性回归的模型参数,介绍4种参数估计方法:
1)经验风险最小化:
由于线性回归标签和模型都是连续的实数,所以很适合选用平方损失函数,根据经验风险计算公式,求出经验风险后,通过最小二乘法求得最佳参数,在最小二乘法的计算过程中存在XXT求逆矩阵的过程,也就是说XXT必须存在逆矩阵,所以XXT必须为满秩矩阵,如果XXT不是满秩矩阵则有两个解决方法
(1)先使用组成分析的方法来预处理数据,消除不同特征之间的相关性,然后用最小二乘法
(2)通过使用梯度下降法来估计参数,这种方法也称为最小均方法

2)结构风险最小化
最小二乘法的基本要求是各个特征值之间要相互独立,保证XXT 可逆,但是即使XXT可逆,特征之间有较大的多重共线性,也会使得XXT在数值上无法准确计算,使得最小二乘法变的不稳定,为了解决这个问题提出了岭回归对XXT的对角线元素都加上一个常数a,使得XXT+aI满秩,I 为单位矩阵,然后在进行最小二乘法。

3)最大似然估计
机器学习的任务分为两类,一类是模型为x对应y的函数,另一类是条件概率服从某个位置分布,最小二乘法只能求出第一类模型,通过最大似然估计法求出最小参数

4)最大似然估计的一个缺点是当训练数据比较小的时候回发生过拟合,为了避免过拟合我们可以给参数加上一些先验知识。未完待续……

2.偏差—方差分解

一般来说多项式越是复杂那么那么包含的可能就越多,但是常常会出现过拟合的现象,过拟合是指在训练集中每个点都训练的很好,但是在测试集中却效果很糟糕,过拟合就表示方差过大,方差过大的解决方法其中简单一点的就是提供训练集更多的数据,但是大部分时候都没有这么多数据,可以手动的通过翻转图片,变声等改变数据的一些基本形式的方法去创造出新的数据,这种方法的优势就是在于不会影响我们的偏差,在减小方差的过程中不会伤害我们的偏差。
还有一种方法就是regularization这种方法主要是在函数后面加一个平滑参数,这个参数可以让函数相对平滑一点,原本参数的权重就会没有那么大,但是这种方法有个问题,他可能会影响我们的偏差
还有一种情况叫做欠拟合,欠拟合表示偏差过大,这种情况一般是函数无法模拟出我们想要的样子,一般来说就是增加函数的复杂度,比如升幂(一次函数变两次函数)的方法去解决,但是升幂就有可能出现过拟合的问题,所以选择一个好的函数是至关重要的。
因为我们的数据集是有限的,所以很有可能你选择的函数在自己的测试集上跑的很好,但是投入使用了之后发现效果不见得是最好的,但是我们又没有更多的数据去选择函数,这时候我们可以将训练集切分一下,将训练集切分成几分,比如下图将训练集切分成3份,选择其中两份训练,一份测试,这样就有三种结果,这样其实可以很有效的在选择函数最后确定了函数之后再在这个训练集上训练一遍最后再在测试集上训练,为什么不最开始就在测试集上测试呢?原因在于如果直接在测试接上测试,最后我们在选择函数的时候有可能会被测试集的偏差影响,最后选出来的函数在实际使用中可能就会小伙不好。
机器学习——基本原理_第7张图片

四、机器学习的算法类型

1.监督学习

监督学习是指,目标模型是求出x和y之间的对应函数,并且训练集中给出了对应的目标标签y,这样的学习方式成为监督学习。监督学习可以分为以下三类
1)归回
问题中的标签y是连续值,模型的输出也是连续值。
2)分类
问题中的标签是离散的类别,在分类问题中学习到的模型也被成为分类器,分类问题根据分类的数量,分为二分类或者多分类
3)结构化学习
结构化学习是一种特别的分类学习,标签y不是离散的一个数,而是一类结构化对象,比如序列,图,树等

2.无监督学习

是指不包含目标标签y,自己通过学习获得有价值的数据,典型的无监督学习有聚类,密度估计,特征学习,降维等

3.强化学习

强化学习是通过交互来学习的机器学习算法,智能体通过行为动作,得到反馈奖励,在不断的交互中不算调整策略,逐渐趋向于奖励多的动作。

五、数据的特征表示

图像特征,通过像素点表示,文字的真通过词袋中的词表表示

1.表示学习

如果直接通过原始数据来进行学习,对学习模型的能力要求比较高,所以一般学习的特征需要通过一些原则进行一些改变。
(1)特征比较单一需要通过组合才能发挥作用
(2)特征之间冗余比较高
(3)并不是所有特征对结果都有用
(4)很多特征通常是易变的
(5)特征中往往有噪声

2.传统的特诊学习

1)特征选择

子集搜索,搜索每个特征子集,选出最优子集,一般不直接搜索整个子集,通过前向搜索(每轮找出最优特征保留下来)和反向搜索(每轮找出最差的特诊删除),一般有两个搜索方法
(1)过滤式方法:不依赖机器学习模型特征选择方法
(2)包裹式方法:使用后续机器学习模型的准确率来评价自己好坏。
还可以使用L1正则化实现特征选择。

2)特征抽取

特征抽取是指构造一个新的特征空间,并将原始特诊投影在新的空间中得到新的表示,特征抽取可以分为无监督和监督方法。
监督学习法是找出对目标影响最大的特征(比如芒果的颜色直接关系到甜度)通常使用线性判别法。
无监督学习法通常是减少冗余信息和噪声,主要用主成分分析和自编码器。

3.深度学习方法

传统的特征抽取和预测模型是分离的,会先进行特征抽取再进行训练模型,如果把特征抽取和训练模型统一到一个模型中,构建一个端到端的学习方法,可以有效的避免训练和特征不一致的问题,这样的表示学习方法被称为深度学习,深度学习的难点是如何解决不同特征对模型贡献度的问题,也就是贡献度分配问题目前比较有效的模型是神经网络。

六、评价指标

1.准确率

特征准确性的平均值

2.错误率

特征错误的平均值

3.精确率和召回率

对于类别c来说,模型在测试集上的结果可以分为以下4种情况
(1)真正例(TP)一个样本的真实类别为c,并且模拟模型正确的预测为类别c
(2)假负例(FN)一个样本真实类别为c,但是模型错误的预测为其他类
(3)假正例(FP)一个样本真实类别为其他类,模型错误的预测为c类
(4)真负类(TN)一个样本为其他类模型预测也为其他类,对于c类在说这一项不重要。

1)精确率(差准率,精度)

精确率是预测为类别c,其中真正类别也为c的比例,也就是TP/TP+FP

2)召回率(查全率)

召回率是查真实类别为c,其中预测类别也为c的比例,也就是TP/TP+FN

3)F值

F值是一个综合指标,为精确率和召回率调和平均[(1+B2)x精确率x召回率] / B2x精确率+召回率
B一般为1,B为1的F值称为F1值

4)宏平均

七、资源链接

数据集:UCI

你可能感兴趣的:(机器学习&深度学习)