机器学习笔记

[TOC]

机器学习与数据挖掘

概论

  • 离散输出:分类

    • 二元分类,多元分类muticlass
    • 多标签分类mutilabel:多重标签体系,即多维度的标签,一个样本可以属于多个类别
    • 概率分类(软分类):不给类别,但给类别的概率
  • 连续输出:回归

    • 得到的是预测函数PF(Predict Function)
    • 通常没有最优解,只能找到局部最优解
  • 输入和输出均为变量序列:标注

  • 监督学习、无监督学习、半监督学习、强化学习

  • 生成式模型和判别式模型

    • 生成式:模型表示了输入X产生输出Y的生成关系,如:朴素贝叶斯,隐马尔科夫模型
    • 判别式:直接学习决策函数或者条件概率分布。判别式方法关心的是对给定的输入X,应该预测出什么样的输出Y,如:k近邻法、感知机、决策树、逻辑斯蒂回归、最大熵、支持向量机、提升方法、条件随机场。
    • 生成式方法可以还原出联合概率分布,生成式方法一般学习更快;判别式方法往往准确度更高。
  • 演进:规则$\to$统计$\to$深度学习

  • ML VS AI

    • ML是AI的一部分
    • 现代AI是ML+BD(Big Data)
  • ML VS DM(Data Mining)

    • ML为DM提供算法支撑,DB为DM提供数据支撑
  • 特征工程 VS 神经网络

    • 当数据为结构化数据时常使用特征工程,否则使用神经网络
  • 基本概念

    • ML:学习一个由输入到输出的映射,即模型。
    • 目的:预测或分析
    • 输入空间,输出空间:输入和输出可能的取值空间
    • 假设空间:输入空间到输出空间的映射的集合。假设空间即学习范围,模型属于假设空间。
    • 具体的输入称为一个实例,通常由特征向量(输入向量)表示,其空间称为特征空间。特征空间可能和输入空间相同,也可能不同。如可能不经过任何处理直接输入,也可能经过了PCA处理降维特征化。不同的ML模型对输入的敏感程度是不一样的,如K-means需要较好特征,深度神经网络更喜欢有一定噪音的数据。
    • 输出标签的编码:独热编码形成的向量。和人为设置0,1,2,3,4,5相区别:人为引入了标签的距离和顺序,这会误导机器。注意这里和索引的区别,索引编号不参与计算
    • 输入输出对=样本(对)
    • 损失函数$L(Y,f(X))$:衡量预测结果和真实结果间距的非负函数。如:01损失函数,平方损失函数,绝对损失函数,对数损失函数
    • 目标函数:优化的目标,损失函数可以是目标函数,也可以不是(如不能求导时需要一定的调整)
    • 基本假设:X,Y间具有联合概率分布
    • 独立同分布:训练数据和测试数据的特征和标签是一致的,没有概念上的漂移。
  • 风险与误差

    • 经验风险$R_{emp}(f)=\frac{1}{N}\sum_1^NL(y_i,f(x_i))$与期望风险$R_{exp}(f)=E_P[L(Y,f(X))]$,经验风险:训练集的平均损失,期望风险:X,Y联合分布的期望损失。ERM:经验风险最小化。
    • 根据大数定律,样本N趋于无穷时,$R_{emp}(f)\to R_{exp}(f)$,但现实中不可能趋于无穷,所以最终的问题变为求解经验风险最小化$min_{f\in F}\frac{1}{N}\sum_1^NL(y_i,f(x_i))$和结构风险最小化$min_{f\in F}\frac{1}{N}\sum_1^NL(y_i,f(x_i))+\lambda J(f)$两种。
    • $F$为假设空间,注意$F$中的最好预测函数与整个函数空间中的最好预测函数还有距离,其损失函数的差是近似误差;$F$中最好的预测函数与经验风险最小化的预测函数也有距离,其损失函数的差是估计误差;机器学习到的函数与经验风险最小化的预测函数仍有距离,其损失函数的差是优化误差;泛化误差为上三者的和。$F$扩大,近似误差变小,估计误差一般会变大(数据不变时,假设空间变大,更容易产生过拟合);反之也成立。极端地,有无限的训练数据时,估计误差为0。
    • 对于任何一个假设空间内的函数(如自己训练的一个模型,不一定收敛了),有额外误差(excess error)=近似误差+估计误差+优化误差,它可以用来衡量任何一个函数的表现。该函数与经验风险最小化的预测函数间的损失函数差为优化误差,该误差在过拟合情况下可能为负。
    • 贝叶斯决策函数:使期望风险最小化的函数,一般也称为目标函数
    • 贝叶斯风险:贝叶斯决策函数的风险
    • 极大似然估计是经验风险最小化在模型是条件概率分布,损失函数是对数损失函数时的一个例子。在数据太少时经验风险最小化很容易过拟合。
    • 结构风险最小化是经验风险最小化的正则化,即加上罚项$\lambda J(f)$,$J(f)$是F上的泛函,是模型的复杂度(如模型参数的范数),$\lambda \geq 0$是系数。最大后验概率估计是模型是条件概率分布,损失函数是对数损失函数时的一个例子。
  • 过拟合: 模型太复杂,复杂度比真实模型更高;数据太少,数据多能减少过拟合。过拟合时模型经验上某些参数可能非常巨大,并且不够平滑。解决方法:正则化/交叉验证

  • 奥卡姆剃刀原理:能很好地解释已知数据并且十分简单的才是最好的模型

  • 数据划分

    • 训练集:学习模型内部参数

    • 验证集:调整超参数

    • 测试集:模型不能改动了,评估模型结果

    • Dirty Work:通过测试集调整超参(即把测试集作为了训练集或验证集),结果会非常好,但泛化能力可能会变差

  • (k折)交叉验证:为解决训练集和测试集随机切分有一定偶然性,分数据为k份,每份都做一次测试集,其余作为训练集,共进行k次,把$\bar{T}\pm \frac {SD(T_1,…,T_k)}{\sqrt k}$作为最终误差范围,SD为标准差。特别地,极端情况下$k=N$,每份只有1个,变为留一交叉验证。

  • 对于时间序列问题,不断添加后方的测试集作为训练集多次验证,或者说将关键时间节点在时间轴上滑动多次验证

  • ML流程:

    • 问题的分析也是重要的
    • 数据的选取划分也不是简单的
  • 具体流程:数据划分为三部分(训练,验证,测试)$\to$反复训练调超参数$\to$把训练集和验证集合并重新训练$\to$在测试集上评估性能$\to$(如果能获取测试集数据,则再合并测试集并重新训练)$\to$部署

  • ML问题实例:根据过往员工离职信息分析员工离职倾向

    • 输入&&输出:输入为5年内员工离职数据,输出为判断员工是否在6个月能离职
    • 深度学习方法:RNN,这里暂不讨论
    • 训练的滑动窗口:18个月,根据前12个月的情况判断后6个月内是否离职。其中注意,剔除前12个月内入职的人,剔除在前12个月离职的人。
    • 不平衡的问题:离职的人远少于不离职的人;解决方法:上(过)采样,拷贝多份离职的人做训练集,或者下(欠)采样,不离职的人多次采样和离职的人做训练集形成多个模型再求平均。
    • 测试集的选取:把训练集的一部分分为测试集
  • 信息泄露:需要考虑特征与标签间是否强相关

    • 标签进入属性:e.g. 图片中出现了标签的文字
    • 标签关联的属性进入属性:e.g. 情感分析任务文本中出现了打分数据
  • 样本偏差:只采集了部分群体的数据

  • 稳定性问题:模型会随时间发生变化

