开贴记录实习面试,为了以后找工作备用
电话一面:
在线编程, 求两个有序数组交集, 我写了一个比暴力法强一点的版本,从头遍历A和B,A大B往后移动,B大A往后移动.时间复杂度O(M+N)
他: 如果其中一个数组很长怎么办?
当时太紧张没答出来.应该是用二分查找
他: variance和bias是什么, 如果这两个东西高了分别代表什么?
我: variance是方差, bias是误差. variance高了代表过拟合, bias高了代表欠拟合.
他:优化方法了解哪些?
我:SGD,牛顿法,最小二乘法
他:说一下momentum?
我:不太了解,但是我的理解可能是梯度,梯度就是更新的方向,学习率就是步长.
他: 过拟合有什么方法解决?
我: 正则化, dropout,early stopping
他: 正则化介绍一下
我: 有L1和L2正则化,比较常用的L2正则化
他:有什么区别?为什么好用?
我: L1正则化是一范数,L2是二范数.在损失后面加正则项一起优化,相当于给参数加了一层限制,也就是所谓的权重衰减,这样可以避免过大和过小的数据对模型影响太大.
他:还可以,能不能说一下隐马尔可夫和条件随机场?
我:HMM是生成模型, 它是对X,Y的联合分布对P(X,Y)建模, 预测时利用P(X, Y)和输入的P(X)反推P(Y | X). CRF是判别模型,直接对P(Y|X)建模
他:你说的是模型上的区别, 能不能从理论上讲一下?
我: HMM是根据马尔科夫假设, 当前状态只和前一个状态有关, 他只考虑前面的.而CRF是在全局范围内的状态转移.
他:GRU和LSTM都知道吧,说一说GRU吧
我:GRU没怎么用过, 能不能说一说LSTM?
他:不行
我:(不知道对不对)GRU和LSTM不同点是他没有LSTM的cell状态, 它的输入通过sigmoid和tanh,巴拉巴拉,全是乱说