机器学习(ML)深度学习(DL)基础知识记录(面试)

(2023.5.4 解决图片上传混乱问题)

一、基础知识

1.1 特征选择 & 特征抽取

image-20230503222501567

1.2 数据处理流程

image-20230503222528422

1.3 损失函数

评价模型的预测值和真实值不一样的程度,损失函数越小,通常模型的性能越好。

损失函数 和 目标函数 区别

分类:

  1. 经验风险损失函数 :指预测结果和实际结果的差别
  2. 结构风险损失函数 :经验风险损失函数 加上正则项

1.3.1 0-1 损失函数

1.3.2 对数损失函数

1.3.3 MAE / L1 loss

Mean Absolute Error:平均绝对误差、绝对值损失)

又称 曼哈顿距离,表示残差的绝对值之和。

1.3.4 MSE / L2 loss

(Mean Square Error:均方误差、平方值损失)

又被称为 欧氏距离,是一种常用的距离度量方法,通常用于度量数据点之间的相似度。

1.3.5 RMSE

(Root Mean Square Error:均方根误差)

1.3.6 Smooth L1

1.3.7 Hinge loss

用于 SVM

y y y 为目标值, f ( x ) f(x) f(x) 为预测值。

在样本被正确分类同时函数间隔大于1时,合页损失才会是0.否则损失就是1-y(wx+b)。

不仅需要分类正确,并且确信度足够高时,损失才为 0。

更专注于整体的误差,健壮性相对较高,对异常点、噪声不敏感,但它没太好的概率解释。

1.3.8 最小二乘法

image-20230504153756017

数学特性导致不适合作分类的损失函数

(求导可知,距离越远,下降越慢。)

1.3.9 MLE & LL & NLL

MLE

极大似然估计(Maximum likelihood estimation,MLE)

极大似然估计提供了一种给定观察数据来评估模型参数 的方法,即:“模型已定,参数未知 ”。通过若干次试验,观察其结果,利用试验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。

方程的 解只是一个估计值,只有在样本数趋于无限多的时候,它才会接近于真实值。

公式:

LL

对数似然(LL,log likelihood)

似然函数是多数相乘 的形式,计算容易造成下溢,不方便求导。通常对其求对数,不改变单调性,方便求极值点。使用 对数似然(log-likelihood),连乘就可以写成连加的形式:

NLL

负对数似然(NLL,negative log likelihood)

概率分布 P P P 取值为 [ 0 , 1 ] [0, 1] [0,1],取对数后,取值为 [ − ∞ , 0 ] [-\infty, 0] [,0];再取负变为 [ 0 , ∞ ] [0,\infty] [0,],如下图所示:

我们希望似然(MLE)越大越好,取完负数后(NLL)越小越好。

1.3.10 交叉熵 (cross-entropy)

交叉熵是信息论中的一个重要概念,主要用于度量两个概率分布间的差异性。

信息量

信息是用来 消除不确定性 的东西”,也就是说衡量信息量的大小就是看这个信息消除不确定性的程度。

信息量的大小与信息发生的概率成反比。

信息熵

也被称为熵,表示所有信息量的期望。

可表示为:(这里的 X X X 是一个离散型随机变量)

相对熵 ( KL 散度 )

用来 衡量两个 概率分布的相似性 的一个 (非对称性)度量指标。

常用 P ( x ) P(x) P(x) 来表示样本的真实分布 Q ( x ) Q(x) Q(x) 来表示模型所预测的分布。

KL散度越小,表示 P ( x ) P(x) P(x) Q ( x ) Q(x) Q(x) 的分布更加接近,即模型效果越好。

KL 具有

  1. 非对称性
  2. 非负性
  3. 不确定性
  4. 不准确性
交叉熵

D K L ( P ∣ ∣ Q ) D_{KL} (P || Q) DKL(P∣∣Q) 表示以 P P P 为基准的相对熵,展开后,后一项为 P P P 系统的熵(不变)。

总结

  1. 交叉熵 能 衡量同一个随机变量中的两个不同概率分布的差异程度。交叉熵的值越小,模型预测效果就越好。
  2. 交叉熵 常与 softmax 标配,softmax 使其多个分类的预测值和为1,再通过交叉熵来计算损失。
  3. 具有“ **误差大的时候,权重更新快;误差小的时候,权重更新慢 **”的良好性质。

