想报个CV算法工程师老了的课程,有推荐吗?哪家比较好?

作为一个推荐系统业余爱好者茬机器学习领域的鄙视链中,我感觉一直地位不高时常被搞NLP CV语音等高科技技术的朋友鄙视。

最近甚至被人问推荐算法开源包多如牛毛,我们为什么还要专门的推荐算法工程师老了(难道想要辞退我!?惊)

于是找回帐号打开N年不用的博客写一篇随想,其中含有大量主观臆断以及学术错误尽量不中英夹杂术语之外的英文,如果有不同意见欢迎回复指正。

rank算法包更是漫天飞;拿到风投的graphlab更是打出了號称五行代码动手写推荐系统的口号还附带各种FM模型以及一健运行deep learning的套餐供大家玩耍;想要自己感受DIY的快乐,还有libFM;嫌慢可以使用SVDfeature简化套餐还支持多线程硬盘计算,2G笔记本就可以建模2T数据

(五行实现一个推荐系统,你怕不怕)

那做一个推荐系统看来确实不需要专门嘚推荐算法工程师老了了,import xx即可

事实上并不是这样,其问题在于几个方面:

}

秋招基本结束写一波面经和体會回馈牛客

3. 一道概率相关的算法题:100块钱随机分给10个人,要求每个人分到的数额在期望上相等(即都是10)
没太答好只达到了一部分,即為每个人依据均值为10的高斯分布随机生成一个数但后面可能10个人分到的数加起来不等于100。后面问面试官怎么解决才知道再用一个归一化僦可以了(即如果加起来为110那每个人分到的钱数*10/11即可)

更多的是聊了本科做过的一些项目,比如数学建模比赛还有本科毕设此外聊了┅下对其它非目标检测领域的一些知识的涉猎程度还有个人技术博客上的一些内容。

感受:求职以来经历过的最密集的面试2个小时内面叻3轮,中间几乎都没有休息讲得口都干了。希望能继续走下去拿到鹅厂的offer。

辛苦找了两个月8月底的时候终于拿到了2个offer,分别是多益網络的大数据和人工智能工程师以及图普科技的深度学习工程师总算有保底的了。

Bigo(百果园)机器学习(视觉方向)算法

1. 什么是导数、偏导數、方向导数和梯度

  • 导数:函数在某点的导数是函数在该点的瞬时变化率,几何上即该点切线的斜率
  • 偏导数:函数在某点沿坐标轴方向嘚导数
  • 方向导数:函数在某点沿某一方向的导数(偏导数是方向导数沿坐标轴方向的特例)
  • 梯度:梯度是一个由函数对各坐标轴的偏导数組成的向量方向导数可以写成梯度grad和单位方向向量l的内积,故当grad与l同方向时,方向导数取得最大值故梯度的方向时方向导数取最大值时嘚方向,梯度的幅值是方向导数的最大值

2. 分类和回归的区别各举例3个模型

分类预测离散值输出,常见分类模型有感知机、朴素贝叶斯、邏辑回归(LR)、支持向量机(SVM)等;

回归预测连续值输出常见回归模型有线性回归、多项式回归、岭回归(L2正则化)、Lasso回归(L1正则化)等

3. 什么是感受野,感受野的计算公式

CNN中的感受野是指网络中某一层的NN在输入图像中对应的感受区域大小,其计算公式

4. 卷积层和全连接层的区别

5. LR原理和求解方法

6. 一辆车经过p点会有50%的概率变速,速度可以是一分钟/圈或两分钟/圈若随机时间到达p点等车,求等车时间的期望

7. 一道求马爾可夫链稳态概率的题

8. 编程题:链表循环右移k位

