机器学习
- 模型的评估与选择
- 评估方法:留出法、交叉验证法、自助法;
- 偏差与方差
- k近邻学习
- 支持向量机SVM
- 朴素贝叶斯
- 决策树
- 逻辑回归
- 集成学习与利用AdaBoost元算法提高分类性能
- Bagging与随机森林
- 聚类
- 神经网络
- 感知机与多层网络
- 误差逆传播算法BP
- 其他常见神经网络
- 深度学习
模型的评估与选择
概念:在一定的数据集上通过学习得到用于某个任务的模型并考察此模型的泛化能力
错误率:错分样本占比;
误差:样本真实输出与预测输出之间的差异;(训练误差在训练集上,测试误差在测试集上,泛化误差在除训练集外的所有样本上)
过拟合:是指训练器把样本本身的某些特点也当成了一般的性质,欠拟合是指训练器没有完全学习完样本所具有的一般性质;避免过拟合的普遍方法包括**“早停”、“添加正则项优化”**,避免欠拟合就需要增加训练样本,增加训练轮数等等。
评估指标:学习器的泛化性能、时间开销、存储开销、可解释性;
评估方法:留出法、交叉验证法、自助法;
留出法:直接将数据集划分为两个互斥的部分,若干次随机划分取平均值;
交叉验证法:将数据集划分为k个互斥的子集,其中k-1个作为训练集,1个作为测试集,将k次实验结果取平均值;
自助采样法:将数据集D有放回的采样m次得到训练集S,剩下的作为测试集T(仅在数据集较小时使用);
偏差与方差
偏差:描述了期望预测与真实结果之间的差异,刻画了训练器本身的泛化能力;
方差:描述了测试集的变化所带来的学习器性能的变化,刻画了数据扰动带来的影响;
噪声:描述了对于一个具体的任务任何算法学习结果的下界,刻画了一个具体问题本身的难度;
k近邻学习
KNN属于“懒惰学习”
优点是精度高,对异常值不敏感,没有数据输入假定,缺点是计算复杂度高,空间复杂度高,容易引起维数灾难,这个时候必须进行低维嵌入;
多维缩放:原始空间中的距离在低维空间中得以保持,
主成分分析的最近重构性与最大可分性:最近重构性(样本点到超平面的距离足够近):、最大可分性(样本点在超平面的投影尽可能分开):
支持向量机SVM
优点是泛化错误率低,计算开销不大,缺点是对于参数调节和核函数的选择比较敏感,原始分类器不修改的话只能处理二分类问题。
支持向量就是距离分隔超平面最近的那些点,训练中需要最大化支持向量到超平面的距离,另外,支持向量具有稀疏性,训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。
如果简单使用拉格朗日乘子法,需要数据完全线性可分,但是这一要求过于严苛,所以引入松弛变量(软间隔)来允许某些数据点可以位于分隔面错误的一侧,
SMO(序列最小优化)算法:
核函数处理非线性可分数据:核函数将数据集从一个特征空间映射到另一个特征空间,把数据从低维线性不可分转化为高维的线性可分,
核技巧:将向量的内积替换成核函数的方式。
朴素贝叶斯
优点是可以在数据量比较小的情况下获得较高的泛化能力,以及可以处理多分类问题,但是缺点是对于输入数据的准备方式比较敏感,如果利用极大似然估计的方法会受数据概率分布形式的影响。
朴素贝叶斯的基本假设是:一,样本集里每一个特征相互独立;二,每一个特征同等重要。
下溢出问题是朴素贝叶斯最主要的问题,它可以通过对概率取对数来解决。
决策树
优点是计算的复杂度不高,对中间值的缺失不敏感还可以处理不相关的特征数据,但是天生的缺点就是会出现过拟合问题;
决策树的关键在于如何选择最优划分属性,使得节点的“纯度”最高(ID3信息增益越大,C4.5增益率最大,CART基尼指数越小)。一般包括信息增益、基尼指数两种方法。但是信息增益对于可取值较多的属性有所偏好,选择增益率准则进行属性划分时却对可取值数目较少的属性有所偏好。,所以C4.5算法较ID3算法改进了这一缺陷而且做了连续值的离散化处理和缺失值的处理。
利用剪枝处理来避免过拟合,包括预剪枝和后剪枝,预剪枝是指在划分节点之前对泛化性能进行估计,若当前节点的划分可以带来泛化性能的提升,则不进行剪枝,否则进行剪枝,预剪枝可以降低过拟合的风险,提高计算速度与性能,但是会增加欠拟合的风险;后剪枝是指,在整棵决策树生长完成后,自底而上对节点进行考察,若把该节点对应的子树替换成叶子节点能带来泛化性能的提高,就将该子树替换为叶子节点,后剪枝也显著降低了过拟合的风险,带来泛化性能的提高而且由于预剪枝,但是训练时间开销大于预剪枝。
对于连续值的处理,可以进行连续值的离散化,缺失值处理呢?
逻辑回归
优点在于计算代价低,易于逻辑实现,但是缺点在于容易欠拟合,分类精度低。
分类器的函数形式是sigmoid函数,对于每一个特征,乘以一个回归系数,然后进行加和,把加和结果带入sigmoid函数中得到一个范围在0~1之间的值,我们把大于0.5的值归入1类,把小于0.5的值归入0类。那么接下来主要就是我们应该怎么确定回归系数了。
梯度上升法:使用梯度上升法来求函数的最大值,将每个特征的初始回归系数赋值为1,计算整个数据集的梯度,计算梯度最大的方向更新回归系数的向量并迭代,直到结果收敛或者到达人为设定的迭代次数为止。
集成学习与利用AdaBoost元算法提高分类性能
优点是泛化错误率低,可以应用于大部分分类器上而无需参数调整;缺点是对离群点敏感。
原理:不同的分类器是串行训练获得的,每个分类器都是根据之前分类器的性能进行训练,关注的是之前分类器所错分的那些数据,所以最终的结果是基于所有分类器的加权求和所得到的。
训练算法:最开始训练每一个样本,并赋予其一个权重值,在刚刚开始时候,权重值相等,在一个弱分类器上进行训练并计算其错误率,然后在另一个弱分类器上再次训练,此时的每一个样本的权重值发生变化,第一次分对的样本的权重值变小,分错的样本的权重值变大。为了从所有的弱分类器上获得最终的分类结果,每一个分类器都有一个权重值α,这些α值基于每一个弱分类器的错误率进行计算。每一个样本的权重D与分类器的权重值之间存在对应的映射关系。
特点:不同的分类器之间存在很强的依赖关系,分类串行生成,在每次分类之后都调整样本的权重;
Bagging与随机森林
特点:不同的分类器之间没有强依赖关系,分类并行生成,随机采样形成s个数据集应用于s个分类器上;
分类器结合的策略
平均法、投票法、学习法
多样性-误差-分歧分解
个体学习器的精确性越高,多样性越大,则集成效果越好。
聚类
优点是容易实现,缺点是可能收敛到一个局部最小值,在大规模的数据上收敛较慢。
算法原理:随机选取k个点作为起始中心,计算中心与数据点之间的距离,然后把数据点分配到距离它最近的那个簇中,对每一个簇,计算其中所有点的均值并将其更新为中心。
距离度量:非负性、同一性、对称性、直递性;常用距离为马科夫斯基距离、欧氏距离、曼哈顿距离
原型聚类(假设聚类的结构可以通过一组原型来描述)包括K均值算法、学习向量量化算法、高斯混合聚类算法;(学习向量量化带有类别标签,属于一种监督方法来辅助聚类)、(高斯就是用概率来刻画聚类原型结构了)
密度聚类(假设聚类的结构可以通过样本分布的密度来描述)比如密度聚类算法DBSCAN
层次聚类(在不同的层次对数据集进行划分)比如自底向上层次聚类算法AGNES(把每一个样本看作一个聚类簇,迭代将距离最近的两个聚类簇合并直到最小聚类簇为止)
神经网络
感知机与多层网络
感知机由两层神经元组成,输入层接受外界输入信号传递给输出层M-P神经元。每一个输入的神经元都有自己的权重值和阈值,给定训练集,权重w和阈值可以通过学习得到。
单层感知机只能解决两类模式线性可分时的问题,这时学习过程最后一定收敛,如果两类模式线性不可分,就会出现震荡,所以就需要用多层感知机求解。多层前馈神经网络是指每层神经元与下一层神经元完全互联,层内神经元之间没有连接,也没有跨层连接。
误差逆传播算法BP
首先初始化网络中所有神经元的连接权重与阈值,然后进行迭代,迭代过程为:首先计算当前网络对样本的输出值,然后计算输出层和隐层的梯度值,根据梯度下降算法更新连接权值和阈值,循环直到满足条件。
BP神经网络算法也使用梯度下降法(gradient descent),以单个样本的均方误差的负梯度方向对权重进行调节。可以看出:BP算法首先将误差反向传播给隐层神经元,调节隐层到输出层的连接权重与输出层神经元的阈值;接着根据隐含层神经元的均方误差,来调节输入层到隐含层的连接权值与隐含层神经元的阈值。
但是多层前馈神经网络常常会过拟合,由于隐层的个数难以准确确定,一般使用试错法进行调整:(早停:在训练过程中,当训练误差降低,测试误差明显升高时就停止训练)、(正则化:在误差目标函数里加入一项描述网络复杂程度的值,例如连接权重与阈值的平方和)
其他常见神经网络
RBF网络(单隐层前馈神经网络,使用径向基函数作为隐层激活函数)
ART网络(自适应谐振网络,是一种竞争学习网络,包括比较层、识别层、识别阈值模块、重置模块;具有可塑性与稳定性)
SOM网络(自组织映射网络,可以将高维数据映射到低维空间中而不改变数据在高维空间中的拓扑结构)
级联相关网络(级联是指在训练数据过程中同时建立层级之间的连接关系,相关是指最大化神经网络输出与误差之间的相关性)
Elman网络(递归神经网络,允许网络中出现环形结构,使得神经元的输出反馈回来作为输入)
Boltzmann网络(为网络定义一个能量,训练过程就是在不断最小化能量函数)
深度学习
无监督预训练+BP微调,相当于把大量参数分组,每一组先找到局部最优结果,再基于局部最优解进行全局寻优,一组神经元使用相同的连接权值。
卷积神经网络CNN:用于处理具有网格结构的数据;包括:卷积层(通过卷积滤波器来提取多个特征)、池化层(利用降采样来减少数据量并保留有用信息)、激活函数(增强了网络的非线性表达能力)、全连接层(每一个神经元全部连接到上一层的所有神经元中,通过连接层与输出层的连接完成识别任务)
深度信念网络DBN:通过组合原始特征来生成更加抽象的高级特征表达式,能自动从数据中提取高层特征;
自动编码器AE:通过假设输入与输出相同,训练得到神经元的权重参数,用于数据的降维及特征的提取;
生成式对抗网络GAN:生成式部分基于原始数据的情况生成仿真数据,判别式部分判断输入的是否是真实的数据,最终目的在于使得网络生成判别式无法判别的仿真数据;
深度森林DF:利用集成的决策树来学习;
思考一下:
1,贝叶斯决策,基于最小风险和最小方差的决策的区别
2,ID3和C4.5的区别,预剪枝和后剪枝的基本思想和优缺点
3,SVM的基本思想,什么是支持向量,模型表达式,软间隔和硬间隔的物理含义,如何用来解决非线性问题
4,以混合高斯为例,解释EM算法的基本思想和步骤
5,什么是过拟合,解决方法有哪些
6,PCA算法基于最小均方误差的思想,推导过程,什么是第一主成分
7,给出机器学习和深度学习的联系,各有什么优缺点,你认为未来深度学习会如何发展