笔试面经
最后更新于
这有帮助吗?
最后更新于
这有帮助吗?
回答一个面试问题的基本要点
是什么、
为什么(动机)、
怎么做(原理)、
使用场景、
一些细节(如果使用过的话)
- CSDN博客
自我介绍
聊项目
深度学习基本问题
【算法】手写 K-Means
磕磕绊绊算是写出来一个框架,内部细节全是问题,面试官比较宽容,勉强算过了
自我介绍
聊项目
深度学习基本问题
【算法】找数组中前 k 大的数字
我说了两个思路:最小堆和快排中的 partition 方法;让我选一个实现,我选的堆方法,然后又让我实现调整堆的方法
自我介绍
为什么会出现梯度消失和梯度爆炸
分别说了下前馈网络和 RNN 出现梯度消失的情况
有哪些解决方法
因为提到了残差和门机制,所以又问
分别说下它们为什么能缓解梯度消失
因为说残差的时候提到了 ResNet,让我介绍下 ResNet(没用过,随便说了几句)
其他加速网络收敛的方法(除了残差和门机制)
我从优化方法的角度说了一点(SGB 的改进:动量方法、Adam)
提示我 BN,然后我就把 BN 的做法说了一下
然后问 BN 为什么能加速网络的收敛(从数据分布的角度随便说了几句)
传统的机器学习方法(简历上写用过 GBDT)
简单介绍下 XGBoost
CART 树怎么选择切分点(基尼系数)
基尼系数的动机、原理(不会)
【算法】直方图蓄水问题
当时太紧张没想出
O(N)
解法,面试一结束就想出来了,哎
附 AC 代码
```C++
class Solution {
public:
};
```
因为流程出了问题,其实还是三面
【算法】和为 K 的连续子数组,返回首尾位置
很熟悉的题,但就是没想出来;然后面试官降低了难度,数组改成有序且为正整数,用双指针勉强写了出来;但是边界判断有问题,被指了出来;然后又问无序的情况或者有负数的情况能不能也用双指针做,尬聊了几分钟,没说出个所以然。
如何无监督的学习句子表示
我说 Self-Attention
让我把公式写出来,因为写的不清楚,让我写原始的 Attention
然后问怎么训练,损失函数是什么(没说出来,除了词向量我基本没碰过无监督任务,而且我认为词向量也算不上无监督...)
如何无监督的学习一个短视频的特征表示
抽取关键帧,然后通过 ResNet 等模型对每一帧转化为特征表示,然后对各帧的特征向量做拼接或者直接保存为二维特征(瞎说的,别说视频,我连图像都没做过)
自我介绍;
二分查找;
判断链表是否有环;
将数组元素划分成两部分,使两部分和的差最小,数组顺序可变;
智力题,在一个圆环上随机添加3个点,三个点组成一个锐角三角形的概率;
推导逻辑斯蒂回归、线性支持向量机算法;
在一个圆环上随机添加3点,三个点组成一个锐角三角形的概率;
用积分计算上述概率;
用程序解决上述问题
多次采样求概率,关键是如何判断采样的三个点能否构成锐角三角形,不同的抽象会带来不同的复杂度。
最直接的想法是,根据边长关系,此时需要采样三个 x 坐标值,相应的 y 坐标通过计算得出,然后计算三边长度,再判断,循环以上过程,计算形成锐角的比例。
深度学习,推导反向传播算法,知道什么激活函数,不用激活函数会怎么样,ROC与precesion/recall评估模型的手段有何区别,什么情况下应该用哪一种?深度学习如何参数初始化?
介绍kaggle项目,titanic,用到了哪些框架,用到了哪些算法;
自我介绍;
分层遍历二叉树,相邻层的遍历方向相反,如第一层从左到右遍历,下一层从右向左遍历;
介绍AdaBoost算法;
介绍梯度下降,随机梯度下降
写出逻辑斯蒂回归的损失函数;
C++,虚函数,虚析构函数。
论文/项目相关
意图识别数据怎么标注
怎么样做实体抽取
怎样进行 aspect-level 情感分析
模型中增强学习的 reward 如何设计的;为什么这样设计
论文/项目相关
seq2seq 中 scheduled sampling 如何做的
RL部分训练过程中数据集如何构造
如何防止过拟合,你都采用了哪些方法,还有哪些你没有用到的方法
【编程题】给定整数n,求离根号n最近的整数。
论文/项目相关
RL + Seq2seq相关问题
Seq2seq怎样和RL结合,这里的action与state都是什么
如何设计reward,为什么选取这样的reward
具体训练流程是怎样的
深度学习相关
BiLSTM 相比 LSTM有哪些 case 上的提升
Attention 是如何加的取得了哪些效果的提升
能介绍几个传统的机器学习模型吗,列举了:决策树,SVM, RF等
具体说明一下决策树如何划分,写出相应的公式
具体解释一下RF
【编程题】类似求一个旋转数组的拐点位置
共 4 道编程题
原题是找山脉,这里改成了山谷
“坑”点说明
输入就是字符串 "[4,3,2,5,3,1,4,8]" 包括括号和标点
问题是,直接返回 0 也有 20% 的正确率,导致我一直没想到是输入上的问题,直到最后都卡在 20%
建议所有需要处理字符串的问题,都使用 Python,这里只要
A = eval(input())
就完事了;而 C++ 如果不熟悉 STL 的话,处理输入都比题目本身难了思路:暴力枚举;看代码更直观
问题描述
思路:暴力枚举前缀
数学题
问题描述
思路:
统计每个数字出现次数counter,以每个数字为基准,按照与基准差值对counter排序,优先替换差值小的数字;关于字典序的问题,如果替换的数比基准大则从前向后替换,如果替换的数比基准大,则从后向前替换,得到的就是字典序最小的字符串,时间复杂度O(n)
TODO 目前还没看到完全 AC 的代码
LeetCode ;
LeetCode
笔经面经牛客网
Algorithm_for_Interview/常用子函数/
Algorithm_for_Interview/链表/
Algorithmfor_Interview/查找与排序/[暴力搜索划分数组使和之差最小.hpp]()
../数学问题/
../机器学习/
../机器学习/
更简单的,根据 中提到的简单思路,原问题可以等价于“抛两次硬币,求两次均为正面的概率”——此时,只需要采样两个(0, 1)
之间的值,当两个值都小于 0.5 意味着能构成锐角三角形。
../深度学习/
../深度学习/
../深度学习/
../深度学习/
笔经面经牛客网
深度学习/
二分查找; - LeetCode
问题描述:LeetCode 845.
C++ 代码 (没做输入处理)
Python 代码
题目描述:Leetcode 754.
思路: - 知乎
C++ 代码
笔经面经牛客网