一面:
讲SVM模型(从线性分类到近似线性分类再到线性不可分)
其中问了松弛变量的作用,常用的核函数
讲一下GMM模型(EM算法)
生成模型,判别模型适用场景,优缺点
Precision,Recall计算方法
讲朴素贝叶斯
二叉树后序遍历
找两份日志文件中的重复出现的ID(海量数据处理)
找出一份日志中出现次数最多的10个ID
堆实现(堆调整)
子矩阵的最大和/最大子数组和
二面:
讲KMeans
其中问了常见的聚类方法,kmeans在k未知时如何处理,kmeans适用于什么样的数据分布
文本word2Vec(不懂)
讲决策树,选择分裂节点的规则,主要讲了信息增益的计算;决策树的问题,决策树的剪枝。
交叉验证/k-fold交叉验证为什么能防止过拟合(模型选择?)
CNN在图像相关任务上为什么能成功?
1. 卷积是因为输入数据的局部相关性;
2. 权值共享是因为输入数据的局部特征具有平移不变性,即在不同位置具有共性的局部特征。这样,经过多层次堆叠,低层局部特征可以抽取成高层全局特征。
3. 权值共享能够降低计算量,而且降低了网络的训练难度。
note: 如果权值不共享,那就是局部连接层了。在某些应用,如人脸在不同的区域存在不同的特征(眼睛/鼻子/嘴的分布位置相对固定),当不存在全局的局部特征分布时,局部连接层更适合特征的提取。
讲了一下OCR(银行卡号识别),LSTM+CTC
计算字符串equation(我用了逆波兰表达式,不过没能bug-free)
三面:
volatile:提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。
left_join,outer_join
进程线程,进程通讯,线程同步
聊天