统计学习方法笔记

这是李航老师的《统计学习方法》的笔记,是我个人在阅读本书的时候的一些总结,权当参考,如有错误请指正。

第一章 统计学习方法概论

  • 方法 = 模型 + 策略(loss/risk) + 算法
  • loss:
    • 0-1 误差率
    • quadratic 最小二乘
    • absolute SVM
    • logarithmic 逻辑回归
    • exp Boosting
  • 样本量很小的时候,经验风险(ERM)最小化容易导致过拟合,这时候需要结构风险最小化(SRM)

    SRM = ERM + 模型复杂度的正则化项
  • 监督学习问题实质是ERM和SRM的最优化问题,即为目标函数
  • 最小二乘法是求拟合多项式系数的唯一解
  • Li范数||w||i
    • L1范数是L0范数的最优凸近似,可以使参数稀疏
    • L2主要用于处理过拟合问题,让每个权重参数值小
    • L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。
  • 训练集训练模型,验证集模型选择,测试集对学习方法进行评估
  • 交叉验证为了重复使用数据:
    • 简单
    • s-fold(训练s次测试s次求平均)
    • 留一(数据量较小)
  • 监督学习分为生成方法和判别方法:
    • discrimitive学习联合概率分布P(x,y),然后朴素贝叶斯和隐马尔科夫(可还原联合概率分布)
    • generative学习条件概率分布P(y|x)(数据到数据,不考虑过程)




  • classifier、tagging、regression

第二章 感知机

  • f(x) = sign(w·x+b)

    w超平面法向量,b截距
  • 学习目标:求一个将正实例点和负实例点完全正确分开的分离超平面
  • 损失函数:
  • 随机梯度下降法:任选一个超平面wb,然后选择某误分类点来对wb进行更新(减去步长乘以损失函数的梯度),为学习率

    样本量更多所以选择随机梯度下降,精度低但是时间低
  • 感知机算法的对偶形式:提前算好Gram矩阵
  • 在线性不可分的时候会不收敛(凸包相交判定)

第三章 k近邻

  • 惰性学习,不显示分类器
  • , p>=1
    • p=2,Euclidean
    • p=1,Manhattan
    • p=∞,各坐标距离最大
  • k值选择:
    • 减小k则模型复杂,容易过拟合,估计误差大
    • 增大k则模型简单,近似误差大
    • 用交叉验证选取最优的k
  • 多数表决规则等价于经验风险最小化
  • kd树:提高k近邻搜索的效率
    • 构造:每个维按照中位数递归二分
    • 插入、删除:类似二叉树
    • 搜索:从找到的叶子节点回退到根节点,如果另一个子节点的对应区域和目前最小圆有交集,则递归检查该子节点

第四章 朴素贝叶斯

  • 条件独立假设:特征都是条件独立的
  • 朴素贝叶斯:
    • 其中先验(左)和条件(右)都能用极大似然估计求出
    • 即0-1损失时期望风险最小化
  • 贝叶斯估计:避免要估计的概率为0
    • ,为0则极大似然估计,为1则为拉普拉斯平滑
    • 先验:
    • 条件:

第五章 决策树

  • if-then规则,本质是从训练数据集中归纳出一组分类规则
  • 信息增益
    • 熵:
    • 条件熵(已知X的条件下Y的不确定性):
      • 当然选择最小的开始分类
    • 信.息增益(由于特征A使得对D分类的不确定性减少的程度):
    • 信息增益比:
      • 矫正了特征值较多的偏向
    • ID3:选择信息增益最大的,如果特征已经遍历完或者信息增益小于阈值则为单节点
      • 相当于用极大似然法进行概率模型的选择(对决策树进行参数估计)
      • 只有树生成,容易发生拟合
    • C4.5:和ID3一样,但是选择信息增益比最大的
    • 剪枝:
      • 某结点经验熵(alpha越小则模型越复杂):



      • 计算每个节点经验熵,递归从叶节点回退,如果剪枝后的经验熵更小则选择剪枝
    • CART:回归树用平方误差最小化原则(遍历特征和切分点算中心偏差),分类树用基尼指数最小化原则
      • 基尼指数(平法误差最小化,越大则样本集合的不确定性越大) :



      • 生成:对每个结点,递归地遍历每个特征及其每个取值,选择基尼指数最小的作为切分点,切分为二叉树的两个结点。直到样本小于阈值或者基尼系数小于阈值或者没有更多特征。
      • 剪枝(精髓没搞懂):用【有限个子树Tα】计算【无限个α】,然后再交叉验证