***负对数似然和交叉熵有高度的(形式)相似性,但其本质(似然,熵)不同。***其实,在分类问题中,所使用的的交叉熵损失,本质就是负对数似然。

交叉熵函数的最小化 的本质就是 对数似然函数的最大化。

1.3.11 Focal Loss

解决难易样本不均衡的问题,注意有区别于正负样本不均衡的问题。难易样本分为四个类型:

易分样本虽然损失很低,但是数量太多,对模型的效果提升贡献很小模型应该重点关注那些难分样本,因此需要把置信度高的损失再降低一些

1.3.12 损失函数的具体应用

1.4 过拟合 & 解决方案

训练集的表现测试集的表现结论
不好不好欠拟合
不好过拟合
适当拟合

指模型在 训练集上表现很好,到了验证和测试阶段就很差,即模型的泛化能力很差。

简单的模型比复杂的泛化能力好

( 注意: Adam 是梯度下降 参数优化,不是用来解决过拟合的。)

1.4.1 正则化

原理:

损失函数 加上一些限制,规范他们在接下来的 循环迭代中,不要自我膨胀。

loss 中的 ***高次项导致了过拟合。***如果能让这些高次项的系数接近于0的话,就能更好拟合。

因此,修改 loss:

权重矩阵 W 就会被设置为接近于 0 的值,相当于消除了很多神经元的影响,减少作用参数。

L1 正则化

优势:稀疏化,作用更显著

随着海量数据处理的兴起,对于模型稀疏化的要求也随之出现。

L2 已不能满足稀疏化,它只使得模型的参数值趋近于0,而不是等于0。这样就无法丢掉模型里的任何一个特征。

L1 可以 使大部分模型参数的值等于0。这样一来,当模型训练好后,这些权值等于0的特征可以省去,从而达到稀疏化的目的,也节省了存储的空间,因为在计算时,值为0的特征都可以不用存储了。

L1 对于所有权重予以同样的惩罚,因此,较小的权重在被惩罚后,就会变成0,达到稀疏化,自带特征选择功能。

L2 正则化

优势:处处可导,方便计算

L2 对于绝对值较大的权重予以很重的惩罚,绝对值很小的权重予以很小的惩罚,当权重绝对值趋近于0时,基本不惩罚。

这个性质与L2的平方项有关系,即越大的数,其平方越大,越小的数,比如小于1的数,其平方反而越小。

L1 VS L2

L1 对于所有权重予以同样的惩罚。较小的权重在被惩罚后,就会变成0,达到稀疏化,自带特征选择功能。

L2 对于绝对值较大的权重予以很重的惩罚,绝对值很小的权重予以很小的惩罚。只能趋近于 0,无法等于 0。

L1 在确实需要稀疏化模型的场景下,才能发挥很好的作用并且效果远胜于 L2。

L2 适合无稀疏化要求,方便计算的场景。

1.4.2 Drop-out

  1. 每次训练时随机沉默 部分神经元,达到剪枝的目的。本质也是一种正则化(类比 L1 正则化)。
  2. 相当于训练大量子网络,预测时关闭 drop - out 使用全部神经元,等同于集成学习,增加泛化能力。
  3. 降低模型复杂度和各神经元之间的依赖程度,降低模型对某一特征的过度依赖,从而降低过拟合。

1.4.3 BN & LN

尽可能让原始数据变为独立同分布的数据,避免 (ICS)内部变量偏移

  1. 可以简化模型的训练,加快训练速度
  2. 提升模型的预测能力,提高模型性能

越来越偏的输入值的分布强行拉回到正态分布。这样让梯度变大,避免梯度消失问题产生学习收敛速度快,能大大加快训练速度。好的数据分布也可以让激活函数更好发挥作用,学习特征。

1.4.4 Early Stopping

当模型在 测试集的表现开始下降的时候,停止训练。

1.4.5 其它

降低模型复杂度 + 增加数据 + 数据增强 + 数据清洗

1.5 欠拟合 & 解决方案

