机器学习常见问题集锦

文章目录

前言

本文档用于记录机器学习(包括浅层机器学习与深度学习)在面试过程中常见的问题。

一、机器学习

1. 过拟合与欠拟合

优化与泛化

机器学习的根本问题在于优化与泛化之间的矛盾。优化(optimization)是指调节模型使其在训练数据上得到最佳性能的过程(对应机器学习中的学习),泛化(generalization)是指训练好的模型在前所未见的数据上的性能。

过拟合

  • 定义
    过拟合是指模型在训练集上的表现很好,但是在验证集和测试集上的表现很差,即模型的泛化能力很差。
  • 产生原因
    • 数据方面:
      1. 用于训练的样本数据太少,代表不了整体样本的分布。
      2. 训练数据中的噪声过多,模型学习到了数据中的噪声(如错误标签、异常值、无关特征等)。
      3. 发生了数据穿越,统计特征用到了未来的信息或者标签信息。
    • 模型方面:
      1. 模型对特征空间的不确定性区域过于自信,从而对这种概率数据过拟合。例如,对于分类任务,经常出现输入特征空间的某些区域多个类别同时相关的情况。
      2. 模型的复杂度过高,过分学习到了训练数据中的一些罕见特征,导致了虚假的相关性。
  • 解决方法
    1. 增加训练数据,选取具有代表性的数据(对数据进行采样)
    2. 将数据进行规范化处理,特征筛选,处理缺失值
    3. 对模型添加权重正则化,控制模型复杂程度;调整模型超参数,如学习率、批量大小
    4. 对于神经网络,添加 Dropout 层
    5. early stopping,减少迭代次数,减少树的深度
    6. 考虑模型融合

欠拟合

  • 定义
    欠拟合是指模型在训练集、验证集和测试集上的表现均较差的情况。
  • 产生原因
    1. 用于训练的样本数据太少,样本数据中包含有效信息的特征过少
    2. 模型的复杂度过低
  • 解决方法
    1. 增加训练数据,增加或衍生新的特征,以增大假设空间
    2. 使用更复杂的模型(如集成学习),或调整模型的容量(增加模型层数、增加树的深度)
    3. 减少正则化参数,正则化的目的是用来防止过拟合的,但是模型出现了欠拟合,则需要减少正则化参数

2. 正则化

3. 评估指标

KL散度

xie方差与皮尔逊

psi

特征筛选

降维

10. Bagging 与 Boosting 的区别与联系

Baggging 和Boosting都是模型融合的方法,可以将弱分类器融合之后形成一个强分类器,而且融合之后的效果会比最好的弱分类器更好。

1.1 Bagging介绍
用抽样的方式从原始样本中进行有放回的多次抽样(或者是抽特征),这种方法叫做Bootstraping,抽取k次每次抽取n个样本,这样就生成了k个样本容量为n的数据集。原始数据集中的样本可能是多次被抽到也可能是没有被抽到。
每次使用一个数据即选练得到一个模型,这样k个数据集就可以得到k个模型。(模型可以是根据问题来选择,回归或者分类模型都可以)这里就得到了k个弱分类器。
对新的数据使用所有的模型进行分类,然后采用voting的方式来确定结果。统计所有模型的计算结果,然后选出票数最高的那个作为结果。(如果是回归问题则以所有模型的均值作为最终结果。)
1.2 Boosting介绍
boosting与bagging不同的是,bagging是多个模型“并行”,voting决定结果;而boosting是多个模型串行,通过多个模型的结果相加得到最终的结果。

AdaBoosting方式每次使用的是全部的样本,每轮训练改变样本的权重。下一轮训练的目标是找到一个函数f 来拟合上一轮的残差。当残差足够小或者达到设置的最大迭代次数则停止。Boosting会减小在上一轮训练正确的样本的权重,增大错误样本的权重。(对的残差小,错的残差大)

梯度提升的Boosting方式是使用代价函数对上一轮训练出的模型函数f的偏导来拟合残差。

1.3 Bagging和Boosting的区别:

  1. 训练集

Bagging:每个训练集都是从原始训练集中有放回的选取出来的,每个训练集各不相同且相互独立。
Boosting:每一轮的训练集都是原始选练集,只是每次训练后会根据本轮的训练结果调整训练集中的各个样本的权重,调整完权重的训练集用于下一轮的训练。
2. 样本权重

Bagging:使用Bootstraping的方式均匀抽样
Boosting:根据每一轮的训练不断调整权值,分类错误的样本拥有更高的权值。
3)弱分类器权重

Bagging:所有弱分类器权重相同,使用voting的方式(或均值)决定最终结果
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
4)并行计算

Bagging:各个预测函数可以并行生成,因为数据集相互独立,每个模型之间也独立,没有序列关系。
Boosting:各个预测函数只能顺序生成,因为下一个模型的产生依赖于之前模型的计算结果。

10. 线性回归

定义

线性回归是利用线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个被称为回归系数的模型参数的线性组合。只有一个自变量的情况是简单回归,大于一个自变量的是多元回归。

线性回归方程的公式表达: y ˆ = θ 0 + θ 1 x 1 + θ 2 x 2 + . . . + + θ n x n = θ T X \^{y}=\theta_{0}+\theta_{1}x_{1}+\theta_{2}x_{2}+...++\theta_{n}x_{n}=\theta^{T}X yˆ=θ0+θ1x1+θ2x2+...++θnxn=θTX

线性回归的五个基本假设:

  1. 线性性和可加性
    假设因变量为Y,自变量为X1、X2,则回归分析的默认假设为 Y = a 1 X 1 + a 2 X 2 + b + ϵ Y=a_{1}X_{1}+a_{2}X_{2}+b+\epsilon Y=a1X1+a2X2+b+ϵ
    线性性:X1每变动一个单位,Y相应变动 a 1 a_{1} a1 个单位,与X1的绝对数值大小无关。
    可加性:X1对Y的影响是独立于其他自变量(如X2)的。

    若事实上变量之间的关系不满足线性性(如含有平方项),或不满足可加性(如含有X1⋅X2项),则模型将无法很好的描述变量之间的关系,极有可能导致很大的泛化误差。

  2. 自变量之间相互独立
    若不满足这一特性,我们称模型具有多重共线性性(Multicollinearity)。

    如果本应相互独立的自变量们出现了一定程度(甚至高度)的相关性,那我们就很难得知自变量与因变量之间真正的关系了。当多重共线性性出现的时候,变量之间的联动关系会导致我们测得的标准差偏大,置信区间变宽。
    采用岭回归,Lasso回归或弹性网络(ElasticNet)可以一定程度上减少方差,解决多重共线性性问题。

  3. 误差项之间相互独立
    若不满足这一特性,我们称模型具有自相关性(Autocorrelation)。

    自相关性经常发生于时间序列数据集上,后项会受到前项的影响。当自相关性发生的时候,我们测得的标准差往往会偏小,进而会导致置信区间变窄。

  4. 误差项的方差应该是常数
    若满足这一特性,我们称模型具有同方差性(Homoskedasticity),若不满足,则为异方差性(Heteroskedasticity)。

    异方差性的出现意味着误差项的方差不恒定,这常常出现在有异常值(Outlier)的数据集上,如果使用标准的回归模型,这些异常值的重要性往往被高估。在这种情况下,标准差和置信区间不一定会变大还是变小。

  5. 误差项应该呈高斯分布
    如果误差项不呈正态分布,意味着置信区间会变得很不稳定,我们往往需要重点关注一些异常的点(误差较大但出现频率较高),来得到更好的模型。