优化

  • 线性回归

    • 简单
    • 易于构建
    • 具有可解释性
    • 方法:最小二乘法
    • 问题:多维时涉及到矩阵的求逆,计算量大,而且可能不能求逆
    • 改进:增加罚项
    • 岭回归:二范数参数罚项,随罚项增大参数接近0
    • Lasso回归:一范数参数罚项,随罚项增大,参数稀疏程度增加
    • 两者比较:前者罚项是圆,后者罚项是菱形。菱形和经验风险的圆等高线相切更容易交在顶点,故参数值更容易取到0;圆形和经验风险的圆等高线相切更容易交在一般的位置,故参数值不太容易为0。岭回归比Lasso回归计算更简单。
  • 解析解不存在?必须用数值方法。

  • 梯度下降,MiniBatch,随机梯度下降

    • 详见最优化
    • 条件:连续可微凸
    • 进一步:自适应步长
  • 基本概念

    • Epoch:把所有样本跑完一遍
    • Batch Size:类似窗口大小
    • Itaration:样本中batch数
  • Momentum 动量方法思想:SGD的优化,对每次迭代增加一个discount

  • 坐标下降法:反复选择某一个坐标进行梯度下降直至收敛

    • Lasso回归时:总体凸,经验风险部分连续可微,罚项不可微,虽然不满足梯度下降条件,但经证明可以使用坐标下降收敛到局部最优
    • 权重$w_i$的更新策略是一个分段函数
    • 根据坐标的选择策略又分为随机坐标下降和循环坐标下降
  • 冗余特征问题

    • 处理方法:特征选择,丢弃冗余特征;PCA
    • 冗余特征的权重和相等,在空间中为一条直线。
    • 一范数正则化没办法区分冗余特征(权重只要均大于0,结构风险就都相同)。考虑方形和直线的距离。
    • 二范数正则化在冗余特征权重全部相时结构风险取到最小。考虑圆和直线的距离。
    • 但如果冗余特征是线性相关的,一范数正则化很容易得到为权重为0的结果,二范数正则化的特征权重是线性相关的。本质上是从前述的圆等高线变为了椭圆等高线。
  • 弹性网络

    • 解决的问题:如果冗余特征有多个变量,组内权重可能突变地很厉害。
    • 方法:罚项取一范数和二范数的加权和,形状是边为弧形的方形(酷似原神中的岩元素),范数的权重调整可以改变弧的弧度,故称弹性网络。能使多个特征组间权重差异变大,组内权重差异变小。
    • 在图形上一范数权重取0.2时弹性网络很像1.2范式,但是弹性网络在拐点是圆滑的,比单一的范式效果更好。
    • 把二范数合并到经验风险项中,二范数仍然是可微凸的,故可以用坐标下降法进行优化。
    • 05年提出的方法
  • 凸优化

    • 详见最优化
  • 拉格朗日乘子法和对偶问题

    • 详见最优化