指模型在训练集、验证集和测试集上均表现不佳 的情况。

  • 模型复杂度过低
  • 特征量过少
训练集的表现测试集的表现结论
不好不好欠拟合
不好过拟合
适当拟合
  1. 减少正则化;
  2. 下调 batch_size;
  3. 降低网络层数;
  4. 改变激活函数;
  5. 增加样本数量;
  6. 增加模型参数,提高模型复杂度;
  7. 增加循环次数;
  8. 查看是否是学习率过高导致模型无法收敛;

二、机器学习

2.2 回归 & 分类

  1. 分类 问题输出的是物体 所属的类别回归 问题输出的是 物体的值
  2. 分类 输出的值是 离散的回归 输出的值是 连续的
  3. 分类 为了 寻找决策面,对目标数据进行分类。回归 为了 寻找最优拟合,对目标值进行预测。

2.1 Logistic Regression

分类问题(预测值不连续)

逻辑回归 = 线性回归 + sigmoid 函数

(线性回归(回归问题) 即用直线 y = w x + b y = wx + b y=wx+b 拟合自变量和因变量的关系)

sigmoid

损失函数 常采用 交叉熵(最大似然), 与 sigmoid 搭配。

2.3 softmax Regression

多分类的逻辑回归

2.4 SVM

采用 Hinge Loss

找超平面来分割样本,鲁棒性强。

原则是是正例和反例之间的间隔最大

超平面到正样本最近点的距离和超平面到负样本最近点的距离是相等的

支持向量包含着重构分割超平面所需要的全部信息!

三宝:间隔,对偶,核技巧

2.4.1 间隔

Hard-Margin SVM

Soft-Margin SVM:加入容错率,保证大局上的正确性。(Hinge-loss)

2.4.2 对偶

原来的问题是一个凸优化问题 , 看到凸优化问题一般会想到, 利用拉格朗日乘子法, 将有约束的问题转换为无约束的问题, 在将无约束的原问题转化为对偶问题(注意这里面的KKT条件), 进而利用SMO(序列最小优化)来解决这个对偶问题。

将原始问题转化为对偶问题是求解带约束优化问题的一种方法,当然这不是唯一的方法,只不过转化为对偶问题后往往更容易求解,因而被广为应用。

为什么用对偶

  1. 降低复杂度 , 原问题需要考虑的是样本维度问题, 转化为对偶问题以后变成了考虑样本数量问题。
  2. 更加高效, 原问题是凸二次规划问题,转换为对偶问题更加高效。因为只需要求解alpha系数,而alpha系数只有支持向量才非0,其他全部为0.
  3. 方便引入核函数

2.4.3 核技巧

核函数的思想在于它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就是避免了直接在高维空间的复杂计算。核技巧有助于解决非线性SVM的问题。

常见的核函数有
线性核(Linear核)
多项式核 (Polynomial核)
高斯核(RBF核 / 径向基核)

核函数的选取方法
如果特征的数量大到和样本数量差不多,则选用LR或者线性核的SVM;
如果特征的数量小,样本的数量正常,则选用SVM+高斯核函数;
如果特征的数量小,而样本的数量很大,则需要手工添加一些特征从而变成第一种情况

2.4.4 优缺点

优点:

  • SVM可以解决小样本下的机器学习问题, 泛化能力强
  • SVM可以解决高维的特征
  • SVM+ Kernel可以解决非线性问题
  • SVM无需依赖所有样本, 只依赖支持向量

缺点:

  • SVM 对缺失值敏感
  • 如果特征维度远大于样本个数, SVM表现一般
  • SVM 在样本巨大且使用核函数时计算量很大

2.4.5 杂问

加大训练数据量一定能提高SVM准确率吗?

如果增加的样本点只是无效约束,并不会影响其最后的结果

与感知机的联系和优缺点比较

感知机的思想是, 误分类最小策略, 得到的分类平面有无数个。
SVM利用最大间隔的方的思想, 得到的分类平面只有一个, 且该平面是鲁棒的。

如何解决多分类问题、可以做回归吗,怎么做?
一对多法。训练时依次把某个类别的样本归为一类,其他剩余的样本归为另一类,这样k个类别的样本就构造出了k个SVM。分类时将未知样本分类为具有最大分类函数值的那类。

