这位是广东仲恺毕业算法工程师。
曾在广州棒谷(跨境电商)工作,近期入职环球易购(跨境电商)
还记得上一篇文章中提及到当算法工程师发现导航的时间和实际时间有差异时会做什么吗?
没错,就是要调整其算法中的参数。
算法工程师都自嘲自己为调参师、调参狗、特征猪、指标奴。
这就和我们常常说的产品汪、运营喵、程序猿,是一样一样的。
算法工程师的工作流水帐
下面这部分的流水帐,不建议你们看,可直接路过看图。
- 接到一个项目之后心潮澎湃,脑子里马上闪现出faster rcnn、resnet、mask rcnn等各种牛逼的算法。
- 结果发现图片都不知道存在哪……于是反馈给产品经理,开了一通会议,确定图片数据库在某个位置,准备读表爬虫!
- 结果发现表的信息是乱七八糟的,一张表里面有图片链接,但没有这个图片的标签信息;另一张表里面有标签信息,但又没有图片链接。找了许久才发现两张表可以用图片id来结合,行吧,不就是查表的事情,写一堆代码把这些信息整理起来吧!
- 花了一天终于整理出图片链接的csv了,交给爬虫组爬了三天三夜,期间在YY到时图片下下来之后可以用什么算法。
- 拿到图片了,发现类别有了,但是bbox、关键点坐标信息都没有啊!咋整,上网找了个labelme自己整个1000张用着先呗,然后花了两天整了少量图片出来,期间还要劝服同事帮忙。
- 剩下的图片交给标注员去标注。接着就是根据前两天YY到的算法,上github找找有没有现成的模型,然后git clone。修改了一点输入输出,用公共数据集顺利跑通!看来还是不错的嘛!
- 回头把自己的数据放进去试试,简直一塌糊涂,那是当然的。现在就得回去仔细研究论文,看看作者的各种实现细节,然后魔改模型finetune。再次测试,咦,有点效果喔
- 这时候领导紧急开了个会议,说现在目标有点改变,我们往另一个方向走吧。
- 开始研究这个领域的所有经典论文,每篇论文都看上好几次,看到最后几乎把整个领域的主要脉络摸清了,然后磨刀霍霍向模型!
- 国际惯例先找github,但是很不幸我想要的算法并没有开源实现,那我来做第一个吧!
- 马上照着菜单(论文),啪啪啪构建proposal模型,各种自定义层结构,特殊的loss function,菜单中提到的weight decay、learning rate decrease,几乎把论文所有角落的细节都翻遍了,目前为止进度还行,但是慢着!论文里提到的一个层,作者只是一笔带过了,没详细说明这是怎么实现的!
- 都到这地步了还能放弃?开玩笑,立刻照着related work那一章提到的所有论文寻找线索,于是各种谷歌github知乎stackoverflow,终于弄懂了这个层的数学原理!
- 好不容易把模型复现出来了,好家伙,开始用标注员准备好的数据来训练。
- 慢着,这loss曲线不对劲啊?为啥会是直线,而且一轮收敛?不不不,肯定哪里出了错误,我得把代码重头检查一遍!
- 费好大劲终于找出bug,代码也顺利跑通了,然后进入各种调参无限死循环。
- 老板:那个,我们决定还是换个方向吧,需求变了
从土黄色的Justin Ho开始,到黄色的数据异常及调参,则是整个算法工作的闭环。
这基本上是整个图像识别算法工程师,大致的工作流。
一句话:
定义问题-数据预处理(ETL/特征工程/特征筛选等)-模型评估-模型训练及优化-应用
举2个例子
假设
Eno想要买一个杯子
它是长成这样
打开淘宝拍照搜商品
哇!!!
有没有发现
发现11个点星星
组成星座图
自动识别出:相似马克杯/杯子
点击查看
一模一样
黑外壳
白内衬
大耳朵
Eno选了一家商店进行购买
交易新增量为1
过两天Eno老婆生日,之前其老婆在商场里看中了一条皮裤,大约是这样的。
淘宝扫描之后,是这样的
商品却是这样的
于是,Eno就默默的关闭了淘宝
交易新增量为0
交易新增量为0
这个背后,算法工程师们做了什么呢?
- 定义问题:提高以图搜商品交易量5%
- 数据预处理:提取1亿张杯子或皮裤的图片数据,完成特征工程及特征筛选
- 模型评估:自己开发算法模型或使用开源算法模型
- 模型训练及优化:看最终是否得出那个星座图
- 应用:直接上线到淘宝上面
从上面可以看出,显然杯子的算法模型训练得非常杯,而皮裤的算法模型可能还需要进一步优化,是不是特征的筛选有问题,不过至少黑色这个特征是没有问题的。
本期内容就到这里,此次是以图像识别算法来举例,下期我们进行到第三个问题:算法工程师的分类等交易新增量为0
这个背后,算法工程师们做了什么呢?
- 定义问题:提高以图搜商品交易量5%
- 数据预处理:提取1亿张杯子或皮裤的图片数据,完成特征工程及特征筛选
- 模型评估:自己开发算法模型或使用开源算法模型
- 模型训练及优化:看最终是否得出那个星座图
- 应用:直接上线到淘宝上面
从上面可以看出,显然杯子的算法模型训练得非常杯,而皮裤的算法模型可能还需要进一步优化,是不是特征的筛选有问题,不过至少黑色这个特征是没有问题的。
本期内容就到这里,此次是以图像识别算法来举例,下期我们进行到第三个问题:算法工程师的分类等
名词通俗解释
CV:
Compute Vision,计算机视觉,(这可不是HR眼中的那个CV哦)
关键节点信息:
还记得马克杯上的星座图式的点吗?其实我们知道整个图片都是由一个又一个图素组成,每个相素都是有坐标的。这些坐标,就是关键节点信息的一种。
RGB的色系,也是关键节点信息
特征工程:
获取关键节点信息的过程,就是特征工程
特征筛选:
将无关的关键节点信息删除,以免影响算法的结果。比如马克杯,如果其扫描出背景颜色的信息作为特征,可能会出现灰色的马克杯。
RCNN 目标检测技术
我们只要理解,将图片切割成不同的区域,然后将区域中的关键节点信息放入到CNN(卷积网络),再通过CNN进行判定,哪个部分是人。
CNN:
简单理解为,假设我们使用Photoshop做设计时,我们需要把不同的图片放在不同的图层。这样,我们可以把不相关的图层进行隐藏,做好目标图层的设计,再放其他部分放出来,这样我们可以更专注设计,而不会受其他图层的干扰。CNN,大致的意思也是类似的吧。
RESNET(CNN)残差网络
用一张图解释会比较好,柱状图是误差值。
ResNet 层次是152层,而之前的GoogleNet 才22 层,VGG才19层。(只是个名字)
一种误差更小的CNN模型。
1080P的视频为什么更清晰,480P的视频为什么会差一些,大致是因为像素差一些。
题外话
提出ResNet模型的人是一个中国人,何凯明。
2003年广东省高考理科状元,2007年清华本科,2011年香港中文大学博士。
其导师孙剑博士,旷视科技(Face++)首席科学家。
题目
特征工程和特征筛选,与HR领域的什么工作最相似?