$$
f = u_12+u_23+u_31\
\sqrt{(u_1^2+u_2^2+u_3^2)}=1\
g = u_1
2+u_23+u_31-\lambda(\sqrt{(u_1^2+u_2^2+u_3^2)}-1)\
g’(u1)=2-\lambda(\frac{u_1}{\sqrt{(u_1^2+u_2^2+u_3^2)}})=0\

$$

感知机&&神经网络

SVM

  • 逻辑斯蒂回归$y=\frac{e^{\theta ^Tx}}{e^{\theta ^Tx}+1}$
    • 线性模型
    • 和SVM不同,该超平面由所有的点给出
    • 可以使用核技巧,但计算复杂度很高,一般不使用
  • 为什么是SVM?
    • SVM和Boosting方法是深度学习之前的两大支柱
    • SVM有解释性
    • SVM在特征维数较大,样本较少时,神经网络很容易过拟合,而SVM重点考虑超平面附近的少量点,不会过拟合,同时不需要大量的样本
  • 间隔
    • 间隔符号代表分类,大小代表了样本的分类的确信度
    • 函数间隔$\hat\gamma=y(wx+b)$:表示了分类的正确性及确信度
    • 几何间隔:在上基础上规范化$||w||=1$来避免$w,b$成比例更改间隔变大的问题,即$\gamma=y(\frac{w}{||w||}x+\frac{b}{||w||})$
  • 概述:寻找(几何)间隔最大化的超平面
  • 本质上是求解凸二次规划,SVM学习算法是求解该问题的最优化算法
  • 支持向量:指超平面中一些具体的点,它们的位矢即支持向量;这些点对间隔最大化的超平面起到了几乎决定性的作用。
  • 归一化:平衡各维度的权重
  • 线性可分:数学推导见最优化