线性回归的损失函数

预测值与真实值之间的差异称为误差,用 ϵ i \epsilon_{i} ϵi 表 示,则 y i = θ i x i + ϵ i y_{i}=\theta_{i}x_{i}+\epsilon_{i} yi=θixi+ϵi

线性回归假设:每个误差项是符合均值为0、方差为 σ \sigma σ 的高斯分布,且误差项之间相互独立,即具有独立同分布的特点。那么,每个误差项的分布满足: P ( ϵ i ) = 1 2 π σ e x p ( − ( ϵ i ) 2 2 σ 2 ) P(\epsilon_{i})=\frac{1}{\sqrt{2π}\sigma}exp(-\frac{(\epsilon_{i})^2}{2\sigma^2}) P(ϵi)=2π σ1exp(2σ2(ϵi)2)

通过求解线性回归模型的回归系数 θ \theta θ 值,目标是让误差最小,也就是 P ( ϵ i ) P(\epsilon_{i}) P(ϵi) 最大,考虑所有的误差项,可以得到似然函数 L ( θ ) = ∏ i = 1 m 1 2 π σ e x p ( − ( y i − θ i x i ) 2 2 σ 2 ) L(\theta)=\prod_{i=1}^{m}\frac{1}{\sqrt{2π}\sigma}exp(-\frac{(y_{i}-\theta_{i}x_{i})^2}{2\sigma^2}) L(θ)=i=1m2π σ1exp(2σ2(yiθixi)2),目标是 m a x ( L ( θ ) ) max(L(\theta)) max(L(θ))

利用对数函数来简化上述似然函数: l o g ( L ( θ ) ) = ∑ i = 1 m l o g ( 1 2 π σ e x p ( − ( y i − θ i x i ) 2 2 σ 2 ) ) = m l o g ( 1 2 π σ ) − 1 2 σ 2 ∑ i = 1 m ( y i − θ i x i ) 2 log(L(\theta))=\sum_{i=1}^{m}log(\frac{1}{\sqrt{2π}\sigma}exp(-\frac{(y_{i}-\theta_{i}x_{i})^2}{2\sigma^2}))=mlog(\frac{1}{\sqrt{2π}\sigma})-\frac{1}{2\sigma^2}\sum_{i=1}^{m}(y_{i}-\theta_{i}x_{i})^2 log(L(θ))=i=1mlog(2π σ1exp(2σ2(yiθixi)2))=mlog(2π σ1)2σ21i=1m(yiθixi)2

新的目标是最大化对数似然函数 l o g ( L ( θ ) ) log(L(\theta)) log(L(θ)),不考虑该函数的常数值,目标就是最小化 J ( θ ) = 1 2 ∑ i = 1 m ( y i − θ i x i ) 2 J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(y_{i}-\theta_{i}x_{i})^2 J(θ)=21i=1m(yiθixi)2

这就是线性回归的损失函数,考虑样本个数: J ( θ ) = 1 2 m ∑ i = 1 m ( y i − θ i x i ) 2 J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(y_{i}-\theta_{i}x_{i})^2 J(θ)=2m1i=1m(yiθixi)2

以上就是最小二乘法的推导过程,通过寻找误差的最小二次方来求解模型的权重系数。

损失函数求解

  • 目标函数: J ( θ ) = 1 2 ∑ i = 1 m ( y i − θ i x i ) 2 = 1 2 ( X θ − Y ) T ( X θ − Y ) J(\theta)=\frac{1}{2}\sum_{i=1}^{m}(y_{i}-\theta_{i}x_{i})^2=\frac{1}{2}(X\theta-Y)^{T}(X\theta-Y) J(θ)=21i=1m(yiθixi)2=21(Y)T(Y)
  • 目标: m i n ( J ( θ ) ) min(J(\theta)) min(J(θ))
  • 对目标函数求偏导: ∂ J ( θ ) ∂ θ = ∂ 1 2 ( X θ − Y ) T ( X θ − Y ) ∂ θ = X T X θ − X T Y \frac{\partial J(\theta)}{\partial \theta}=\frac{\partial \frac{1}{2}(X\theta-Y)^{T}(X\theta-Y)}{\partial \theta}=X^{T}X\theta-X^{T}Y θJ(θ)=θ21(Y)T(Y)=XTXTY
    ∂ J ( θ ) ∂ θ = 0 \frac{\partial J(\theta)}{\partial \theta}=0 θJ(θ)=0 时,就是 J ( θ ) J(\theta) J(θ)的最小值点此时 θ \theta θ 的解为: θ = ( X T X ) − 1 X T Y \theta=(X^{T}X)^{-1}X^{T}Y θ=(XTX)1XTY
  • 迭代方向: − ∂ J ( θ ) ∂ θ i = 1 m ∑ i = 1 m ( y i − θ i x i ) x i -\frac{\partial J(\theta)}{\partial \theta _{i}}=\frac{1}{m}\sum_{i=1}^{m}(y_{i}-\theta_{i}x_{i})x_{i} θiJ(θ)=m1i=1m(yiθixi)xi
    含义:对于每个实例,都会计算预测误差并将其乘以第 i 个特征值,然后计算所有训练实例的平均值。

线性回归为什么使用最小二乘法求解

  • 从机器学习的角度出发,我们希望线性回归的预测结果与真实值越接近越好,这种抽象的目标可以很好的用最小二乘法(或MSE)来表达。
  • 从统计的角度出发,线性回归的基本假设之一是“残差项符合正态分布”,从最小化残差的角度出发,最后可以推导得到最小二乘法的公式。

