-
L2范数的作用是什么,原理是什么?为什么?
答:损失函数正则项,防止过拟合。原理是可以减小网络权重(或者说某一维特征对应的权重)的值。从矩阵分解的角度来说,对数据分布越重要的特征收到的抑制越小。
减小参数可以防止的过拟合的原因是:
延伸: L1范数的作用是使得某些特征对应的权重缩减为0,相当于舍弃部分对数据分布作用不大的特征,也可以防止过拟合。 -
【图森】为什么一般的分类任务中不需要margin-loss,而人脸识别需要使用margin-loss?
答:margin-loss的作用是使得特征空间具备“类内差异小”和“类间差异大”的良好特征。对于一般的分类任务而言,特征空间本身就具备“类间差异”比“类内差异”要大很多的性质,margin-loss对于特征空间的改良对其帮助不大(但还是有帮助的,东良说A-softmax在cifar-100上也有涨点);而且一般分类任务直接输出样本属于该类的概率值,只需要保证“已知类别分类正确即可”,不要求未知类别的同类样本和异类样本能区分开(即不要求同类样本的距离比类别相异样本的距离更近,只要求不同类样本分布在分类超平面两侧就行了),不要求学出的特征特别compact。人脸识别任务则要求学出的特征比较compact,对open-set任务有更好的泛化性。 -
【图森】为什么人脸的loss要对weight和feature做normalization?
答:1.总的来说,softmax损失在优化的时候,增大的是 W x Wx Wx,又可以视为 ∣ ∣ W ∣ ∣ ⋅ ∣ ∣ x ∣ ∣ c o s θ ||W||·||x||cosθ ∣∣W∣∣⋅∣∣x∣∣cosθ,这时候会同时发生3件事:
1.增大正确类别的 ∣ ∣ W ∣ ∣ ||W|| ∣∣W∣∣, 样本越多越简单的类别越大,反之则小。证明见A-softmax的附录
2.改变样本的 ∣ ∣ x ∣ ∣ ||x|| ∣∣x∣∣,简单样本的norm大,困难样本的norm小。证据见L2-softmax
3.增大 c o s θ cosθ cosθ, 即减小 θ θ θ
以上3件事是同时发生的。 ∣ ∣ W ∣ ∣ ||W|| ∣∣W∣∣和 ∣ ∣ x ∣ ∣ ||x|| ∣∣x∣∣的改变会使特征的衡量在欧式距离metric space下变得很困难。
所以首先将 ∣ ∣ W ∣ ∣ ||W|| ∣∣W∣∣ norm到1,可以将metric space由欧式距离转为余弦相似度,将特征分布从欧式距离空间转到一个 超球面上,再将 ∣ ∣ x ∣ ∣ ||x|| ∣∣x∣∣ norm到一个较大的固定值(如果只是norm到1的话会导致 W x Wx Wx不够大,正确样本的概率高不起来,难以优化)。这时损失函数在优化的时候就可以专心减小 θ θ θ。
延伸:简单样本的 ∣ ∣ x ∣ ∣ ||x|| ∣∣x∣∣大,困难样本的 ∣ ∣ x ∣ ∣ ||x|| ∣∣x∣∣小,是softmax训练的特征总是呈放射状(花瓣状)的原因。 -
AUC怎么算?为什么AUC可以全面评价模型表现?(相似问题,MAP怎么算)
答:因为AUC在测试时对正负样本比例不敏感 -
ResNet的原理
答:ResNet相当于将学习一个函数映射转换成学习一个恒等变换问题,学习难度更低。详情见:浅析深度ResNet有效的原理另一角度来说从反传公式来看,shortcut也可以缓解梯度爆炸或者梯度消失问题。 -
极大似然估计是什么?
-
【阿里】为什么分类要用CELoss不用MSELOSS?
答:主要从与softmax结合的梯度反传的角度来解释,CELoss更好优化。具体自己手推。 -
【阿里】线性回归与逻辑回归的区别?
答:线性回归用来解决回归问题,优点是计算简单,缺点是对于非线性数据拟合效果差。由于线性回归不能用于二分类问题,所以将线性回归拟合的函数通过sigmoid function映射到(0,1)之间,就得到了逻辑回归。 -
【阿里】需要对AdaBoost、GBDT、SVM、RF等传统算法有更多了解
-
【阿里】用过哪些优化器,原理是什么,有什么特点?
答:SGD(注意batch gradient decend、stochastic gradient decend以及mini-batch gradien decend的区别,现在说SGD一般指mini-batch GD)。SGD的优点是经过精细的调参可以使模型的最终表现比较好。缺点是调参困难,容易陷入局部极值和鞍点,对所有参数使用相同的学习率。
momentum:
在梯度更新的方向加入动量,可以使得SGD优化更稳定,收敛更快,也有一定摆脱局部极值的能力。
Adagrad、RMSprop:自适应学习率方法,没有用过。特点是会对不同参数的学习率进行调整,适合处理参数比较稀疏的模型优化问题。
Adam:带动量的自适应学习率方法,它利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率。Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳;模型收敛较快、不需要特别精细地调参。缺点是模型的最终表现往往不如SGD的最优表现。
具体总结见优化方法总结
延伸问题:Weight decay是什么,有什么作用?
答:weight decay的参数值实际就是损失函数正则项前的惩罚系数,通常比较比较小。正则项默认为L2-norm。
- 【头条】python进程间通信、python装饰器
- 【头条】输入一个二维矩阵,存储时任意操作,调用一个接口给定两个点的坐标,O(1)时间复杂度返回两个点所包围的矩形的所有元素的和。
答:存储时存储所有点和(0,0)点所构成的矩形元素的和,用 S u m a b Sum_{ab} Sumab表示(0,0)和(a,b)矩形中所有元素的和。给定两个点( x 1 , y 1 x_1,y_1 x1,y1) ( x 2 , y 2 x_2,y_2 x2,y2)【 x 2 > x 1 , y 2 > y 1 x_2>x_1,y_2>y_1 x2>x1,y2>y1】,返回 S u m x 2 y 2 − S u m x 2 y 1 − S u m x 1 y 2 + S u m x 1 y 1 Sum_{x_2y_2}-Sum_{x_2y_1}-Sum_{x_1y_2}+Sum_{x_1y_1} Sumx2y2−Sumx2y1−Sumx1y2+Sumx1y1
- 【头条】输入是NDHW的BN层的参数量,存储了哪些中间值,这些中间值的维度是什么?
答:
对于CNN来说,是把一个通道的H*W的特征图当做一个数据sample来处理。详情见我自己写的BN总结。 - 【腾讯】有哪些线性分类模型?各自的特点是什么。
答:线性关系是指自变量x与因变量yo之间可以表示成y=ax+b ,(a,b为常数),即说x与y之间成线性关系。
不能表示成y=ax+b ,(a,b为常数),即非线性关系,非线性关系可以是二次,三次等函数关系,也可能是没有关系。
线性分类器:模型是参数的线性函数,分类平面是(超)平面;
非线性分类器:模型分界面可以是曲面或者超平面的组合。
典型的线性分类器有感知机,LDA,逻辑斯特回归,SVM(线性核);
典型的非线性分类器有kNN,决策树,SVM(非线性核) - 【腾讯】数据标准化和数据归一化有什么区别?