$$
min_{w,b}\frac 1 2||w||^2\
s.t.\ \ y_i(wx_i+b)-1\geq0,i=1,2,…,N
$$

  • 线性不可分的线性SVM

    • 软间隔:不要求所有样本都正确分类,增加松弛变量$y_i(wx_i+b)\geq 1-\xi$

    $$
    min_{w,b,\xi}\frac 1 2||w||^2+C\sum_1^N\xi_i\
    s.t.\ \ y_i(wx_i+b)\geq1-\xi_i,i=1,2,…,N
    $$

    • 软间隔下分隔边界间距离为$2\epsilon$的区域也有样本,可能被误分
    • C为罚项系数
    • Hinge Loss:从损失函数的角度解释,侧重离超平面近的样本,过滤离超平面很远的样本
    • 硬间隔下SVM受异常点影响很大
  • 非线性SVM

    • 核技巧
    • 使用一个非线性变换$\varphi$,把非线性问题变为线性问题
    • 形式上只是把SVM解中两点的内积变为了$\varphi(x_i)\varphi(x_j)$
    • 核函数的选取:正定核
  • 支持向量回归

    • 回归时允许样本和预测时有一定的距离,该距离不计入损失
  • 多分类:转化为二分类

    • 一对多:一个类别VS其它所有类别。会有不平衡,分类区域重叠等问题
    • 一对一:轮流选两类。会有区域无人认领的情况;时间复杂度很高。libSVM中实际使用。
  • SVM不能给出概率输出

性能评估

  • 基线模型:作为模型评估的下限,一般是传统学习方法
  • 零信息预测函数:不使用样本特征,仅通过样本结果分布进行随机预测
    • e.g. 平方损失函数时该函数为样本均值;绝对值损失时为该函数为中值
    • 最基本的基线模型
  • 线性模型:简单
  • Oracle模型:作为模型评估的上限,也可能超过,一般是各榜单上的TOP模型
  • 对多类有混淆矩阵;针对某一类有TP,FP,TN,FN,查准率$PRE=\frac{TP}{TP+FP}$,查全率$REC=\frac{TP}{TP+FN}$,$F_1=\frac{2PRE\cdot REC}{PRE+REC}$,$F_{\beta}=\frac{(1+\beta^2)PRE\cdot REC}{\beta^2PRE+REC}$
  • 阈值
  • ROC,AUC…

极大似然估计

  • 取模型中使所有数据概率最大的假设
  • e.g. 泊松分布

决策树

  • 具备可解释性,支持非线性分类
  • 构造
    • 分裂:选择属性
    • 划分:划分样本
    • 剪枝:避免过拟合
  • 算法
    • ID3:主要通过计算信息增益来选择属性
    • C4.5:主要通过信息增益率来选择属性,修复了类别特别多的属性总是被优先选的问题,但会偏好类别少的属性
    • CART:主要通过Gini指数来选择属性
  • 连续变量
    • 选取阈值使之离散:二分法
    • 分隔点的选取:每两个值的中间值中最好的
  • 值缺失问题
    • 只考虑完整的样本:浪费信息
    • 值填补:最多值填补/0值填补
    • 罚项:计算信息增益时对有缺失值的属性进行惩罚
    • 划分:样本该属性缺失时的划分,将该样本放入所有分类,计算信息增益时需要乘上权重。可以理解为把该样本分到所有类别
  • 过拟合
    • 树越大,训练集上效果越好,测试集上效果反而更差
    • 早停:不让树长的太大
    • 剪枝:用标签最多的类别代替所有类别,即不进行这次决策,在验证集上看是否有提升。若有则替换,即成功剪枝。