评估方法

最常用的评估指标为 R 2 R^{2} R2 R 2 R^{2} R2 越接近1,残差平方和越接近0,模型拟合得越好。 R 2 R^{2} R2 公式为: R 2 = 1 − ∑ i = 1 m ( y ^ i − y i ) 2 ∑ i = 1 m ( y i − y ‾ ) 2 R^{2}=1-\frac{\sum_{i=1}^{m}(\hat{y}_{i}-y_i)^2}{\sum_{i=1}^{m}({y}_{i}-\overline{y})^2} R2=1i=1m(yiy)2i=1m(y^iyi)2,其中,分子被称为残差平方和,分母被称为类似方差项。

在现有模型上加入新的特征变量,得到的新 R 2 R^{2} R2 值会变大,更多的特征通常会有更高的准确率,因为最差的情况就是让新增的变量权重为0,得到与原先一样的模型。新增的特征变量是否显著,要根据变量对应的权重系数值判断,与 R 2 R^{2} R2 值无关。

线性回归模型怎样处理非线性问题

  • 连续特征离散化
  • 特征衍生
  • 特征交叉
  • 特征分桶
  • gbdt交叉特征提取

线性回归和逻辑回模型进行特征离散化的好处

  1. 提高模型训练速度:稀疏向量内积乘法运算很快,计算结果方便存储
  2. 鲁棒性提高:离散后的特征对异常数据具有很强的鲁棒性,对特征的轻微改变也不敏感,结果不会受到很大的影响
  3. 引入了非线性:离散化每个变量具有单独的权重,相当于为模型引入了非线性,提升模型性能
  4. 方便交叉与特征组合
  5. 离散特征的增加和减少都很容易,易于模型的快速迭代
  6. 简化了逻辑回归模型,降低模型过拟合风险

线性回归的优缺点

  • 优点
    1. 原理简单,实现容易,建模迅速,对于小数据量、简单的关系很有效。
    2. 能解决回归问题,是许多强大的非线性模型的基础。
    3. 模型本身十分容易理解,结果具有很好的可解释性,回归系数值能够直接看出特征的重要性。
  • 缺点
    1. 对非线性数据,或者特征间具有强相关性的数据难以建模;
    2. 难以处理高度复杂的数据,模型容易欠拟合。

线性回归与逻辑回归的区别

  1. 样本输出:线性回归的样本输出都是连续值,范围为 y ∈ ( − ∞ , + ∞ ) y\in (-\infty ,+\infty ) y(,+);而逻辑回归中,范围为 y ∈ ( 0 , 1 ) y\in (0,1) y(0,1),只能取0和1。
  2. 拟合函数:线性回归的拟合函数,是对 f(x) 的输出变量 y 的拟合;而逻辑回归的拟合函数,是对为正类样本的概率的拟合。
  3. 目的:在线性回归中, θ T x \theta ^{T}x θTx 为预测值的拟合函数;而在逻辑回归中, θ T x \theta ^{T}x θTx 为决策边界。
  4. 参数计算方式:在线性回归中,使用最小二乘法来计算模型的参数值;而在逻辑回归中,使用极大似然估计来计算模型的参数值。
区别项线性回归逻辑回归
目的回归分类
输出范围 ( − ∞ , + ∞ ) (-\infty ,+\infty ) (,+)(0,1)
拟合函数输出值拟合概率拟合
参数计算方式最小二乘法极大似然估计

线性回归要求因变量服从正态分布吗

线性回归的基本假设之一是残差服从正态分布,即因变量服从正态分布。但实际上难以达到,因变量服从正态分布时模型的拟合效果更好。

11. 逻辑回归

定义

逻辑回归假设数据服从伯努利分布,通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。

上述定义包含了5个关键点:

  1. 逻辑回归的假设
  2. 逻辑回归的损失函数
  3. 逻辑回归的求解方法
  4. 逻辑回归的目的
  5. 逻辑回归如何分类

逻辑回归的假设

  • 假设1:数据服从伯努利分布
    伯努利分布:是一个离散型概率分布,若成功,则随机变量取值1;若失败,随机变量取值为0。成功概率记为 p,失败为 q = 1-p。其公式为如下:
    在这里插入图片描述
    在逻辑回归中,既然假设了数据分布服从伯努利分布,那么就存在成功和失败,对应到二分类问题就是正类和负类,样本的正类概率为p,负类概率为 q = 1- p。具体我们写成这样的形式: p = h θ ( x ; θ ) , q = 1 − h θ ( x ; θ ) p=h_{\theta}(x;\theta), q=1-h_{\theta}(x;\theta) p=hθ(x;θ),q=1hθ(x;θ)

  • 假设2:正类概率由sigmoid函数计算
    预测样本为正类的概率: p ( y = 1 ∣ x ; θ ) = h θ ( x ; θ ) = 1 1 + e − θ T x p(y=1|x;\theta)=h_{\theta}(x;\theta)=\frac{1}{1+e^{-\theta ^{T}x}} p(y=1∣x;θ)=hθ(x;θ)=1+eθTx1
    预测样本为负类的概率: p ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ; θ ) = 1 1 + e θ T x p(y=0|x;\theta)=1-h_{\theta}(x;\theta)=\frac{1}{1+e^{\theta ^{T}x}} p(y=0∣x;θ)=1hθ(x;θ)=1+eθTx1

    合并上述公式,预测样本的概率: y ˆ = p = p ( y = 1 ∣ x ; θ ) y ( 1 − p ( y = 1 ∣ x ; θ ) ) 1 − y \^{y}=p=p(y=1|x;\theta)^{y}(1-p(y=1|x;\theta))^{1-y} yˆ=p=p(y=1∣x;θ)y(1p(y=1∣x;θ))1y

逻辑回归的损失函数

逻辑回归的损失函数是它的极大似然函数。

极大似然估计,是指利用已知的样本结果信息,反推最有可能(最大概率)导致这些样本结果出现的模型参数值(模型已定,参数未知)。

逻辑回归的模型已定,即上述用来预测的公式: y ˆ = 1 1 + e − θ T x y ( 1 − 1 1 + e − θ T x ) 1 − y \^{y}=\frac{1}{1+e^{-\theta ^{T}x}}^{y}(1-\frac{1}{1+e^{-\theta ^{T}x}})^{1-y} yˆ=1+eθTx1y(11+eθTx1)1y
参数就是上式里的 θ \theta θ,样本结果信息就是上式里的x、y(即样本特征和标签),已知信息就是在特征取这些值的情况下,它应该属于对应的y类(正类或负类)。

