由于要准备面试,本文以李航的《统计学习方法》为主,结合西瓜书等其余资料对机器学习知识作一个整理.html
知识点
- 进程和线程:进程和线程都是一个时间段的描述,是CPU工做时间段的描述,不过是颗粒大小不一样.进程就是包换上下文切换的程序执行时间总和 = CPU加载上下文+CPU执行+CPU保存上下文.线程是共享了进程的上下文环境的更为细小的CPU时间段。
- 判别式模型和生成式模型:
- 判别式模型直接学习决策函数f(X)或条件几率分布P(Y|X)做为预测的模型.每每准确率更高,而且能够简化学习问题.如k近邻法/感知机/决策树/最大熵模型/Logistic回归/线性判别分析(LDA)/支持向量机(SVM)/Boosting/条件随机场算法(CRF)/线性回归/神经网络
- 生成式模型由数据学习联合几率分布P(X,Y),而后由P(Y|X)=P(X,Y)/P(X)求出条件几率分布做为预测的模型,即生成模型.当存在隐变量时只能用生成方法学习.如混合高斯模型和其余混合模型/隐马尔可夫模型(HMM)/朴素贝叶斯/依赖贝叶斯(AODE)/LDA文档主题生成模型
- 几率质量函数 (probability mass function,PMF)是离散随机变量在各特定取值上的几率。
- 几率密度函数(p robability density function,PDF )是对 连续随机变量 定义的,自己不是几率,只有对连续随机变量的取值进行积分后才是几率。
- 累积分布函数(cumulative distribution function,CDF) 能完整描述一个实数随机变量X的几率分布,是几率密度函数的积分。对於全部实数x ,与pdf相对。
- 极大似然估计:已知某个参数能使这个样本出现的几率最大,咱们固然不会再去选择其余小几率的样本,因此干脆就把这个参数做为估计的真实值
- 最小二乘法:二乘的英文是least square,找一个(组)估计值,使得实际值与估计值之差的平方加总以后的值
最小.求解方式是对参数求偏导,令偏导为0便可.样本量小时速度快.
- 梯度降低法:负梯度方向是函数值降低最快的方向,每次更新值都等于原值加学习率(步长)乘损失函数的梯度.每次都试一个步长看会不会降低必定的程度,若是没有的话就按比例减少步长.不断应用该公式直到收敛,能够获得局部最小值.初始值的不一样组合能够获得不一样局部最小值.在最优势时会有震荡.
- 批量梯度降低(BGD):每次都使用全部的m个样原本更新,容易找到全局最优解,可是m较大时速度较慢

- 随机梯度降低(SGD):每次只使用一个样原本更新,训练速度快,可是噪音较多,不容易找到全局最优解,以损失很小的一部分精确度和增长必定数量的迭代次数为代价,换取了整体的优化效率的提高.注意控制步长缩小,减小震荡.