集成学习

  • 又称:多分类器系统
  • 背景:减少预测函数的方差,数学上的简单想法是多次求平均,但我们没有多个独立的训练集。
  • 通过多个模型(基学习器)进行学习,输出为多个弱分类器的线性组合或指数组合
    • 基学习器需要“好而不同”:独自工作至少要有一点性能,同时基学习器间需要尽可能不同。
    • 一般用于监督学习,但也可以用于无监督的聚类任务
  • 想法:三个臭皮匠,顶个诸葛亮
  • 平行集成:每个子模型平行构建,互不影响,如Bagging
    • 可以并行计算
    • 复杂度较低
  • 序列集成:后一个子模型依赖前面的模型,如Boosting
  • Bagging
    • Bootstrapping采样,有放回,大数平均下63%的样本是袋内样本,即多次出现的样本,袋外样本是很好的测试集
    • 不使用全部样本,一方面是为了随机性,一方面是避免分类器相关
    • 生成多个(可能成百上千)独立的弱分类器,权重都是一样的
    • 生成集成模型,即预测函数的结合
    • 回归:平均
    • 分类:投票,相同则随机
    • 相比子学习器,误差不变,方差减小
  • 随机森林
    • 基学习器为多颗决策树
    • 典型的Bagging,样本的随机性
    • 决策树在每一个结点选择属性时,随机选一个很小的总属性子集来进行选择,特征的随机性
    • 因为随机性很高,每棵树都只用部分样本学习,使用部分特征,所以不容易过拟合
    • 不需要剪枝,一方面因为要随机采样,另一方面是随机森林不指望在一棵树上表现良好
    • 树越多,学习错误率越低
    • 经验上,随机属性子集大小:$log_2d+1$,它会影响树的随机性和森林的精度
    • 不需要进行特征选择就能进行高维数据学习
    • 缺点是精度不太高,比决策树学习得慢,也不具备可解释性
    • 可以评估特征重要性:对袋外样本,扰动某个特征
  • 随机森林的评估
    • 间隔:分类问题时,正确分类-错误分类的集分类器数,或者说投票差
    • OOB(Out-Of-Bag Error):对某个样本,只通过没见过该样本的基分类器的预测结果进行评估
  • Boosting
    • 基学习器间有很强的依赖,新学习器的产生式基于之前的学习器
    • 计算最后的结果时需要对不同的学习器进行加权求和,权重的设置根据该弱分类器的效果
    • 相比子学习器,方差不变,误差减小
  • AdaBoost
    • 典型的Boosting
    • 迭代算法
    • 初始权重为$\frac 1n$,迭代T轮,若效果比随机差(准确度小于0.5),则出错,结束循环;否则根据误差率更新所有训练数据的权重
    • 预测时根据每一轮形成的子学习器投票,权重为根据误差计算得到的一个数
  • 集成的好处
    • 统计上看,假设空间往往较大,多学习器泛化性能更好
    • 计算上看,降低陷入糟糕局部极小点的风险
    • 表现上看,多学习器的效果可能超出单学习器的假设空间,能更好的近似
  • 数据增强
    • 决策树和神经网络对数据扰动较敏感
    • CV:旋转,黑白
    • NLP:回译,近义词替换
  • Stacking
    • 前两种集成学习方法的弱学习器种类是一样的,而Stacking可以结合不同种类的弱学习器;根本想法也不一样,Stacking是希望强的学习器(也可以使用弱的)集成后变得更强,使用上比较灵活
    • 核心过程:用原样本训练多个分类器,然后把每个样本在每个学习器上的输出(最好是把分数标签转化概率)结合原样本作为新的样本训练元学习器
    • 元学习器进行输出
    • 层内可以并行,层间不能并行
  • Subsemble Approach
    • 一种Stacking
    • 原数据集划分为m份子集,为避免信息泄露导致过拟合,需要把各个子集平均划分,n-1份进行训练,1份用于标签输出
  • 神经网络中也有集成思想的体现
    • 如卷积神经网络中需要有多个卷积核