对于整个训练集,我们期望所有样本的概率都达到最大,也就是最大化我们的目标函数,本身是个联合概率,但是假设每个样本独立,那所有样本的概率就可以写成: O b j e c t = ∏ i = 1 N 1 1 + e − θ T x i y i ( 1 − 1 1 + e − θ T x i ) 1 − y i Object=\prod_{i=1}^{N}\frac{1}{1+e^{-\theta ^{T}x_{i}}}^{y_{i}}(1-\frac{1}{1+e^{-\theta ^{T}x_{i}}})^{1-y_{i}} Object=i=1N1+eθTxi1yi(11+eθTxi1)1yi

我们需要通过求导来最大化上述目标函数,但是在求导之前需要先简化上述目标函数:

  • 取对数,将连乘变为连加: l o g ( O b j ) = ∑ i = 1 N [ y i l o g ( 1 1 + e − θ T x i ) + ( 1 − y i ) l o g ( 1 1 + e θ T x i ) ] = ∑ i = 1 N [ y i l o g ( p i ) + ( 1 − y i ) l o g ( 1 − p i ) ] log(Obj)=\sum_{i=1}^{N}[y_{i}log(\frac{1}{1+e^{-\theta ^{T}x_{i}}})+(1-y_{i})log(\frac{1}{1+e^{\theta ^{T}x_{i}}})]=\sum_{i=1}^{N}[y_{i}log(p_{i})+(1-y_{i})log(1-p_{i})] log(Obj)=i=1N[yilog(1+eθTxi1)+(1yi)log(1+eθTxi1)]=i=1N[yilog(pi)+(1yi)log(1pi)]
  • 一般要最小化损失函数,所以添加负号,考虑到多个样本,所以需要取平均: l o s s = J ( θ ) = − 1 m ∑ i = 1 N [ y i l o g ( p i ) + ( 1 − y i ) l o g ( 1 − p i ) ] loss=J(\theta)=-\frac{1}{m}\sum_{i=1}^{N}[y_{i}log(p_{i})+(1-y_{i})log(1-p_{i})] loss=J(θ)=m1i=1N[yilog(pi)+(1yi)log(1pi)]
    这就是逻辑回归的成本函数——对数损失函数
  • 对数损失函数的偏导数: ∂ J ( θ ) ∂ θ j = 1 m ∑ i = 1 m ( σ ( θ T x ( i ) ) − y ( i ) ) x j i = 1 m ∑ i = 1 m ( p ˆ ( i ) − y ( i ) ) x j i \frac{\partial J(\theta)}{\partial\theta_j} = \frac{1}{m}\sum_{i=1}^{m}(\sigma(\theta^{T}x^{(i)})-y^{(i)})x_{j}^{i}=\frac{1}{m}\sum_{i=1}^{m}(\^{p}^{(i)}-y^{(i)})x_{j}^{i} θjJ(θ)=m1i=1m(σ(θTx(i))y(i))xji=m1i=1m(pˆ(i)y(i))xji
    逻辑回归成本函数对第 j 个参数的偏导数为:对于每个实例,都会计算预测误差并将其乘以第 j 个特征值,然后计算所有训练实例的平均值。

逻辑回归的求解方法

一般使用梯度下降法来求解。

逻辑回归的目的

将数据二分类:设定一个阈值,判断正类概率是否大于该阈值,大于则判定为正类,反之则判断为负类,一般阈值设为0.5。

逻辑回归为什么用极大似然函数作为损失函数

一般和平方损失函数(最小二乘法)拿来比较,因为线性回归用的就是平方损失函数。原因如下:

  • 平方损失函数结合sigmoid函数将会得到一个非凸的函数,不易求解,会得到局部解;用对数似然函数得到的是高阶连续可导凸函数,可以得到最优解。
  • 对数损失函数更新起来很快,因为只和x、y有关,和sigmoid本身的梯度无关。

逻辑回归在训练过程中,如果有很多的特征高度相关或者某单一特征重复了100遍,会造成怎样的影响

  • 结论
    在损失函数最终收敛的情况下,即使有很多特征高度相关也不会影响分类器的效果。

    但是,对特征本身来说,模型训练结束后,数据还是这么多,但是这个特征本身重复了100遍,实质上是将原来的特征分成了100份,每一特征的权重值都是未重复前原特征权重值的百分之一。

为什么我们还是会在训练的过程当中将高度相关的特征去掉

  1. 去掉高度相关的特征会让模型的可解释性更好
  2. 可以大大提高模型的训练速度。
    如果模型当中有很多特征高度相关的话,就算损失函数本身收敛了,但实际上参数是没有收敛的,这样会拉低训练的速度。其次是特征多了,本身就会增大训练的时间。

逻辑回归的优缺点

  • 优点
    1. 形式简单,模型的可解释性非常好。
    2. 训练速度较快,资源占用小,尤其是内存,因为只需要存储各个维度的特征值。
    3. 参数值的大小可以直接反映出特征的重要性:如果某个特征的权重值比较高,那么该特征对最终结果的影响会比较大。
    4. 方便输出结果调整。逻辑回归可以很方便的得到最后的分类结果,因为输出的是每个样本的概率分数,我们可以很容易的对这些概率值进行阈值划分。
  • 缺点
    1. 由于模型形式较为简单,所以性能可能较差,很难去拟合数据的真实分布。
    2. 在样本类别不平衡的数据上表现较差。因为模型是使用最大似然估计来作为损失函数的,得到的结果是所有样本被预测为正确的最大概率。
    3. 处理非线性数据较麻烦。逻辑回归在不引入其他方法的情况下,只能处理线性可分的二分类问题 。
    4. 逻辑回归本身无法筛选特征。

二元逻辑回归可以进行多分类吗

(假设不考虑二元逻辑回归)一般将二分类问题推广到多分类的方式有三种:一对一、一对多、多对多。

  • 一对一
    将 n 个类别两两配对,产生 C n 2 C_{n}^{2} Cn2 个二分类任务,测试阶段新样本同时送入所有的分类器,最终结果通过投票产生。
  • 一对多
    每次将一个类作为正类,其余所有类作为反类,训练 n 个分类器。
    测试时如果只有一个分类器预测为正类,则对应类别为最终结果;如果有多个,则一般选择置信度最大的类别为最终结果。从分类器角度,一对一更多,但是每次都只用了2个类别,因此当类别数很多的时候,一对多的开销通常更小。
  • 多对多
    若干个类作为正类,若干个类作为反类。注意正反类必须特殊的设计,确保最终能够识别出唯一类别。