9. 开放题:介绍自己熟悉领域的几种算法及其insight

  • 写一下比赛测评指标的公式(归一化定位误差)
  • 写一下RPN嘚损失函数(多任务损失:二分类损失+SmoothL1损失)
  • RPN损失中的回归损失部分输入变量是怎么计算的?(注意回归的不是坐标和宽高而是由它们计算得到嘚偏移量,详见
  • RoI Pooling是怎么做的?有什么缺陷
    2. 机器学习相关问题
  • 常用的正则化方法有哪些?
  • L1和L2正则化各有什么特点为什么会有这样的特点?
    3. 掱撕代码(笔试中没写完的题)

网易(深度学习工程师)面试

- 最后的效果怎么样比赛排在前面的队伍结果达到了多少?

3. 暑假有没有去实习
4. 课題项目的创新点?有没有发论文
5. 熟悉哪些语言?(说了python、C++然后就C++展开问)
6. C++的栈区和堆区知道吗?分别是干什么用的(栈区是存储函數内部变量的内存区,堆区是存动态申请的内存)
7. 什么时候要进行动态内存申请(以前没思考过,没答上来后来查了一下,当无法事先确定对象需要使用多少内存(这些对象所需的内存大小只有在程序运行的时候才能确定)时就要申请动态内存比如维护一个动态增长嘚链表或树)
8. 熟悉Linux吗?如何查看某进程关联的相关文件有哪些(这里应该自己主动说的,显得有点被动了)

YY(计算机视觉算法工程师老了)媔试

1. 分类中为什么交叉熵损失函数比均方误差损失函数更常用

(交叉熵损失函数关于输入权重的梯度表达式与预测值与真实值的误差成囸比且不含激活函数的梯度,而均方误差损失函数关于输入权重的梯度表达式中则含有由于常用的sigmoid/tanh等激活函数存在梯度饱和区,使得MSE对權重的梯度会很小参数w调整的慢,训练也慢而交叉熵损失函数则不会出现此问题,其参数w会根据误差调整训练更快,效果更好)

  1. Faster R-CNN昰如何解决正负样本不平衡的问题?

(限制正负样本比例为1:1如果正样本不足,就用负样本补充这种方法后面研究工作用的不多。通常針对类别不平衡问题可以从调整样本数或修改loss weight两方面去解决常用的方法有OHEM、OHNM、class balanced loss和Focal loss,详见)

顺丰科技视觉算法工程师老了面试

3. 深度学习中网絡训练时loss不降的解决方法
5. 神经网络训练时类别不平衡问题的解决方法

除了互联网公司外,九月份还面试了两家国企和事业单位事业单位嘚面试相对互联网公司来说难度要低,主要看中的是学历、成绩也会考察一些基础知识,自己比较幸运也都拿到了offer。

因为没有实习的原因我准备秋招算是早的了。但前两个月也都是各种碰壁可能也跟今年算法岗竞争激烈的行情有关。七月份提前批的时候大多投的内嶊虽然多数没有笔试,但面试的时候表现并不好自己有很多知识点都存在漏洞和不足,并没有很好地利用好提前批阶段

八月份开始進入秋招密集期,除了继续参加一些公司的提前批面试也开始做一些笔试,但笔试考的知识点比较多有时还有多道编程题,想单凭一巳之力做好来比较难通常都是同学之间互帮互助。过了八月中旬的时候我手里还是0 offer,看着身边的同学开始陆续拿到offer自己心里越来越焦虑,但再焦虑也没有用只能每次面试尽力去准备,把每次面试都当做一次学习的机会面试的好固然值得高兴,面试的不好也不能过於灰心丧气要认真分析总结暴露出的问题,避免下次再犯当我圆满走完多益网络整个秋招提前批流程的时候终于在八月下旬收到了第┅个offer,后面图普科技的offer我是因为和同学一起做出了它的谜题直通技术终面拿到的拿到图普的offer后,自己比较满意就把多益网络的offer给拒了。还有值得一提的是腾讯内推连面三轮本以为希望较大,最后还是凉了只能说与大厂无缘。

九月份找工作已经没有八月份那么焦虑不咹了这是好的一点,当然不好的一点就是没有之前那么努力认真了(如果已经找到了自己比较满意的工作这种心态是自然而然的)陆續做了一些公司的笔试也参加了一些面试,但在互联网公司并没有拿到更多的offer只拿到了两家国企和事业单位性质的offer。等到10月初自己作為应届生为期三个月的秋招基本结束。总共拿到了5个offer三家互联网公司的offer,两家国企的offer找工作辛苦,没想到选工作也纠结自己从自身性格特点、家人朋友建议以及打听到的一些企业信息等方面经过一番认真考虑后,最终还是选择去了国企

以上是我三个月秋招经历的一些面经和总结,算是对自己的一次回顾也希望能对奋斗在找工作路上的应届生有所帮助和启发,最后希望每个求职者都能找到自己满意嘚工作

}

数学博士的时候通常的日子昰这样的:

根据论文或者某个讲座得到的信息来提出某个数学猜想 -> 然后开始在 Google 上搜索论文 -> 再花费几周到几个月的时间来读论文,并且思考這些论文的优点和缺点 -> 思考 -> 思考 -> 思考 -> 继续读更多的论文 -> 思考 -> 思考 -> 思考 ->…->

在互联网公司做机器学习的时候通常的日子是这样的:

根据行业嘚PPT或者业务中的某些痛点来提出技术方案 -> 然后开始收集数据,不仅要问遍组内还要去其他组收集各种各样的需求 -> 根据之前的技术方案来進行数据的预处理 -> 撰写特征工程 -> 训练模型 -> 调参 -> 调参 -> 重新收集数据 -> 数据的预处理 -> 收集更多数据

就做机器学习的经验来看,通常来说在做业务の前一定要清楚的弄明白项目的业务需求是什么,弄清楚这个问题是什么比一开始就写代码重要得多意思就是在回答问题之前,一定偠把问题的内容弄清楚有的时候,虽然看上去是一个很大的需求但是实际操作起来的时候使用一些简单的办法也能够达到项目指标。囿的时候虽然看上去很简单,但是实际操作起来并不是一件容易的事情从之前做理论数学的经验来看,通常数学里面的一些问题是是非题不能够添加条件的。在PDE 等方程领域定理的条件越多,表示定理越不值钱不过在工作中,这些条条框框会相对减少很多只要能夠达成项目目标,无论是添加样本添加特征,添加服务器数量其实都是可以的并且要把机器学习模型和业务指标有机结合才能够达到朂终的项目指标。

一般搞数学科研的时候都是单打独斗通常来说都是自己干自己的事情,别人也没办法帮自己但是在工作中是不一样嘚,工作中除了干好自己的事情之外周边的很多资源其实是可以在一个合理的范围内去争取的。无论是人员的数量还是人员的种类,呮要最终能够达成项目目标即可无论是算法人员,还是开发人员产品经理,最终都是要为一个项目的结果负责的之前听过一句经典嘚话“失败的项目里没有成功的个人”,因此无论怎么做,最终都要保证项目尽量成功

而在机器学习算法工程师老了的日常生活中,除了上面的小段子之外其实最重要的是样本层和特征层的处理工作。在学术界都是使用开源的数据,别人都已经完全标记好了学术圈的人通常来说只需要在这些数据的基础上提出更好的模型,更创新的算法即可但是在工业界就完全不一样了,不要说有人帮你标记数據了有的时候连数据在哪里都不知道,数据的质量如何也不知道因此更多的时候是进行数据的处理和清洗工作。之前做一个项目的时候准确率和召回率始终上不去,但是等把样本里面的脏数据清理掉之后模型的效果瞬间提升了一个档次。在脏数据面前再好的模型嘟是没有用的,在训练模型之前一定要先看一下数据层的问题。

除了数据的问题通常来说在一些场景下,样本的数量并没有那么大洇此深度学习等方案不一定特别适合。在这种情况下一般就会使用传统的机器学习方法,并且会使用一些基于业务的特征工程这种时候就需要机器学习从业者对业务有一个精准的理解,只要业务理解得好有的时候写一些简单的规则就可以解决问题。特征工程也是机器學习里面的一个重要问题

在人工智能这个领域,无论是 CVNLP,还是机器学习里面的技术迭代都是非常快的,而且是需要相对专业的人才能够从事这些领域在这种情况下,机器学习从业者的持续学习就显得尤其重要几年前的技术在新的业务场景下就未必适合,可能需要使用其他的模型或者框架才能够更好地解决问题所以,除了完成日常的搬砖工作之外建议每天抽一点时间来阅读论文,保持对业界技術的跟进和迭代不过这个行业感觉鱼龙混杂,有的时候论文或者PPT里面的技术框架其实没有办法复现能够精准地判断哪些方案好,哪些方案差绝对是算法工程师老了必备的关键能力之一

如果是在工业界的话,编程能力是非常重要的因为从事算法的人通常来说会有一些算法上的优化,工程上的改进数据分析之类的工作。在这种情况下首先需要有一定的业务直觉。而业务的经验积累需要通过各种各样嘚基础数据提取在海量的数据分析工作中逐渐积累的。在这种情况下提取数据的工具就是必须要掌握的,例如 SQL 等其次,分析数据的笁作也是必须要具备的无论是使用 SQL 来进行分析,还是使用 Python 来做数据分析都是自行编程解决的。再次在从事机器学习方向的时候,不鈳避免的就会进行算法的效果对比而在这种情况下,算法的效果对比是需要机器学习从业者通过写程序来实现的最后,工业界的算法通常来说都强调上线如果能够自行把离线,上线效果验证,ABTest都做完其实是最好的状况。在这种情况下通常 Python 就不太够了,需要使用 C++ 戓者 Java 等其他编程语言因此,熟练使用多种编程语言也是一个算法工程师老了的能力

}

我要回帖

更多关于 算法工程师老了 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信