- 小批量梯度降低(MBGD):每次使用一部分样原本更新.
- 牛顿法:牛顿法是二次收敛,所以收敛速度快.从几何上看是每次用一个二次曲面来拟合当前所处位置的局部曲面,而梯度降低法是用一个平面来拟合.
红色的是牛顿法的迭代路径,绿色的是梯度降低法的迭代路径.牛顿法起始点不能离极小点太远,不然极可能不会拟合.
- 黑塞矩阵是由目标函数f(x)在点X处的二阶偏导数组成的n*n阶对称矩阵。
- 牛顿法:将f(x)在x(k)附近进行二阶泰勒展开:
,其中gk是f(x)的梯度向量在x(k)的值,H(x(k))是f(x)的黑塞矩阵在点x(k)的值.牛顿法利用极小点的必要条件f(x)处的梯度为0,每次迭代中从点x(k)开始,假设
,对二阶泰勒展开求偏导有
,代入获得
,即
,以此为迭代公式就是牛顿法.
- 拟牛顿法:用一个n阶正定矩阵Gk=G(x(k))来近似代替黑塞矩阵的逆矩阵就是拟牛顿法的基本思想.在牛顿法中黑塞矩阵知足的条件以下:
,令
,则有
,称为拟牛顿条件.根据选择Gk方法的不一样有多种具体实现方法.
- DFP算法:假设每一步
,为使Gk+1知足拟牛顿条件,可以使Pk和Qk知足
,
,例如取
,
,就获得迭代公式
-
BFGS算法: 最流行的拟牛顿算法.考虑用Bk逼近黑塞矩阵,此时相应的拟牛顿条件是
,假设每一步
,则Pk和Qk知足
,
,相似获得迭代公式
.面试
- 先验几率就是事情发生前的预测几率.
- 后验几率是一种条件几率,它限定了事件为隐变量取值,而条件为观测结果。通常的条件几率,条件和事件能够是任意的.
- 贝叶斯公式P(y|x) = ( P(x|y) * P(y) ) / P(x)中,P(y|x)是后验几率,P(x|y)是条件几率,P(y)是先验几率.
- 误差:度量了学习算法的指望预测和真实结果偏离程度
- 方差:度量了一样大小的训练集的变更所致使的学习性能的变化,即刻画了数据扰动所形成的影响
- 噪声:能够认为是数据自身的波动性,表达了目前任何学习算法所能达到泛化偏差的下限
- 泛化偏差能够分解为误差、方差与噪声之和
- 对偶原理:一个优化问题能够从主问题和对偶问题两个方面考虑.在推导对偶问题时,经过将拉格朗日函数对x求导并使导数为0来得到对偶函数.对偶函数给出了主问题最优解的下界,所以对偶问题通常是凸问题,那么只需求解对偶函数的最优解就能够了.
- KKT条件:一般咱们要求解的最优化条件有以下三种:
- 无约束优化问题:一般使用求导,使导数为零,求解候选最优值
- 有等式约束的优化问题:一般使用拉格朗日乘子法,即把等式约束用拉格朗日乘子和优化问题合并为一个式子,经过对各个变量求导使其为零,求解候选最优值.拉格朗日乘数法实际上是KKT条件在等式约束优化问题的简化版.
- 有不等式约束的优化问题:一般使用KKT条件.即把不等式约束,等式约束和优化问题合并为一个式子.假设有多个等式约束h(x)和不等式约束g(x)
,则不等式约束引入的KKT条件以下:
,实质是最优解在g(x)<0区域内时,约束条件不起做用,等价于对μ置零而后对原函数的偏导数置零;当g(x)=0时与状况2相近.结合两种状况,那么只须要使L对x求导为零,使h(x)为零,使μg(x)为零三式便可求解候选最优值.
- 准确度,最经常使用,但在数据集不平衡的状况下很差
- Precision(精确度/查准率):P=TP/(TP+FP)
- Recall(召回率/查全率):R=TP/(TP+FN)
- Fβ度量:
,当β=1时退化为F1度量,是精确率和召回率的调和均值.
- TPR(真正例率):TPR=TP/(TP+FN)
- FPR(假正例率):FPR=FP/(TN+FP)
- PR曲线:纵轴为Precision,横轴为Recall,通常使用平衡点(BEP,即Precsion=Recall的点)做为衡量标准.
- ROC(接受者操做特征)曲线:纵轴为TRP,横轴为FPR,在绘图时将分类阈值依次设为每一个样例的预测值,再链接各点.ROC曲线围住的面积称为AOC,AOC越大则学习器性能越好.
- 损失函数度量模型一次预测的好坏.经常使用的损失函数有:0-1损失函数,平方损失函数,绝对损失函数,对数似然损失函数.
- 损失函数的指望是理论上模型关于联合分布P(X,Y)的平均意义下的损失,称为风险函数,也叫指望风险.可是联合分布是未知的,指望风险不能直接计算.
- 当样本容量N趋于无穷时经验风险趋于指望风险,但现实中训练样本数目有限.
- 模型关于训练数据集的平均损失称为经验风险.经验风险最小化的策略就是最小化经验风险.当样本数量足够大时学习效果较好.好比当模型是条件几率分布,损失函数是对数损失函数时,经验风险最小化就等价于极大似然估计.可是当样本容量很小时会出现过拟合.
- 结构风险最小化等于正则化.结构风险在经验风险上加上表示模型复杂度的正则化项.好比当模型是条件几率分布,损失函数是对数损失函数,模型复杂度由模型的先验几率表示时,结构风险最小化就等价于最大后验几率估计.
- 过拟合是指学习时选择的模型所包含的参数过多,以至于对已知数据预测得很好,但对未知数据预测不好的现象.模型选择旨在避免过拟合并提升模型的预测能力.
- 正则化是模型选择的典型方法.正则化项通常是模型复杂度的单调递增函数,好比模型参数向量的范数.
- 交叉验证是另外一经常使用的模型选择方法,可分为简单交叉验证,K折交叉验证,留一交叉验证等.
感知机
- 感知机是二类分类的线性模型,属于判别模型.感知机学习旨在求出将训练数据进行线性划分的分离超平面.是神经网络和支持向量机的基础.
- 模型:
,w叫做权值向量,b叫作偏置,sign是符号函数.
- 感知机的几何解释:wx+b对应于特征空间中的一个分离超平面S,其中w是S的法向量,b是S的截距.S将特征空间划分为两个部分,位于两个部分的点分别被分为正负两类.
- 策略:假设训练数据集是线性可分的,感知机的损失函数是误分类点到超平面S的总距离.由于误分类点到超平面S的距离是
,且对于误分类的数据来讲,总有
成立,所以不考虑1/||w||,就获得感知机的损失函数:
,其中M是误分类点的集合.感知机学习的策略就是选取使损失函数最小的模型参数.
-
算法:感知机的最优化方法采用随机梯度降低法.首先任意选取一个超平面w0,b0,而后不断地极小化目标函数.在极小化过程当中一次随机选取一个误分类点更新w,b,直到损失函数为0.
,其中η表示步长.该算法的直观解释是:当一个点被误分类,就调整w,b使分离超平面向该误分类点接近.感知机的解能够不一样.算法
-
对偶形式:假设原始形式中的w0和b0均为0,设逐步修改w和b共n次,令a=nη,最后学习到的w,b能够表示为
.那么对偶算法就变为设初始a和b均为0,每次选取数据更新a和b直至没有误分类点为止.对偶形式的意义在于能够将训练集中实例间的内积计算出来,存在Gram矩阵中,能够大大加快训练速度.数组
k近邻法
- k近邻法根据其k个最近邻的训练实例的类别,经过多数表决等方式进行预测.k值的选择,距离度量及分类决策规则是k近邻法的三个基本要素.当k=1时称为最近邻算法.
- 模型:当训练集,距离度量,k值以及分类决策规则肯定后,特征空间已经根据这些要素被划分为一些子空间,且子空间里每一个点所属的类也已被肯定.
- 策略:
- 距离:特征空间中两个实例点的距离是类似程度的反映,k近邻算法通常使用欧氏距离,也可使用更通常的Lp距离或Minkowski距离.
- k值:k值较小时,总体模型变得复杂,容易发生过拟合.k值较大时,总体模型变得简单.在应用中k通常取较小的值,经过交叉验证法选取最优的k.
- 分类决策规则:k近邻中的分类决策规则每每是多数表决,多数表决规则等价于经验风险最小化.
- 算法:根据给定的距离度量,在训练集中找出与x最邻近的k个点,根据分类规则决定x的类别y.
- kd树:
- kd树就是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构.kd树更适用于训练实例数远大于空间维数时的k近邻搜索.
- 构造:能够经过以下递归实现:在超矩形区域上选择一个坐标轴和此坐标轴上的一个切分点,肯定一个超平面,该超平面将当前超矩形区域切分为两个子区域.在子区域上重复切分直到子区域内没有实例时终止.一般依次选择坐标轴和选定坐标轴上的中位数点为切分点,这样能够获得平衡kd树.