Softmax回归(多元逻辑回归)

二元逻辑回归模型经过推广,可以直接支持多个类别,而不需要训练并组合多个二元分类器,这就是Softmax回归,或者叫作多元逻辑回归。

  • 基本原理

    1. 给定一个实例x,Softmax 回归模型首先计算出每个类k的分数 s k ( x ) = x T θ ( k ) s_{k}(x)=x^{T}\theta^{(k)} sk(x)=xTθ(k)。请注意,每个类都有自己的特定参数向量 θ ( k ) \theta^{(k)} θ(k)
    2. 然后,对这些分数应用 Softmax 函数,估算出该实例属于每个类的概率。
      Softmax 函数: p ˆ k = σ ( s ( x ) ) = e x p ( s k ( x ) ) ∑ j = 1 K e x p ( s j ( x ) ) \^{p}_{k}=\sigma(s(x))=\frac{exp(s_{k}(x))}{\sum_{j=1}^{K}exp(s_{j}(x))} pˆk=σ(s(x))=j=1Kexp(sj(x))exp(sk(x))
  • 交叉熵损失函数
    Softmax回归的损失函数为交叉熵损失函数,其经常被用于衡量一组估算出的类概率跟目标类的匹配程度: l o s s = − 1 m ∑ i = 1 m ∑ k = 1 K y k ( i ) l o g ( p ˆ k ( i ) ) loss=-\frac{1}{m}\sum_{i=1}^{m}\sum_{k=1}^{K}y_{k}^{(i)}log(\^{p}_{k}^{(i)}) loss=m1i=1mk=1Kyk(i)log(pˆk(i))

    类k的交叉熵梯度向量为: 1 m ∑ i = 1 m ( p ˆ k ( i ) − y k ( i ) ) x ( i ) \frac{1}{m}\sum_{i=1}^{m}(\^{p}_{k}^{(i)}-y_{k}^{(i)})x^{(i)} m1i=1m(pˆk(i)yk(i))x(i)

12. SVM

基本原理

SVM(Support Vector Machine,支持向量机)为一个二分类模型,其目标是寻找一个最优的分离超平面,在空间中将两类数据分离开来,并且使得这个超平面到最近的样本点的间隔最大,这些样本点称为支持向量。

分割策略

  • 当训练样本为线性可分时,通过硬间隔最大化学习线性分类器进行处理,即线性可分SVM。
  • 当训练样本为近似线性可分时,可以引入松弛向量,通过软间隔最大化来学习线性分类器,即线性SVM。
  • 当训练样本为线性不可分时,可将低维数据映射到高维空间中,再通过核函数和软间隔最大化学习非线性SVM。

为什么使用软间隔 / 为什么引入松弛变量

在解决样本的分类问题时,通常假定在特征空间中总是存在一个超平面使得样本线性可分,但在实际任务中这一点很难保证,因为数据中通常存在噪声,一味追求线性可分的模型会导致过拟合。
为了防止过拟合,需要降低对样本数据的质量要求,即允许少量的样本分类错误,而不是像硬间隔这样不允许任何的错误存在。出于这种考虑,我们引入了松弛变量。

为什么要将求解 SVM 的原始问题转换为其对偶问题

  1. 对偶问题往往更易求解。
    当我们寻找最优目标时,约束的存在虽然减小了需要搜寻的范围,但是却使问题变得更加复杂。为了使问题变得易于处理,我们的方法是把目标函数和约束全部融入一个新的函数,即拉格朗日函数,再通过这个函数来寻找最优点。
  2. 可以自然引入核函数,降低计算的复杂性,进而推广到非线性分类问题。

什么是核函数 / 为什么引入核函数

  • 定义
    核函数就是特征映射后的内积(等于它们在原始样本空间中通过核函数计算的结果)。
  • 引入原因
    1. 当样本在原始空间中线性不可分时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
    2. 引入这样的映射后,通过对偶问题来求解,无需求解真正的映射函数,只需要知道其核函数,这使得求解难度大大降低。

SVM 核函数之间的区别

一般选择线性核和高斯核,也就是线性核与 RBF 核。

线性核:主要用于线性可分的情形,参数少,速度快,对于一般数据,分类效果较为理想,尤其适用于训练集非常大或者特征非常多的时候。

RBF 核:主要用于线性不可分的情形,参数多,分类结果非常依赖于参数。

SVM 如何防止过拟合

  • 增加数据量
  • 特征降维
  • 引入松弛变量

SVM如何处理多分类问题

  • 一对多
    每次将一个类型作为正例,其他的作为反例,训练出k个分类器,当有一个新的样本输入时,用这k个分类器来测试,哪个分类器的概率高,那么这个样本就属于哪一类。;
  • 一对一
    任意两个类训练出一个分类器,如果有k类,一共训练出 C k 2 C_{k}^2 Ck2个分类器,这样当有一个新样本输入时,用这 C k 2 C_{k}^2 Ck2个分类器来测试,每当被判定属于某一类的时候,该类就加一,最后票数最多的类别被认定为该样本的类。

为什么 SVM 对缺失值敏感

  • SVM没有处理缺失值的策略;
  • 缺失值可能影响支持向量的分布,而 SVM 的效果和支持向量有关。

SVM的优缺点

  • 优点
    1. SVM是一个凸优化问题,所以求得的解一定是全局最优而不是局部最优;
    2. 不仅可以解决线性问题,还可以通过引入核函数解决非线性问题;
    3. 可以解决高维问题,避免维度灾难;
    4. 仅依赖一部分支持向量,不依赖于所有数据。
  • 缺点
    1. 适合中小型数据集的分类,不适用于超大数据集;
    2. 对特征的缩放非常敏感;
    3. 对异常值&缺失值异常敏感;
    4. 对核函数的依赖性较高,如果核函数选择不准确会对结果产生影响。

13. 决策树

基本原理

决策树是一种树结构,从根节点出发,每个分支都将训练数据划分成了互不相交的子集。分支的划分可以以单个特征为依据,也可以以特征的线性组合为依据。决策树可以解决回归和分类问题,在预测过程中,一个测试数据会依据已经训练好的决策树到达某一叶子节点,该叶子节点即为回归或分类问题的预测结果。

从概率论的角度理解,决策树是定义在特征空间和类空间上的条件概率分布。每个父节点可以看作子树的先验分布,子树则为父节点在当前特征划分下的后验分布。