第六章 逻辑斯谛回归与最大熵模型精髓没搞懂

  • logistic回归(分类问题):
    • why阻塞增长模型?
      • 概率需要
      • 在X=0处变化较快
      • 这个关系的公式要在之后形成的cost function是凸函数
    • 极大化似然函数进行w参数估计



      最优化用梯度下降或者拟牛顿法
    • 推广到K项逻辑斯谛回归



  • 最大熵模型:
    • 目标是得到使H(P)最大的时候对应的P(y|x)
    • 最优化问题,最大熵模型的极大似然估计就等价于对偶函数的极大化:






    • 一般形式:



  • 对数线性模型:逻辑斯蒂回归、最大熵模型,都是对模型进行极大似然估计
    • 区别?最大熵可以选择其他特征函数,logistics模型则加上了不同特征的独立性假设。
    • 梯度下降法:略
    • 迭代尺度法IIS:参数向量迭代更新,每次只优化其中一个变量
    • 拟牛顿法BFGS:改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使用正定矩阵来近似Hessian矩阵的逆,从而简化了运算的复杂度。

第七章 支持向量机

  • 线性可分支持向量机利用间隔最大化求最优分离超平面,感知机用误分类最小的策略
  • 求解约束最优化
  • 对偶问题
  • 软间隔最大化:处理线性不可分情况,引入松弛变量和惩罚参数
    • 原始问题:
    • 对偶问题:
  • 合页损失函数
    • SVM原始最优化问题等价于
    • 合页损失函数是0-1函数的上界,连续可导更容易优化
  • 非线性支持向量机
    • 核技巧:用一个变换将原空间数据映射到新空间,然后在新空间中用线性分类学习方法
    • 是输入空间到特征空间的映射
    • 对偶问题的内积和分类决策函数的内积都可以用核函数替代
    • 使用核技巧之后,学习是隐式地在特征空间进行的,不需要显式地定义特征空间和映射函数
    • 正定核的充要条件:对于空降任意点,K对应的Gram矩阵是半正定的
    • 常用核函数:
      • 多项式核函数:
      • 高斯核函数:
      • 字符串核函数:kn(s,t)定义的是字符串s和t中长度等于n的所有子串组成的特征向量的余弦相似度
    • 算法:
      1. 选择适当的核函数K(x,z)和适当的参数C,求最优化:







        求得最优解,当K为正定核时这个最优化问题是存在解的
      • 选择一个alpha的一个正分量,计算:

      • 构造决策函数:

    • SMO:
      • 以上算法的第二步是一个凸二次规划问题,具有全局最优解
      • 将原二次规划问题分解为只有两个变量的二次规划自问题,并对子问题进行解析求解,知道所有变量满足KKT条件为止

第八章 提升方法

  • 强可学习和弱可学习等价
  • AdaBoost算法:

    输入:

    输出:最终分类器G(x)
    1. 对m=1,2…M
      1. 用带权值的Dm进行学习得到分类器Gm(x)
      2. 计算Gm(x)在训练集上的分类误差率

      3. 计算Gm(x)的系数

        ,越能分清楚的分类器加权越大
      4. 更新训练集权值分布



        ,Zm规范化因子,yiGm(xi)决定了符号,误分类样本被指数扩大
  • Adaboost的训练误差是以指数速率下降的

    加法模型、损失函数为指数函数、学习算法为向前分步算法时的二分类学习方法

    向前分步算法是解决加法模型损失函数极小化的问题,adaboost是其中的特列
  • 提升树:以分类树或回归树作为基本分类器的提升方法
    • 二分类问题:限定Adaboost的分类器为二分类器
    • 回归问题:加法模型,平方误差损失函数,学习方法为向前分步算法
      • 每次根据数据生成一个回归决策树(利用遍历特征和取值的平方误差最小化)
      • 然后数据更新为残差,残差=真实值-预测值
      • 提升树即为所有回归树的和
      • 循环直到平方损失误差达到要求
    • 梯度提升
      • 例如平方损失学习残差回归树,例如指数损失学习?,但是一般损失函数的优化不容易
      • GBDT
        1. 初始化,估计使损失函数极小化的常数值,它是只有一个根节点的树,即ganma是一个常数值。
        • (a)计算损失函数的负梯度在当前模型的值,将它作为残差的估计

          (b)估计回归树叶节点区域,以拟合残差的近似值

          (c)利用线性搜索估计叶节点区域的值,使损失函数极小化

          (d)更新回归树
        • 得到输出的最终模型 f(x)