- 搜索:从根节点出发,若目标点x当前维的坐标小于切分点的坐标则移动到左子结点,不然移动到右子结点,直到子结点为叶结点为止.以此叶结点为"当前最近点",递归地向上回退,在每一个结点:(a)若是该结点比当前最近点距离目标点更近,则以该结点为"当前最近点"(b)"当前最近点"必定存在于该结点一个子结点对应的区域,检查该结点的另外一子结点对应的区域是否与以目标点为球心,以目标点与"当前最近点"间的距离为半径的超球体相交.若是相交,移动到另外一个子结点,若是不相交,向上回退.持续这个过程直到回退到根结点,最后的"当前最近点"即为最近邻点.


朴素贝叶斯
- 朴素贝叶斯是基于贝叶斯定理和特征条件独立假设的分类方法.首先学习输入/输出的联合几率分布,而后基于此模型,对给定的输入x,利用贝叶斯定理求出后验几率最大的输出y.属于生成模型.
- 模型:首先学习先验几率分布
,而后学习条件几率分布
.若是估计实际,须要指数级的计算,因此朴素贝叶斯法对条件几率分布做了条件独立性的假设,上式变成
.在分类时,经过学习到的模型计算后验几率分布,由贝叶斯定理获得
,将条件独立性假设获得的等式代入,而且注意到分母都是相同的,因此获得朴素贝叶斯分类器:
- 朴素贝叶斯将实例分到后验几率最大的类中,这等价于指望风险最小化.
- 算法:使用极大似然估计法估计相应的先验几率
和条件几率
,计算条件独立性假设下的实例各个取值的可能性
,选取其中的最大值做为输出.
- 用极大似然估计可能会出现所要估计的几率值为0的状况,在累乘后会影响后验几率的计算结果,使分类产生误差.能够采用贝叶斯估计,在随机变量各个取值的频数上赋予一个正数.
.Sj为j属性可能取值数量,当λ=0时就是极大似然估计.常取λ=1,称为拉普拉斯平滑.
- 若是是连续值的状况,能够假设连续变量服从高斯分布,而后用训练数据估计参数.
决策树
- 决策树是一种基本的分类与回归方法.它能够认为是if-then规则的集合,也能够认为是定义在特征空间与类空间上的条件几率分布.主要优势是模型具备可读性,分类速度快.
- 模型:分类决策树由结点和有向边组成.结点分为内部结点(表示一个特征或属性)和叶结点(表示一个类).决策树的路径具备互斥且完备的性质.
- 策略:决策树学习本质上是从训练数据集中概括出一组分类规则.咱们须要的是一个与训练数据矛盾较小,同时具备很好的泛化能力的决策树.从全部可能的决策树中选取最优决策树是NP彻底问题,因此现实中常采用启发式方法近似求解.
- 算法:决策树学习算法包含特征选择,决策树的生成与决策树的剪枝过程.生成只考虑局部最优,剪枝则考虑全局最优.
- 特征选择:若是利用一个特征进行分类的结果与随机分类的结果没有很大差异,则称这个特征是没有分类能力的.扔掉这样的特征对决策树学习的精度影响不大.
- 信息熵:熵是衡量随机变量不肯定性的度量.熵越大,随机变量的不肯定性就越大.信息熵是信息量的指望
.条件熵表示在已知随机变量X的条件下随机变量Y的不肯定性.
- 信息增益:表示得知特征X的信息而使得类Y的信息的不肯定性减小的程度.定义为集合D的经验熵与特征A在给定条件下D的经验条件熵之差
,也就是训练数据集中类与特征的互信息.
- 信息增益算法:计算数据集D的经验熵
,计算特征A对数据集D的经验条件熵
,计算信息增益,选取信息增益最大的特征.
- 信息增益比:信息增益值的大小是相对于训练数据集而言的,并没有绝对意义.使用信息增益比
能够对这一问题进行校订.
- ID3算法:核心是在决策树各个结点上应用信息增益准则选择信息增益最大且大于阈值的特征,递归地构建决策树.ID3至关于用极大似然法进行几率模型的选择.因为算法只有树的生成,因此容易产生过拟合.
- C4.5算法:C4.5算法与ID3算法类似,改用信息增益比来选择特征.
- 在学习时过多考虑如何提升对训练数据的正确分类,从而构建出过于复杂的决策树,产生过拟合现象.解决方法是对已生成的决策树进行简化,称为剪枝.
- 设树的叶结点个数为|T|,每一个叶结点有Nt个样本点,其中k类样本点有Ntk个,剪枝每每经过极小化决策树总体的损失函数
来实现,其中经验熵
.剪枝经过加入a|T|项来考虑模型复杂度,实际上就是用正则化的极大似然估计进行模型选择.
- 剪枝算法:剪去某一子结点,若是生成的新的总体树的损失函数值小于原树,则进行剪枝,直到不能继续为止.具体能够由动态规划实现.
- CART既能够用于分类也能够用于回归.它假设决策树是二叉树,内部结点特征的取值为"是"和"否".递归地构建二叉树,对回归树用平方偏差最小化准则,对分类数用基尼指数最小化准则.
- 回归树的生成:在训练数据集所在的输入空间中,递归地将每一个区域划分为两个子区域.选择第j个变量和它取的值s做为切分变量和切分点,并定义两个区域
,遍历变量j,对固定的j扫描切分点s,求解
.用选定的对(j,s)划分区域并决定相应的输出值
,直到知足中止条件.
- 基尼指数:假设有K个类,样本属于第k类的几率为pk,则几率分布的基尼指数为
,表示不肯定性.在特征A的条件下集合D的基尼指数定义为
,表示分割后集合D的不肯定性.基尼指数越大,样本集合的不肯定性也就越大.
-
分类树的生成:从根结点开始,递归进行如下操做:设结点的训练数据集为D,对每一个特征A和其可能取的每一个值a,计算A=a时的基尼指数,选择基尼指数最小的特征及其对应的切分点做为最优特征与最优切分点,生成两个子结点,直至知足中止条件.中止条件通常是结点中的样本个数小于阈值,或样本集的基尼指数小于阈值,或没有更多特征.网络
- CART剪枝:
Tt表示以t为根结点的子树,|Tt|是Tt的叶结点个数.能够证实当
时,Tt与t有相同的损失函数值,且t的结点少,所以t比Tt更可取,对Tt进行剪枝.自下而上地对各内部结点t计算
,并令a=min(g(t)),自上而下地访问内部节点t,若是有g(t)=a,进行剪枝,并对t以多数表决法决定其类,获得子树T,如此循环地生成一串子树序列,直到新生成的T是由根结点单独构成的树为止.利用交叉验证法在子树序列中选取最优子树.
logistic回归和最大熵模型
- 逻辑斯谛分布:
分布函数f(x)以点(μ,1/2)为中心对称,γ的值越小,曲线在中心附近增加得越快.
- 逻辑斯谛回归模型:对于给定的输入x,根据
和
计算出两个条件几率值的大小,将x分到几率值较大的那一类.将偏置b加入到权值向量w中,并在x的最后添加常数项1,获得
和
.若是某事件发生的几率是p,则该事件发生的概率(此处概率指该事件发生几率与不发生几率之比)是p/1-p,对数概率是log(p/1-p),那么
,也就是说在逻辑斯谛回归模型中,输出Y=1的对数概率是输入x的线性函数,线性函数值越接近正无穷,几率值就越接近1,反之则越接近0.
- 似然估计:给定x的状况下参数θ是真实参数的可能性.
- 模型参数估计:对于给定的二分类训练数据集,对数似然函数为
,也就是损失函数.其中P(Y=1|x)=π(x),对L(w)求极大值,就能够获得w的估计值.问题变成了以对数似然函数为目标函数的最优化问题.
-
多项逻辑斯谛回归: 当问题是多分类问题时,能够做以下推广:设Y有K类可能取值,
,
,实际上就是one-vs-all的思想,将其余全部类看成一个类,问题转换为二分类问题.数据结构
-
最大熵原理:学习几率模型时,在全部可能的几率模型中,熵最大的模型是最好的模型.直观地,最大熵原理认为模型首先要知足已有的事实,即约束条件.在没有更多信息的状况下,那些不肯定的部分都是"等可能的".机器学习
- 最大熵模型:给定训练数据集,能够肯定联合分布P(X,Y)的经验分布
和边缘分布P(X)的经验分布
,其中v表示频数,N表示样本容量.用特征函数f(x,y)=1描述x与y知足某一事实,能够获得特征函数关于P(X,Y)的经验分布的指望值和关于模型P(Y|X)与P(X)的经验分布的指望值,假设二者相等,就获得了约束条件
.定义在条件几率分布P(Y|X)上的条件熵为
,则条件熵最大的模型称为最大熵模型.
-
最大熵模型的学习就是求解最大熵模型的过程.等价于约束最优化问题
,将求最大值问题改成等价的求最小值问题
.引入拉格朗日乘子
将原始问题
转换为无约束最优化的对偶问题
.首先求解内部的极小化问题,即求L(P,W)对P(y|x)的偏导数
,并令偏导数等于0,解得
.能够证实对偶函数等价于对数似然函数,那么对偶函数极大化等价于最大熵模型的极大似然估计
.以后能够用最优化算法求解获得w.函数
-
最大熵模型与逻辑斯谛回归模型有相似的形式,它们又称为对数线性模型.模型学习就是在给定的训练数据条件下对模型进行极大似然估计或正则化的极大似然估计.性能
- 算法:似然函数是光滑的凸函数,所以多种最优化方法都适用.
- 改进的迭代尺度法(IIS):假设当前的参数向量是w,若是能找到一种方法w->w+δ使对数似然函数值变大,就能够重复使用这一方法,直到找到最大值.
- 逻辑斯谛回归常应用梯度降低法,牛顿法或拟牛顿法.
支持向量机
- 模型:支持向量机(SVM)是一种二类分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器.支持向量机还包括核技巧,使它成为实质上的非线性分类器.分离超平面
,分类决策函数
.
- 策略:间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题.
- 当训练数据线性可分时,经过硬间隔最大化,学习出线性可分支持向量机.当训练数据近似线性可分时,经过软间隔最大化,学习出线性支持向量机.当训练数据线性不可分时,经过使用核技巧及软间隔最大化,学习非线性支持向量机.
- 核技巧:当输入空间为欧式空间或离散集合,特征空间为希尔伯特空间时,核函数表示将输入从输入空间映射到特征空间获得的特征向量之间的内积.经过核函数学习非线性支持向量机等价于在高维的特征空间中学习线性支持向量机.这样的方法称为核技巧.
- 考虑一个二类分类问题,假设输入空间与特征空间为两个不一样的空间,输入空间为欧氏空间或离散集合,特征空间为欧氏空间或希尔伯特空间.支持向量机都将输入映射为特征向量,因此支持向量机的学习是在特征空间进行的.
- 支持向量机的最优化问题通常经过对偶问题化为凸二次规划问题求解,具体步骤是将等式约束条件代入优化目标,经过求偏导求得优化目标在不等式约束条件下的极值.
- 线性可分支持向量机:
- 当训练数据集线性可分时,存在无穷个分离超平面可将两类数据正确分开.利用间隔最大化获得惟一最优分离超平面
和相应的分类决策函数
称为线性可分支持向量机.
- 函数间隔:通常来讲,一个点距离分离超平面的远近能够表示分类预测的确信程度.在超平面
肯定的状况下,|wx+b|可以相对地表示点x距离超平面的远近,而wx+b与y的符号是否一致可以表示分类是否正确.因此可用
来表示分类的正确性及确信度,这就是函数间隔.注意到即便超平面不变,函数间隔仍会受w和b的绝对大小影响.
-
几何间隔:通常地,当样本点被超平面正确分类时,点x与超平面的距离是
,其中||w||是w的l2范数.这就是几何间隔的定义.定义超平面关于训练数据集T的几何间隔为超平面关于T中全部样本点的几何间隔之最小值
.可知
,当||w||=1时几何间隔和函数间隔相等.学习
-
硬间隔最大化:对线性可分的训练集而言,这里的间隔最大化又称为硬间隔最大化.直观解释是对训练集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类.求最大间隔分离超平面即约束最优化问题:
,将几何间隔用函数间隔表示
,而且注意到函数间隔的取值并不影响最优化问题的解,不妨令函数间隔=1,并让最大化1/||w||等价为最小化||w||^2/2,问题变为凸二次规划问题
.
-
支持向量和间隔边界:与分离超平面距离最近的样本点的实例称为支持向量.支持向量是使最优化问题中的约束条件等号成立的点.所以对y=+1的正例点和y=-1的负例点,支持向量分别在超平面H1:wx+b=+1和H2:wx+b=-1.H1和H2平行,二者之间造成一条长带,长带的宽度
称为间隔,H1和H2称为间隔边界.在决定分离超平面时只有支持向量起做用,因此支持向量机是由不多的"重要的"训练样本肯定的.由对偶问题一样能够获得支持向量必定在间隔边界上.
-
对偶算法: 引进拉格朗日乘子,定义拉格朗日函数
,根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
.先求对w,b的极小值.将L(w,b,a)分别对w,b求偏导数并令其等于0,得
,代入拉格朗日函数得
,这就是极小值.接下来对极小值求对a的极大,便是对偶问题
.将求极大转换为求极小
.由KKT条件成立获得
,其中j为使aj*>0的下标之一.因此问题就变为求对偶问题的解a*,再求得原始问题的解w*,b*,从而得分离超平面及分类决策函数能够看出w*和b*都只依赖训练数据中ai*>0的样本点(xi,yi),这些实例点xi被称为支持向量.
- 若是训练数据是线性不可分的,那么上述方法中的不等式约束并不能都成立,须要修改硬间隔最大化,使其成为软间隔最大化.
- 线性不可分意味着某些特异点不能知足函数间隔大于等于1的约束条件,能够对每一个样本点引进一个松弛变量,使函数间隔加上松弛变量大于等于1,约束条件变为
,同时对每一个松弛变量,支付一个代价,目标函数变为
,其中C>0称为惩罚参数,C值越大对误分类的惩罚也越大.新目标函数包含了两层含义:使间隔尽可能大,同时使误分类点的个数尽可能小.
-
软间隔最大化:学习问题变成以下凸二次规划问题:
,能够证实w的解是惟一的,但b的解存在一个区间.线性支持向量机包含线性可分支持向量机,所以适用性更广.
-
对偶算法: 原始问题的对偶问题是,构造拉格朗日函数
,先求对w,b,ξ的极小值,分别求偏导并令导数为0,得
,代入原函数,再对极小值求a的极大值,获得
,利用后三条约束消去μ,再将求极大转换为求极小,获得对偶问题
.由KKT条件成立能够获得
,j是知足0<aj*<C的下标之一.问题就变为选择惩罚参数C>0,求得对偶问题(凸二次规划问题)的最优解a*,代入计算w*和b*,求得分离超平面和分类决策函数.由于b的解并不惟一,因此实际计算b*时能够取全部样本点上的平均值.
-
支持向量:在线性不可分的状况下,将对应与ai*>0的样本点(xi,yi)的实例点xi称为支持向量.软间隔的支持向量或者在间隔边界上,或者在间隔边界与分类超平面之间,或者再分离超平面误分一侧.
-
合页损失函数:能够认为是0-1损失函数的上界,而线性支持向量机能够认为是优化合页损失函数构成的目标函数.
- 若是分类问题是非线性的,就要使用非线性支持向量机.主要特色是使用核技巧.
- 非线性分类问题:用线性分类方法求解非线性分类问题分为两步:首先使用一个变换将原空间的数据映射到新空间,而后在新空间里用线性分类学习方法从训练数据中学习分类模型.
- 核函数:设X是输入空间(欧式空间的子集或离散集合),H为特征空间(希尔伯特空间),通常是高维甚至无穷维的.若是存在一个从X到H的映射
使得对全部x,z属于X,函数K(x,z)知足条件
,点乘表明内积,则称K(x,z)为核函数.
- 核技巧:基本思想是经过一个非线性变换将输入空间对应于一个特征空间,使得在输入空间中的超曲面模型对应于特征空间中的超平面模型(支持向量机).在学习和预测中只定义核函数K(x,z),而不显式地定义映射函数.对于给定的核K(x,z),特征空间和映射函数的取法并不惟一.注意到在线性支持向量机的对偶问题中,目标函数和决策函数都只涉及输入实例与实例之间的内积,xi`xj能够用核函数K(xi,xj)=Ф(xi)`Ф(xj)来代替.当映射函数是非线性函数时,学习到的含有核函数的支持向量机是非线性分类模型.在实际应用中,每每依赖领域知识直接选择核函数.
- 正定核:一般所说的核函数是指正定核函数.只要知足正定核的充要条件,那么给定的函数K(x,z)就是正定核函数.设K是定义在X*X上的对称函数,若是任意xi属于X,K(x,z)对应的Gram矩阵
是半正定矩阵,则称K(x,z)是正定核.这必定义在构造核函数时颇有用,但要验证一个具体函数是否为正定核函数并不容易,因此在实际问题中每每应用已有的核函数.
- 算法:选取适当的核函数K(x,z)和适当的参数C,将线性支持向量机对偶形式中的内积换成核函数,构造并求解最优化问题
,选择最优解a*的一个正份量0<aj*<C计算
,构造决策函数
.
- 多项式核函数(polynomial kernel function):
,对应的支持向量机是一个p次多项式分类器,分类决策函数为
.
-
高斯核函数(Gaussian krenel function):
,对应的支持向量机是高斯径向基函数(RBF)分类器.分类决策函数为
.
-
字符串核函数(string kernel function): 核函数不只能够定义在欧氏空间上,还能够定义在离散数据的集合上.字符串核函数给出了字符串中长度等于n的全部子串组成的特征向量的余弦类似度.
- SMO是一种快速求解凸二次规划问题
的算法.基本思路是:若是全部变量都知足此优化问题的KKT条件,那么解就获得了.不然,选择两个变量,固定其余变量,针对这两个变量构建一个二次规划问题.不断地将原问题分解为子问题并对子问题求解,就能够求解原问题.注意子问题两个变量中只有一个是自由变量,另外一个由等式约束肯定.
- 两个变量二次规划的求解方法:假设选择的两个变量是a1,a2,其余变量是固定的,因而获得子问题
,ε是常数,目标函数式省略了不含a1,a2的常数项.考虑不等式约束和等式约束,要求的是目标函数在一条平行于对角线的线段上的最优值
,问题变为单变量的最优化问题.假设初始可行解为aold,最优解为anew,考虑沿着约束方向未经剪辑的最优解anew,unc(即未考虑不等式约束).对该问题求偏导数,并令导数为0,代入原式,令
,获得
,经剪辑后a2的解是
,L与H是a2new所在的对角线段端点的界.并解得
.
- 变量的选择方法:在每一个子问题中选择两个变量优化,其中至少一个变量是违反KKT条件的.第一个变量的选取标准是违反KKT条件最严重的样本点,第二个变量的选取标准是但愿能使该变量有足够大的变化,通常能够选取使对应的|E1-E2|最大的点.在每次选取完点后,更新阈值b和差值Ei.
提高方法
- 提高(boosting)是一种经常使用的统计学习方法,是集成学习的一种.它经过改变训练样本的权重(几率分布),学习多个弱分类器(基本分类器),并将这些分类器线性组合来构成一个强分类器提升分类的性能.
- AdaBoost:
- AdaBoost提升那些被前一轮弱分类器错误分类样本的权值,而下降那些被正确分类样本的权值.而后采起加权多数表决的方法组合弱分类器.
- 算法:首先假设训练数据集具备均匀的权值分布D1,使用具备权值分布Dm的训练数据集学习获得基本分类器Gm(x),计算分类偏差率
和Gm(x)的系数
,更新训练数据集的权值分布
,其中
Zm是使Dm+1成为几率分布的规范化因子
.重复上述操做M次后获得M个弱分类器,构建线性组合获得最终分类器
.
- AdaBoost算法也能够理解成模型为加法模型,损失函数为指数函数,学习算法为前向分步算法的二类分类学习方法.
- 前向分步算法:考虑加法模型
,其中b(x,γm)为基函数,γm为基函数的参数,βm为基函数的系数.在给定损失函数L(y,f(x))的条件下,学习加法模型就是求解损失函数极小化问题
前向分步算法求解的想法是:从前日后,每一步只学习一个基函数及其系数,优化
,获得参数βm和γm,更新
,逐步逼近优化目标.最终获得加法模型.
- 提高树:
- 提高树是模型为加法模型,算法为前向分布算法,基函数为决策树的提高方法.第m步的模型是
,经过经验风险极小化肯定下一棵决策树的参数
.不一样问题的提高树学习算法主要区别在于使用的损失函数不一样.
-
二类分类问题:只需将AdaBoost算法中的基本分类器限制为二类分类数便可.
-
回归问题:若是将输入空间划分为J个互不相交的区域,而且在每一个区域上肯定输出的常量Cj,那么树可表示为
,其中
.提高树采用前向分步算法:
.当采用平方偏差损失函数时,损失变为
,其中r是当前模型拟合数据的残差.每一步都只需拟合残差学习一个回归树便可.
-
梯度提高树(GBDT): 利用最速降低法的近似方法来实现每一步的优化,关键在于用损失函数的负梯度在当前模型的值
做为回归问题中提高树算法中的残差的近似值,每一步以此来估计回归树叶结点区域以拟合残差的近似值,并利用线性搜索估计叶结点区域的值使损失函数最小化,而后更新回归树便可.
- AdaBoost产生的基础学习器有好有坏,所以加入权重.提高树产生的基础学习器是一个不断减小残差的过程,并非一个单独的分类器,所以通常不加权重.
- XGBoost:相比传统GBDT有如下优势:
- 在优化时用到了二阶导数信息.
- 在代价函数里加入了正则项.
- 每次迭代后都将叶子结点的权重乘上一个系数,削弱每棵树的影响.
- 列抽样.
- 在训练前对数据进行排序,保存为block结构,并行地对各个特征进行增益计算.
EM算法
- EM算法是一种迭代算法,用于含有隐变量的几率模型参数的极大似然估计.每次迭代由两步组成:E步,求指望(expectation),M步,求极大值(maximization),直至收敛为止.
- 隐变量:不能被直接观察到,可是对系统的状态和能观察到的输出存在影响的一种东西.
- 算法:
- 选择参数的初始值θ(0),开始迭代.注意EM算法对初值是敏感的.
- E步:θ(i)为第i次迭代参数θ的估计值,在第i+1次迭代的E步,计算
,P(Z|Y,θ(i))是在给定观测数据Y和当前参数估计θ(i)下隐变量数据Z的条件几率分布.
- M步:求使Q(θ,θ(i))极大化的θ,肯定第i+1次迭代的参数的估计值