决策树过拟合的原因及解决办法

  • 原因
    1. 在决策树构建的过程中,对决策树的生长没有进行合理的限制(剪枝);
    2. 样本中有一些噪声数据,没有对噪声数据进行有效地剔除。
  • 解决办法
    1. 选择合理的参数进行剪枝,剪枝可以分为预剪枝和后剪枝;
    2. 利用 K-folds 交叉验证,将训练集分为K份,每次使用 K-1 份作为训练数据集,另外一份作为验证集;
    3. 进行特征筛选,计算每一特征与目标值的相关性,将相关性较小的变量剔除

决策树剪枝

  • 为什么要剪枝
    1. 剪枝是防止决策树过拟合的方法。
    2. 一棵完全生长的决策树很可能失去泛化能力,因此需要剪枝。
  • 剪枝的策略
    剪枝分为预剪枝和后剪枝两种,预剪枝是在构建决策树时抑制它的生长,后剪枝是决策树生长完全后再对叶子节点进行修剪。
  • 预剪枝方法
    1. 设置决策树的最大深度或最大节点数,达到这个值即停止生长
    2. 对每个叶子节点的样本数设置最小值,生长时叶子节点样本数不能小于这个值
    3. 设置节点分裂的最小增益,低于该阈值即停止分裂
  • 后剪枝方法
    1. 错误率降低剪枝(Reduced-Error Pruning)
      错误率降低剪枝的方法比较直观,从下至上遍历所有非叶子节点的子树,每次把子树剪枝(所有数据归到该节点,将数据中最多的类设为结果),与之前的树在验证集上的准确率进行比较,如果有提高,则剪枝,否则不剪,直到所有非叶子节点被遍历完。
    2. 悲观错误剪枝(Pessimistic Error Pruning)
    3. 代价复杂度剪枝(Cost-Complexity Pruning)
  • 预剪枝和后剪枝比较
    1. 时间成本方面
      预剪枝在训练过程中即进行剪枝,后剪枝要在决策树完全生长后自底向上逐一考察。显然,后剪枝训练时间更长。预剪枝更适合解决大规模问题。
    2. 剪枝效果
      预剪枝的常用方法本质上是基于贪心的思想,但贪心方法却可能导致欠拟合;后剪枝的欠拟合风险很小,泛化性能更高。
    3. 参数设定
      预剪枝的有些方法使用了阈值,如何设置一个合理的阈值也是一项挑战。

决策树是否需要进行特征归一化处理

决策树属于概率模型,这类模型不关心变量的值,而是关心变量的分布和变量之间的条件概率。因此,不需要进行特征归一化,数值缩放并不会影响分裂点的位置。

决策树分支算法

算法节点划分方法树的类型
CART{分类: 基尼不纯度}二叉树
CART{回归: 平方误差}二叉树
ID3{分类: 信息增益}多叉树
C4.5{分类: 信息增益比}多叉树
  • CART 算法
    (i) CART(Classification and Regression Tree,分类和回归树)算法的工作原理是:

    1. 首先通过搜寻找能够产生最纯子集的单个特征k及其对应阈值 t k t_{k} tk,将训练集分为两个子集。
    2. 之后使用相同的逻辑将子集进行不断分割,直到达到设定的最大深度或者找不到可以减少不纯度的分割,它将停止递归。

    (ii) 算法试图最小化的成本函数为:

    1. 分类:左右子集的实例数占比*gini不纯度加和
      J ( k , t k ) = m l e f t m ∗ G l e f t + m r i g h t m ∗ G r i g h t J(k, t_{k}) = \frac{m_{left}}{m}*G_{left}+\frac{m_{right}}{m}*G_{right} J(k,tk)=mmleftGleft+mmrightGright
      其中,基尼不纯度的计算公式为: G i = 1 − ∑ k = 1 n p i , k 2 G_{i}=1-\sum_{k=1}^{n}p_{i,k}^2 Gi=1k=1npi,k2 p i , k p_{i,k} pi,k是第i个节点中训练实例之间的k类实例的比率。

    2. 回归:左右子集的实例数占比*均方误差求和
      J ( k , t k ) = m l e f t m ∗ M S E l e f t + m r i g h t m ∗ M S E r i g h t J(k, t_{k}) = \frac{m_{left}}{m}*MSE_{left}+\frac{m_{right}}{m}*MSE_{right} J(k,tk)=mmleftMSEleft+mmrightMSEright
      其中, M S E n o d e = ∑ i ∈ n o d e ( y n o d e ′ − y ( i ) ) 2 MSE_{node}=\sum_{i\in node}(y_{node}^{'}-y^{(i)})^2 MSEnode=inode(ynodey(i))2 y n o d e ′ = ∑ i ∈ n o d e y ( i ) m n o d e y_{node}^{'}=\frac{\sum_{i\in node}y^{(i)}}{m_{node}} ynode=mnodeinodey(i)

    CART默认使用基尼指标来测量不纯度,但是也可以选择熵来作为不纯度的测量方式:如果数据集中仅包含一个类别的实例,其熵为零。熵衡量的是一条信息的平均信息内容:如果所有的信息都相同,则熵为零。熵的计算公式为: E n t i = − ∑ k = 1 n p i , k l o g 2 p i , k Ent_{i}=-\sum_{k=1}^{n}p_{i,k}log_{2}p_{i,k} Enti=k=1npi,klog2pi,k,其中 p i , k ≠ 0 p_{i,k}\neq0 pi,k=0

    区别:基尼不纯度倾向于从树枝中分裂出最常见的类别,而熵则倾向于训练出更平衡的树。

  • 信息增益
    信息增益用来描述一次划分之后纯度的提升有多大。用不同的属性划分样本,会得到不同的信息增益。在 ID3 决策树算法中,取能使信息增益最大,即划分后纯度提升最大的属性作为当前决策树的划分属性。

    其计算公式为: G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D, a) = Ent(D)-\sum_{v=1}^{V}\frac{|D^{v}|}{|D|}Ent(D^{v}) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)

    公式的前一项为未划分时的信息增益,后一项为每个子树的信息增益乘权重的和,权重的意义是使样本数多的子节点更重要。

  • 信息增益比/率
    使用信息增益当作成本函数会对类别较多的属性有所偏好,使用信息增益率可以减小这种偏好。

    其计算公式为: G a i n R a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) , I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ GainRatio(D, a) = \frac{Gain(D, a)}{IV(a)}, IV(a)=-\sum_{v=1}^{V}\frac{|D^{v}|}{|D|}log_{2}\frac{|D^{v}|}{|D|} GainRatio(D,a)=IV(a)Gain(D,a),IV(a)=v=1VDDvlog2DDv

    IV 是属性 a 的固有值,a 的可能取值数目越多(V 越大),IV(a) 的值通常越大,信息增益率就会减小。

    显然信息增益率偏好类别较少的属性,不能直接使用它当作成本函数 ,在 C4.5 决策树算法中,先从侯选属性里找出信息增益高于平均值的属性们,再从中选取信息增益率最高的。。

