当前位置: 首页 > 科技观察

我面试了8家公司,他们问了我这些机器学习的问题,,

时间:2023-03-21 13:18:57 科技观察

【导读】今年以来,笔者一直在印度找数据科学、机器学习和深度学习领域的工作。在求职的34天里,他面试了8到10家公司,包括初创公司、服务型公司和产品型公司。笔者希望自己的面试经历能够为求职者提供一些有用的信息,因此写下了这篇文章。希望大家看完后有所收获!首先自我介绍一下:本人在机器学习领域(语音分析、文本分析、图像分析)有4年多的经验。总的来说,我认为这个领域的大部分职位主要包括文本分析(自然语言处理)和图像分析(计算机视觉)。很少有公司招聘语音或音频分析人员。我目前的目标是申请一个中高级职位,我可以领导一个深度学习或机器学习团队进行一些有趣的项目。以下是我在申请过程中被问到的问题,希望对你有所帮助。公司一:一家立足于全球服务的公司(面试时间:20-25min)您在简历中提到自己搭建了一个文档挖掘系统。你做过什么样的工作?它可以包含在主题建模中吗?使用LDA技术实现文档聚类?假设你有数百兆的数据文件,包括PDF文件、文本文件、图片、扫描的PDF文件等,请给出一个分类方案。如何阅读扫描的pdf文件或图像格式的书面文档的内容?为什么朴素贝叶斯被称为“朴素”?请详细描述朴素贝叶斯分类器。什么是深度学习?深度学习和机器学习有什么区别?心得:另外,面试官也问了一些问题,但是我被问题搞糊涂了。我不知道他想听到什么答案。一直想深入谈谈一些技术问题,比如训练一个tesseract(一个开源的OCR引擎,由惠普实验室开发,谷歌维护)或者语言模型,但他似乎不感兴趣。也许他只是想听听一些取得的成果或者一个好的解释,或者一些更好的解决方案。我觉得面试新手和有经验的专业人士之间没有区别。公司2:一家基于全球服务的公司(采访时间:40-45min)如何在无监督学习中进行文档聚类?如何查找与某些查询语句/搜索相关的文档?解释TF-IDF技术。根据我的经验,TF-IDF技术在文档分类或聚类方面效果不佳,您将如何改进它?什么是长短期记忆神经网络(LSTM)?解释它是如何工作的。什么是word2vec模型?解释python中的可变对象和不可变对象。你在python中使用了哪些数据结构?心得:整个面试过程都是围绕着文本相似度的问题,我都通过了。但是这次仍然没有更深入的技术讨论。可能公司有好几个文本分析领域的小项目,最后拿到公司的offer。公司3:一家基于全球产品和服务的公司(采访时间:40min)如何使用不平衡数据集(unbalanceddataset)处理多类别分类问题?您如何从文本句子中执行语言识别?如何用日语表示中文或象形文字?如何设计聊天机器人?(我没主意了,但我试着用基于TF-IDF相似性的意图和反馈来回答这个问题。)可以使用递归神经网络设计聊天机器人来响应输入问题的意图和回答。假设你在Reddit数据集上使用RNN或LSTM设计一个聊天机器人,它可以提供10种可能的回复,如何选择最佳回复,或者如何删除其他回复?解释支持向量机(SVM)如何学习非线性边界。心得:还有几题记不太清了。这是我第一次在面试中深入谈技术细节,然后我也拿到了这家公司的offer。公司4:成立一年的医疗初创公司(访谈时间:50min)什么是precision和recall?在医学诊断中,您认为哪一个更重要?解释准确率和召回率。如何绘制受试者工作特征曲线(ROC曲线)?ROC曲线下的面积是什么意思?如何绘制多类分类任务的ROC曲线?列出多类分类任务的其他指标。什么是敏感性(sensitivity)和特异性(specificity)?随机森林中的“随机”指的是什么?如何对文本进行分类?如何判断一篇课文已经学会了?没有TF-IDF技术就无法实现吗?(我回答说使用n-gram模型(n=1、2、3、4),并使用TF-IDF技术创建长向量计数)机器学习还能做什么?(我建议LSTM结合word2vec,或者1D循环神经网络结合word2vec,做分类。但是面试官想基于机器学习改进算法。)当神经网络由线性组成时,神经网络如何学习非线性形状节点?它学习非线性边界的原因是什么?经验:还有几个好问题我不记得了。虽然整体面试过程不错,但我们在一些问题上意见不一。而且在面试的过程中,我发现作为一个创业公司,目前做ML、DL、DS的只有2-3个人。最后,我面试失败了。公司5:亚马逊(面试时间:50-55min)训练决策树时,它的参数是什么?在决策树的某个节点进行分裂时,分裂标准是什么?基尼系数的计算公式是什么?熵的计算公式是什么?决策树如何决定哪些特征必须被拆分?如何利用数学计算收集到的信息?简述一下随机森林的优点。简述boosting算法。梯度提升算法(gradientboosting)是如何工作的?简述AdaBoost算法的工作原理。SVM中使用了哪些内核?SVM的优化技术有哪些?SVM是如何学习超平面的?讨论其数学运算的细节。谈论无监督学习?有哪些算法?K-Means聚类算法中如何定义K的值?列出至少3种在K-Means聚类算法中定义K的方法。除此之外你还知道哪些聚类算法?让我介绍一下DB-SCAM算法。简述HierarchicalAgglomerativeclustering的工作原理。解释主成分分析算法(PCA),并简要描述使用PCA算法的数学步骤。20.使用PCA算法有什么缺点?谈谈卷积神经网络的工作原理?详细解释其实现细节。解释卷积神经网络中的反向传播。您如何部署机器学习模型?我们大多数人都必须使用C++从头开始??构建机器学习模型。你能做这个吗?经历:面试亚马逊6级,主要关注算法和数学。但是我并没有准备数学的知识,只是把自己知道的说了一遍,并没有更详细的讨论数学的细节,所以面试官认为我不适合level6的工作。我相信如果能记住机器学习算法在数学上的一般表示,就能轻松通过亚马逊技术面试。公司6:某全球服务巨头(采访时间:50-55min)Sigmoid函数的作用域是什么?命名scikit-learn可以实现逻辑回归的包。标准正态分布的均值和方差是多少?你在Python中使用什么数据结构?文本分类的方法有哪些?你会如何分类?讲解TF-IDF技术及其缺点,如何克服TF-IDF缺点?什么是双字母组和三字母组?用一段文字解释一下Bigrams和Trigrams的TF-IDF技术。举例说明word2vec的应用。如何设计神经网络?如何做到“深度”?这是一个基本的神经网络问题。简述LSTM的工作原理。它是如何记忆文本的?什么是朴素贝叶斯分类器?抛10次硬币正面朝上4次的概率是多少?如何获取Python列表中元素的索引?如何合并两个熊猫数据集?从用户行为上,你需要模拟一个欺诈活动,你会如何解决这个问题?这可能是异常检测问题或分类问题!你更喜欢哪个,决策树还是随机森林?逻辑回归和随机森林有什么区别?您会使用决策树或随机森林来解决分类问题吗?随机森林有什么优势?经历:我也拿到了这家公司的offer。事实上,我非常享受这次技术交流。你可能认为这些问题是机器学习和数据科学领域最基础的问题,但我感觉面试官可能不是这个领域的,或者可能不太了解这个领域的发展。公司7:一家全球性的商业管理公司(采访时间:25-30分钟)在一个不平衡的数据集中,你会选择哪个模型:随机森林还是Boosting?为什么?你知道哪些Boosting技术?用监督学习解决分类问题,你会选择哪种模型?假设有40-50个类别!你如何使用Ensemble技术?简述支持向量机(SVM)的工作原理。什么是内核?简单介绍一下。如何实现非线性回归?什么是套索回归和岭回归?心得:说实话,这次面试有点水,让我没把它当回事。但这是个好问题。我面试的职位是带领一个15、16人的团队做项目,然后是经理面试和HR面试。最后,他们给我提供了工作咨询和丰厚的薪水。公司8:成立四年的生产服务公司(60分钟)你在简历中提到你在演讲中做过发音识别。具体来说,你的实现方式是什么?什么是梅尔频率倒谱(MFCC)?什么是高斯混合模型,它是如何完成聚类的?如何最大化期望?说说它的实现步骤。GMM模型中的概率是如何计算的?GMM-UBM技术在发音识别时如何进行MAP调整?告诉我你使用的I-vector技术。分析语境时的主要因素是什么?JFA和I-vector有什么区别?为什么选择I-vector而不是JFA?你用过PLDAI-vector技术吗?你看过百度的DeepSpeakerPaper吗?如果有两种模式供你选择,你选择的依据是什么?(探索模型选择的技术)简述贝叶斯信息量度(BIC)和赤池信息量(AIC)的数学工作原理。贝叶斯信息量度和Akaike信息量如何工作?MFCC特征向量矩阵中数据缺失怎么办?如何进行语音识别?有什么特点?你的分类器是语音和音乐分类器,还是语音和非语音分类器?深度神经网络如何用于语音分析?经验:是的,您可能会对这些是什么样的问题感到惊讶。巧合的是,我们的两个研究领域都是语音分析(尤其是发音识别)。所以整个面试过程一直在围绕语音分析提问。显然,面试官很专业,给了我积极的反馈。后来,这家公司给了我一份AI解决方案架构师的工作。一些建议在整个求职过程中,我已经与大约25-30名专业人士交谈过,这里是我对读者和求职者的建议:简历很重要。一定要在简历中写清楚你参加过的项目、Kaggle比赛、MOOC课程证书或获得的论文。我刚接到亚马逊的面试电话,没有任何参考资料。您的简历是给HR和面试官留下深刻印象的有力工具。信心和热情是成功的一半。自信地参加面试,向面试官展示你的热情(这在面试初创公司和服务型公司时尤为重要)。不要急于回答面试官的问题。在回答之前花点时间整理一下你的答案,如果你对问题有什么不明白的地方一定要问面试官。还有,面试的时候一定要冷静!解释概念时一定要正确表达自己。举几个你做过的项目的例子,一定要熟悉简历中提到的能力和项目。在大多数情况下,面试官正在寻找该领域有经验的技术人员。如果您是该领域的新手,请在创建简历时从您完成的项目开始。您的GitHub帐户也很有说服力。此外,你还可以参加Kaggle比赛和MOOC课程。面对面试官时,一定要谦虚,注意面试官的意见,否则会被拒绝。有时候,用R和Python的人互相看不起,你最好不要卷入这种争论,否则很容易被拒。我个人认为R语言和Python语言都是实现逻辑和概念的工具。最后祝大家面试成功!