- 重复2和3直到收敛,通常是对较小的正数ε1和ε2知足
则中止迭代.
-
取参数的初始值开始迭代
-
E步:计算分模型k对观测数据yj的响应度
-
M步:计算新一轮迭代的模型参数
-
重复2和3直到对数似然函数
收敛.
隐马尔可夫模型(HMM)
- 隐马尔可夫模型是关于时序的几率模型,描述由一个隐藏的马尔可夫链随机生成不可观测的状态序列,再由各个状态生成一个观测而产生观测随机序列的过程.
- 设Q是全部可能的状态的集合,V是全部可能的观测的集合
,I是长度为T的状态序列,O是对应的观测序列
,A是状态转移几率矩阵
,aij表示在时刻t处于状态qi的条件下在时刻t+1转移到状态qj的几率.B是观测几率矩阵
,bij是在时刻t处于状态qj的条件下生成观测vk的几率.π是初始状态几率向量
,πi表示时刻t=1处于状态qi的几率.隐马尔可夫模型由初始状态几率向量π,状态转移几率矩阵A以及观测几率矩阵B肯定.π和A决定即隐藏的马尔可夫链,生成不可观测的状态序列.B决定如何从状态生成观测,与状态序列综合肯定了观测序列.所以,隐马尔可夫模型能够用三元符号表示
.
-
隐马尔可夫模型做了两个基本假设:
- 齐次马尔可夫性假设:假设隐藏的马尔可夫链在任意时刻t的状态只依赖于其前一时刻的状态.
- 观测独立性假设:假设任意时刻的观测只依赖于该时刻的马尔可夫链的状态.
- 隐马尔可夫模型有三个基本问题,即几率计算问题,学习问题,预测问题.
- 几率计算问题:给定模型
和观测序列
,计算在模型λ下观测序列O出现的几率P(O|λ).
- 直接计算法:最直接的方法是列举全部可能长度为T的状态序列,求各个状态序列I与观测序列O的联合几率,但计算量太大,实际操做不可行.
- 前向算法:定义到时刻t部分观测序列为o1~ot且状态为qi的几率为前向几率,记做
.初始化前向几率
,递推,对t=1~T-1,
,获得
.减小计算量的缘由在于每一次计算直接引用前一个时刻的计算结果,避免重复计算.
-
后向算法:定义在时刻t状态为qi的条件下,从t+1到T的部分观测序列为oi+1~oT的几率为后向几率,记做
.初始化后向几率
,递推,对t=T-1~1,
,获得
.
- 监督学习:估计转移几率
和观测几率
.初始状态几率πi的估计为S个样本中初始状态为qi的频率.
-
非监督学习(Baum-Welch算法):将观测序列数据看做观测数据O,状态序列数据看做不可观测的隐数据I.首先肯定彻底数据的对数似然函数
.求Q函数
,用拉格朗日乘子法极大化Q函数求模型参数
,
,
.
-
近似算法: 在每一个时刻t选择在该时刻最有可能出现的状态it*,从而获得一个状态序列做为预测的结果.优势是计算简单,缺点是不能保证状态序列总体是最有可能的状态序列.
- 维特比算法:用动态规划求几率最大路径,这一条路径对应着一个状态序列.从t=1开始,递推地计算在时刻t状态为i的各条部分路径的最大几率,直至获得时刻t=T状态为i的各条路径的最大几率.时刻t=T的最大几率即为最优路径的几率P*,最优路径的终结点it*也同时获得,以后从终结点开始由后向前逐步求得结点,获得最优路径.
统计学习方法总结
------------------------------------------------- 如下内容并不是出自《统计学习方法》-------------------------------------------------
神经网络
- 神经元(感知器)接收到来自n个其余神经元传递过来的输入信号,这些输入信号经过带权重的链接进行传递,神经元将接收到的总输入值与神经元的阈值进行比较,而后经过激活函数处理以产生神经元的输出.把许多个这样的神经元按必定的层次结构链接起来就获得了神经网络.通常使用反向传播(BP)算法来进行训练.
- 反向传播(BP)算法:
- 前向传播:将训练集数据输入,通过隐藏层,到达输出层并输出结果.
- 计算估计值与实际值之间的偏差,并将该偏差从输出层向输入层反向传播.
- 在反向传播的过程当中,根据偏差使用梯度降低与链式法则调整各类参数的值.
- 不断迭代直至收敛.
- 深度神经网络(DNN):能够理解为有不少隐藏层的神经网络.DNN内部分为输入层(第一层),隐藏层,输出层(最后一层).层与层之间是全链接的.
- 卷积神经网络(CNN):通常用于图像识别.经过卷积核和感觉野的乘积造成卷积后的输出.在每个卷积层以后,一般会使用一个ReLU(修正线性单元)函数来把全部的负激活都变为零.在几个卷积层以后也许会用一个池化层(采样层)来输出过滤器卷积计算的每一个子区域中的最大数字或平均值.
- 循环神经网络(RNN):若是训练样本输入是连续序列,则DNN和CNN很差解决.RNN假设样本是基于序列的,对应的输入是样本序列中的x(t),而模型在序列索引号t位置的隐藏状态h(t)由x(t)和h(t-1)共同决定.在任意序列索引号t有对应的模型预测输出o(t).也就是说,RNN是包含循环的网络,容许信息的持久化.
- 长短时间记忆网络(LSTM):一种特殊的RNN,能够学习长期依赖信息.
K-Means
- K-Means是无监督的聚类算法.思想是对于给定的样本集,按照样本之间的距离大小将样本集划分为K个簇,让簇内的点尽可能紧密地连在一块儿,而让簇间的距离尽可能的大.
- 传统算法:
- 用先验知识或交叉验证选择一个合适的k值.
- 随机选择k个样本做为初始的质心.注意初始化质心的选择对最后的聚类结果和运行时间都有很大的影响.
- 计算每一个样本点和各个质心的距离,将样本点标记为距离最小的质心所对应的簇.
- 从新计算每一个簇的质心,取该簇中每一个点位置的平均值.
- 重复2,3,4步直到k个质心都没有发生变化为止.
- 从输入样本点中随机选择一个点做为第一个质心.
- 计算每个样本点到已选择的质心中最近质心的距离D(x).
- 选择一个新的样本点做为新的质心,选择原则是D(x)越大的点被选中的几率越大.
- 重复2和3直到选出k个质心.
- Elkan K-Means:利用两边之和大于第三边以及两边之差小于第三边来减小距离的计算.不适用于特征稀疏的状况.
- Mini Batch K-Means:样本量很大时,只用其中的一部分来作传统的K-Means.通常多用几回该算法,从不一样的随即采样中选择最优的聚类簇.
Bagging
- Bagging的弱学习器之间没有boosting那样的联系,它的特色在于"随机采样",也就是有放回采样.所以泛化能力很强.通常会随机采集和训练集样本数同样个数的样本.假设有m个样本,且采集m次,当m趋向无穷大时不被采集到的数据占1/e,也就是36.8%,称为袋外数据,能够用来检测模型的泛化能力.Bagging对于弱学习器没有限制,通常采用决策树和神经网络.
- 算法:
- 对于t=1~T,对训练数据进行第t次随机采样,共采集m次,获得包含m个样本的采样集Dm.
- 用采样集Dm训练第m个弱学习器Gm(x)
- 若是是分类,则用简单投票法.若是是回归,则取T个弱学习器结果的平均值.
- 随机森林:使用CART决策树做为弱学习器,而后每次不从n个样本特征中选择最优特征,而是从随机选择的nsub个样本特征中来选择.通常用交叉验证来获取合适的nsub值.
Apriori
- Apriori是经常使用的挖掘出数据关联规则的算法,用于找出数据值中频繁出现的数据集合.通常使用支持度或者支持度与置信度的组合做为评估标准.
- 支持度:几个关联的数据在数据集中出现的次数占总数据集的比重

- 置信度:一个数据出现后.另外一个数据出现的几率

- Apriori算法的目标是找到最大的K项频繁集.假设使用支持度来做为评估标准,首先搜索出候选1项集及对应的支持度,剪枝去掉低于支持度的1项集,获得频繁1项集.而后对剩下的频繁1项集进行链接,获得候选的频繁2项集......以此类推,不断迭代,直到没法找到频繁k+1项集为止,对应的频繁k项集的集合即为输出结果.
降维方法
- 主成分分析(PCA):降维,不断选择与已有坐标轴正交且方差最大的坐标轴.
- 奇异值分解(SVD):矩阵分解,降维,推荐系统.
- 线性判别分析(LDA)
引用
- 如何理解神经网络里面的反向传播算法? - 陈惟源的回答 - 知乎
- 刘建平Pinard-博客园