降维

  • 无监督学习
  • 维度灾难:维数太高同时又很稀疏,难以计算距离有用的维度被掩盖了
  • 降维的合理性:虽然数据时高维的,但和学习任务相关的只是低维数据
  • PCA:线性降维,高维数据到低维子空间的线性正交投影
    • 目标超平面特点:样本离它足够近,点的投影要尽可能分开
    • 核PCA:通过非线性映射来寻找合适的低维嵌入
  • 流形学习:一种基于拓扑流形概念的降维方法。可用于可视化
    • LLE:流形在局部可以近似等价于欧氏空间。在高维空间中求出用来表示某个样本的邻居样本的权重值,也就是上图中的w,然后代⼊到低维空间中,来求低维空间的x映射后的表示。
  • 自编码器:前馈神经网络
    • 编码后再解码,并令目标和自身误差小,这样训练得到中间编码结果就是⼀个低维的表示。可以引入非线形的激活函数来训练,这样训练的结果就可以是非线形的映射。

聚类

  • 无监督学习
  • 评估问题
    • 类内相似度
    • 类间相似度
    • 外部指标
      • a:参考结果和实验结果都在一类的数据对数
      • b:参考结果在一类,实验结果不在一类的数据对数
      • c:参考结果不在一类,实验结果在一类的数据对数
      • d:参考结果和实验结果都不在一类的数据对数
      • $JC=\frac{a}{a+b+c}$
      • $FMI=\sqrt{\frac a{a+b}\times\frac a{a+c}}$
      • $RI=\frac{2(a+d)}{m(m-1)}$
    • 内部指标
      • 簇内样本平均距离$avg(C)$
      • 簇内样本最大距离$diam(C)$
      • 簇间最小距离$d_{min}(C_1,C_2)$
      • 簇中心最小距离$d_{cen}(C_1,C_2)$
      • $DBI=\frac{1}{k}\sum_{i=1}^{k}max_{j\neq i}\frac{avg(C_i)+avg(C_j)}{d_{cen}(C_i,C_j)}$
      • $DI=…$
    • 距离度量
      • 距离指标需要是范数
      • 闵可夫斯基距离/p-范数
    • cosine相似度量:向量夹角,常用
  • 层次聚类算法:初始把每个样本当做一个类,不断合并最近的两类直至满足需求
    • 需要计算两类间的距离:可以取两类中最近/远的样本的距离,两类所有样本间的平均距离,分别被称作单一连接,完全连接,平均连接
  • K-means
    • 一种EM算法,初始随机选数据点作为聚类中心,E步计算聚类结果,M步计算聚类中心
    • 超参数K的选取
      • 可以根据数据情况,人工选取
      • 轮廓系数$sc(i)=\frac{(b_i-a_i)}{max(a_i,b_i)}$,越大越好
      • $a_i$是样本i到自己类内其它样本的平均距离
      • $b_i$是样本i到最近的其它类的样本的平均距离
    • 缺点:目标函数非凸,可能仅局部最优。粗糙的解决方法:多次随机初始化选最好的结果。
    • K-means++:按顺序选取数据作为初始点,更好的解决方案
  • 图分类
    • 应用背景:微博人群分类
    • 模型:有权无向图
  • 谱聚类:相当于先进行非线性降维,使原始数据点能够线性可分,最后再使用k-means聚类就可以得到比较好的聚类效果
  • DBSCAN:一种以密度为基础的聚类
    • $\epsilon$邻域,邻域内几个点是核心判别
    • 核心对象:邻域内的点数超过了阈值
    • 边界对象:核心对象的邻居
    • 噪音对象:上两者都不是的点
    • 密度直达:非堆成,边界对象对核心对相密度直达
    • 密度可达:经多次密度直达传递
    • 超参数的选择
      • 核心对象阈值:经验上大于数据维度+1
      • 领域大小:经验…
    • 缺点:对类内密度很敏感,密度差大时效果差;对超参数很敏感
  • 高斯混合模型
    • 见EM