一对一法。其做法是在任意两类样本之间设计一个SVM,因此k个类别的样本就需要设计k(k-1)/2个SVM。当对一个未知样本进行分类时,最后得票最多的类别即为该未知样本的类别。

支持向量机(SVM)是否适合大规模数据?

SVM在大规模数据上没有独特优势

SVM在小样本训练集上能够得到比其它算法好很多的结果。支持向量机之所以成为目前最常用,效果最好的分类器之一,在于其优秀的泛化能力,这是是因为其本身的优化目标是结构化风险最小,而不是经验风险最小,因此,通过margin的概念,得到对数据分布的结构化描述,因此减低了对数据规模和数据分布的要求。

为什么SVM对缺失数据敏感?

这里说的缺失数据是指缺失某些特征数据,向量数据不完整。SVM没有处理缺失值的策略(决策树有)。而SVM希望样本在特征空间中线性可分,所以特征空间的好坏对SVM的性能很重要。缺失特征数据将影响训练结果的好坏。

三、深度学习

3.1 网络结构

3.1.1 前馈网络

也称为 MLP(多层感知机)

但 MLP 的叫法并不是十分合理,因为前馈神经网络其实是由多层的 Logistic 回归模型(连续的非线性函数)组成,而不是由多层的感知器(不连续的非线性函数)组成

不同的神经元属于不同的层,每一层的神经元可以接受到前一层的神经元信号,并产生信号输出到下一层。第0层叫做输入层,最后一层叫做输出层,中间的叫做隐藏层,整个网络中无反馈,信号从输入层到输出层单向传播,可用一个有用无环图表示。

image-20230504154941634

前馈网络可以看作一个函数,通过简单非线性函数的多次复合,实现输入空间到输出空间的复杂映射。这种网络结构简单,易于实现。

3.1.2 记忆网络 / 反馈网络

​ 记忆网络,也称为反馈网络,网络中的神经元不但可以接收其他神经元的信息,也可以接收自己的历史信息。

3.1.3 图神经网络 (GNN)

前馈网络和记忆网络的输入都可以表示为向量或向量序列。但实际应用中很多数据是图结构的数据,比如知识图谱、社交网络、分子(Molecular )网络等。前馈网络和记忆网络很难处理图结构的数据。图网络是定义在图结构数据上的神经网络。

3.2 激活函数

3.2.1 Sigmoid

饱和激活函数( x x x 趋近无穷时,导数趋近于 0,即梯度消失)

把输入变换为 0 和 1 之间的输出。

特别的,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1。

优点:

  1. 输出在 [ 0 , 1 ] [0, 1] [0,1] 之间,适合预测概率。
  2. 梯度平滑,没有跳跃。

缺点:

  1. 容易出现 梯度消失
  2. 输出不是 zero-centered
  3. 幂运算耗时

3.2.2 Tanh

饱和激活函数

相较于 sigmoid 解决了 zero-centered,但依然存在 梯度爆炸 和 幂运算问题。

3.2.3 ReLU

非饱和激活函数

优点:

  1. 正区间无梯度消失现象。
  2. 只存在线性关系,计算简单、速度快。
  3. 收敛速度远快于 sigmoid 和 tanh。

缺点:

  1. 输出不是 zero-centered。
  2. 输入为负时完全失效。

3.2.4 Leakly ReLU

非饱和激活函数

解决了 ReLU 输入为负时完全失效的情况。

3.2.5 ELU

ELU 的提出也解决了 ReLU 的问题。与 ReLU 相比,ELU 有负值,这会使激活的平均值接近零。

均值激活接近于零可以使学习更快,因为它们使梯度更接近自然梯度。

3.2.6 Softmax

用于多类分类问题 的激活函数。对于长度为 K的任意实向量,Softmax 可以将其压缩为长度为 K,值在(0,1)范 围内,并且向量中元素的总和为 1 的实向量。

image-20230504155233615

Softmax 与正常的 max 函数不同:max 函数仅输出最大值,但 Softmax 确保较小的值具有较小的概率,并且不会直接丢弃。我们可以认为它是 argmax 函数的概率版本或「soft」版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值