第九章 EM算法及其推广(一般的极大似然概率的求解方法需要推敲)

  • 含有隐变量的概率模型参数的极大似然估计法,没有解析解只能迭代求解
    1. 初始化分布参数
    • E步:根据上一轮迭代的模型参数来计算出隐性变量的后验概率,其实就是隐性变量的期望。作为隐藏变量的现估计值
    • M步:将似然函数最大化以获得新的参数值
  • EM算法是收敛的,但是不能保证收敛到全局最优
  • 高斯混合模型的参数估计
  • 变形-GEM算法:每次迭代增加F函数值,从而增加似然值

第十章 隐马尔可夫模型

  • HMM:,A状态转移矩阵,B观测概率矩阵,π初始状态
    • 假设:齐次马尔可夫假设、观测独立性假设
    • 概率计算问题:在λ给定的情况下,求O的概率P(O|λ)
    • 学习问题:已知O,求使得P(O|λ)最大的λ
    • 预测问题:已知λ和O,求I的概率P(I|O)
  • 概率计算算法:类似动态规划
    • 前向算法(状态序列的路径结构递推):
      • t时刻状态为qi观测为o1~ot的概率:
      • 初始:
      • 递推:
      • 终止:
    • 后向算法:
      • t时刻状态为qi条件下,从t+1到T的观测为ot+1~oT的概率:
      • 初始:
      • 递推:
      • 终止:
    • 统一形式:

    • 其他:
      • γt(i):给定λ和O,求t时处于状态qi的概率:

      • ξt(i,j)给定λ和O,求t时处于状态qi且求t+1时处于状态qj概率:



      • 前两者求和有用的:
        • O下状态i出现的期望:

        • O下由状态i转移的期望:

        • O下由状态i转移到状态j的期望:

  • 学习算法:
    • 监督学习方法:极大似然估计,直接按照训练集中统计的频数来进行计算
    • 非监督学习方法:Baum-Welch算法,就是EM算法
  • 预测方法:
    • 近似算法:利用γ,选择每个时刻最大概率的状态
    • 维特比算法:动态规划求概率最大的路径
      • 在时刻t时状态为i的所有单个路径(ii,…,it)中概率最大值:

      • 递推:

      • 记录回溯路径:在时刻t状态为i的所有单个路径(ii,…,it-1,i)中概率最大的路径的第t-1个结点为:

第十一章 条件随机场

  • 马尔可夫随机场(概率无向图模型):联合概率分布满足成对、局部或全局马尔可夫性
  • 参数化形式:加权状态、转移特征
  • 矩阵形式:类似HMM中的状态转移矩阵
  • 概率计算
  • 学习方法
  • 预测

第十二章 总结

  • k近邻也可以回归,最近k个点的算术平均算法或者考虑距离差异的加权平均
  • 损失函数选择:
    • 线性回归->假设误差服从正态分布->对数似然函数->均值u和方差σ趋近于0->平方损失函数
    • 逻辑回归->假设概率分布服从伯努利分布->对数似然函数->

附录

  • 无约束最优化
    • 梯度下降
    • 牛顿法:二阶收敛,但是求Hesse矩阵的逆,复杂度高
    • 共轭梯度法(Conjugate Gradient Method):
    • 变尺度法:
    • 拟牛顿法:近似Hesse矩阵的逆
  • 凸优化
    • 拉格朗日对偶性

其他算法

  • 随机森林
  • n-gtram算法
    • 链式规则

    • 利用马尔科夫链的假设,当前词仅和之前的n个词有关

    • 算法:先从语料库求出n元模型的概率,然后语句的概率就是连乘
    • smoothing
      • Laplacian (add-one) smoothing
      • Add-k smoothing
      • Jelinek-Mercer interpolation
      • Katz backoff
      • Absolute discounting
      • Kneser-Ney
  • SVD
  • 矩阵的伪逆,矩阵求导规则,
  • c++ 矩阵库

待实现的工程

  • s-fold
  • 感知机
  • 梯度下降、随机梯度下降、批量梯度下降比较
  • knn,kd树
  • 朴素贝叶斯、贝叶斯估计
  • ID3、C4.5、CART 以及他们的剪枝
  • 逻辑斯蒂回归,k项推广
  • 极大似然
  • 拟牛顿法、迭代尺度法
  • SVM、各种核、SMO
  • 回归和分类提升树、GDBT
  • 怎么求极大似然估计
  • HMM的概率、学习、预测算法
  • CRF
  • PCA
  • learning curve
  • 训练集验证集测试集
Buy Me a Coffee