既然信息增益可以计算,为什么C4.5还使用信息增益比

在使用信息增益的时候,如果某个特征有很多取值,使用这个取值多的特征会得到较大的信息增益。但问题是,会出现很多分支,将数据划分更细,模型复杂度高,出现过拟合的概率更大。
为了解决划分节点时偏向于选择取值较多的特征这一问题,我们使用信息增益比来减少取值较多的特征所对应的权重,从而对该问题进行校正。

决策树和条件概率分布的关系

决策树可以表示成给定条件下类的条件概率分布。决策树中的每一条路径都对应的是划分的一个条件概率分布,每一个叶子节点都是通过多个条件之后的划分空间,在叶子节点中计算每个类的条件概率,必然会倾向于某一个类,即这个类的概率最大。

决策树如何处理缺失值

  1. 在选择分裂属性的时候,训练样本存在缺失值,如何处理?
    以ID3算法为例,在选择分类属性时,需要计算所有属性的信息增益Gain。
    假设存在10个样本,属性是a, b, c。在计算 a 属性的信息增益时发现,第10个样本的 a 属性缺失,那么就把第10个样本去掉,前9个样本组成新的样本集,在新样本集上按正常方法计算 a 属性的信息增益,最终将增益结果乘0.9(新样本集占原样本集的比例)就是 a 属性最终的信息增益。

  2. 分类属性选择完成,对训练样本分类,发现属性缺失怎么办?
    如果样本 x 在划分属性 a 上的取值未知,则将 x 同时划入所有子节点,只不过此时需要调整样本 x 的权重值。简单来说,其实就是让同一样本以不同的概率划分到不同的子节点中去。

  3. 训练完成,给测试集样本分类,有缺失值怎么办?

    • 如果有专门处理缺失值的分支,就走这个分支;
    • 确定属性 a 的最有可能取值,然后走相应的分支;
    • 从属性 a 最常用的分支走;
    • 同时探查所有的分支,并组合它们的结果来得到类别对应的概率,取概率最大的类别;
    • 将最有可能的类别赋给该样本。

决策树的优缺点

  • 优点
    1. 决策树可以可视化,易于理解,可解释性较强;
    2. 不需要对特征进行归一化处理,对缺失值不敏感,数据准备工作很少;
    3. 决策树算法的时间复杂度较小,复杂度为用于训练决策树的数据点的对数( O ( l o g 2 m ) O(log_{2}m) O(log2m));
    4. 效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度;
    5. 能够同时处理数值和分类数据,既可以做回归又可以做分类。
  • 缺点
    1. 容易出现过拟合;
    2. 稳定性较差,对训练数据中的小变化非常敏感,即使数据产生非常小的变异,也可能会训练出一棵完全不同的树;
    3. 对于各类别样本数量不一致的数据,在决策树中,信息增益的结果偏向于那些具有更多数值的特征;
    4. 在处理特征关联性比较强的数据时表现得不是太好。

决策树与逻辑回归的区别

  • 缺失值处理:决策树可以直接应对存在缺失值的数据,而逻辑回归需要对缺失数据进行预处理。
  • 结构分析:逻辑回归对数据整体结构的分析优于决策树,而决策树对局部结构的分析优于逻辑回归;(逻辑回归始终着眼于整个数据的拟合,对全局把握较好,但无法兼顾局部数据,缺乏探查局部结构的内在机制;决策树由于采用节点分割的方法,能够深入数据内部,但失去了对全局的把握,一个分层一旦形成,它和别的层面或节点的关系就被切断了,以后的挖掘只能在局部中进行。)
  • 线性关系 / 过拟合:逻辑回归擅长分析线性关系,可以在一定程度上防止对数据的过度拟合,而决策树对线性关系的把握较差,容易出现过拟合;
  • 极值敏感性:逻辑回归对极值比较敏感,容易受极端值的影响;而决策树在这方面表现较好。
  • 执行速度:当数据量很大时,逻辑回归的执行速度非常慢,而决策树的运行速度明显快于逻辑回归。

20. K-Means

经典 K-Means 算法原理

  1. 从数据集中随机选取K个样本作为初始聚类中心
  2. 针对数据集中的每个样本,计算它到k个聚类中心的距离并将其分到距离最小的聚类中心所对应的类中
  3. 重新计算每个类别的聚类中心
  4. 重复步骤2、3,直到聚类中心的位置变化量小于一定的阈值

经典 K-Means 算法的缺陷

k个初始聚类中心选取的随机性较大,不同的初始聚类中心可能导致完全不同的聚类结果。

K-Means++算法原理

  1. 从数据集中随机选取1个样本作为第一个聚类中心
  2. 对于数据集中的每一个样本,计算它与当前已有聚类中心的最短距离
  3. 按照概率选取一个新的样本作为新的聚类中心,最短距离越大的样本,被选取为新聚类中心的概率越大
  4. 重复步骤2、3,直到k个聚类中心被选出来
  5. 利用这k个初始的聚类中心来运行标准K-Means算法的2-4步:
    a. 针对数据集中的每个样本,计算它到k个聚类中心的距离并将其分到距离最小的聚类中心所对应的类中
    b. 重新计算每个类别的聚类中心
    c. 重复步骤a、b,直到聚类中心的位置变化量小于一定的阈值

二、深度学习

1. 张量与梯度

什么是张量

张量是用高维数组表示的数学对象,它是一个数字容器,包含的数据通常是数值数据,神经网络的输入就是张量。比如矩阵就是一个二阶张量,张量是矩阵向任意维度的推广。

什么是梯度

张量运算(或者张量函数)的导数叫作梯度(gradient),梯度就是将导数这一概念推广到以张量为输入的函数。

什么是梯度下降

梯度下降(Gradient Descent GD)是一种最小化成本函数或最小化误差的最优算法,它利用梯度信息,通过不断迭代调整参数来寻找目标函数的最小值。

