作为面试官准备提问的问题及其答案

一、模型的问题

1.1 SVM

1.1.1 原理 ♦

用最优分类面分割正负样本。
多分类时:1)一对多,取k个分类结果得分最高; 2)一对一,取k(k-1)/2;

1.1.2 损失函数 ♦

损失函数的特点,详情见 我的blog文章

1.2 LSTM

1.2.1 损失函数
1.2.2 门限及公式 ♦

LSTM 的关键就是细胞状态,水平线在图上方贯穿运行。
在这里插入图片描述
典型的LSTM包含:遗忘门、输入门、输出门。

  • 遗忘门
    遗忘门负责输出一个介于0到1之间的 f t f_t ft ,相当于一个系数,乘以 C t − 1 C_{t-1} Ct1 代表遗忘细胞中一定程度的信息。
    在这里插入图片描述
  • 输入门
    输入门负责向细胞内输入信息,输入的信息为 i t C ~ t i_t \tilde{C}_t itC~t
    遗忘门和输入门一同完成了细胞信息的更新工作: C t = f t C t − 1 + i t C ~ t C_t=f_t C_{t-1} + i_t \tilde{C}_t Ct=ftCt1+itC~t
    在这里插入图片描述
  • 输出门
    在这里插入图片描述
1.2.3 具体模型案例 ♣
  • 深度文本匹配模型

描述结构(包括维度)。详情见 我的blog文章

  • 文本分类模型、关系抽取模型

讲清楚背景、方法流程、最后的模型结构(包括维度)。

1.2.4 实际问题解决 ♣

问:在没有其他大量语料的情况下,如何在一堆问题里面找出100个常用问题?
答:
1、sentense embedding(多关注语义层面,这样不仅关注字符串层面)
2、迁移学习(但本质也是一种embedding)
最后再聚类。

1.3 神经网络

1.3.1 BatchNormalization的原理与意义

意义:为什么要使用BatchNorm,因为效果好。经过这么简单的变换,不仅仅极大提升了训练速度,收敛过程大大加快,还提升效果。
详情见 我的blog文章

1.3.2 Attention原理

Attention原理
Attention代码实现运算(需要用numpy能手撕一个attention出来)
Self-Attention本身就可以保留句子中单词的位置信息?

1.3.3 Transformer原理
1.3.4 Bert原理

1.4 W2V

1.3.1 大致原理 ♦

描述清楚

1.3.2 实现细节

在这里插入图片描述

1.5 XGBoost

1.4.1 大致原理 ♦

xgboost入门与实战(原理篇)
xgboost的原理没你想像的那么难

1.4.2 和GBDT的关系 ♦

XGboost是一个工具,里面有多种模型,GBDT只是其中一个。

1.4.3 Xgboost如何并行

xgboost工具支持并行。boosting不是一种串行的结构吗?怎么并行的?注意xgboost的并行不是tree粒度的并行,xgboost也是一次迭代完才能进行下一次迭代的(第t次迭代的代价函数里包含了前面t-1次迭代的预测值)。xgboost的并行是在特征粒度上的。我们知道,决策树的学习最耗时的一个步骤就是对特征的值进行排序(因为要确定最佳分割点),xgboost在训练之前,预先对数据进行了排序,然后保存为block结构,后面的迭代中重复地使用这个结构,大大减小计算量。这个block结构也使得并行成为了可能,在进行节点的分裂时,需要计算每个特征的增益,最终选增益最大的那个特征去做分裂,那么各个特征的增益计算就可以开多线程进行。
详情见参考blog

二、优化的问题

2.1 softmax ♦

2.1.1 softmax和logistic区别

softmax和logistic区别,如何互相推导。

