秋招总结帖,还愿牛客

秋招总结帖

待完善,持续更新

小米(offer)

寒武纪(池子)

荣耀(二面挂)

华为(池子)

茄子科技(hr面后挂)

58 同城(意向)

经纬恒润(天津,n+2w)

海信(青岛,nw)

XX(北京国企,有京户,nw)

神策数据(三面挂)

招银网络科技(一面鸽)

小红书(一面挂)

快手(一面挂)

字节跳动(一面挂)

百度(一面挂)

oppo(一面挂)

龙湖科技(一面挂)

笔试挂或无后续

京东

美团

哔哩哔哩

拼多多

网易

携程

奇安信

虾皮

蔚来

知乎

图森

海量数据处理

  • 可以全部放到内存:哈希表统计
  • 不可以全部放到内存:哈希(字典树也可用于统计次数),取模,映射到小文件(一个query只会出现在一个文件里)
  • TOP K 问题:最小堆(平均 lgK 时间复杂度),归并排序
  • bitMap

机器学习算法

  • 特征工程基本操作

    • 连续特征归一化,类别特征表示
    • 特征表示
    • 特征选择
    • 特征去噪
  • XGboost要点

    • 基模型都是回归树
    • 一般用 CART,CART 一般是二叉树,所以对于多类别的离散特征,需要编码(one-hot encoding 或者 label encoding)
    • 对于多类别离散特征的处理,
      • 存在大小关系的按照连续特征处理;
      • 不存在大小关系的,特征捆绑(city == beijing || city == shanghai),编码,embedding
  • 介绍一下 GBDT

  • XGBoost 常调的参数

  • SVM 为什么进行对偶变化

    • 对偶问题容易求解:
      • 极小问题变成了极大极小问题
    • 自然引入核函数
    • 推导步骤
      • 最大间隔
      • 约束优化问题 -> 拉格朗日函数(极小极大问题) -> 对偶变化,变为极大极小问题
      • L(w, b, a)分别对 w, b 求导并令导数为 0,得到 a 和 w, b 的关系,代入L(w, b, a),极大极小问题变成了关于 a 的极小问题,可证明此极小问题与原极大极小问题等价
      • 解上述问题,求得 a, 利用 KKT 条件求 w, b
      • 得到分类决策函数
  • 贝叶斯概率计算

  • t-SNE 和 PCA

    • 样本主成分

      • 给定样本矩阵 X X X。样本第一主成分 y 1 = a 1 T x y_1=a_1^T\bold{x} y1=a1Tx 是在 a 1 T a 1 = 1 a_1^Ta_1 = 1 a1Ta1=1 条件下,使得 a 1 T x j ( j = 1 , 2 , . . . , n ) a_1^Tx_j (j=1,2,...,n) a1Txj(j=1,2,...,n) 的样本方差 a 1 T S a 1 a_1^TSa_1 a1TSa1 最大的 x x x 的线性变换;
      • 样本第二主成分 y 2 = a 2 T x y_2=a_2^T\bold{x} y2=a2Tx 是在 a 2 T a 2 = 1 a_2^Ta_2 = 1 a2Ta2=1 a 2 T x j a_2^Tx_j a2Txj a 1 T x j ( j = 1 , 2 , . . , n ) a_1^Tx_j(j=1,2,..,n) a1Txj(j=1,2,..,n) 的样本协方差 a 1 T S a 2 = 0 a_1^TSa_2 = 0 a1TSa2=0 条件下,使得 a 2 T x j a_2^Tx_j a2Txj 的样本方差 a 2 T S a 2 a_2^TSa_2 a2TSa2 最大的 x x x 的线性变换;
      • 一般地,样本第 i 主成分 y i = a i T x y_i=a_i^Tx yi=aiTx 是在 a i T a i = 1 a_i^Ta_i = 1 aiTai=1 a i T x j a_i^Tx_j aiTxj a k T x j ( k < i , j = 1 , 2 , . . . , n ) a_k^Tx_j(k < i, j=1,2,...,n) akTxj(k<i,j=1,2,...,n) 的 样本协方差 a k T S a i = 0 a_k^TSa_i=0 akTSai=0 条件下使得 a i T x j a_i^Tx_j aiTxj 的样本方差 a i T S a i a_i^TSa_i aiTSai 最大的 x x x 的线性变换。
    • PCA 推导: 设 x x x 是 m 维随机向量, Σ \Sigma Σ x x x 的协方差矩阵 ( μ = E ( x ) , Σ = E [ ( x − μ ) ( x − μ ) T ] \mu=E(x), \Sigma=E[(x-\mu)(x-\mu)^T] μ=E(x),Σ=E[(xμ)(xμ)T]), Σ \Sigma Σ 的特征值分别是 λ 1 ≥ λ 2 ≥ . . . ≥ λ m ≥ 0 \lambda_1 \ge \lambda_2 \ge ... \ge \lambda_m \ge 0 λ1λ2...λm0,特征值对应的单位特征向量分别是 α 1 , α 2 , . . . , α m \alpha_1,\alpha_2,...,\alpha_m α1,α2,...,αm,则 x x x 的第 k 主成分是

    y k = α k T x = α 1 k x 1 + α 2 k x 2 + . . . + α m k x m , k = 1 , 2 , . . . , m y_k=\alpha_k^Tx=\alpha_{1k}x_1+\alpha_{2k}x_2+...+\alpha_{mk}x_m, \quad k=1,2,...,m yk=αkTx=α1kx1+α2kx2+...+αmkxm,k=1,2,...,m

    x x x 第 k 主成分的方差是
    v a r ( y k ) = α k T Σ α k = λ k , k = 1 , 2 , . . . , m var(y_k)=\alpha_k^T\Sigma\alpha_k=\lambda_k, \quad k=1,2,...,m var(yk)=αkTΣαk=λk,k=1,2,...,m
    即协反差矩阵的第 k 个特征值

    ​ **证明:**采用拉格朗日乘子法求出主成分。

    ​ 首先求 x x x 的第一主成分 y 1 = α 1 T x y_1=\alpha_1^Tx y1=α1Tx,即求系数向量 α 1 \alpha_1 α1。第一主成分是在 α 1 T α 1 = 1 \alpha_1^T\alpha_1=1 α1Tα1=1 条件下, x x x 的所有线性变换中使方差 v a r ( α 1 T x ) var(\alpha_1^Tx) var(α1Tx) 达到最大的。

    ​ 求第一主成分就是求解约束最优化问题:
    max ⁡ α 1 α 1 T Σ α 1 s . t . α 1 T α 1 = 1 \max_{\alpha_1}\alpha_1^T\Sigma\alpha_1 \\ s.t. \quad \alpha_1^T\alpha_1=1 α1maxα1TΣα1s.t.α1Tα1=1
    定义拉格朗日函数:
    L ( α 1 , λ ) = α 1 T Σ α 1 − λ ( α 1 T α 1 − 1 ) L(\alpha_1, \lambda)=\alpha_1^T\Sigma\alpha_1-\lambda(\alpha_1^T\alpha_1-1) L(α1,λ)=α1TΣα1λ(α1Tα11)
    其中 λ \lambda λ 是拉格朗日乘子。将拉格朗日函数对 α 1 \alpha_1 α1 求导,并令其为 0,得
    Σ α 1 − λ α 1 = 0 \Sigma\alpha_1-\lambda\alpha_1=0 Σα1λα1=0
    因此, λ \lambda λ Σ \Sigma Σ 的特征值, α 1 \alpha_1 α1 是对应的单位特征向量。于是,目标函数
    α 1 T Σ α 1 = α 1 T λ α 1 = λ \alpha_1^T\Sigma\alpha_1=\alpha_1^T\lambda\alpha_1=\lambda α1TΣα1=α1Tλα1=λ
    假设 α 1 \alpha_1 α1 Σ \Sigma Σ 的最大特征值 λ 1 \lambda_1 λ1 对应的单位特征向量,显然 α 1 \alpha_1 α1 λ 1 \lambda_1 λ1 是最优化问题的解。所以, α 1 T x \alpha_1^Tx α1Tx 构成第一主成分,其方差是协方差矩阵的最大特征值。

    ​ 接着求 x x x 的第二主成分 y 2 = α 2 T x y_2=\alpha_2^Tx y2=α2Tx。第二主成分的 α 2 \alpha_2 α2 是在 α 2 T α 2 = 1 \alpha_2^T\alpha_2=1 α2Tα2=1,且 α 2 T x \alpha_2^Tx α2Tx α 1 T x \alpha_1^Tx α1Tx 不相关的条件下, x x x 的所有线性变换使方差 v a r ( α 2 T x ) = α 2 T Σ α 2 var(\alpha_2^Tx)=\alpha_2^T\Sigma\alpha_2 var(α2Tx)=α2TΣα2 达到最大的。

    求解第二主成分需要求解约束优化问题
    max ⁡ α 2 α 2 T Σ α 2 s . t . α 1 T Σ α 2 = 0 , α 2 T Σ α 1 = 0 α 2 T α 2 = 1 \max_{\alpha_2}\alpha_2^T\Sigma\alpha_2 \\ s.t. \quad \alpha_1^T\Sigma\alpha_2=0, \alpha_2^T\Sigma\alpha_1=0 \\ \quad \alpha_2^T\alpha_2=1 α2maxα2TΣα2s.t.α1TΣα2=0,α2TΣα1=0α2Tα2=1
    注意到
    α 1 T Σ α 2 = α 2 T Σ α 1 = α 2 T λ 1 α 1 = λ 1 α 2 T α 1 = λ 1 α 1 T α 2 且 α 1 T α 2 = α 2 T α 1 = 0 \alpha_1^T\Sigma\alpha_2=\alpha_2^T\Sigma\alpha_1=\alpha_2^T\lambda_1\alpha_1=\lambda_1\alpha_2^T\alpha_1=\lambda_1\alpha_1^T\alpha_2 \\ 且 \quad \alpha_1^T\alpha_2=\alpha_2^T\alpha_1=0 α1TΣα2=α2TΣα1=α2Tλ1α1=λ1α2Tα1=λ1α1Tα2α1Tα2=α2Tα1=0
    定义拉格朗日函数
    α 2 T Σ α 2 − λ ( α 2 T α 2 − 1 ) − ϕ α 2 T α 1 \alpha_2^T\Sigma\alpha_2-\lambda(\alpha_2^T\alpha_2 - 1)-\phi\alpha_2^T\alpha_1 α2TΣα2λ(α2Tα21)ϕα2Tα1
    其中, λ , ϕ \lambda, \phi λ,ϕ 是拉格朗日乘子。对 α 2 \alpha_2 α2 求导,并令其为 0,得
    2 Σ α 2 − 2 λ α 2 − ϕ α 1 = 0 2\Sigma\alpha_2 - 2\lambda\alpha_2 - \phi\alpha_1 = 0 2Σα22λα2ϕα1=0
    左乘 α 1 T \alpha_1^T α1T ,有
    2 α 1 T Σ α 2 − 2 λ α 1 T α 2 − ϕ α 1 T α 1 = 0 2\alpha_1^T\Sigma\alpha_2 - 2\lambda\alpha_1^T\alpha_2 - \phi\alpha_1^T\alpha_1 = 0 2α1TΣα22λα1Tα2ϕα1Tα1=0
    由于约束条件,上式前两项是 0,且 α 1 T α 1 = 1 \alpha_1^T\alpha_1=1 α1Tα1=1 ,得出 ϕ = 0 \phi=0 ϕ=0 ,因此
    Σ α 2 − λ α 2 = 0 \Sigma\alpha_2-\lambda\alpha_2=0 Σα2λα2=0
    由此, λ \lambda λ Σ \Sigma Σ 的特征值, α 2 \alpha_2 α2 是对应的特征向量。于是,目标函数
    α 2 T Σ α 2 = α 2 T λ α 2 = λ α 2 T α 2 = λ \alpha_2^T\Sigma\alpha_2=\alpha_2^T\lambda\alpha_2=\lambda\alpha_2^T\alpha_2=\lambda α2TΣα2=α2Tλα2=λα2Tα2=λ
    Σ \Sigma Σ 的第二大特征值 λ 2 \lambda_2 λ2 显然是以上最优化问题的解。于是 α 2 T x \alpha_2^Tx α2Tx 构成第二主成分,其方差等于协方差矩阵的第二大特征值,
    v a r ( α 2 T x ) = α 2 T Σ α 2 = λ 2 var(\alpha_2^Tx)=\alpha_2^T\Sigma\alpha_2=\lambda_2 var(α2Tx)=α2TΣα2=λ2
    一般地, x x x 的第 k k k 主成分是 α k T x \alpha_k^Tx αkTx,并且 v a r ( α k T x ) = λ k var(\alpha_k^Tx)=\lambda_k var(αkTx)=λk,其中, λ k \lambda_k λk Σ \Sigma Σ 的第 k k k 个特征值, α k \alpha_k αk 是对应的特征向量。

    总体主成分的性质:

    (1) 总体主成分 y y y 的协方差矩阵是对角矩阵: c o v ( y ) = Λ = d i a g ( λ 1 , λ 2 , . . . , λ m ) cov(y) = \Lambda=diag(\lambda_1, \lambda_2,...,\lambda_m) cov(y)=Λ=diag(λ1,λ2,...,λm);

    (2) 总体主成分 y y y 的方差之和等于随机变量 x x x 的方差之和;

    (3) 第 k 个主成分 y k y_k yk 与变量 x i x_i xi 的相关系数 ρ ( y k , x i ) \rho(y_k, x_i) ρ(yk,xi) 称为因子负荷量(factor loading),它表示第 k 个主成分 y k y_k yk 与变量 x i x_i xi 的相关关系。计算公式是
    ρ ( y k , x i ) = c o v ( y k , x i ) v a r ( y k ) v a r ( x i ) = c o v ( α k T x , e i T x ) λ k σ i i c o v ( α k T x , e i T x ) = α k T Σ e i = e i T Σ α k = λ k e i T α k = λ k α i k ρ ( y k , x i ) = λ k α i k λ k σ i i = λ k α i k σ i i \rho(y_k, x_i)=\frac{cov(y_k,x_i)}{\sqrt{var(y_k)var(x_i)}}=\frac{cov(\alpha_k^Tx, e_i^Tx)}{\sqrt{\lambda_k}\sqrt{\sigma_{ii}}} \\ cov(\alpha_k^Tx, e_i^Tx) = \alpha_k^T \Sigma e_i = e_i^T \Sigma \alpha_k = \lambda_k e_i^T \alpha_k = \lambda_k \alpha_{ik} \\ \rho(y_k, x_i) = \frac{\lambda_k\alpha_{ik}}{\sqrt{\lambda_k}\sqrt{\sigma_{ii}}} = \frac{\sqrt{\lambda_k}\alpha_{ik}}{\sqrt{\sigma_{ii}}} ρ(yk,xi)=var(yk)var(xi) cov(yk,xi)=λk σii cov(αkTx,eiTx)cov(αkTx,eiTx)=αkTΣei=eiTΣαk=λkeiTαk=λkαikρ(yk,xi)=λk σii λkαik=σii λk αik
    (4) 第 k 个主成分 y k y_k yk 与 m 个变量的因子负荷量满足
    ∑ i = 1 m σ i i ρ 2 ( y k , x i ) = λ k \sum_{i=1}^m\sigma_{ii}\rho^2(y_k, x_i)=\lambda_k i=1mσiiρ2(yk,xi)=λk
    (5) m 个主成分与第 i 个变量 x i x_i xi 的因子负荷量满足
    ∑ k = 1 m ρ 2 ( y k , x i ) = 1 \sum_{k=1}^m\rho^2(y_k, x_i) = 1 k=1mρ2(yk,xi)=1

  • 逻辑回归:二项的逻辑回归是如下的条件概率分布:

