我根据本学期老师说的考试重点和我自身的情况总结的,希望能帮助到你,如有错误欢迎指正
目录
- 第三章 判别函数
- Fisher线性判别
- 感知机算法
- 第四章 特征选择和提取
- K-L变换
- 第五章 统计学习学习基础
- 损失函数
- 风险
- 正则化
- 过拟合
- 欠拟合
- 泛化误差
- 第六章 有监督学习
- 有监督学习分类器
- 定义缩写
- 第七章 支持向量机
- 间隔
- 硬间隔SVM
- 软间隔SVM
- SVM核方法
- 支持向量回归SVR
- 第八章 聚类
- K均值聚类
- 高斯混合模型(GMM)
- 基于密度的聚类(DBSCAN)
- 第九章 降维
- PCA(主成分分析法)
- 第十章 半监督学习
- 三个假设
- 第十二章 集成学习
- Bagging
- Boosting
- 第十三章 深度学习
- 神经元
- 梯度消失
- 梯度爆炸
- 神经网络结构
- 梯度下降
- 神经网络抗过拟合
- 现在采用了什么技术使得增加模型深度能够提高训练效果
第三章 判别函数
Fisher线性判别
- 目的: 将高维数据压缩到一维,寻找一条投影线,样本在这条线上的投影可以最好、最容易分开
- 思想: 选择投影方向,使投影后的两类距离越远越好,同一类型内部的样本距离越近越好
- 投影方向: W就是投影方向,W的大小不重要,重要的是方向。样本x通过W做线性变换后得到一维结果y
- Fisher准则: J=(m1-m2)^2/(S1+S2) 分子是两类均值之差,越大越好;分母是类内离散度,越小越好
- 分类判断: 确定最佳投影方向后只需要确定一个阈值,大于阈值属于类型1,小于则属于类型2
- 求解最佳投影方向:
感知机算法
- 目的: 通过训练样本产生线性可分的模式判别函数
- 特点:
- 不需要对各类中样本的统计性质做任何加速,称为确定性的方法
- 实质是一种赏罚过程,分类正确的权向量不变,分类错误的要修改权重
- 存在多个解,根据不同的初始值和训练过程中分类错误样本的训练顺序可能有不同的判别函数
- 两类训练步骤:
- 若第K个样本分类错误就要校正权向量,w(k+1)=w(k)±Cx^k,本应是大于0的但结果小于0则说明小了要加;本应是小于0的但结果大于0则说明打了要减
- 若第K个样本分类正确则无需改变,w(k+1)=w(k)
- 若所有样本都分类正确则停止训练,否则不断迭代训练下去
- 多类训练步骤:
- 对于M类创建M个判别函数
- 训练过程中将一个属于i类的样本用M个判别函数分别计算,若第i个判别函数的结果比其他判别函数的结果都大,则分类正确无需改变wj (k+1)=wj (k)
- 若存在其他判别函数的结果大于第i个判别函数,则分类错误需要校正权向量,第i个判别函数要增大wi (k+1)=wi (k)+Cx^k ,任意选择一个大于第i个判别函数结果的判别函数减小wj (k+1)=wj (k)-Cx^k
- 若所有样本都分类正确则停止训练,否则不断迭代训练下去
第四章 特征选择和提取
K-L变换
- 使用原因: 直接删除部分特征会丢失有用信息,若先正交变换再从中选有用的特征会更灵活有效。正交变换就是为了消除特征之间的相关性,让特征之间独立,这样就方便选择其中的部分特征
- 特点: 适用于任意概率密度函数的正交变换
- K-L展开性质: 将随机向量x展开为另外一组正交向量的线性和
- K-L最佳变换: E(x)需要为0,若不满足则要平移
- 计算样本均值
- 平移样本
- 计算协方差矩阵
- 求协方差矩阵的特征值,取最大的m个特征值对应的特征向量构成变换矩阵
- 变换矩阵和原数据相乘得到新的特征
- 选择特征需要注意的点:
- 在K-L变换之前要将其均值作为新坐标轴的原点,采用协方差矩阵或自相关矩阵计算特征值
- 为使误差最小,不采用的特征向量对应的特征值要尽可能小,因此选前m大的特征值和其对应的特征向量
- K-L变换是在均方误差最小的意义下获得数据压缩的
- 对于一种类别来说,不存在特征分类,只是用低维特征表示原本的高维特征
- 效果: 减小相关性、突出差异性
- 与PCA的异同: 都是正则变换,PCA是无监督的,KL是有监督。PCA的变换矩阵是协方差矩阵,K-L变换的变换矩阵可以有很多种(二阶矩阵、协方差矩阵、总类内离散度矩阵等等)。当K-L变换矩阵为协方差矩阵时,等同于PCA。
第五章 统计学习学习基础
损失函数
- 作用: 计算预测值和真实值的差距,越小则代表模型越成功
- 表示: L(f(x),y)
风险
- 期望风险
- 定义: 模型在所有可能出现样本上的误差均值
- 公式: ∫L(f(x),y)dP(x,y)
- 经验风险
- 定义: 训练集中所有样本的误差均值
- 公式: 1/N ∑L(f(xi,yi)
- 结构风险
- 定义: 在经验风险函数后面加一个正则项,防止过拟合
- 公式: 1/N ∑L(f(xi,yi)+λJ(f)
- 三者关系: 期望风险无法真实求出,所以只能用经验风险代替,为了防止过拟合加上正则项变为结构风险
- 作用: 最小化风险可以找到最优函数
正则化
- 定义: 一个惩罚项,相当于加入了参数的先验分布,从而防止过拟合
- 公式: λJ(f)
- λ 决定了相比于误差项,正则项的相对重要程度,控制模型的复杂度,越小模型复杂度越高
- J(f)
- L2正则(岭回归) :参数w做内积,可实现参数的平滑
- L1正则: 参数w绝对值求和,可实现参数的稀疏
过拟合
- 定义: 模型在训练集上表现好,在测试集上表现差
- 出现原因: 模型太复杂
- 解决办法:
- 增加训练样本
- 加入正则项或增大正则参数λ
- 降低模型复杂度
- 使用dropout
欠拟合
- 定义: 模型在训练集和测试集上表现都差
- 出现原因:
- 模型太简单
- 特征量太少
- 解决办法:
- 增加模型复杂度
- 减小正则项,即减小正则参数λ
- 增加更多样本特征
泛化误差
- 定义: 偏差+方差+噪声
- 偏差:
- 意义: 度量模型的期望预测和真实值的偏离程度,刻画了模型的拟合能力
- 降低方法: 参考欠拟合处理方法
- 方差:
- 意义: 刻画了数据扰动所造成的影响,反映了在不同样本集上模型输出值的变异性
- 降低方法: 参考过拟合处理方法
- 噪声: 刻画了问题的难易程度
- 意义: 泛化误差越小,表示模型的推广能力越强
- 偏差-方差权衡: 为了取得好的泛化效果,要使偏差、方差较小,但这两个值存在此消彼长的冲突
- 欠拟合: 高偏差,低方差。此时模型没有拟合,所以是偏差主导
- 过拟合: 低偏差,高方差。此时训练集效果好测试集效果差,所以是方差主导
第六章 有监督学习
有监督学习分类器
- 产生式模型: 通过似然和先验求联合分布,最终求出后验,用条件概率密度来预测(贝叶斯判别)。先学会每种语言的规则再判断说的是什么语言
- 判别式模型: 直接对后验建模。直接听一段话判断属于哪种语言,不用掌握每种语言怎么说
- 判别函数: 寻找一个函数将每个输入直接映射到目标函数
定义缩写
- MLE: argmaxP(D|θ) 最大似然估计。在高斯噪声模型下,MLE和LMS等价
- LM: min∑(wxi-yi)^2 最小均方。预测值和真实值相减的平方,几何解释就是找投影
- MAP: argmaxP(θ│D)=argmaxP(D|θ)P(θ) 最大后验概率。高斯噪声模型下,MAP和LMS等价。当均匀分布时MLE和MAP等价
- LR: 逻辑回归
- GDA: 高斯判别分析
- NB: 朴素贝叶斯
第七章 支持向量机
间隔
- 定义: 对于任意的超平面,其两侧的数据距离超平面的最小距离叫做间隔
- 置信度: 点到分离超平面的距离反映了预测的置信度,越远置信度越高
- 函数间隔:
- 定义: 标签×预测值,对于训练集来说所有样本中最小的函数间隔代表了该数据集的函数间隔
- 判断标准: 若标签和预测值正负一致则代表预测正确,函数间隔距离0越远越确信
- 缺点: 若wx+b中的w和b成比例改变,则函数间隔也会随之成比例改变,但超平面实际并没有发生变化,因此需要几何间隔
- 几何间隔:
- 定义: 函数间隔 / w的模长
- 特点: 几何间隔具有不变性,成比例缩放w和b时不会改变几何间隔
硬间隔SVM
- 定义: 给线性可分的训练数据集,找到一个判别界面让样本离判别界面的最小距离越大越好
- 支持向量: 距离分离超平面最近的训练样本。预测时只需要用支持向量即可
- 表示:
- 超平面: wx+b=0
- 函数间隔: 1
- 几何间隔: 1/||w||2
- 间隔: 2/||w||2 根据间隔可知,想要支持向量距离超平面距离越远,w就要越小
- 缺点:
- 当混入异常点时,可能会导致线性不可分
- 当训练数据不是线性可分的时候效果差
软间隔SVM
- 定义: 引入松弛变量,允许一些样本分类错误,但是数目要少
- 松弛变量: 对每一个样本都加上松弛变量,y^i (wx^i+b)≥1+ζ 使得函数间隔+松弛变量>=1
- ζ=0 代表分类正确
- 0<ζ<1 代表样本在支持平面和超平面之间
- ζ=1 代表样本在超平面上
- ζ>1 代表样本是异常点
- 合页损失: max(0,1-y(wx+b)) 分类正确时y(wx+b)>1,损失为0,否则损失为1-y(wx+b)
SVM核方法
- 定义: 存在一个函数可以直接对原始数据做内积,然后再映射到高维空间,从而不用高维数据很慢地求内积,这个函数就是核函数
- 作用: 将原始非线性的数据映射到高维变为线性可分的,在高维的线性可分的空间学习线性SVM
- 核矩阵: 核函数组成的矩阵,属于半正定矩阵,即特征值大于等于0
- 特点: 核函数的线性组合仍是核函数
- 常用核函数:
- 多项式核: 参数多,若多项式阶数较高时,计算复杂度会大到无法计算
- **高斯核:最常用,超参数只有一个,能够从有限维变为无限维
- 径向基函数
- 拉普拉斯核
- Sigmoid核
支持向量回归SVR
- 定义: 在超平面两侧制造一个间隔带,间距为ε,这个间隔带表示了误差接受范围,若误差小于ε则可以接受不计算损失,否则计算损失,这个损失是线性的
- 特点: ε不敏感损失
第八章 聚类
K均值聚类
- 方法:
- 随机选K个种子作为K个簇的中心
- 依次计算每个样本到每个簇中心的距离选择最近的加入到该簇中
- 用当前簇内的样本重新计算簇中心
- 重复以上操作
- 如何表示簇: 用质心或原型表示
- 距离表示: 欧氏距离
- K的选择: 肘部法找拐点
- 特点:
- 样本到簇中心的距离越小越好
- 目标函数J是非凸的,无法保证收敛到全局最小值。可用不同的初始质心尝试,多次运行选择最好的结果
- 训练集上K越大,目标函数值越小
- 缺点:
- 当簇的尺寸、密度差异较大,具有非凸的形状(双勾玉)时容易分错。解决办法是K变大,用多个小簇表示一个真实的簇;使用基于密度的方法
- 容易受到离群点影响,中心点被拉偏。解决办法是用中值代替均值,但会增大计算量
- 当数据出现轻微扰动时,可能导致一个点划分到另外的簇。解决办法是采用高斯混合模型
- 优点:
- 简单、快速
- 能处理大规模数据,可扩展性好
- 簇接近高斯分布时,效果好
高斯混合模型(GMM)
- 原理: 高斯混合模型可以看作是由 K 个单高斯模型组合而成的模型,根据概率分布将数据分类为不同的类别
- 假设: 每个簇服从不同的高斯分布
- 隐含变量: K维向量,通过独热编码指示样本所属的簇
- 求解方法: EM算法、梯度下降
- 特点:
- 可用于表示可聚类为多个高斯分布的任何数据集
- 除了聚类,可用于估计新数据点属于每个簇的概率
基于密度的聚类(DBSCAN)
- 原理: 临近的密度高的区域连成一片形成簇
- 预备知识:
- 密度: 给定半径内点的个数
- 核心点: 指定半径内有多于指定数量个点
- 边界点: 半径内有少于指定数量个点,但在某个核心点的邻域内
- 噪声点: 核心点和边界点之外的点
- 两个点之间密度可达: 连接两个点的路径上所有的点都是核心点。如果一个点是核心点那么由它密度可达的所有点形成一个簇
- 方法:
- 确定核心点
- 判断每个点和哪个核心点是同一类
- 优点:
- 不需要明确簇的数量
- 可生成任意形状的簇
- 对离群点比较鲁棒
- 缺点:
- 参数(半径、核心点最小点的数量)选择困难
- 不适合密度差异较大的数据集
- 计算慢
聚类算法 | 损失函数 | 方法 | 适用类型 |
---|---|---|---|
K均值 | 最小化平方距离的和 | 样本点硬划分到某个簇 | 每个簇的概率相同,且为球形簇 |
GMM | 最小化负对数似然 | 点到簇的从属关系为软分配 | 椭球形簇,且各个簇概率不同 |
DBSCAN | 无 | 根据点之间的距离归类 | 任意形状的簇 |
第九章 降维
PCA(主成分分析法)
- 类型: 线性降维, Z=WX 用W矩阵做一个线性变换将X投影到新空间, 并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数据维度,同时保留住较多的原数据点的特性。
- 目标函数:
- 最小化重建误差: 希望降维后的数据再次用W还原到高维数据之后和原始数据误差尽可能小。
- 最大化投影后的方差: 寻找一个方向向量,使得数据投影到其上后方差最大,若能找到则继续寻找下一个方向向量,该向量正交于之前的方向向量。等价最小重建误差
- 方法:
- 计算样本均值
- 数据中心化,用样本减去均值
- 计算协方差矩阵
- 求协方差矩阵的特征值,选前m大的特征值对应的特征向量组成降维后的数据
- 优点:
- 没有迭代
- 没有局部最小值
- 没有额外需要调节的参数
- 特征向量方法
- 以方差衡量信息的无监督学习,不受样本标签限制
- 缺点:
- 原始数据维度非常大时计算速度慢。解决办法是用奇异值分解(SVD)高效求特征向量
- 受限于先行投影
- 只用了二阶统计量,不能处理高阶依赖
第十章 半监督学习
三个假设
- 平滑假设: 高密度区域中两个点距离比较近,对应输出的结果也应该接近
- 聚类假设: 如果两个点在同一个簇,则很有可能是同一个类别
- 流形假设: 位于同一流形上的点具有相同标签;流形上距离近的点对应标签也相似
第十二章 集成学习
Bagging
- 原理: 对数据集进行Bootstrap采样,得到新的数据集并用其训练模型,重复多次该过程得到多个模型,每个模型的结果求平均或投票。模型之间没有依赖,可以并行训练。
- Bootstrap: 对原始数据集进行N次有放回采样,得到新的数据集
- 作用: 降低模型方差,偏差不变。样本数越多方差越小。由于每个模型的训练集有重复部分,则模型不是独立的,方差减小有限
- 适用场景: 对偏差低、方差高的模型进行融合,如决策树、神经网络
Boosting
- 原理: 构造性能高的学习器很难,但构造性能一般的简单,所以可以将弱学习器组合成强学习器,通过加权投票的方式得到最终结果
- 特点:
- 弱学习器按顺序学习,不能并行
- 学习器之间要互补,在不同训练集上训练即可得到互补效果。对原始数据重采样或重新加权可得到不同的训练集
- 弱学习器通常较简单,偏差大,方差小
- 作用: 降低模型方差,偏差不变
- AdaBoost:
- 原理: 用前一个弱学习器训练失败的样本训练后一个弱学习器
- 训练过程:
- 初始化所有样本权重相等,训练第一个基学习器
- 分对的样本权重除以d1,权重减小
- 分错的样本权重乘以d1,权重增大
- 用新权重的样本训练第二个基学习器
- 重复上述操作知道训练出M个基学习器
第十三章 深度学习
神经元
- 结构: 输入层结合权重和偏置经过激活函数得到输出 y=σ(∑_i▒〖W_i x_i+b〗)
- 激活函数:
- 作用: 增加神经网络模型的非线性。如果不用激活函数神经网络只是单纯的线性组合,与没有隐含层的感知机效果一样,加入非线性的激活函数可以增强神经网络的表达能力
- Sigmoid: 把数据范围从(-∞,+∞)变为[0,1]。容易导致梯度消失,逐渐被ReLU代替
- Tanh: 改进版的Sigmoid,原点对称,收敛更快,能够减轻梯度消失
- ReLU: max(x,0) 使一部分神经元输出为0,减少参数的相互依存关系,缓解过拟合。需要注意初始化参数和学习率。
- X>0时解决梯度消失,收敛快
- X<0时不更新权重成为死神经元
- 激活函数选择: 首选ReLU,效果不好可尝试改进版本
梯度消失
- 定义: 梯度趋近于0
- 影响: 靠近输出层的隐藏层梯度正常,权值更新正常,但靠近输入层的隐藏层权值更新慢或停滞,导致只有靠近输出层的网络在学习
- 解决办法:
- 用ReLU代替Sigmoid
- 更换初始值
梯度爆炸
- 定义: 梯度值超出范围无穷大,对学习率敏感
- 影响: 靠近输入层的权值变化比靠近输出层的变化快。导致模型不稳定,模型损失变成NaN
- 解决办法:
- 梯度裁剪,将梯度约束在一个范围内
- 更换初始值
神经网络结构
- 全连接神经网络: 每个神经元都和下一层的所有神经元相连
- 卷积神经网络(CNN):
- 结构: 卷积层+激活层+池化层
- 卷积:
- 性质:
- 局部连接: 卷积过程只与局部的数据连接,不是全连接从而需要的参数更少
- 权值共享: 不同位置都用同一个卷积核进行卷积
- 填充: 在图像四周填充数据,防止越卷越小,保证了边缘信息不会被忽略
- 步幅: 每次卷积核滑动的距离
- 多输入通道: 每个通道都有一个卷积核,结果是所有通道卷积结果的和
- 1×1卷积核: 不识别空间模式,只是融合通道
- 反向传播: 和全连接相似
- 好处:
- 通过不同权重组合的卷积核可检测不同的特征
- 每次只看局部的信息,不像全连接把各种信息混在一起很难判断
- 因为局部连接和权重共享使得模型复杂度降低
- 有效检测空间模式
- 通过填充、步幅和通道控制输出形状
- 性质:
- 池化:
- 作用:
- 降低分辨率,得到尺寸更小的图像
- 提供一定程度的平移不变性
- 注意的点: 因为两层之间的尺寸会改变,需要保证传递的梯度总和不变
- 最大池化:
- 前向传播: 把一个patch(卷积完的一组值)中最大值传递给下一层,其他像素舍弃
- 反向传播: 把梯度传递给前一层最大值的位置,其他像素不接受梯度
- 平均池化:
- 前向传播: 把一个patch中的值取平均传递给下一层
- 后向传播: 把梯度平均分成K份给前一层
- 作用:
- 图像为什么要用CNN:
- 有的模式比整个图像小,只需要看局部就行
- 同一个模式会出现在图像的不同位置
- 对图像进行下采样不影响目标
- 跳跃连接神经网络:
- 出现原因: CNN到达一定深度后增加深度,因为梯度消失不能带来性能的提升
- 特点: 使用残差学习
- 好处:
- 优化残差映射比直接优化原始映射容易
- 解决梯度消失问题
- 集成学习
- 循环神经网络:
- 特点:
- 有隐含状态存储与过去相关的信息
- 按时间展开
- 输入包括上一个状态的结果和输入值
- 输入序列顺序改变会改变输出值
- 存在梯度消失和梯度爆炸
- 特点:
- Batch Normalization: 在小批量上进行标准化,不断调整神经网络中间输出,从而使整个神经网络在各层的中间输出数值更稳定
梯度下降
- 定义: 延梯度相反方向移动最小化损失函数
- 梯度计算:
- 批处理梯度下降(BGD): 每次用所有样本计算梯度,计算量大
- 随机梯度下降(SGD): 每次只计算一个样本上的梯度,效率很低
- 小批量梯度下降(Mini-batch SGD): 每次随机送入少量样本计算梯度,在硬件允许下样本数量能多大就多大,综合下来最好的选择
- 自适应梯度下降:
- 作用: 解决平坦区慢、陷入鞍点、陷入局部最小值的情况
- 动量法(控制方向): 移动量和梯度和前一时刻的移动量有关。动量=上一刻动量-当前梯度。无法保证到达全局最小值
- 自适应学习率调整(控制步长):
- 学习率: 学习率低则收敛慢,学习率高则容易出现NaN
- AdaGrad:
- 做法:
- 经常更新的参数学习率低,尽量不被单个样本影响
- 偶尔更新的参数学习率高,希望从偶然出现的样本多学一些
- 优点: 减缓陡峭区下降速度;加速平坦区速度
- 缺点: 学习率衰减过快
- 做法:
- Adam: 同时利用一阶动量和二阶动量,最推荐使用
神经网络抗过拟合
- 及早停止
- 正则
- 数据增广
- Dropout:
- 定义: 训练时随机删除一部分神经元,反向传播时没有被删除的部分更新参数,被删除的不更新
- 形象描述: 三个和尚没水喝,有危机感,每个神经元都要好好干
- 特点:
- 可视为一种近似的、低成本集的集成学习
- 在全连接网络中大量使用
现在采用了什么技术使得增加模型深度能够提高训练效果
- 过去使用Sigmoid效果不好,现在用ReLU代替后使得梯度消失问题减弱
- Batch Normalization使得训练相关的各种因素,例如学习率、初始化等因素的要求降低
- 使用预训练网络做初始化
- 使用残差学习的方式使得梯度消失问题减弱
- 硬件设备的提升,使得GPU加速训练出现,深层的模型训练速度加快