softmax的代价函数是
在这里插入图片描述
其中,
在这里插入图片描述
logistic的代价函数是
在这里插入图片描述
因此,softmax是logistic的推广。
Softmax回归与Logistic 回归的关系
当类别数 K = 2 K=2 K=2 时,softmax 回归退化为 logistic 回归。这表明 softmax 回归是 logistic 回归的一般形式。具体地说,当 K = 2 K=2 K=2 时,softmax 回归的假设函数为:
在这里插入图片描述
利用softmax回归参数冗余的特点,我们令 ψ = θ 1 \psi=\theta_1 ψ=θ1 ,并且从两个参数向量中都减去向量 θ 1 \theta_1 θ1 ,得到:
在这里插入图片描述
因此,用 θ ′ \theta' θ 来表示 θ 2 − θ 1 \theta_2-\theta_1 θ2θ1 ,我们就会发现 softmax 回归器预测其中一个类别的概率为 1 1 + e x p ( θ ′ T x ( i ) ) \frac{1}{1+exp(\theta'^T x(i))} 1+exp(θTx(i))1,这与 logistic回归是一致的。

**[注]**那当我们遇到Softmax 回归 vs. k 个二元分类器时该如何做选择呢?
一般来讲,当几个类别是互斥的时候我们选择前者比较合适,当几个类别可以多选共存时应该选择后者。

2.1.2 Softmax和sigmoid的损失函数

softmax配合category crossentropy loss 使用,sigmoid配合binary cross entropy loss使用。

熵 = y ∑ p 熵=y \sum p =yp
category crossentropy loss是只有y=1 的那一项熵;
binary cross entropy loss是每一项熵都有,如果y=0就会把p就变成1-p;

详细展开参考【4】【5】。

2.2 过拟合 ♦

常用应对过拟合的方法有:

  • Early stopping
  • 调节步长
  • 正则化(参数太多、模型复杂度高)
  • 数据集扩张,欠采样和多数据源采样
  • DropOut
  • 10轮CV
  • 多模型融合
  • 权值衰减

2.3 正则化项 ♦

2.3.1 L1范数和L2范数的特点

L1正则更加容易产生稀疏解、L2正则倾向于让参数w趋向于0。(都是让模型更加简单)

左:L2范数示意图,右:L1范数示意图

2.3.2 如何改变正则化项的权重

利用惩罚系数加入loss function中。

2.4 机器学习项目/比赛的步骤

2.4.1 预处理
2.4.2 特征工程

突出亮点特征

2.4.3 模型搭建、调参
2.4.4 模型融合

2.5 调参过程 ♥

2.6 模型融合 ♦

三、评价方式

3.1 Pre&Recall ♦

以及F值

3.2 ROC&AUC ♦

ROC的意义:
  横坐标是“假阳性比例”,纵坐标是“真阳性比例”(也可以是“假阴性”),描述了对正样本正确分类和错误分类的关系。(雷达兵的误报和漏报关系)
  ROC曲线越靠近左上角,试验的准确性就越高。最靠近左上角的ROC曲线的点是错误最少的最好阈值,其假阳性和假阴性的总数最少。
  AUC指的就是ROC曲线下的面积大小占总面积的比例。
  ROC曲线示意图

3.3 假阴性和假阳性权重不同 ♦

当真阳性和假阳性权重相同时,ROC曲线上最好的点就是45°切线,即 y = x + b y=x+b y=x+b

当真阳性和假阳性权重不同时,则需要根据不同的权重设计一个 y = k x + b y=kx+b y=kx+b 的斜线,改变 b b b 的过程中和ROC曲线相切的点所对应的阈值就是最佳阈值。

四、开发优化问题

4.1 Mapreduce

  • combiner
    combiner作为mapper和reducer之间的衔接,适用于具有结合律性质的情况。大大降低reducer的压力。
    在这里插入图片描述
  • 二次排序

4.2 Mysql

4.2.1 具体问题

统计下表中各商品的数量:

客户序号购物内容
1001电脑,手机,手表
1002手机,手表
1003手表,马桶

详情见blog

4.3 Python机制

4.3.1 循环

循环是强制赋值的

for i in range(5):
  print(i)
  i=10
4.3.2 try

try和finally的用法

def fun()
  try:
    return 1
  finally:
    return 0

在这里插入图片描述

4.4 数据结构算法

4.4.1 前k个高频元素

1、hashmap
2、堆

4.4.2 最大回文数

1、遍历(轻微优化)
2、动态规划

五、引用

[1] softmax与logistic关系
[2] python中try和finally的应用
[3] RNN梯度消失和爆炸的原因
[4]解析损失函数之categorical_crossentropy loss与 Hinge loss
[5]深度学习-Loss函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值