依图科技算法面经秘籍
《AI未来星球》陪伴成长的人工智能社群,价值过万的各种内部资源及活动,限时特惠中,点击查看。
求职跳槽福利:为了便于大家求职、跳槽的准备,大白将45家大厂的面经,按照知识框架,整理成700多页的《人工智能算法岗江湖武林秘籍》,限时开放下载,点击查看下载。
面经整理历程:经过一年多的努力,大白整理了超过3500篇,各类大厂的算法面经资料。
并将涉及到的知识点,按照知识框架,分类汇总,每个公司整理成一篇,比如本文的依图科技面经。
大家对照面经,可以了解心仪的公司,会根据你的简历,问哪些知识点?便于大家对掌握的知识,进行回顾梳理。
希望为大家在求职或者跳槽的道路上,提供一些帮助,为大家取得心仪的offer助力。
面经整理心得:大白也将整理所有面经的心得,写成了一篇文章,点击查看心得。
其他大厂面经:国内其他大厂的面经汇总,点击查看目录。
依图科技面经整理:江大白
1 依图科技面经汇总资料
1.1 面经汇总参考资料
① 参考资料:
(1)牛客网:依图科技面经-29篇,网页链接
(2)知乎面经:点击进入查看
(3)面试圈:点击进入查看
② 面经框架及参考答案:
(1)面经知识框架:点击进入查看
(2)面经参考答案:点击进入查看
1.2 面经涉及招聘岗位
(1)全职岗位类
【NLP算法工程师】、【计算机视觉算法工程师】
1.3 面试流程时间安排
PS:以上流程为大白总结归纳所得,以供参考。
其他注意点:
● 实习岗位,有的人是2面+HR
● 正式岗位,有的人是3面+HR
1.4 依图科技面试心得汇总
★ 感觉对编程题和逻辑题非常注重,考察了很多这方面的题目
★ 也会深挖项目,使用的模型,损失函数,数据都会讲解
★ 手撕代码为主,不像其他公司以项目为主
★ 自我介绍+两道编程题+有时间问项目,三面包括最后的leader面都是逻辑为主
★ 面试官喜欢用C++做算法,说第一次见到用python刷题的,被鄙视
★ 经常是稍微问下项目,然后开始做题,而且经常会根据项目问一下发散性的问题
★ 对依图的现场面进行一下评价,总体来说比较人性化,面试官都很友善(我做的四道题都有被提示),比较重视数学功底、coding和推理能力,但对机器学习深度学习的基础考察的不多。
2 依图科技面经涉及基础知识点
2.1 图像处理基础
● 均值滤波的原理说一下?
2.2 深度学习:CNN卷积神经网络方面
2.2.1 讲解相关原理
2.2.1.1 卷积方面
● Group conv和separable conv讲一下原理?
● 3D数据直接3D卷积,和2.5D有什么区别?
● Dropout原理?
2.2.1.2 网络结构方面
● 说一下mobile net和resnet在特征提取上的本质不同?这两种网络使用的场景和原因?
2.3 深度学习:RNN递归神经网络方面
2.3.1 讲解相关原理
● LSTM和GRU区别?
2.4 深度学习:CNN&RNN通用的问题
2.4.1 模型评价
● 简历上很多的项目指标、业务场景?
● 项目中涉及的各个算法的评价指标意义和数值,整体评价, 数据量,怎么划分, 样本不平衡?
2.5 传统机器学习方面
2.5.1 讲解相关原理
2.5.1.1 数据准备
无
2.5.1.2 特征工程
① 特征降维
无
② 特征选择
● 特征工程一般怎么做?
● 针对简历上的一个数据挖掘项目,详细说明算法模型结构,一共试过哪些模型,为什么选用这个模型,数据清洗难点,特征工程怎么做的(非数值型构建三元组+TransR生成embedding,数值型分箱+one-hot,特征组合,构建梯度特征,归一化)
2.5.1.3 有监督学习-分类和回归方面
无
2.5.1.4 无监督学习-聚类方面
无
2.6 深度学习&机器学习面经通用知识点
2.6.1 损失函数方面
● Triplet loss,写出数学形式?
2.6.2 正则化方面
● 正则化是什么,LN是什么,作用是什么?
2.6.3 过拟合&欠拟合方面
● 过拟合手段有哪些?
3 依图科技面经涉及项目知识点
3.1 深度学习:CNN卷积神经网络方面
3.1.1 目标检测方面
● MTCNN做人脸检测的原理,网络结构,train的方法?
● SSD和Faster-rcnn的区别?
● 问了对目标检测网络的理解以及简述Yolo几个版本?
3.2 深度学习:RNN递归神经网络方面
3.2.1 自然语言处理NLP
① Bert
● BERT原理?
● BERT为什么有效,与其他模型相比呢?
② Transformer
● Transformer的Multi-head attention计算细节?
● Transformer优点?
③ Word2vec
● Word2vec、glove和fasttext区别?
● word2vec训练时出现过问题吗,比如训练后的词之间的相似性不准?
④ 其他
● 数据源如何来的,数据更新如何解决?
● embedding方式有哪些?
● 模型预测错误的数据,为什么会错,分析过么?
● sentence pairs模型中,为什么不直接用score排序?
3.3 强化学习
无
3.4 机器学习方面
● 假如用户点击了一张图片,如何根据这张图片去推荐相关视频?从数据收集,模型选取,模型评估,线上测试方面说说。
4 数据结构与算法分析相关知识点
4.1 数据结构与算法分析
4.1.1 线性表
4.1.1.1 数组
● 旋转数组的查找?即给一个有序数组,从中间某点隔开,然后左右部分互换位置,然后问在这个数组中怎么进行二分查找。(也可能是旋转数组最小值)
● 排序数组有重复,旋转之后查找?
● 二维数组左到右上到下非递增,查找元素?注意数组维度很大时要使用二分查找思想
● 有一个字符串数组,如['A', 'B', 'C'],1)输入两个元素,如'A', 'Z',求这两个元素在列表里的距离,如果不存在则返回-1;2)如果希望在O(1)时间内查找,如何建立哈希表?
● 求数组的连续子序列,使其和最大?
● 有一个长度为n的数组,元素都是[1, n]且无重复,这时随机删除一个元素,1)求删除元素,2)要求时间复杂度O(n),空间O(1),3)不能改变数组,4)如果删除两个元素,如何求?
● 一个数组,为1, 2, 3, ...n ,现在去掉了一个数,剩下n-1个数。求去掉的是哪个数。注意: 不准改变原数组,原数组无序空间复杂度O(1)。 第二问,如果去掉了2个数呢?
● 给一个数组,给一个值s。判断这个数组里是否存在子数组,其和等于s?如果有的话,有几个? N(n)复杂度
● 两个排好序的数组,求两个数组第k大的数?
● 找到数组第K大的数(这个题有两个解法,堆排序和类似快排划分的方法,我当时只说出来一种,如果把两种说法都讲一下,并且讲一下复杂度和使用情况,肯定加分不少)
● 两个排序数组的中位数,写了O(n)的解法,介绍了一下lgn的方法的思路
● 两个有序数组求第k大的数?
4.1.1.2 字符串
● 两字符串a,b,求a+b?先填充然后再进位加,比较简单。
● 字符串数字相减?
● 给一个字符串,切割成一些回文子串,求所有可能?
4.1.2 树
● 二叉树的遍历 递归非递归
● 手写字典树
4.1.3 排序
● topK问题,时间复杂度,代码实现?
4.2 算法思想实战及智力题
4.2.1 算法思想实战
● 有n个人,m个坏人。每次检查一个人无论是不是坏人都会导致这个人死亡。那么查到第一个坏人的死掉好人的期望是多少?(可以用动态规划)
● 最大水池面积,给定一个整数n, 1..n多少个唯一的BST?
● n个石头,每次拿1~m个呢?编程实现?
● 1111aaaa1111ffffuuuu,输出:[('1',4),('a',4),('1',4),('f',4),('u',4)]这样的格式?
对于上面的算法题,两次操作,每次删除一个tuple,删除tuple的第二个是数作为增益,删除操作可能发生合并,如删除('a',4),第一个和第三个tuple合并,求最大增益
4.2.2 智力题
● n个石头,甲乙两人轮流取1~2个石头,最后取石头的人输了,什么情况下甲一定赢?
● 博弈论甲乙拿石子的问题, 一堆石子, 甲乙每次都可以拿1~2个, 拿完最后一个的获胜, 假定甲乙都足够聪明,甲先开始, 什么情况甲必胜?两堆石子呢?
● 7个石头,甲乙两个人,每次只能拿1~2个,谁最后拿完谁赢?请问是否存在先手必胜策略?
● 平均需要抛掷多少次硬币,才会首次出现连续的两个正面?
● 2个鸡蛋100层楼,从某一层开始鸡蛋扔下去会碎掉,如果鸡蛋没碎则可以继续使用。问最少扔多少次可以把那一层给求出来?
● 公司举办Party,每个人参加party都会带有一个开心度,HR希望Party总体开心度高,但每个人的直属领导参加这个人开心度就为0,跨级领导不影响,多个人可能有同一个领导,HR要确定参加party的人。输入两个列表,第一个为每个人的开心度,比如[2,3,4,1,1,8,5],第二个为对应人的领导序号,如[-1,3,0,1,1,2,3]表示第一个人没有领导(-1),第二个人的领导是第4位,第三个人的领导是第1位,以此类推。求这个party最大的开心度为多少?
● 给定多条公交线路(可以认为是环线),以及一个初始出发点,以及目的地。求乘坐最少公交车的次数(不存在则返回-1)?
● 年利率为4%,利滚利,多少年之后本金翻倍。就是估算(1.04)n=2这个等式中的n。在面试官提示下,又说了一种方法,大概就是,2->1.414->1.44->1.2->1.21->1.1,再估计几个1.04联乘可以得到1.1。
4.3 其他方面
4.3.1 数论
● 抛一枚硬币,第一次出现正面的期望?
● 抛一枚硬币,连续两次出现正面的期望?
● 证明根号 2 的无理性?
● 某大公司有这么一个规定:只要有一个员工过生日,当天所有员工全部放假一天。但在其余时候,所有员工都没有假期,必须正常上班。这个公司需要雇用多少员工,才能让公司一年内所有员工的总工作时间期望值最大?
● 最大子区间,随机数截断,并求出均值?
● 和为某一值的连续子串的个数。我说用累加法再求差,面试官说数组都是正数,可以不用额外空间吗?
● 大数加法,包含小数和正负号?
● 输入一个列表,删除相邻的相同元素,比如输入[1,2,2,3],返回[1,3],输入[1,2,2,2,3],返回[1,2,3],输入[1,2,4,4,2],返回[1]?
4.3.2 概率分析
● 一枚硬币,抛n次,问正面数大于反面数的概率? n是常数,不是无穷大。这题分奇数偶数讨论。偶数时写出概率的式子。奇数答案是1/2
● 一副扑克牌54张,给3个人发牌,把大小王发到了同一个人的概率?
● 4只鸭子,随机在池塘中游走,请问四只鸭子能分到同一个半圆的概率是多少?
● n个骰子扔一下,点数加起来等于m的概率?
● 求圆上任意三个点组成一个三角形是锐角三角形的概率?
● 抛 n 次硬币,求反面比正面少的概率
● 掷三个骰子,掷出来的三个值之和为10的概率。我用的笨方法,列举出所有情况算概率?
掷四个骰子,掷出来的四值之和概率最大的是哪一个。猜的14,猜对了。
第二问中的掷出来是14的概率有多大?没有任何思路,后来面试官告诉我可以用动态规划来做,在面试官的提示下,写了动态转移方程。
4.3.3 矩阵运算
● 矩阵m*n,从左上角到右下角,路径和最大?
● n*m矩阵,填充成 S 型走位的正整数?
● 01矩阵,滑动窗口翻转修改为全0矩阵?
● 已知矩阵高h,宽w,蛇形矩阵?写代码把他画出来。 第二问,给定矩阵内一点y,x 在O(1)时间内给出该点的值?
● 给定一个二维矩阵,计算其子矩形范围内元素的总和?该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2)。 要求求和复杂度为O(1)。
● 给定一个矩阵,里面元素可以为负数,0或者正数,求最大子矩阵的和,子矩阵可以为一个数字,或者方阵矩阵。
● 给你一个矩阵,里面只有0或者1,假设给定其中的一个位置,它的相邻8个位置有1,则认为他们是连通的,求最大连通区域1的个数。
● 一个矩阵,从左到右,从上到下是递增的,可能会有相等的,给一个目标值,请查询其在矩阵中的位置,如果不存在则输出(-1,-1),如果有多个,则随便输出一个,请使用小于O(m+n)的解法。
● 给定一个n*m的矩阵,从中找出a*a的矩阵,使得和最大。返回最大的数值。
● 计算一个n*m矩阵,每个是左上角元素和的值。然后再遍历计算。
● 给定一个M*N的矩阵,求一个子矩阵,使子矩阵的和最大?
● 输入一个二维矩阵,寻找一条从左上角到右下角的路径使得经过的路径值加起来最大?(只能向右和向下走)
4.4 Leetcode&剑指offer原题
● LeetCode 33
● LeetCode 52:N皇后问题
● Leetcode 80:二维数组全是0或1,求全为1的最大子矩形面积
● Leetcode hard:矩阵中求全1的最大矩形的面积
5 编程高频问题:Python&C/C++方面
5.1 python方面
● 为什么用python的multiprocess,为啥不用线程?
5.2 C/C++方面
无
6 操作系统高频问题:数据库&线程&常用命令等
6.1 数据库方面
无
6.2 操作系统方面
● 线程进程区别?
7 技术&产品&开放性问题
7.1 技术方面
● 关于深度学习/机器学习的;通常情况下标签都是无关的,比如车辆图像的类别这种,假如标签是有一定关系的,比如给定一张图象的标签是这个人的年龄,可以分为老人、中年人、小孩等,他们是有次序关系的,如何利用这些信息?
答:可以用向量的余弦构建loss。
本文由 大白智能 作者:凯哲 发表,其版权均为 大白智能 所有,文章内容系作者个人观点,不代表 大白智能 对观点赞同或支持。如需转载,请注明文章来源。