秋招总结帖,还愿牛客
秋招总结帖
待完善,持续更新
小米(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≥...≥λm≥0,特征值对应的单位特征向量分别是 α 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α1−1)
其中 λ \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α2−1)−ϕα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Σα2−2λα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Σα2−2λα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σiicov(α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=1∑mσ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=1∑mρ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=1∣x)=1+exp(w⋅x+b)exp(w⋅x+b)P(Y=0∣x)=1+exp(w⋅x+b)1
一个事件的几率 (odds) 是指该事件的概率与该事件不发生的概率的比值。如果事件发生的概率是 p,那么事件的几率是 p 1 − p \frac{p}{1-p} 1−pp ,对于逻辑回归而言,该事件的对数几率是输入 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 log1−P(Y=1∣x)P(Y=1∣x)=w⋅x
参数估计:
设:
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=1∣x)=π(x),P(Y=0∣x)=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=1∏N[π(xi)]yi[1−π(xi)]1−yi
对数似然函数为
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)] −∂w∂L(w)=i=1∑N[−yixi+1+exp(w⋅xi)xiexp(w⋅xi)]=−i=1∑Nxi[yi−hw(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+η⋅(∂w∂L(w))=wn+η⋅i=1∑Nxi[yi−hw(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=1∑N[yi−hw(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} ∂w∂L(w)=−N2i=1∑Nxi[yi−hw(xi)]hw′(xi)=−N2i=1∑Nxi[yi−hw(xi)][1+exp(w⋅xi)]2exp(w⋅xi)
当 w ⋅ x i w \cdot x_i w⋅xi 过大或过小时, 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
聚类算法
- 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=1∑Cyilog(σ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(P∣∣Q)=∑P(x)logQ(x)P(x)or∫P(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)=x∈X∑y∈Y∑p(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(X∣Y)=−x∈X∑y∈Y∑p(x,y)logp(x∣y)
- 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(P∣∣Q)=21KL(P∣∣2P+Q)+21KL(Q∣∣2P+Q)
为什么使用 softmax?
- 指数让大的更大,小的更小
- 可微
生成式模型、判别式模型
集成学习
- 集成学习的核心是得到不一样且有一定准确率的基分类器,然后表决(从降低方差的角度)
- 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}| ∣yi−yi^∣ 很小时梯度同样为 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(yi∣xi)=2π
1exp(−2(yi−yi^)2) 进一步地,假设数据集中 N 个样本点之间相互独立,则给定所有 x x x 输出所有真实值的概率,即似然 Likelihood,为所有 p ( y i ∣ x i ) p(y_i|x_i) p(yi∣xi) 的累乘
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=1∏N2π1exp(−2(yi−yi^)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=1∑N(yi−yi^)2NLL(x,y)=21i=1∑N(yi−yi^)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 的梯度平方累积变为指数衰减移动平均
梯度估计修正
- 动量法:在第
秋招总结帖,还愿牛客相关推荐
- 寒武纪2019秋招嵌入式软件开发笔试-牛客网刷题
寒武纪2019秋招嵌入式软件开发岗笔试 1.单片机IO口开漏输出和推挽输出有什么区别? 我答的:单片机的IO口可以配置为开漏输出和推挽输出两种模式,它们的主要区别在于输出方式和驱动能力不同. 开漏输出 ...
- 2020我的秋招总结帖 [数据分析岗] | 面经集合
开个帖子,记录秋招漫漫路-✨ 我的总结帖在慢慢收尾啦,7月-10月,一路写总结,回头看,还是有一些值得说的.
- 牛客网扒下来的java面筋
原文链接:https://www.nowcoder.com/discuss/167046 Java [阿里]阿里数据部门Java研发工程师(2020校招暑期实习)一面 https://www.nowc ...
- 秋招复习-后端(C++)
文章目录 前言 一.校园招聘 1.校园招聘按招聘的时间进行划分,可分为春招和秋招(不讨论日常实习生) 2.大厂offer等级 3.秋招(应届毕业生) 4.春招 二.秋招之路 1.竞争对手(内卷) 2. ...
- 零数据分析实习经历如何秋招?
01 前言 很开心给大家邀请到我去年(2019)秋招的时候在牛客上认识的同求职数分的小伙伴分享她的个人求职经历.记忆中,我的那段求职经历是较难熬的,那时候也遇到了许多志同道合的小伙伴,大家会在一起讨论 ...
- 2019秋招备战复习篇
@TOC## ? 目录 ➕ C/C++ ⭐️ Effective ? STL 〽️ 数据结构 ⚡️ 算法 ❓ Problems ? 操作系统 ☁️ 计算机网络 ? 网络编程 ? 数据库 ? 设计模式 ...
- 商汤科技20年秋招智慧城市-数据运营工程师笔试题(2019.8.19)
套题 商汤20年秋招智慧城市-数据运营工程师笔试题 题型 选择 * 20 + 问答 * 3 完成时间 60分钟 ❤️ 「更多数据分析真题」 <数据分析真题日刷 | 目录索引> ❤️ 「更多 ...
- Android开发2017秋招总结+面经
背景 在经历了春招沉重的打击(0offer)之后,我终于明白了自身实力与现实的巨大差距.但很不幸的是,我依然没有拿出百分之百的努力,一堆琐事和懒惰的心态阻止了我的步伐,导致我在8月初才开始认真的准备秋 ...
- 秋招没拿到心仪offer,春招还有机会吗?该如何准备?
最近很多秋招不理想或者考研不理想的同学问我这样一个问题:互联网公司春招还有没有机会?其实我相信大部分同学问这个问题的时候,心里都是有答案的,只不过想找一个他认为可以让他安心的人说出这个答案.那今天我就 ...
最新文章
- 【maven】 pom.xml内容没有错,但一直报错红叉 解决办法
- resttemplate 请求重试_使用Spring Cloud Ribbon重试请求
- 9.10 nohup:用户退出系统进程继续工作
- sping jdbc 链接mysql_Spring Boot JDBC 连接数据库示例
- amcharts去除版权标志
- Android内存泄漏分析心得
- Centos 6 版本下载
- 青年与计算机比赛,我市首届青少年电脑机器人竞赛精彩上演
- javaFx实现直尺效果——可旋转、拖动、拉长
- 前端开发APP应该采取什么框架?
- 华为APP UI自动化测试岗面试真题,真实面试经历。
- 诗词欣赏,沁园春政治与经济
- drv10893器件的使用
- 【Codeforces 1038D】Slime
- MySQL 8.0.16安装教程(windows 64位)
- python数据挖掘实战笔记——文本挖掘(8):用sklearn包进行关键字提取
- 百度广告投放决定排名的因素!在百度推广广告有效果吗?
- 安装ACDSee 7指南
- linux的zz命令,Linux top命令的使用
- 将LIBSVM用于多分类时根据svmtrain输出结果得到各OvO分类超平面的法向量w和偏移项b
热门文章
- 寒武纪2019秋招嵌入式软件开发笔试-牛客网刷题
- 动量法:在第
- 一阶梯度下降