机器学习知识点整理
机器学习知识点整理
简介
主要是机器学习相关知识点
术语
-
超参数
在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据。通常情况下,需要对超参数进行优化,给学习机选择一组最优超参数,以提高学习的性能和效果。 -
相关性分析与回归分析
1、相关性分析相当于先检验一下众多的自变量和因变量之间是否存在相关性,当然通过相关分析求得相关系数没有回归分析的准确。如果相关分析时各自变量跟因变量之间没有相关性 ,就没有必要再做回归分析;如果有一定的相关性了,然后再通过回归分析进一步验证他们之间的准确关系。
同时 相关分析还有一个目的,可以查看一下 自变量之间的共线性程度如何,如果自变量间的相关性非常大,可能表示存在共线性。
2、相关分析只是了解变量间的共变趋势,我们只能通过相关分析确定变量间的关联,这种关联是没有方向性的,可能是A影响B,也可能是B影响A,还有可能是A与B互相影响,相关分析没法确定变量间的关联究竟是哪一种。
而这就是我们需要使用回归分析解决的问题,我们通过回归分析对自变量与因变量进行假设,然后可以验证变量间的具体作用关系,这时的变量关系就是有具体方向性的了。
所以相关分析通常也会被作为一种描述性的分析,而回归分析得到的结果更为重要和精确。
-
偏差、方差
偏差度量了学习算法期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;
方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;
-
梯度爆炸和梯度消失
博客链接出现原因:梯度消失和梯度爆炸是因为在神经网络中,由于网络层数增多,导致求取的梯度趋于 ∞ \infty ∞(梯度爆炸)和趋于 0(梯度消失)的情况。参考链接
解决梯度消失和梯度爆炸的方法:
- 梯度剪切:防止梯度爆炸,即当梯度超过一定阈值则将梯度限制在这个阈值范围内
- 正则化项:
L o s s = ( y − W T x ) 2 + α ∣ ∣ w ∣ ∣ 2 Loss=(y-W^Tx)^2+\alpha||w||^2 Loss=(y−WTx)2+α∣∣w∣∣2
其中, α \alpha α是正则项系数,作用是防止w过大或者过小 - 激活函数改用ReLU
- 残差神经网络(跨层连接)
- LSTM:每一层的单元都可以选择遗忘和记忆的状态
模型
聚类
各个聚类方法对于二分类数据集的分类效果一览:知乎链接
层次聚类:初始把每个数据点当成一个类,然后选择距离最短的两个点合成一个类,直到合成所需要的N个类为止。
K-means聚类:初始化k个中心,不断改变k个中心位置,直到收敛
- elkan K-Means:使用算法使得不用计算每个样本点间的距离,但是不适用于特征是稀疏的情况
AffinityPropogation聚类:近邻传播算法,不需要指定聚类中心。
AP聚类
Bagging
Bagging (Boostrap Aggregating)
Bagging 能够减少泛化误差(具有较小的方差)
给定一个大小为 n n n 的训练集 D D D
Bagging 算法从中均匀、有放回地(即使用自助抽样法boostrap)选出 m m m 个大小为 n ′ n' n′ 的子集 D i D_i Di,作为新的训练集。
在这 m m m 个训练集上使用分类、回归等算法进行拟合,则可得到 m m m 个模型。
用这 m m m 个模型对新数据进行预测,再通过取平均值、取多数票等方法,即可得到Bagging的结果。
-
Boosting1、Boosting2
每轮训练采用全部的样本,每轮训练改变样本的权重,改变样本的权重的用处体现在权重大的样本对损失函数的影响较大。
每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
各个训练器只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
最终得到了数个分类器,这些分类器赋予权重后组合在一起,成为了一个强学习器,可减小偏差。 -
随机森林
适合于高维特征,基于Bagging,具有小方差,良好的泛化能力。
基于Bagging来选择样本,每个样本根据<n个特征,生成多颗决策树,最后投票决定结果。 -
LightGBM
官方文档
LightGBM是对传统的Boosting算法的改进
主要优点是适合大样本和高维度的训练场景。
LightGBM能够减少训练的时间。
主要运用了如下两种解决方法:- GOSS(Gradient-Based One-Side Sampling,基于梯度的单边采样):不是使用所有的样本点来计算梯度,而是对样本进行采样来计算梯度
- EFB(Exclusive Feature Bundling,互斥特征捆绑):不是使用所有特征来进行扫描获得最佳的切分点,而是将某些特征进行捆绑在一起来降低特征的维度,使寻找最佳切分点的消耗减少。
-
卷积神经网络(CNN)
卷积神经网络的简介卷积层(Convolution):使用卷积核提取特征,每一个卷积核会输出一个矩阵,每一个卷积核可以提取一个特征
池化层(Pooling):对卷积层输出的矩阵进行压缩
卷积层和池化层相当于特征工程(提取特征)
全连接层:对前述提取的特征进行加权,综合特征,通常用作输出分类结果
-
拉格朗日乘子法
目的:求极值
拉格朗日函数- 用 L L L表示的函数
拉格朗日乘子- λ \lambda λ
拉格朗日乘子法 -
正则化
对损失函数引入,正则项
L1范数 (Lasso回归)- 减少特征
L2范数(Ridge回归)- 防止过拟合
L1范数:也称叫“稀疏规则算子”(Lasso Regularization)。为什么能稀疏呢?关键原因在于它能实现特征的自动选择。一般来说,训练集中的某些特征和输出 yi 之间并没有多大关系。在训练时引入这些特征,当然能获得更小的训练误差,但其泛化能力比较差,即造成过拟合!L1范数的引入就是为了实现特征自动选择,它会将没有信息的特征对应的权重置为0。
L2范数:在回归里面中又称岭回归”(Ridge Regression),也有的叫法为“权值衰减”(Weight Decay)。同样是为了解决过拟合问题,但与 L1 范数不同的是L2是使得特征对应的权重尽量的小,接近于0(但不会等于0)。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。为什么呢?这里给出一个说法:参数越小,表示模型不会过分地学习训练集的某个特征,也即更不容易造成过拟合。
常见问题
-
防止过拟合的方法
为什么会出现过拟合? 因为数据有抽样误差,模型在学习过程中出现过拟合表示会受离群的点的影响
- 获取更多数据,越多的数据可以让模型自己学习
- 限制模型复杂度,防止模型变得复杂(比如,对于神经网络可以限制每层神经元的个数)
- 训练时间的设置,当模型训练到一定程度的时候(一定的迭代epoch次数),结束学习
- 对损失函数进行正则化(其实也是防止模型中的权重过于复杂)
- Bagging:使用不同模型训练不同段的训练数据,最后投票选择输出
- Boosting:使用不同的模型训练数据,最后加权输出
- Dropout
- 贝叶斯方法(不太懂)
- 给数据加噪声(不太懂)
- 集成学习等
-
其他聚类的方法
Pytorch的使用
1. Variable
PyTorch中的神经网络来自于autograd包,autograd包提供了Tensor所有操作的自动求导方法。
autograd.Variable这是这个包中最核心的类。可以将Variable理解为一个装有tensor的容器,它包装了一个Tensor,并且几乎支持所有的定义在其上的操作。一旦完成运算,便可以调用 .backward()来自动计算出所有的梯度。也就是说只有把tensor置于Variable中,才能在神经网络中实现反向传递、自动求导等运算。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)