EM算法

  • 期望最大值算法:处理隐变量模型

    • 是一类优化算法
    • 无监督
    • K-means是EM的特例
  • 隐变量模型:包含隐含变量(永远不会被观测到)的概率模型

  • 高斯混合模型

    • 学习是困难的(如SGD),推断是容易的
    • 边界似然,对数似然,边界对数似然
  • 边界优化:找L的最值不容易,但可以找L的下界函数Q的最值来一步一步接近

    • 递推关系:$L(\theta_{t+1})\geq Q(\theta_{t+1})\geq Q(\theta_{t})=L(\theta_{t})$
  • 寻找下界

    • $\log p(x|\theta)\geq\sum_zq(z)\log(\frac{p(x,z|\theta)}{q(z)})=L(q,\theta)$
    • $\log(x)$是凹函数
  • 具体算法

    • 随机初始化$\theta$

    • 找最佳的q,$q^*=\arg max_q L(q,\theta^{old})$

    • 找最佳的$\theta$,$\theta^{new}=\arg max_{\theta}L(q^*,\theta^{old})$

    • 数学推导:

      $$
      L(q,\theta)=\sum_zq(z)\log(\frac{p(x,z|\theta)}{q(z)})\=\sum_zq(z)\log(\frac{p(z|x,\theta)p(x|\theta)}{q(z)})\=\sum_zq(z)\log(\frac{p(z|x,\theta)}{q(z)})+\sum_zq(z)\log p(x|\theta)\=-KL[q(z),p(z|x,\theta)]+\log p(x|\theta)\\Rightarrow\log p(x|\theta)=L(q,\theta)+KL[q(z),p(z|x,\theta)]\\Rightarrow\log p(x|\theta)=L(q^*,\theta)\KL=0\Rightarrow q^*(z)=\arg max_qL(q,\theta)
      $$

    • E步,计算$q^*(z)=\arg max_qL(q,\theta)$,计算$J(\theta)=L(q^*,\theta)$

    • M步,计算最优的$\theta=\arg max_\theta J(\theta)$

    • 如此反复直至收敛

  • 收敛性:…

  • 算法改进:

    • 问题:极值问题难计算
    • E步针对$J$对$\theta$使用梯度下降
    • M步松弛计算$q=\arg min KL$
  • EM计算高斯混合模型

半监督学习

  • 真实世界中无标签数据很多,有标签的数据很难获得,可能需要领域专家甚至特殊设备,而且耗时耗力。
  • 半监督学习:尽可能用到无标签数据提高模型表现
    • 无标签数据中包含潜在的分布信息
  • 自训练:用有标签的数据训练一个模型来给部分无标签的数据打标签,如此反复至收敛,最后再利用全部的数据进行训练目标模型
    • 优点:简单
    • 缺点:
      • 早期错误会被放大,产生误导;改进:增加样本置信度挑选样本
      • 收敛情况不明
  • 生成模型:e.g. 混合高斯模型
    • 利用EM等方法估计参数
    • 优点:简单高效
    • 缺点:EM的局部最优问题;可能假设本身有问题 e.g.分类是究竟应该按流派还是按话题
  • TSVM
    • 最大化无标签数据间隔
    • 先用有标签样本训练SVM,然后对所有数据进行打标签
    • 利用所有这些数据训练SVM,然后对所有数据进行打标签
    • 遍历所有无标签样本对,交换两个不同的都不好的预测标签结果。如此循环至收敛
  • 图半监督学习
    • 给定⼀个数据集, 我们可将其映射为⼀个图,数据集中每个样本对应于图中⼀个结点,若两个样本之间的相似度很高(或相关性很强), 则对应的结点之间存在⼀条边,边的“强度”(strength)正比于样本之间的相似度(或相关性)。
    • 我们可将有标记样本所对应的结点想象为染过色, 而未标记样本所对应的结点则尚未染色。于是,半监督学习就对应于“颜色”在图上扩散或传播的过程。
  • 多视图算法
    • 协同训练:训练两个分类器,分别给无标签数据打标签,分别把其中k个较确信的数据加入对方的标签数据集,如此反复
  • 可变自编码器:…