P ( Y = 1 ∣ x ) = e x p ( w ⋅ x + b ) 1 + e x p ( w ⋅ x + b ) P ( Y = 0 ∣ x ) = 1 1 + e x p ( w ⋅ x + b ) P(Y=1|x) = \frac{exp(w \cdot x + b)}{1+exp(w \cdot x + b)} \\ P(Y=0|x) = \frac{1}{1+exp(w \cdot x + b)} P(Y=1x)=1+exp(wx+b)exp(wx+b)P(Y=0x)=1+exp(wx+b)1

一个事件的几率 (odds) 是指该事件的概率与该事件不发生的概率的比值。如果事件发生的概率是 p,那么事件的几率是 p 1 − p \frac{p}{1-p} 1pp ,对于逻辑回归而言,该事件的对数几率是输入 x x x 的线性函数表示的模型:
l o g P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) = w ⋅ x log\frac{P(Y=1|x)}{1-P(Y=1|x)}=w \cdot x log1P(Y=1x)P(Y=1x)=wx
参数估计:

设:
P ( Y = 1 ∣ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 − π ( x ) P(Y=1|x)=\pi(x),P(Y=0|x)=1-\pi(x) P(Y=1x)=π(x),P(Y=0x)=1π(x)
似然函数为
∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i \prod_{i=1}^N[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i} i=1N[π(xi)]yi[1π(xi)]1yi
对数似然函数为
KaTeX parse error: No such environment: align at position 16: {align} \begin{̲a̲l̲i̲g̲n̲}̲ L(w)&=\sum_{i=…
L ( w ) L(w) L(w) 求极大值,得到 w w w 的估计值。对对数似然函数取负转化为极小化问题,利用梯度下降法求解:
− ∂ L ( w ) ∂ w = ∑ i = 1 N [ − y i x i + x i e x p ( w ⋅ x i ) 1 + e x p ( w ⋅ x i ) ] = − ∑ i = 1 N x i [ y i − h w ( x i ) ] -\frac{\partial L(w)}{\partial w} = \sum_{i=1}^N[-y_ix_i+\frac{x_iexp(w \cdot x_i)}{1+exp(w \cdot x_i)}] = -\sum_{i=1}^N x_i[y_i - h_w(x_i)] wL(w)=i=1N[yixi+1+exp(wxi)xiexp(wxi)]=i=1Nxi[yihw(xi)]
梯度更新公式:
w n + 1 = w n + η ⋅ ( ∂ L ( w ) ∂ w ) = w n + η ⋅ ∑ i = 1 N x i [ y i − h w ( x i ) ] w_{n+1} = w_n + \eta \cdot \left( \frac{\partial L(w)}{\partial w} \right) = w_n + \eta \cdot \sum_{i=1}^N x_i[y_i - h_w(x_i)] wn+1=wn+η(wL(w))=wn+ηi=1Nxi[yihw(xi)]
其中, η \eta η 是学习率。

  • 梯度下降算法求解极大似然过程(更新过程)

  • 逻辑回归为什么不使用平方损失

    若使用平方损失,损失函数为

L ( w ) = 1 N ∑ i = 1 N [ y i − h w ( x i ) ] 2 L(w)=\frac{1}{N}\sum_{i=1}^N[y_i-h_w(x_i)]^2 L(w)=N1i=1N[yihw(xi)]2

极小化损失函数,利用梯度下降法求解:
∂ L ( w ) ∂ w = − 2 N ∑ i = 1 N x i [ y i − h w ( x i ) ] h w ′ ( x i ) = − 2 N ∑ i = 1 N x i [ y i − h w ( x i ) ] e x p ( w ⋅ x i ) [ 1 + e x p ( w ⋅ x i ) ] 2 \frac{\partial L(w)}{\partial w} = -\frac{2}{N}\sum_{i=1}^N x_i[y_i - h_w(x_i)]h_w'(x_i) = -\frac{2}{N}\sum_{i=1}^N x_i[y_i - h_w(x_i)]\frac{exp(w \cdot x_i)}{[1+exp(w \cdot x_i)]^2} wL(w)=N2i=1Nxi[yihw(xi)]hw(xi)=N2i=1Nxi[yihw(xi)][1+exp(wxi)]2exp(wxi)
w ⋅ x i w \cdot x_i wxi 过大或过小时, h w ′ ( x i ) h_w'(x_i) hw(xi) 都很小,会导致梯度消失的问题。

  • PCA

    • 最大化投影方差
  • K-means 和 DBSCAN: Density-Based Spatial Clustering Algorithm with Noise

    • k-means
      • 聚类效果依赖于簇心的选择
      • 会把所有数据点聚类,对离群点不敏感
      • 对每个簇来说,所有的方向同等重要,仅适合球形数据簇
    • DBSCAN
      • 优点:
        • 不需要指定簇数
        • 适合各种复杂形状的数据点分布
        • 可识别出不属于任何簇的离群点
      • 缺点:
        • 运行速度慢
        • 参数调整,
        • 对于具有不同密度的簇,效果不好
  • 聚类算法

    • K-Means
    • 手肘法,复杂度,优缺点
      • 手肘法:SSE(误差平方和和 K 值的曲线,选曲率最大的地方)
    • 层次聚类
    • DBSCAN
  • GBDT 和 XGBoost

    • GBDT 是机器学习算法,XBGoost 是工程实现
    • XGBoost 在基分类器显示加入正则化项,控制模型复杂度,有利于防止过拟合,一个是限制树的高度,一个是叶子节点权重的二范数
    • XGBoost 同时使用对损失函数做二阶泰勒展开,可以更快更准的降低偏差
    • XGBoost 支持多种基分类器
    • 支持对数据采样,类似于随机森林(特征采样,样本采样),降低方差
    • 处理缺失值,分裂时尝试把空缺值当成一类数据分到左节点或右节点,选增益大的
  • XGBoost 和 lightGBM

    • XGBoost 采用预排序,对节点的特征进行预排序并遍历选择最优分割点,数据量大时贪心耗时,lightGBM 使用直方图
    • lightGBM 对样本基于梯度采样
    • XGBoost 是 level-wise,lightGBM 是 leaf-wise
    • 互斥特征捆绑
  • bagging 和 boosting 方法的区别

    • bagging 对训练集进行有放回抽样,boosting 对分类错误的样本加权以降低偏差
    • bagging 主要关注降低方差,boosting 主要关注降低偏差
    • bagging 子模型的训练可以并行进行,boosting 是串行模型,必须串行训练
    • bagging 模型的预测结果由各个子模型投票或加权平均得出,boosting 模型的预测结果由各个模型预测结果加起来
    • 哪些模型使用了 bagging
      • 随机森林
  • 说出四个激活函数,以及优缺点

  • XGBoost 过拟合怎么解决

  • SVM 的细节,KKT 条件的意义

    • 在线性可分的约束条件下,最大化分类间隔
    • 利用拉格朗日乘数,将有约束最优化问题转为无约束最优化问题,由于是不等式约束,转化后是 min-max 优化问题
    • 对偶变换,min-max 问题转为 max-min 问题,SVM 中是强对偶关系,原问题和对偶问题解相同
  • 求解关于 α \alpha α 的二次规划问题

    • 利用 KKT 条件求 w, b
    • 得到分类决策函数
  • MSE 为什么不能做分类损失

  • 说说 softmax、交叉熵

s o f t m a x ( σ i ) = e x p ( x i ) ∑ j = 1 C e x p ( x j ) , C r o s s E n t r o p y = − ∑ i = 1 C y i l o g ( σ i ) softmax(\sigma_i)=\frac{exp(x_i)}{\sum_{j=1}^Cexp(x_j)}, CrossEntropy = -\sum_{i=1}^Cy_ilog(\sigma_i) softmax(σi)=j=1Cexp(xj)exp(xi),CrossEntropy=i=1Cyilog(σi)

  • 相对熵 / KL散度

K L ( P ∣ ∣ Q ) = ∑ P ( x ) l o g P ( x ) Q ( x ) o r ∫ P ( x ) l o g P ( x ) Q ( x ) d x KL(P||Q)=\sum P(x)log\frac{P(x)}{Q(x)} \quad or \quad \int P(x)log\frac{P(x)}{Q(x)}dx KL(PQ)=P(x)logQ(x)P(x)orP(x)logQ(x)P(x)dx

  • 互信息

I ( X ; Y ) = ∑ x ∈ X ∑ y ∈ Y p ( x , y ) l o g p ( x , y ) p ( x ) p ( y ) I(X;Y)=\sum_{x \in X}\sum_{y \in Y}p(x, y)log\frac{p(x, y)}{p(x)p(y)} I(X;Y)=xXyYp(x,y)logp(x)p(y)p(x,y)

  • 条件熵

H ( X ∣ Y ) = − ∑ x ∈ X ∑ y ∈ Y p ( x , y ) l o g p ( x ∣ y ) H(X|Y)=-\sum_{x \in X}\sum_{y \in Y}p(x,y)logp(x|y) H(XY)=xXyYp(x,y)logp(xy)

  • JS 散度

J S ( P ∣ ∣ Q ) = 1 2 K L ( P ∣ ∣ P + Q 2 ) + 1 2 K L ( Q ∣ ∣ P + Q 2 ) JS(P||Q)=\frac{1}{2}KL(P||\frac{P+Q}{2})+\frac{1}{2}KL(Q||\frac{P+Q}{2}) JS(PQ)=21KL(P2P+Q)+21KL(Q2P+Q)

  • 为什么使用 softmax?

    • 指数让大的更大,小的更小
    • 可微
  • 生成式模型、判别式模型

preview

  • 集成学习

    • 集成学习的核心是得到不一样且有一定准确率的基分类器,然后表决(从降低方差的角度)
    • boosting:有放回均匀采样
      • 主要关注降低偏差,所以应当尽量不让基学习器容量很大
    • stacking, boosting, bagging 随机森林
    • bagging,随机森林都是为了得到不同的基学习器
      • 随机森林:基学习器是决策树的 bagging + 属性扰动
    • 集成策略
      • 平均法
        • 简单平均
        • 加权平均(一般个体学习器性能差异较大时才采用)
      • 投票法
        • 绝对多数投票法
          • 某标记得票超过半数,则预测,否则拒绝预测
        • 相对多数投票法
          • 预测为得票最多的标记
        • 加权投票法
      • 学习法
        • stacking
  • 熟悉DNN、CNN、RNN、LSTM等经典模型,对 Transformer、Attention 等熟悉者有加分

  • 梯度消失、梯度爆炸

    出现原因:

    • 链式法则,梯度累乘效应导致梯度指数级增长或减小;梯度饱和(GAN,sigmoid,tanh)

    解决方案:

    • pre-training + fine-tunning
    • 梯度剪切:对梯度设定阈值,主要针对梯度爆炸
    • 权重正则化
    • 选择 relu 系的激活函数,梯度大部分是常数(1)
    • BN:把数据从饱和区拉到非饱和区
    • 残差网络系:resnet,densenet
  • 神经网络基础知识

    • 权重共享、dropout
    • CNN 卷积计算尺寸
    • RNN
    • 你没有训练序列模型和强化学习模型的经历
      • 课题的时候花点时间
      • 强化学习 demo 跑一个
  • 为什么分类问题损失函数不用 MSE 而用交叉熵

    • 由于使用 sigmoid (softmax),MSE 求导的结果中包含 f(x)(1-f(x)),y=0,f(x)=1时,会有梯度消失问题;
    • MSE 是非凸的,有许多局部极小值点
  • softmax 上溢下溢

    • 其实没有下溢,只有上溢(指数过大时:z = z - max(Z))
  • 交叉熵,极大似然估计, KL散度

  • 常用损失函数

    • 指数损失:对异常点敏感

    • 对数似然

    • 交叉熵

    • 均方误差 (MSE)

      • 在模型输出与真实值的误差服从高斯分布的假设下,最小化均方差损失函数与极大似然估计本质上是一致的
    • 绝对误差 (MAE)

    • MSE 比 MAE 更快收敛,MAE 比 MSE 更 robust,更不易受异常点(outlier)影响

      • MAE 在 ∣ y i − y i ^ ∣ |y_i-\hat{y_i}| yiyi^ 很小时梯度同样为 1,不利于模型收敛

      • MAE 假设误差服从拉普拉斯分布,MSE 假设误差服从高斯分布,出现 outlier 拉普拉斯分布相比高斯分布受到的影响小得多

      • MSE 假设模型预测值和真实值之间的误差服从标准高斯分布 ( μ = 0 , σ = 1 \mu=0,\sigma=1 μ=0,σ=1),则给定一个 x i x_i xi ,模型输出真实值 y i y_i yi 的概率为

      p ( y i ∣ x i ) = 1 2 π e x p ( − ( y i − y i ^ ) 2 2 ) p(y_i|x_i)=\frac{1}{\sqrt{2\pi}}exp(-\frac{(y_i-\hat{y_i})^2}{2}) p(yixi)=2π 1exp(2(yiyi^)2)

      进一步地,假设数据集中 N 个样本点之间相互独立,则给定所有 x x x 输出所有真实值的概率,即似然 Likelihood,为所有 p ( y i ∣ x i ) p(y_i|x_i) p(yixi) 的累乘
      L ( x , y ) = ∏ i = 1 N 1 2 π e x p ( − ( y i − y i ^ ) 2 2 ) L(x,y)=\prod_{i=1}^{N}\frac{1}{\sqrt{2\pi}}exp(-\frac{(y_i-\hat{y_i})^2}{2}) L(x,y)=i=1N2π 1exp(2(yiyi^)2)
      极小化负对数似然函数,并去掉无关项:
      N L L ( x , y ) = − l o g ( L ( x , y ) ) = N 2 l o g 2 π + 1 2 ∑ i = 1 N ( y i − y i ^ ) 2 N L L ( x , y ) = 1 2 ∑ i = 1 N ( y i − y i ^ ) 2 NLL(x,y)=-log(L(x,y))=\frac{N}{2}log2\pi+\frac{1}{2}\sum_{i=1}^N(y_i-\hat{y_i})^2 \\ NLL(x,y)=\frac{1}{2}\sum_{i=1}^N(y_i-\hat{y_i})^2 NLL(x,y)=log(L(x,y))=2Nlog2π+21i=1N(yiyi^)2NLL(x,y)=21i=1N(yiyi^)2

  • Huber Loss: y i y_i yi y i ^ \hat{y_i} yi^ 差别大时 使用 MAE,降低 outlier 的影响;误差接近 0 时使用 MSE,使损失函数可到并且梯度更加稳定

  • 激活函数优缺点

    • sigmoid,softmax,tanh,reLU,leakyReLU
  • 梯度下降

    • 一阶梯度下降
      • 优化器

      • SGD,mini-batch,动量,RMSprop,adam

      • 学习率自动调整

        • 学习率衰减、预热、周期调整
        • AdaGrad:首先计算梯度平方的累加值,学习率逐渐衰减
        • Δ θ t = − α G t + ϵ ⊙ g t \Delta\theta_t = -\frac{\alpha}{\sqrt{G_t+\epsilon}}\odot g_t Δθt=Gt+ϵ αgt, G t = ∑ τ = 1 t g τ ⊙ g τ G_t = \sum_{\tau=1}^t g_{\tau} \odot g_{\tau} Gt=τ=1tgτgτ
        • RMSprop:把 AdaGrad 的梯度平方累积变为指数衰减移动平均
      • 梯度估计修正

        • 动量法:在第𝑡 次迭代时,计算负梯度的“加权移动平均”作为参数的更新方向
        • Adam:一方面计算梯度平方 g𝑡2 的指数加权平均(和 RMSprop 算法类似),另一方面计算梯度g𝑡 的指数加权平均(和动量法类似)

        Adam

        计算梯度平方 g t 2 g_t^2 gt2 的指数加权平均(RMSprop): G t = β 2 G t − 1 + ( 1 − β 2 ) g t ⊙ g t G_t=\beta_2G_{t-1} + (1 - \beta_2)g_t \odot g_t Gt=β2Gt1+(1β2)gtgt

        计算梯度梯度的指数加权平均(动量法): M t = β 1 M t − 1 + ( 1 − β 1 ) g t M_t = \beta_1M_{t-1} + (1-\beta_1)g_t Mt=β1Mt1+(1β1)gt

        假设 M 0 = 0 , G 0 = 0 M_0 = 0,G_0 = 0 M0=0,G0=0,那么在迭代初期 M t M_t Mt G t G_t Gt 得知会比真实的均值和方差要小,特别是当 β 1 , β 2 \beta_1,\beta_2 β1,β2 都接近 1 时,偏差会很大。因此,对偏差进行修正:
        M t ^ = M t 1 − β 1 t G t ^ = G t 1 − β 2 t \hat{M_t}=\frac{M_t}{1-\beta_1^t} \\ \hat{G_t}=\frac{G_t}{1-\beta_2^t} Mt^=1β1tMtGt^=1β2tGt
        参数更新: Δ θ t = − α G t ^ + ϵ M t ^ \Delta\theta_t=-\frac{\alpha}{\sqrt{\hat{G_t} + \epsilon}}\hat{M_t} Δθt=Gt^+ϵ αMt^

        • 梯度截断(梯度爆炸)
    • 二阶梯度下降
      • 牛顿法
      • 拟牛顿法
      • BFGS…
  • 分类评价标准

    准确率:左右样本被分类正确的比例。

    召回率:真实为正类的样本中,被判断为正类的占比。

    精准率:判断为正类的样本中,真实为正类的占比。

    f1分数:2召回率精准率/(召回率+精准率)

    假正率:负类中被分类为正类的占比。

    真正率:正类中被分类为正类的占比。(就是召回率)

    ROC、AUC等。

    ROC是指横坐标为假正率、纵坐标为真正率的曲线。真正率越高的同时,假正率低,就说明这个ROC曲线越好,曲线越陡。无视样本不平衡,因为无论正负样本比例如何变化,ROC都不会变。为了评估ROC的好坏,可能需要尝试不同的阈值(概率大于多少被判定为正类)。

    AUC(area under curve)是ROC曲线下的面积。

  • 回归问题评价指标

    • MSE

    M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 MSE = \frac{1}{n}\sum_{i=1}^n(y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2

    • RMSE

    R M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 RMSE = \sqrt{\frac{1}{n}\sum_{i=1}^n(y_i - \hat{y}_i)^2} RMSE=n1i=1n(yiy^i)2

    • MAE (平均绝对误差)

    M A E = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ MAE = \frac{1}{n}\sum_{i=1}^n|y_i - \hat{y}_i| MAE=n1i=1nyiy^i

    • MAPE (平均百分比误差): 分母为 0 时不可用

    M A P E = 100 % n ∑ i = 1 n ∣ y i − y ^ i y i ∣ MAPE = \frac{100\%}{n}\sum_{i=1}^n \left| \frac{y_i - \hat{y}_i}{y_i} \right| MAPE=n100%i=1nyiyiy^i

    • SMAPE (Symmetric Mean Absolute Percentage Error): 分母为 0 时不可用

    S M A P E = 100 % n ∑ i = 1 n ∣ y i − y ^ i ∣ ( ∣ y i ∣ + ∣ y ^ i ∣ ) / 2 SMAPE = \frac{100\%}{n}\sum_{i=1}^n \frac{|y_i - \hat{y}_i|}{(|y_i| + |\hat{y}_i|)/2} SMAPE=n100%i=1n(yi+y^i)/2yiy^i

    • R 2 R^2 R2

    R 2 = 1 − S S E S S T = 1 − ∑ i = 1 n ( y i − y ^ i ) 2 ∑ i = 1 n ( y i − y ˉ i ) 2 R^2 = 1-\frac{SSE}{SST} = 1-\frac{\sum_{i=1}^n(y_i - \hat{y}_i)^2}{\sum_{i=1}^n(y_i - \bar{y}_i)^2} R2=1SSTSSE=1i=1n(yiyˉi)2i=1n(yiy^i)2

    • Adjusted R-square: 调整 R 方,n:数据点个数,k:特征个数

    A d j u s t e d   R 2 = 1 − ( 1 − R 2 ) ( n − 1 ) ( n − k − 1 ) Adjusted \space R^2 = 1-\frac{(1 - R^2)(n-1)}{(n - k - 1)} Adjusted R2=1(nk1)(1R2)(n1)

  • 多重共线性

    • 出现原因

    多重共线性就是指一个解释变量的变化引起另一个解释变量的变化。

    原本自变量应该是各自独立,根据回归分析结果,能得知哪些因素对因变量 Y 有显著影响。

    如果各个自变量 x 之间有很强的线性关系,就无法固定其他变量,也就找不到 x 和 y 之间的真实关系了。

    此外,多重共线性的原因还可能包括:

    1. 数据不足,某些情况下,收集更多数据可以解决共线性问题;
    2. 错误使用虚拟变量。比如,同时将男、女两个虚拟变量都放入模型,此时必定出现共线性,称为完全共线性
    • 共线性判别指标
    1. VIF
  • FM、FFM、DeepFM

  • 机器学习特征工程
    • 数据预处理
      • 无量纲化
        • 标准化
        • 区间缩放
        • 标准化和归一化
      • 定量特征二值化
      • 定性特征哑编码
      • 缺失值计算
        • 填充
          • 常量填充
          • 插值填充
          • 已有数据训练模型预测缺失值
          • XGBoost
        • 删除
      • 数据变换
    • 特征选择
      • Filter 过滤法
        • 方差选择法,选择方差大(设定阈值)的特征
        • 相关系数法,计算特征对目标值的相关系数和P值
        • 卡方检验
        • 互信息
      • Wapper 包装法
        • 通过消除特征获得不同特征集训练模型
      • Embedded 集成法(学习器自动选择特征)
        • 基于惩罚项
        • 基于树模型
      • 组合特征
        • FM
        • 决策树
        • 先验知识
    • 降维
      • 主成分分析
      • 线性判别分析
      • 自编码器

SVM

线性不可分的线性支持向量机(软间隔最大化)的学习问题变成如下凸二次规划问题(convex quadratic programming)问题(原始问题)
min ⁡ w , b , ξ 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i s . t . y i ( w ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , . . . , N ξ i ≥ 0 , i = 1 , 2 , . . . , N \min_{w,b,\xi}\frac{1}{2}||w||^2 + C\sum_{i=1}^N\xi_i \\ s.t. \quad y_i(w \cdot x_i + b) \ge 1 - \xi_i,i=1,2,...,N \\ \xi_i \ge 0, i=1,2,...,N w,b,ξmin21w2+Ci=1Nξis.t.yi(wxi+b)1ξi,i=1,2,...,Nξi0,i=1,2,...,N
上述原始最优化问题的拉格朗日函数是:
L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i − ∑ i = 1 N α i [ y i ( w ⋅ x i + b ) − 1 + ξ i ] − ∑ i = 1 N μ i ξ i 其 中 , α i ≥ 0 , μ i ≥ 0 L(w,b,\xi,\alpha,\mu) = \frac{1}{2}||w||^2 + C\sum_{i=1}^N\xi_i - \sum_{i=1}^N\alpha_i[y_i(w \cdot x_i + b) - 1 + \xi_i] - \sum_{i=1}^N\mu_i\xi_i \\ 其中,\alpha_i \ge 0, \mu_i \ge 0 L(w,b,ξ,α,μ)=21w2+Ci=1Nξii=1Nαi[yi(wxi+b)1+ξi]i=1Nμiξiαi0,μi0
对偶问题是拉格朗日函数的极大极小问题。
max ⁡ α , μ min ⁡ w , b , ξ L ( w , b , ξ , α , μ ) s . t . α i ≥ 0 , μ i ≥ 0 , i = 1 , 2 , . . . , N \max_{\alpha,\mu}\min_{w,b,\xi}L(w,b,\xi,\alpha,\mu) \\ s.t. \quad \alpha_i \ge 0, \mu_i \ge 0, i=1,2,...,N α,μmaxw,b,ξminL(w,b,ξ,α,μ)s.t.αi0,μi0,i=1,2,...,N
首先求 L ( w , b , ξ , α , μ ) L(w,b,\xi,\alpha,\mu) L(w,b,ξ,α,μ) w , b , ξ w,b,\xi w,b,ξ 的极小,由
∇ w L ( w , b , ξ , α , μ ) = w − ∑ i = 1 N α i y i x i = 0 ∇ b L ( w , b , ξ , α , μ ) = − ∑ i = 1 N α i y i = 0 ∇ ξ i L ( w , b , ξ , α , μ ) = C − α i − μ i = 0 \nabla_wL(w,b,\xi,\alpha,\mu) = w - \sum_{i=1}^N\alpha_iy_ix_i = 0 \\ \nabla_bL(w,b,\xi,\alpha,\mu) = -\sum_{i=1}^N\alpha_iy_i = 0 \\ \nabla_{\xi_i}L(w,b,\xi,\alpha,\mu) = C - \alpha_i - \mu_i = 0 wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0bL(w,b,ξ,α,μ)=i=1Nαiyi=0ξiL(w,b,ξ,α,μ)=Cαiμi=0

w = ∑ i = 1 N α i y i x i ∑ i = 1 N α i y i = 0 C − α i − μ i = 0 w = \sum_{i=1}^N\alpha_iy_ix_i \\ \sum_{i=1}^N\alpha_iy_i = 0 \\ C - \alpha_i - \mu_i = 0 w=i=1Nαiyixii=1Nαiyi=0Cαiμi=0
代入拉格朗日函数得:
KaTeX parse error: No such environment: align at position 175: …pha_i \\ \begin{̲a̲l̲i̲g̲n̲}̲ s.t. \quad &\s…
将对偶最优化问题:利用等式约束 C − α i − μ i = 0 C - \alpha_i - \mu_i = 0 Cαiμi=0 消去 μ i \mu_i μi,并将约束写成:
0 ≤ α i ≤ C 0 \le \alpha_i \le C 0αiC
将极大问题转化为极小问题,得到:
KaTeX parse error: No such environment: align at position 119: …pha_i \\ \begin{̲a̲l̲i̲g̲n̲}̲ s.t. \quad &\s…
定理 7.3 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) T \alpha^* = (\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T α=(α1,α2,...,αN)T 是对偶问题的解,若存在 α ∗ \alpha^* α 的一个分量 α j ∗ \alpha_j^* αj ,满足 0 < α j ∗ < C 0<\alpha_j^*<C 0<αj<C,则原始问题的解 w ∗ , b ∗ w^*,b^* w,b 可按下式求得:
w ∗ = ∑ i = 1 N α i ∗ y i x i b ∗ = y j − ∑ i = 1 N y i α i ∗ ( x i ⋅ x j ) w^*=\sum_{i=1}^N\alpha_i^*y_ix_i \\ b^*=y_j - \sum_{i=1}^Ny_i\alpha_i^*(x_i \cdot x_j) w=i=1Nαiyixib=yji=1Nyiαi(xixj)
证明: 原始问题是凸二次规划问题,解满足 KKT 条件,即
∇ w L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = w ∗ − ∑ i = 1 N α i ∗ y i x i = 0 ∇ b L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = − ∑ i = 1 N α i ∗ y i = 0 ∇ ξ i L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = C − α i ∗ − μ i ∗ = 0 α i ∗ [ y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ ] = 0 μ i ∗ ξ i ∗ = 0 y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ ≥ 0 ξ i ∗ ≥ 0 α i ∗ ≥ 0 μ i ∗ ≥ 0 , i = 1 , 2 , . . . , N \nabla_wL(w^*,b^*,\xi^*,\alpha^*,\mu^*) = w^* - \sum_{i=1}^N\alpha_i^*y_ix_i = 0 \\ \nabla_bL(w^*,b^*,\xi^*,\alpha^*,\mu^*) = -\sum_{i=1}^N\alpha_i^*y_i = 0 \\ \nabla_{\xi_i}L(w^*,b^*,\xi^*,\alpha^*,\mu^*) = C - \alpha_i^* - \mu_i^* = 0 \\ \alpha_i^*[y_i(w^* \cdot x_i + b^*) - 1 + \xi_i^*] = 0 \\ \mu_i^*\xi_i^*=0 \\ y_i(w^* \cdot x_i + b^*) - 1 + \xi_i^* \ge 0 \\ \xi_i^* \ge 0 \\ \alpha_i^* \ge 0 \\ \mu_i^* \ge 0, \quad i=1,2,...,N wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0bL(w,b,ξ,α,μ)=i=1Nαiyi=0ξiL(w,b,ξ,α,μ)=Cαiμi=0αi[yi(wxi+b)1+ξi]=0μiξi=0yi(wxi+b)1+ξi0ξi0αi0μi0,i=1,2,...,N
若存在 α j ∗ \alpha_j^* αj ,满足 0 < α j ∗ < C 0<\alpha_j^*<C 0<αj<C,则 y i ( w ∗ ⋅ x i + b ∗ ) − 1 = 0 y_i(w^* \cdot x_i + b^*) - 1 = 0 yi(wxi+b)1=0,得证。

分类超平面可写成
∑ i = 1 N α i ∗ y i ( x ⋅ x i ) + b ∗ = 0 \sum_{i=1}^N \alpha_i^*y_i(x \cdot x_i) + b^* = 0 i=1Nαiyi(xxi)+b=0
分类决策函数可以写成
f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i ( x ⋅ x i ) + b ∗ ) f(x) = sign\left( \sum_{i=1}^N \alpha_i^*y_i(x \cdot x_i) + b^* \right) f(x)=sign(i=1Nαiyi(xxi)+b)
求解过程不写,基本就是解凸二次规划得到 α ∗ \alpha^* α 利用 KKT 条件算 w ∗ , b ∗ w^*,b^* w,b,从而得到分类超平面及分类决策函数。

拉格朗日对偶性
  1. 原始问题

    假设 f ( x ) , c i ( x ) , h j ( x ) f(x),c_i(x),h_j(x) f(x),ci(x),hj(x)是定义在 R n R^n Rn上的连续可微函数,考虑约束最优化问题

min ⁡ x ∈ R n f ( x ) s . t . c i ( x ) ≤ 0 , i = 1 , 2 , . . . , k h j ( x ) = 0 , j = 1 , 2 , . . . , l \min_{x \in R^n}f(x) \\ s.t. \quad c_i(x) \le 0, \quad i=1,2,...,k \\ \quad h_j(x)=0, \quad j=1,2,...,l xRnminf(x)s.t.ci(x)0,i=1,2,...,khj(x)=0,j=1,2,...,l

称此约束最优化问题为原始最优化问题或原始问题。

​ 引进广义拉格朗日函数
L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) L(x, \alpha, \beta)=f(x)+\sum_{i=1}^k\alpha_ic_i(x)+\sum_{j=1}^l\beta_jh_j(x) L(x,α,β)=f(x)+i=1kαici(x)+j=1lβjhj(x)
这里, α i ≥ 0 , β j \alpha_i \ge 0,\beta_j αi0,βj 是拉格朗日乘子,考虑 x x x 的函数:
θ P ( x ) = max ⁡ α , β ; α i ≥ 0 L ( x , α , β ) \theta_P(x)=\max_{\alpha,\beta;\alpha_i \ge 0}L(x, \alpha, \beta) θP(x)=α,β;αi0maxL(x,α,β)
P 表示原始问题。

​ 假设给定某个 x x x 如果违反原始问题的约束条件,即存在某个 i 使得 c i ( x ) > 0 c_i(x)>0 ci(x)>0 或者存在某个 j 使得 h j ( x ) h_j(x) hj(x),那么就有
θ P ( x ) = max ⁡ α , β ; α i ≥ 0 [ f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) ] = + ∞ \theta_P(x)=\max_{\alpha,\beta;\alpha_i \ge 0} \left[ f(x)+\sum_{i=1}^k\alpha_ic_i(x)+\sum_{j=1}^l\beta_jh_j(x) \right] = +\infin θP(x)=α,β;αi0max[f(x)+i=1kαici(x)+j=1lβjhj(x)]=+
因为若某个 i 使得 c i ( x ) > 0 c_i(x) > 0 ci(x)>0,则可令 α i → + ∞ \alpha_i \rightarrow +\infin αi+,若某个 j 使得 h j ( x ) ≠ 0 h_j(x) \neq 0 hj(x)=0,则可令 β j h j ( x ) → + ∞ \beta_jh_j(x) \rightarrow +\infin βjhj(x)+,而将其余 α , β \alpha,\beta α,β 取 0.

​ 相反地,如果 x x x 满足约束条件时,有约束条件可知 θ P ( x ) = f ( x ) \theta_P(x)=f(x) θP(x)=f(x) 。因此,
θ P ( x ) = { f ( x ) , x 满 足 原 始 问 题 约 束 + ∞ , 其 他 \theta_P(x) = \left\{ \begin{aligned} f(x), && x 满足原始问题约束\\ +\infin, && 其他 \end{aligned} \right. θP(x)={f(x),+,x
所以考虑极小化问题
min ⁡ x θ P ( x ) = min ⁡ x max ⁡ α , β ; α i ≥ 0 L ( x , α , β ) \min_x\theta_P(x)=\min_x \max_{\alpha,\beta;\alpha_i \ge 0}L(x, \alpha, \beta) xminθP(x)=xminα,β;αi0maxL(x,α,β)
它与原始优化问题有相同的解,被称为广义拉格朗日函数的极大极小问题。定义原始问题的最优值
p ∗ = min ⁡ x θ P ( x ) p^*=\min_x\theta_P(x) p=xminθP(x)

  1. 对偶问题

    定义:

θ D ( α , β ) = min ⁡ x L ( x , α , β ) \theta_D(\alpha,\beta)=\min_xL(x,\alpha,\beta) θD(α,β)=xminL(x,α,β)

再考虑极大化 θ D ( α , β ) \theta_D(\alpha,\beta) θD(α,β) ,即
max ⁡ α , β ; α i ≥ 0 θ D ( α , β ) = max ⁡ α , β ; α i ≥ 0 min ⁡ x L ( x , α , β ) \max_{\alpha,\beta;\alpha_i \ge 0}\theta_D(\alpha,\beta) = \max_{\alpha,\beta;\alpha_i \ge 0} \min_xL(x, \alpha, \beta) α,β;αi0maxθD(α,β)=α,β;αi0maxxminL(x,α,β)
上述问题称为广义拉格朗日函数的极大极小问题,可以将广义拉格朗日函数的极大极小问题表示为约束优化问题:
max ⁡ α , β θ D ( α , β ) = max ⁡ α , β min ⁡ x L ( x , α , β ) s . t . α i ≥ 0 , i = 1 , 2 , . . . , k \max_{\alpha,\beta}\theta_D(\alpha,\beta) = \max_{\alpha,\beta} \min_xL(x, \alpha, \beta) \\ s.t. \quad \alpha_i \ge 0, i=1,2,...,k α,βmaxθD(α,β)=α,βmaxxminL(x,α,β)s.t.αi0,i=1,2,...,k
上述问题称为原始问题的对偶问题,定义对偶问题的最优值:
d ∗ = max ⁡ α , β ; α i ≥ 0 θ D ( α , β ) d^*=\max_{\alpha,\beta;\alpha_i \ge 0}\theta_D(\alpha,\beta) d=α,β;αi0maxθD(α,β)

  1. 原始问题和对偶问题的关系

    定理 1 若原始问题和对偶问题都有最优值,则

d ∗ = max ⁡ α , β ; α i ≥ 0 min ⁡ x L ( x , α , β ) ≤ min ⁡ x max ⁡ α , β ; α i ≥ 0 L ( x , α , β ) = p ∗ d^*=\max_{\alpha,\beta;\alpha_i \ge 0} \min_xL(x, \alpha, \beta) \le \min_x \max_{\alpha,\beta;\alpha_i \ge 0} L(x, \alpha, \beta)=p^* d=α,β;αi0maxxminL(x,α,β)xminα,β;αi0maxL(x,α,β)=p
证明:任意 α , β , x \alpha,\beta,x α,β,x
θ D ( α , β ) = min ⁡ x L ( x , α , β ) ≤ L ( x , α , β ) ≤ max ⁡ α , β ; α i ≥ 0 L ( x , α , β ) ≤ θ P ( x ) \theta_D(\alpha,\beta)=\min_xL(x, \alpha, \beta) \le L(x, \alpha, \beta) \le \max_{\alpha,\beta;\alpha_i \ge 0} L(x, \alpha, \beta) \le \theta_P(x) θD(α,β)=xminL(x,α,β)L(x,α,β)α,β;αi0maxL(x,α,β)θP(x)
即: θ D ( α , β ) ≤ θ P ( x ) \theta_D(\alpha,\beta) \le \theta_P(x) θD(α,β)θP(x),由于原始问题和对偶问题均有解,所以
max ⁡ α , β ; α i ≥ 0 θ D ( α , β ) ≤ min ⁡ x θ P ( x ) \max_{\alpha,\beta;\alpha_i \ge 0} \theta_D(\alpha,\beta) \le \min_x\theta_P(x) α,β;αi0maxθD(α,β)xminθP(x)
即:
d ∗ = max ⁡ α , β ; α i ≥ 0 min ⁡ x L ( x , α , β ) ≤ min ⁡ x max ⁡ α , β ; α i ≥ 0 L ( x , α , β ) = p ∗ d^*=\max_{\alpha,\beta;\alpha_i \ge 0} \min_xL(x, \alpha, \beta) \le \min_x \max_{\alpha,\beta;\alpha_i \ge 0} L(x, \alpha, \beta)=p^* d=α,β;αi0maxxminL(x,α,β)xminα,β;αi0maxL(x,α,β)=p
**推论 1 **设 x ∗ x^* x α ∗ , β ∗ \alpha^*,\beta^* α,β 分别是原始问题和对偶问题的解,并且 d ∗ = p ∗ d^*=p^* d=p 。则 x ∗ x^* x α ∗ , β ∗ \alpha^*,\beta^* α,β 分别是原始问题和对偶问题的最优解。

在某些条件下,原始问题和对偶问题的最优值相等,这时可以用解对偶问题替代解原始问题。下面以定理的形式叙述有关的重要结论而不予证明。

定理 2 考虑原始问题和对偶问题,假设

  1. 函数 f ( x ) f(x) f(x) c i ( x ) c_i(x) ci(x) 是凸函数;
  2. h j ( x ) h_j(x) hj(x) 是仿射函数;
  3. 不等式约束是严格可行的,即存在 x x x,对所有 i i i,有 c i ( x ) < 0 c_i(x)<0 ci(x)<0

则存在 x ∗ , α ∗ , β ∗ x^*, \alpha^*, \beta^* x,α,β ,使 x ∗ x^* x 是原始问题的解, α ∗ , β ∗ \alpha^*, \beta^* α,β 是对偶问题的解,并且
d ∗ = p ∗ = L ( x ∗ , α ∗ , β ∗ ) d^*=p^*=L(x^*, \alpha^*, \beta^*) d=p=L(x,α,β)
定理 3 若原始问题和对偶问题满足 定理 2 的条件,则 x ∗ x^* x α ∗ , β ∗ \alpha^*,\beta^* α,β 分别是原始问题和对偶问题的解的充分必要条件是 x ∗ , α ∗ , β ∗ x^*, \alpha^*,\beta^* x,α,β 满足下列 Karush-Kuhn-Tucker (KKT) 条件:
∇ x L ( x ∗ , α ∗ , β ∗ ) = 0 α i ∗ c i ( x ∗ ) = 0 , i = 1 , 2 , . . . , k c i ( x ∗ ) ≤ 0 , i = 1 , 2 , . . . , k α i ∗ ≥ 0 , i = 1 , 2 , . . . , k h j ( x ∗ ) = 0 , j = 1 , 2 , . . . , l \nabla_xL(x^*,\alpha^*,\beta^*)=0 \\ \alpha_i^*c_i(x^*)=0, \quad i=1,2,...,k \\ c_i(x^*) \le 0, \quad i=1,2,...,k \\ \alpha_i^* \ge 0, \quad i=1,2,...,k \\ h_j(x^*) = 0, \quad j=1,2,...,l xL(x,α,β)=0αici(x)=0,i=1,2,...,kci(x)0,i=1,2,...,kαi0,i=1,2,...,khj(x)=0,j=1,2,...,l
上面第二个条件称为 KKT 的对偶互补条件(此条件的意思是,若 x ∗ , α ∗ , β ∗ x^*, \alpha^*,\beta^* x,α,β 是最优解,则原始问题中的拉格朗日余项等于 0.)。由此条件可知:若 α i ∗ > 0 \alpha_i^*>0 αi>0,则 c i ( x ∗ ) = 0 c_i(x^*)=0 ci(x)=0.

SVM:逐句话、逐个公式的推导

LR 原理推导,损失函数,求解方法

决策树细节

编程题:

不熟悉的:

  • 股票买卖
  • 链表、二叉树的指针操作,哨兵,边界条件处理
  • 优先队列
  • 单调栈
  • 堆排序
  • 字符串理解
  • 二分法(旋转数组),边界条件
  • 单例模式
  • 多线程
  • 子序列和子串

面试遇到的:

  • 字节:字符串编辑距离
  • 百度:最长公共子序列
  • 茄子:有序数组生成二叉平衡搜索树
  • 寒武纪:排序怎么多核心并行,卷积感受野计算公式,计算一组数的全排列
  • 华为:后序遍历中序遍历构造二叉树,搬货物
  • 小米:层序遍历二叉树,链表翻转
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值