梯度下降的方式

  • 批量梯度下降
    批量梯度下降(Batch Gradient Descent,BGD),每次迭代时都在所有数据上运行。
    优点:批量梯度下降会获得全局最优解;
    缺点:在更新每一参数时都需要遍历所有数据,计算量很大,并且会有很多的冗余计算,当数据量很大时,每个参数的更新都会很慢。
  • 真随机梯度下降
    真随机梯度下降(true Stochastic Gradient Descent,true SGD),每次迭代只抽取一个样本和目标。术语随机(stochastic )是指每批数据都是随机抽取的。
    优点:相比于批量梯度下降,该算法快得多;可以逃离局部最优。
    缺点:梯度下降方向的随机性太大,即使到达了最小值还是会反弹,永远无法定位到最小值。
  • 小批量随机梯度下降
    小批量随机梯度下降(mini-batch Stochastic Gradient Descent,小批量SGD),每次迭代时抽取一部分样本和目标。
    优点:梯度缓慢稳定下降,可以得到更加稳定收敛的结果。
    缺点:容易陷在局部最小值中出不来。
  • 上述方法存在的问题
    1. 如何对模型选择合适的学习率。
      自始至终保持同样的学习率其实不太合适。因为一开始参数刚刚开始学习的时候,此时的参数和最优解隔的比较远,需要保持一个较大的学习率尽快逼近最优解。但是学习到后面的时候,参数和最优解已经隔的比较近了,如果还保持最初的学习率,容易越过最优点,在最优点附近来回振荡。
    2. 如何对参数选择合适的学习率。
      对每个参数都保持的同样的学习率也是很不合理的。有些参数更新频繁,那么学习率可以适当小一点。有些参数更新缓慢,那么学习率就应该大一点。
  • 带动量的SGD
    该方法的不同之处在于,在计算下一次权重更新时还需要考虑上一次权重更新,而不是仅考虑当前的梯度值。
    动量解决了SGD的两个问题:收敛速度和局部最小值。

11. 前向传播与反向传播

  • 正向传播
    输入数据从模型的输入层开始,沿着输入层到输出层的顺序,依次计算并存储神经网络的中间变量。
  • 反向传播
    基于输入数据正向传播得到的预测值,利用损失函数计算预测值与真实值之间的误差,然后从模型的输出层开始,沿着输出层到输入层的顺序,依次计算并更新损失函数相对于神经网络中各层参数的梯度。

12. 梯度消失与梯度爆炸

  • 定义
    在反向传播的过程中,随着算法向下传播到较低层,梯度通常会越来越小。这会导致梯度下降更新使得较低层的连接权重保持不变,训练不能收敛到一个良好的解,我们称之为梯度消失问题。
    在某些情况下也可能出现相反的情况,梯度可能会越来越大,各层需要更新很大的权重,直到算法发散为止,这就是梯度爆炸问题。
  • 解决方法
    梯度消失和梯度爆炸本质上是一样的,都是因为网络层数太深而引发的梯度反向传播中的连乘效应。解决梯度消失、爆炸主要有以下几种方案:
    1. 换用Relu、LeakyRelu、Elu等激活函数(需要展开)
      • ReLu:让激活函数的导数为1
      • LeakyReLu:包含了ReLu的几乎所有有点,同时解决了ReLu中0区间带来的影响
      • ELU:和LeakyReLu一样,都是为了解决0区间问题,相对于来,elu计算更耗时一些
    2. BatchNormalization(需要展开)
      BN本质上是解决传播过程中的梯度问题。
    3. ResNet残差结构(需要展开)
    4. 预训练 + 微调
      基本思想是:(1) 先是逐层预训练:每次训练一层隐藏层节点,将上一层隐藏层的输出作为输入,而本层的输出作为下一层的输入;(2) 训练完成后,再对整个网络进行“微调(fine-tunning)”。
    5. 梯度剪切 & 权重正则化
      梯度剪切:其基本思想是设置一个上限阈值,在更新梯度时,如果梯度超过了这个阈值,那么就将其强制限制在这个范围之内。这样可以防止梯度爆炸。
      权重正则化:其基本思想是强制让模型权重只能取较小的值,从而限制模型的复杂度,这使得权重值的分布更加规则。实现方法是向模型损失函数中添加与较大权重值相关的成本。

13. Dropout层

  • 基本思想
    在每个训练步骤中,除了输出神经元之外的每个神经元都有暂时被删除的概率,这意味着在这个训练步骤中,它被完全忽略,但在下一步中可能处于活动状态。
  • 为什么会带来泛化能力的提升?
    1. 经过 dropout 训练的神经元不能与其相邻的神经元相互适应,它们必须自己发挥最大的作用。
    2. 它们也不能过分依赖少数输入神经元,它们必须注意每个输入神经元,这也导致了它们对最终输入的微小变化不太敏感。从而我们将会获得一个更具有鲁棒性的网络,该网络有更好的泛化能力。

20. LSTM与RNN区别

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习中常见的问题和答案如下: 1. 问题:深度学习与机器学习有什么区别? 答案:深度学习是机器学习的一个分支,它使用神经网络模型来学习和理解数据。与传统的机器学习算法相比,深度学习可以处理更复杂的问题,并且在大规模数据集上表现更好。 2. 问题机器学习中常用的算法有哪些? 答案:机器学习中常用的算法包括决策树、支持向量机、朴素贝叶斯、逻辑回归、随机森林等。 3. 问题:什么是过拟合和欠拟合? 答案:过拟合指模型在训练集上表现很好,但在测试集上表现较差,即模型过于复杂,过度拟合了训练数据。欠拟合指模型无法很好地拟合训练数据,无法捕捉到数据中的关键特征。 4. 问题:如何解决过拟合和欠拟合问题? 答案:解决过拟合问题的方法包括增加训练数据、减少模型复杂度、使用正则化等。解决欠拟合问题的方法包括增加模型复杂度、增加特征数量、调整模型参数等。 5. 问题:什么是特征选择? 答案:特征选择是指从原始数据中选择最相关的特征,以提高模型的性能和效果。常用的特征选择方法包括过滤式、包裹式和嵌入式方法。 6. 问题:什么是交叉验证? 答案:交叉验证是一种评估模型性能的方法,它将数据集划分为训练集和测试集,并多次重复训练和测试模型,以得到更准确的性能评估结果。 7. 问题:什么是支持向量机(SVM)? 答案:支持向量机是一种常用的机器学习算法,它可以用于分类和回归问题。SVM通过在特征空间中找到一个最优的超平面来进行分类或回归。 8. 问题:支持向量机常用的核函数有哪些? 答案:支持向量机常用的核函数包括线性核函数、多项式核函数、高斯核函数和sigmoid核函数等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值