复习

  • 深度学习VS机器学习
    • 机器学习更依赖结构化的数据,学习的是一种模式,通常需要多个模型组合
    • 深度学习通过神经网络独立完成定义,分析,决策的过程,是端到端的解决方案,需要海量的数据
  • 监督学习和无监督学习
    • 监督学习有标签,无监督学习无标签
  • 如何从数据集中选特征/变量
    • 丢弃相关性高的冗余特征
    • Lasso回归
    • 随机森林
    • 计算信息增益
  • 如何选择机器学习算法
    • 如果是结构化的数据,则可以根据其结构使用传统模型
    • 如果是图片,视频,语音,文本,则神经网络会比较好
  • 正则化在机器学习中的应用
    • 防止模型过拟合
  • 数据集有较高方差是好还是不好
    • 不好…
  • 如何处理高方差的数据集
    • 可以使用bagging方法集成
  • 随机梯度下降和梯度下降的区别
    • 梯度下降用所有样本估计下降参数,minibatch用部分样本估计下降参数,SGD用随机样本估计下降参数
  • 决策树的优缺点
    • 优点:可解释性,简单,模型参数少,对噪音不敏感
    • 缺点:过拟合
  • 混淆矩阵
    • 主要用于多分类问题的模型性能评估
  • 维度灾难
    • 维度太多可能导致过拟合;有用的维度被掩盖了
    • 使用PCA处理
  • 正则化VS归一化
    • 正则化处理过拟合问题,是对模型的处理
    • 归一化用来处理不同特征的值域不同,尺度差别太大,是对数据的处理
  • 归一化VS标准化
    • 归一化:见上,映射到[0,1]
    • 标准化更宽泛
  • 懒惰的学习器
    • KNN:它不需要训练,只需要从测试集中找邻居投票即可
  • K-means VS KNN
    • K-means:最简单经典的聚类方法
  • 核SVM的方法
    • 处理线性不可分问题,样本点积过程换成核即可
  • 为什么集成模型更好
    • 减少方差,降低过拟合的可能
    • “好而不同”
  • 过拟合 VS 欠拟合
    • 欠拟合:模型误差很大,没有训练好。解决办法:再训练
  • Lasso VS 岭回归
    • 都是线性回归问题中用到
    • Lasso是一范数正则化,岭回归是二范数正则化
  • 概率和似然的区别
    • 概率:事件发生的可能性
    • 似然:数据集在某个假设下发生的可能性
  • 为什么要对决策树剪枝
    • 后剪枝:先生成树,再剪值看结果是否变好,好则剪
    • 预剪值:限定一些条件防止树太深
  • 模型准确度VS模型性能
    • 性能:宽泛,准确度,训练时间等
    • 在不均衡的问题中,F1比准确度要好
  • 不均衡数据集问题
    • 上(过)采样,下(欠)采样,类别权重(深度学习)
  • 特征工程为什么对模型很重要
    • 用好的特征能提高模型效果
  • Boosting VS Bagging
    • Boosting可以并行,Bagging只能迭代串行
  • 生成式模型 VS 判别式模型
    • 生成式模型学习联合分布
    • 判别式模型学习条件概率
  • 超参数
    • 模型外部的参数,和数据是无关的
  • 如何定义类别个数
    • 轮廓系数…
  • 交叉验证
    • 为了避免训练集合验证集分隔的偶然性,获取更好的评估
  • KNN中距离的计算
    • 范数
    • cos
  • 熵和信息增益的区别
    • 信息增益是熵的减小值
  • 什么时候用SVM而不用随机森林
    • 线性可分时一般SVM结果更好
    • 问题高维时
  • SVM异常点的影响
    • 软间隔参数C大受影响
  • 逻辑回归能用核函数吗
    • 可以,但逻辑回归基于所有样本,计算代价太高了
  • SVM是否产生概率输出
    • 不能,它只能找到界面,距离不能说明概率
    • 可以用k折交叉验证生成概率
  • 贝叶斯风险VS经验风险
    • 贝叶斯风险是理想情况下的
    • 经验风险基于数据集
  • 拉格朗日乘子
    • 优化时用到
  • 随机森林的随机性
    • 数据随机性
    • 特征随机性
  • 随机森林不容易过拟合
    • 基于上述随机性
  • 深度学习模型和集成学习模型的联系
    • 深度学习中也有集成思想
  • 集成分类器效果为什么可能比单个分类器好
    • “好而不同”

机器学习笔记
http://example.com/2021/11/23/机器学习笔记/
作者
zty
发布于
2021年11月23日
许可协议