- 机器学习利用经验改善系统自身的性能(经验表现成数据),从统计学角度来看,机器学习的目的是得到映射X->Y
- 人工智能三大基石技术之一:推理、知识、学习(利用经验改善系统的性能)
- 机器学习最重要的理论模型:
- 一般原则——奥卡姆剃刀:解释一个现象时,如果有多个假设都能解释该现象,那么应选择最简单的那个假设作为解释。任何一个有效的机器学习算法必有其偏好,学习算法的归纳偏好是否与问题本身匹配,大多数直接决定了算法能否取得好的性能。
- NFL:“没有免费的午餐”——一个算法A若在某些问题上比另一个算法B好,必存在另一些问题,B比A好。
马氏距离是一种通过学习来“参数化”的距离度量形式,M是一个半正定对称矩阵,称为“度量矩阵”。距离度量学习就是要对M进行学习。
- 分类输出为离散值,回归输出为连续值。
- 正态分布是统计模式识别、计算机视觉和机器学习中使用最广泛的概率分布。
- 生成式模型会对x和y的联合分布p(x,y)建模,然后通过贝叶斯公式来求得 p(yi|x),然后选取使得p(yi|x) 最大的 yi,简单说生成式模型就是生成数据分布的模型。将求联合分布的问题转为了求类别先验概率和类别条件概率的问题。(贝叶斯分类器)
判别式模型对条件概率直接建模。简单说就是判别数据输出量的模型,解决问题的思路为:条件分布>模型参数后延概率最大>似然函数*参数先验最大>最大似然。(代表有:决策树,BP神经网络,SVM)
判别函数:不假设概率模型,直接求一个把各类分开的边界。
- 统计学习方法构成:方法=模型+策略+算法
模型:是所要学习的条件概率分布或决策函数或映射函数
假设空间:包含所有可能的条件概率分布或决策函数集合,简单来说就是模型的所有情况。
策略:如何从假设空间中选择最优的假设/模型
损失函数或者代价函数:度量模型一次预测的好坏。
最小化经验风险(模型在训练数据集上的平均损失)
结构风险:在经验风险的基础上增加了衡量模型复杂度的正则化项或罚项。结构风险最小的模型就是最优的模型。
- 如果最优化问题没有解析解/闭式解,梯度下降、牛顿法、拟牛顿法
- 泛化误差:在未来样本上的误差
经验误差:在训练集上的误差,亦称“训练误差”
泛化误差和经验误差并不是越小越好,可能会发生过拟合
- 自助法采样:训练集和原样本集同规模,但是数据分布有所改变。“有放回采样”
- 回归任务的性能度量常用均方误差。
- 查准率Precision:在预测的正例上正确的有多少
查全率Recall:在真正的正例上正确的有多少
根据P-R曲线判断学习器性能好坏:
①看是否被包含
包住者优于被包者
②看平衡点 (BEP)
横坐标=纵坐标(45°)线与线交点,高者为好
③当①和②均无法判断时,求曲线与x、y轴围成的面积
面积越大,认为学习器性能越好。
- ROC曲线纵轴为“真正例率”,横轴是“假正例率”。
真正例率和查全率相同,假正例率等于FP/(TN+FP)即反例中被预测成正例的样本,若一个学习器的ROC曲线被另一个学习器完全包住,则可断言后者的性能高于前者。若两个学习器的ROC曲线有交叉,较为合理的判据是比较ROC曲线下的面积。
- 非均等代价:犯不同的错误往往会造成不同的损失,此时需考虑“非均等代价”
- Friedman检验:基于序值,F检验,判断是否都相同,常用Friedman检验图,横轴为平均序值,每个算法原点为其平均序值,线段为临界阈值的大小。
- 泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度共同决定。
- 偏差-方差窘境:
训练不足时,学习器拟合能力不强,偏差主导。
训练程度加深后,学习器拟合能力逐渐增强,方差逐渐主导。
训练充足后,学习器的拟合能力很强,方差主导。
- 感知机是神经网络和支持向量机的基础,是一个典型的二分类线性模型,属于判别模型。
- 在线性回归时若出现离散属性值,如果有序,则连续化;否则,转化为k维向量。
- 线性回归对多重共线性非常敏感,岭回归可以一定程度上解决共线性问题。
- Y视作x作为正例的可能性,1-Y视作x作为反例的可能性,两者的比值y/1-y称为“几率”,反映了x作为正例的相对可能性,对几率取对数则有“对数几率”。
- 决策树三种停止条件:
- 当前结点包含的样本全部属于同一类别,无需划分
- 当前属性集为空,或者所有样本在所有属性上取值相同,无法划分
- 当前节点包含的样本集为空,不能划分。
- 信息熵:度量样本集合“纯度”最常用的一种指标。Ent(D)的值越小,则D的纯度越高。
信息增益直接以信息熵为基础,计算当前划分对信息熵所造成的变化。信息增益最大的被选为划分属性。信息增益准则对可取值数目较多的属性有所偏好,当属性A的取值数目较多时,样本集合在A上划分越细,信息增益的结果就会越大。
- 增益率:将某属性的信息增益/该属性的经验熵。先从候选划分属性中找出信息增益高于平均水平的,再从中选取增益率最高的。增益率对可取值数目较少的属性有所偏好(因为可取值数目较多的属性经验熵较大)。
- 基尼指数:反映从D中随机抽取两个样例,其类别标记不一致的概率,Gini(D)越小,数据集D的纯度越高。
Gini(D)=1-随机两个样例类别标记相同的概率=1-Pk2。
- 剪枝是决策树对付“过拟合”的主要手段,划分选择的各种准则(信息增益与基尼指数)对决策树的尺寸有较大影响,但是对泛化性能的影响有限。
预剪枝:提前终止某些分支的生长(若分支可以使精度上升才划分)
后剪枝:生成一颗完全树,再回头剪枝(若剪枝之后可以使精度上升则剪枝)
后剪枝的泛化性能通常优于预剪枝
后剪枝训练时间开销和测试时间开销增加,欠拟合风险基本不变
预剪枝过拟合风险降低,欠拟合风险增加。
剪枝需要在验证集上测试,需要提前将数据划分为训练集和验证集(留出法)。
- 决策树的缺失值,划分基本思路:样本赋权,权重划分。
最后的信息增益要乘以无缺失值样例占比。
- K近邻分类器:K一般取奇数,避免平局。
K较小时,对噪声敏感,整体模型变得复杂,容易过拟合
K较大时,对噪声不敏感,整体模型变得简单,容易欠拟合
- 最近邻分类器:选择最近的那个训练样本的类别标签分配给x。最近邻分类器虽然简单,但是它的泛化错误率不超过贝叶斯分类器的错误率两倍。
- K近邻回归:懒惰学习(训练时间开销为零)
- 计算测试样本和所有训练样本之间的距离
- 对所有距离值(相似度值)进行升序(降序)排列
- 选择K个最近(距离最小/相似度最大)的训练样本
- 采用投票法,将近邻中样本数最多的类别标签分配给x
优点:精确度高、对异常值不敏感、无数据输入假定
缺点:计算复杂度高、空间复杂度高
- K近邻分类器:
- K较小,对噪声敏感,整体模型变得复杂,容易过拟合
- K较大,对噪声不敏感,整体模型变得简单,容易欠拟合
- K近邻回归时间复杂度计算:
- 假设d(Xi,Yj)是欧氏距离,时间复杂度为O(d)
- 训练阶段:0
- 测试阶段:O(nd+nlogk) nlogk表示排序的时间复杂度
- K-NN是典型的“懒惰学习”——训练阶段只是把样本保存起来,收到测试样本之后再进行处理。此外懒惰学习还有“朴素贝叶斯分类器”
SVM、CNN则是“急切学习”,再训练阶段就对样本进行学习处理的方法,这类方法在训练期间构造一个通用的、与输入无关的目标函数。
- 支持向量机是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。
- 将原始数据映射到高维空间,从而使得数据在高维空间很容易可分,而实现这一目标的函数称为核函数。
- k-d树是一种空间划分树,就是把整个空间划分为特定的几个部分,然后在特定空间的部分内进行相关搜索操作。
- 一个样例对应的“间隔”margin是其到分界超平面的垂直距离
SVM最大化最小间隔margin
具有最小间隔的点称为支持向量
- 构造SVM多类分类器的方法主要有两类
(1)直接法,直接在目标函数上进行修改,将多个分类面的参数求解合并到一个最优化问题中,通过求解该最优化问题“一次性”实现多类分类。这种方法看似简单,但其计算复杂度比较高,实现起来比较困难,只适合用于小型问题中;
(2)间接法,主要是通过组合多个二分类器来实现多分类器的构造
- 设计一个神经网络时,输入层与输出层的节点数往往是固定的,中间层则可以自由指定。一个神经网络的训练算法就是让权重的值调整到最佳,以使得整个网络的预测效果最好。一个神经元可以引出多个代表输出的有向箭头,但值都是一样的。
- 偏置单元是默认存在的。它本质上是一个只含有存储功能,且存储值永远为1的单元。在神经网络的每个层次中,除了输出层以外,都会含有这样一个偏置单元。偏置节点很好认,因为其没有输入(前一层中没有箭头指向它)。有些神经网络的结构图中会把偏置节点明显画出来,有些不会。一般情况下,我们都不会明确画出偏置节点。其对应权值为w0
- 神经网络的本质就是通过参数与激活函数来拟合特征与目标之间的真实函数关系。
参数包括权值和阈值。
- 与单层神经网络不同。理论证明,两层神经网络可以无限逼近任意连续函数。
- 单层网络只能做线性分类任务。而两层神经网络中的后一层也是线性分类层,但是因为从输入层到隐藏层时,数据发生了空间变换。也就是说,两层神经网络中,隐藏层对原始的数据进行了一个空间变换,使其可以被线性分类。隐藏层的参数矩阵的作用就是使得数据的原始坐标空间从线性不可分,转换成了线性可分。
- 一般来说使得损失函数的值最小使用的是梯度下降算法。梯度下降算法每次计算参数在当前的梯度,然后让参数向着梯度的反方向前进一段距离,不断重复,直到梯度接近零时截止。一般这个时候,所有的参数恰好达到使损失函数达到一个最低值的状态。
- 由于结构复杂,每次计算梯度的代价很大。因此还需要使用反向传播算法。反向传播算法是利用了神经网络的结构进行的计算。不一次计算所有参数的梯度,而是从后往前。首先计算输出层的梯度,然后是第二个参数矩阵的梯度,接着是中间层的梯度,再然后是第一个参数矩阵的梯度,最后是输入层的梯度。计算结束以后,所要的两个参数矩阵的梯度就都有了。反向传播算法的启示是数学中的链式法则
- 增加更多的层次可以有更深入的表示特征,以及更强的函数模拟能力。更深入的表示特征可以理解成随着网络的层数增加,每一层对于前一层次的抽象表示更深入。随着层数增加,其非线性分界拟合能力不断增强
- Sigmoid函数f(x)=1/1+e-x连续、光滑、严格单调,函数范围在(0,1)之间,S型曲线,非线性函数,导数可用自身表示。但是在梯度下降中,sigmoid容易饱和、造成终止梯度传递,且没有0中心化。
- ReLU函数:f(x)=max(0,x)
- 感知机的学习原理:感知机学习方法只适用于单层网络。
期望输出和实际输出相同,不改变权值。
实际输出是指用sgn(W*X)算出来的值
实际输出为-1,期望输出为1,则增加2*学习率*Xi
实际输出为1,期望输出为-1,则减少2*学习率*Xi
感知机的学习算法:权值初始化->输入样本对->计算输出->根据感知机学习规则调整权重->再次输入样本对知道对所有样本的实际输出与期望输出相等。
- 缓解过拟合(模型过于复杂,试图捕捉训练数据中的每个细微变化和噪声。):
- 早停:
- 若训练误差连续a轮的变化小于b,则停止训练。
- 使用验证集:若训练误差降低,验证误差升高,则停止训练
- 正则化:在误差目标函数中增加一项描述网络复杂度
- 收集更多的训练数据,以更好地捕捉数据分布的特征。
- 改进特征选择
- 考虑使用集成学习方法,如随机森林或梯度提升,以改善模型性能
- 早停:
- 跳出局部最小的策略:
- 不同的初始参数
- 模拟退火:以一定概率接收该移动,而该移动梯度下降法是不可接受的。
- 随机扰动
- 演化算法
- 对图像(不同的数据窗口数据)和滤波矩阵(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的卷积操作
- 池化/下采样:简言之,即取区域平均或最大(平均池化、最大池化)
- 减少参数
- 避免过拟合
- 扩大感受域
- Dropout是解决模型过拟合的一种关键技术。是一种对许多大的神经网络进行平均的有效方法,可以视为模型平均的一种形式。
在最简单的情况下,每个神经单元都以固定的概率P保留,与其他单元无关。即网络稀疏化、网络内集成、减少过拟合。
- 按照梯度下降算法的思想,它将按如下操作达到最低点:
第一步,明确自己现在所处的位置
第二步,找到相对于该位置而言下降最快的方向
第三步, 沿着第二步找到的方向走一小步,到达一个新的位置,此时的位置肯定比原来低
第四步, 回到第一步
第五步,终止于最低点
例题:
- 对于深层模型,每层输入的分布和权重在同时变化。如果batch size为m,则在前向传播过程中,网络中每个节点都有m个输出,所谓的Batch Normalization,就是对该层每个节点的这m个输出进行归一化再输出.
- 深度学习技巧:
- 数据增广:水平翻转、随机裁剪、颜色抖动
- 预处理:零中心和标准化,PCA主成分分析
- 初始化:小随机数,校准误差
- 过滤器:batch_size、小过滤器
- 池化大小:zero-padding
- 学习率:步骤衰减,微调时选用较小的学习率
- 在预训练模型上微调:
- 激活函数与正则化:ReLU激活函数,L2/L1正则化,dropout,最大规范约束
- 图像分析
- 可视化
- 高斯混合模型即多个高斯分布的一个加权。其难点在于权值难以确定,且N个高斯分布中的N难以确定。
- 求最大似然估计时由于乘积的值过小,所以需要取ln,转换为对数似然函数,将连乘变成连加。
- EM算法(期望最大化):迭代法,采用最大似然估计MLE对统计模型中的参数进行估计,特别是针对包含无法观测隐变量的模型。通常引入隐含变量后会有两个参数,EM算法先固定其中一个,然后使用MLE计算第二个变量值,接着再固定第二个变量,再用MLE估测第一个变量,依次迭代,知道收敛到局部最优解。
E:根据观测数据X和上一次迭代的参数Q(t),计算隐藏变量Z的后验概率,或者称为隐变量的期望值。
M:在上述Z的后验概率的基础上,进行最大化似然估计,估计新的参数Q(t+1)
重复上述两个步骤,直至收敛。
- K-means背后也有EM算法的思想:
先选择一个聚类数量k,初始化聚类中心A1,A2 ......
E:对每个样本点,计算样本点到k个聚类中心的距离,将样本点分给距离它最近的聚类中心所属的聚类。
M:重新计算聚类中心,据类中心为属于这一个聚类的所有样本的均值。
如果没有发生样本所属的聚类改变的情况,则推出,否则继续E步骤。 - 拉普拉斯修正避免了训练样本不充分而导致概率估值为0的问题(这会导致概率“连乘”抹去其他属性提供的信息),且当训练集较大时,修正对概率的影响将趋于无。
- 朴素贝叶斯分类器假设属性相互独立。
- 贝叶斯分类器的主要困难在于求似然,主要使用的方法是极大似然估计法。
- 所用特征都依赖唯一的一个特征,这个被依赖的特征就叫做超父。
- 半朴素贝叶斯分类器:朴素贝叶斯分类器的“属性独立性假设”在现实中往往难以成立,常使用的策略是——假设每个属性类别之外最多仅依赖一个其他属性。
- 分析条件独立性:
- 先把有向图变为无向图:V型结构父节点相连
- 先剪枝,仅保留有向图中x、y、z及其祖先节点
- 若x和y能在图上被z分入两个连通分支,则有x和y条件独立
- Gibbs采样方法被广泛应用于推断隐变量的后验分布。
- 集成学习不是一种机器学习的方法,而是预测模型的元方法。
集成学习本身不是一种分类器,,而是分类器结合方法。通常集成分类器性能会好于单个分类器。
通常以多数投票法作为结合方法。
- 同质个体学习器按照个体学习器之间是否存在依赖关系可以分为两类。
- 第一种是个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,代表算法是Boosting系列算法。
- 第二种是个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,代表算法是Bagging系列算法。
序列集成法:基于基学习器之间的依赖关系,依次生成,减少偏差bias
并行集成法:利用基学习器之间的独立关系,并行生成,减少方差
- 决策树也可以用来做回归,称为回归树,决策规则和决策树一样,每个叶子节点包含一个分数,多棵树一起决策,分数加和则表示最终的预测。
- Bagging工作机制:
自助采样k轮,得到k个训练集。(k个训练集之间是相互独立的);
每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等);
对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;
对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)
- Bagging集成学习的优点:并行式集成学习,降低分类器方差,改善泛化。降低过拟合的情况,从而带来了更好的性能。单个决策树对训练集的噪声非常敏感,但通过Bagging算法降低了训练出的多颗决策树之间关联性,有效缓解了上述问题。
缺点:其性能依赖于基分类器的稳定性,当基学习器具有较高的bias时,集成学习也会有较高的bias。集成之后的模型可能会损失可解释性。依赖数据集,计算可能会比较昂贵。
- Boosting工作机制:必须串行执行(从弱可学习boost到强可学习)
- 首先从训练集用初始权重训练出一个弱学习器1;
- 根据弱学习的学习误差率表现来更新训练样本的权重,
使之前弱学习器1学习误差率高的训练样本点的权重变高,即让误差率高的点在后面的弱学习器2中得到更多的重视;并增大分类误差率小的弱分类器的权重。
-
- 然后基于调整权重后的训练集来训练弱学习器2;
- 如此重复进行,直到弱学习器数达到事先指定的数目T;
- 最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。
采用加权多数表决的策略,增大分类误差小的弱分类器的权重,减小分类误差率大的弱分类器的权重。
- Bagging,Boosting二者之间的区别
1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
4)并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
- 在个体学习器性能相差较大时宜使用加权平均法,而在个体学习器性能相近时宜使用简单平均法。加权平均法示例:估计出个体学习器的误差,然后令权重大小与误差大小成反比。
- 神经网络增加隐层的数目比增加隐层神经元的数目更有效。
- 查准率和查全率是一对矛盾的度量,查准率高时,查全率偏低;查全率高时,查准率偏低
- 正则化是指在机器学习和统计建模中的一种技术,用于控制模型的复杂度,防止模型在训练数据上过拟合。当模型过拟合时,它会学习到训练数据中的噪声和细微变化,导致在新数据上的性能下降。
- L1 正则化通过在模型的损失函数中增加权重的 L1 范数(权重向量的绝对值之和)来实现正则化。L1 正则化倾向于产生稀疏权重矩阵,即将一些权重变为零,从而实现特征选择的效果。
L2 正则化:通过在模型的损失函数中增加权重的 L2 范数(权重向量的平方和)来实现正则化。L2 正则化会使权重值变得较小,但不会直接导致权重稀疏,因此不具有特征选择的作用,但可以有效地控制模型的复杂度。
- 在核函数 K ( x , z ) K(x,z)K(x,z) 给定的条件下,可以利用解线性分类问题的方法求解非线性分类问题的支持向量机,学习是隐式的在特征空间进行的,我们不需要显示地定义特征空间和映射函数,这种技巧就是核技巧。
- 超参数则是在算法运行之前手动设置的参数,用于控制模型的行为和性能。这些超参数的选择会影响到模型的训练速度、收敛性、容量和泛化能力等方面。例如,学习率、迭代次数、正则化参数、隐藏层的神经元数量等都是常见的超参数。
- 随机森林的随即体现在两个方面:bagging采样时数据随机采样,每棵决策树在构建时特征选取也是随机的。
随机森林的优点是:可以处理高维数据,且不用做特征选择。每棵树使用不同的数据、不同的特征,可以采用并行化技术。训练测试不需要划分,因为构建每棵决策树的时候,总有约30%的数据是没有采样的。