面字节算法工程师的时候,面试官问我项目中的一个有几百个类别的深度学习分类模型,一直没Get到面试官想要的回答是什么:
“是怎么预测的,或者说目标函数是怎么定义的”
我答用目标函数是交叉熵损失
追问“你这个项目里,二分类和几百分类的区别是什么,从模型设计角度讲”
我答CE loss 可以扩展到任意维度
追问“具体的目标函数形式是什么样子,交叉熵损失是怎么用进去的”,“不是交叉熵的公式,而是对这几百个类别”,“你的损失函数是怎么定义的”,“用形式化的语言描述一下”
我答是(用交叉熵的公式)拟合预测标签分布和真实标签分布之间的误差
面试官觉得很泛,要求我说出更细节的东西,比如每个类的表示、输出多少个结果
面试官最后问“用一个二分类的目标模型,有几种方式实现多分类”
我回答要么输出一个1*C的标签概率向量,要么直接输出一个回归预测值作为标签
😣这个初级问题问了五分钟,不太明白到底要回答什么、想follow-up什么。是想让我串讲一下多分类的实现方式,一对多、多对多那些,还是目标函数的几种分类(回归loss、分类loss等)?
“是怎么预测的,或者说目标函数是怎么定义的”
我答用目标函数是交叉熵损失
追问“你这个项目里,二分类和几百分类的区别是什么,从模型设计角度讲”
我答CE loss 可以扩展到任意维度
追问“具体的目标函数形式是什么样子,交叉熵损失是怎么用进去的”,“不是交叉熵的公式,而是对这几百个类别”,“你的损失函数是怎么定义的”,“用形式化的语言描述一下”
我答是(用交叉熵的公式)拟合预测标签分布和真实标签分布之间的误差
面试官觉得很泛,要求我说出更细节的东西,比如每个类的表示、输出多少个结果
面试官最后问“用一个二分类的目标模型,有几种方式实现多分类”
我回答要么输出一个1*C的标签概率向量,要么直接输出一个回归预测值作为标签
😣这个初级问题问了五分钟,不太明白到底要回答什么、想follow-up什么。是想让我串讲一下多分类的实现方式,一对多、多对多那些,还是目标函数的几种分类(回归loss、分类loss等)?
全部评论
他是想问你OvO、OvR、MvM吧
总觉得算法很高深的
应该是多分类实现方式。我记得好像3种吧。以前考试考过。感觉问的不难。
面试官问你的问题很好啊,确实是在考基础。
例如,第一个问题,目标函数是怎么定义的?你说目标函数是交叉熵损失,你没有get到面试官的点在哪儿。面试官问你这个问题,不是说问你具体某个算法的目标函数是怎么定义的?而是说目标函数的设计思路是什么?是一个更广泛的概念上的问题,而不是具体的技术细节,你说的交叉熵损失太细节了,不是面试官提问的问题。这么说,如果面试官问你分类模型的目标函数是怎么定义的,你说是交叉熵完全没有问题,但是他没有提到分类模型,也没有提到其他模型,你直接把分类模型的交叉熵损失目标函数说了出来,肯定不行的。目标函数在定义的时候,有一个思想,是目标函数是指示当前预测值和ground truth之间的gap的,也就是说,如果他们之间的gap大,目标函数应该比较大,如果他们之间的gap小,目标函数应该比较小,目标函数能反映出来他们之间的gap,按照这个思路去设计目标函数。
所以,你在说你的答案的时候,一定把面试官的问题想明白了,再去组织语言,按照逻辑去说。
@河老师
感觉他或许想问你 针对每类做二分类还是直接多分类 两者的区别与你的思考🤔
cy深度学习面试
相关推荐


深信服
| 校招
| 14个岗位

点赞 评论 收藏
分享
点赞 评论 收藏
分享