我从非科班转到算法工程师3个月的经历

  • 附录1:From 2016: Why Deep Learning Is Suddenly Changing Your Life
  • 附录2:深度学习如何入门?
  • 附录3:20个令人惊叹的深度学习应用
  • 附录4:机器学习、深度学习等人工智能技术在工业界的应用状况是怎样的?人力供需状况如何?
  • 附录5:深度学习在电影特效制作上有哪些应用?
  • 附录6:深度学习(AI)在医疗领域应用、需求及未来发展概述

  首先,感谢 @王子瑞/Aliloke邀请,来谈谈我从非科班转行到图像算法工程师的经历吧。
  需要说明的是,我对算法这块的理解是非常的肤浅的,因为我接触这块也就三个多月的时间,说起来为何进入这个领域,其中还真有些机缘巧合。
  2015年我从南理工机械工程专业毕业,毕业后在南京待了近两年,从事机械、气动方面工作,后想着离家太远,自己的事业发展也一般,遂回老家桂林。回家后自己在家开起了淘宝店,注册了营业执照,主要从事平面设计,影视后期特效,特效教程,淘宝教育课程等方面工作,同时自己开设了YOUTUBE频道做油管主。不过由于自己能力有限,淘宝店、淘宝教育效益一般,电商这块竞争激烈,遂放弃,算是创业失败吧。
  后来有一段时间自己不知道该做什么,碰巧那时候华为大数据入驻桂林,公司刚好离家不远,就想碰碰运气,于是自学java以及hadoop、yarn、Mapreduce等大数据方面的内容,投了华为大数据的简历。后来华为HR打了电话过来,简单询问了一些技术方面的内容,我也简单说明了自己的一些情况,后来HR的意思大致就是觉得我技术能力不行,同时又是非科班的。我自己也觉得是,要像华为这样的公司随便水水就能进,那它就不是华为了。
  再后来,就不打算在桂林找工作了,因为机会少,待遇也不高,想着去深圳发展,后又自学了python,爬虫方面的知识,想着再不济,找个python工程师,爬虫工程师方面的工作混个饭碗都行。就在去深圳的前几个小时,票都买好了,但还是放弃了,想着父母在这边,女朋友(后来分手了)也在这边,没人照顾,心软了。后来还是决定在桂林找工作,当时也算是前女友的鼓励吧(要感谢前女友),鼓起勇气投了五个简历,其中1个做大数据运维和分析的,4个做深度学习、图像算法的,可惜最后只有两家公司回应了,其中一家简单问了我的情况后让我做回机械,因为他们公司除了算法岗外,也有机械岗,后来我拒绝了。然后另一家就是我现在的公司,跟HR简单地沟通之后,她让我过去面试,我跟她沟通后稍微延缓了面试的时间。下面这张图片就是我当时面试的图像算法工程师岗位的要求:

  • 图像算法工程师

我仔细看了一下岗位要求,对我来说要求还是蛮高的。首先opencv是啥我不知道;MATLAB我安装过两遍,但就是没用过几次;C语言大学自学过,但完全没有项目经验;机器学习的算法?我倒是能背出一两个算法的名字;机器学习、深度学习具体怎么学习的我也不知道,如果不是后来慢慢熟悉,我会以为机器学习就是一个高度智能化的AI婴儿,只要不停地投喂数据给他训练,他就能不停地学习,从而变一个具有成人思维的AI人造人;而深度学习我的理解就是加了BUFF的机器学习。太天真了!
  后来,我去书店买了一本书,名字叫做《OpenCV+TensorFlow深度学习与计算机视觉实战》,如下图:

我心想,还好离面试还有一个星期时间,我可以仔细琢磨琢磨。翻开这本书,还是今年出版的,不错哟!结果后来慢慢看后,发现示例代码错误挺多,对于我这个编程小白来说真的增加难度不少,在安装tensorflow-gpu那儿还卡了挺长时间,不得不说,这玩意还真难安装,我后来在三个不同版本系统上安装,屡屡失败,不是GPU对不上,就是python版本对不上,这还是我之后安装多次终于成功的版本笔记:win10下安装tensorflow-gpu==1.11.0的详细教程。
  没过多久,就差不多到面试时间了,而我opencv只看了一点,然后我直接到网上找了个与opencv相关的demo(蔡徐坤教你用OpenCV实现素描效果)跑了一下,然后又去学习了如何用python从头实现一个神经网络(虽然自己对人工神经网络毫无认知),然后接下来熟悉了常见机器学习算法就去面试了,可能我们公司不是主流AI公司的原因,面试相当轻松,后来回想起来,为啥会这么轻松,我去HR那看她现在筛简历都是非研究生不要的。。。后来才知道,是我们的AI模块的负责人那会准备要走了,当时时间紧迫,HR就几天时间,一时实在招不到人,碰巧我出现了,就勉强把我收了!后来我进公司后,那个负责人带了我一个月,那一个月,我也就是勉强熟悉了一些项目流程,算法那方面没啥增进。不得不说,算法工程师还是需要写代码的功底在,像基本的机器学习、深度学习语言比如c还有python是需要特别熟练地掌握的,还有计算机组成原理,数据结构,操作系统,编译原理,这些个基本理论,非科班人员相比较科班人员来,差距真的不是一点两点!
  再后来,我就基本成了自行摸索状态了,我们公司确实缺人,好不容易公司招进来一些附近大学计算机学院的实习生,我都得抓紧时间向他们请教,因为不懂的实在太多了。我们公司现在的项目主要是做单一对象的目标识别的,目前使用的是基于darknet框架的yolo-v2算法模型,是目前两种主流单目标识别算法中的一种,另一种是SSD,SSD没用过,日后优化识别能力时倒是可以对比试试。
  入职差不多1个半月也就是7月初那会,我们部门技术人员还一起到新疆去测试了识别设备,槽点颇多,老总不满意,回来让我们继续对算法以及设备进行优化,我目前的主要任务就是熟悉算法中卷积神经网络卷积层的各功能实现,以及对算法模型进行参数调节,简称调参,对采集图像进行预处理、标定、训练等,然后分析识别效果,还需要编写优化算法筛选目标,提高识别率,以及阅读一些主流算法的相关论文等,有必要时还得学习其他深度学习框架,比如tensorflow、pytorch、Keras,不过掺插在里面相对比较重要的一项就是提高自己编写代码以及优化代码的能力,毕竟自己菜,一定得好好刷刷leetcode!
  关于机器学习,我看了一本叫做《深入浅出python机器学习》的书,如下图:

里面基本上介绍了机器学习常用的算法,并都附有python程序示例,过一遍基本上都熟悉了,但它对算法的数学实现那块并没有细讲,如果要讲的话,估计又要烧掉不少脑细胞!其他的一些比较受欢迎的机器学习的书籍比如《机器学习实战》《西瓜书》,网上人们推荐挺多的,还有吴恩达的机器学习和深度学习的视频教程,比较适合入门吧!
  至于卷积神经网络,我还买了一本叫做《深度学习的数学》,如下:

我自知大学数学没学好,理解矩阵变换,概率问题来有难度,所以买这本书是为了帮我更好理解卷积神经网络中的相关数学问题的,还没看完呢,先不作评价。
  前段时间关注了知乎的这个板块:如何看待 2020 届校招算法岗「爆炸」的情况?,确实如大众所言,想要进入此领域的人很多,但符合要求的太少,前段时间有个女猎头找我(太感动了!),问我基本情况,我说我是本科生,还不是科班出身的,她说算法岗基本研究生起步了。
  所以我觉得我还是比较幸运吧,虽然很多人认为机器学习、深度学习最近几年在学术层鲜有突破性进展,比如这位兄台,他五年前基本上对DL在学术层面持保守态度:

尽管如此,他大概也没料到DeepLearn在应用层面能发展这么快(不过确实需要人们的共同努力),我认为未来DL在应用层面是比较乐观的,人脸识别、人脸变换(比如最近比较火的ZAO)、自动驾驶、语音识别、文字识别、游戏AI(如Alpha Go)、推荐机制、硬件加速、表情分析、行为分析、心理分析、病情分析、气象预测、灾害预测等,除了正向运用外,还有逆向运用(我不懂该如何描述就随便用了这个词),比如Gan(生成式对抗网络),试想一下,在未来,一个建筑设计师只需草草几笔画个框架,就能立刻在电脑上生成建筑的三维模型,并且还都帮你渲染好了,然后再给几个参数,立马给你生成二维CAD图;一个画师,随便画个草图,电脑就能立即生成与草图相对应的可媲美于实景的照片(为什么说GAN很快就要替代现有摄影技术了?);
(电脑生成的3D鱼):

(电脑生成的3D猫):

游戏建模师们就更爽了,那些什么场景,光线都不用自己花大量时间去设置,只需给个草图,给几个参数,电脑立马能生成比真实场景还真实的游戏场景(可以说更爽的是游戏玩家吗!)(这梦一般的街景,全是AI伪造的(把GAN秒成渣渣));

而那些开发移动APP的人才,比如开发一个类似于ZAO的APP,但并非生成图像而是生成声音,用户随便哼个调调,app便能通过声音自动生成可媲美专业歌手级别的歌曲,通过识别曲风自动填词,并且用户可简易设置生成的歌曲风格,估计又可圈一波钱了!(GAN伪造音视频文件,眼见耳听不再为实 );再进一步设想,创造生物!诶诶诶好像哪里不对,违反伦理是要挨打的,那就创造器官吧,生成式对抗网络能基于已有的基因、蛋白质结构找出其中规律去生成符合设想的基因、蛋白质结构,以满足特定的组织功能(深度丨斯坦福 AI Lab 重磅生物学成果:用 GAN 合成基因),等等。在未来几年,可以猜测,没有及时享受机器学习、深度学习所带来的红利期的企业是容易在竞争中被淘汰的,无论是金融行业、房地产行业、还是数码产品行业、教育行业、机械行业、制造业等,即使是最传统的农业,也需要AI Buff加持(比如像我现在的公司,囧)。
  SO,以上,就是我转到算法岗之后3个多月的经历和感悟,如有错误疏漏,请务必指出!如果还有什么想起来再作补充吧!
—— Dontla 更新于2019年8月

附录1:From 2016: Why Deep Learning Is Suddenly Changing Your Life

From 2016: Why Deep Learning Is Suddenly Changing Your Life

附录2:深度学习如何入门?

深度学习如何入门?

附录3:20个令人惊叹的深度学习应用

20个令人惊叹的深度学习应用

附录4:机器学习、深度学习等人工智能技术在工业界的应用状况是怎样的?人力供需状况如何?

机器学习、深度学习等人工智能技术在工业界的应用状况是怎样的?人力供需状况如何?

附录5:深度学习在电影特效制作上有哪些应用?

深度学习在电影特效制作上有哪些应用?

附录6:深度学习(AI)在医疗领域应用、需求及未来发展概述

深度学习(AI)在医疗领域应用、需求及未来发展概述

Google开发专家带你学 AI:入门到实战(Keras/Tensorflow)(附源码)

我从非科班转到图像算法工程师(图像识别、机器学习、深度学习)(3个月)的经历相关推荐

  1. 算法工程师(机器学习/深度学习)Offer的准备流程

    目录 关注相关咨讯 打造自己的github专栏,csdn博客 题库刷起来 比赛搞起来 多看看别人的经验分享 视频教程 博客上的学习资料 啃书也是必要的 关注相关咨讯 1.公众号 学校官方就业公众号,名 ...

  2. Java软件研发工程师转行之深度学习(Deep Learning)进阶:手写数字识别+人脸识别+图像中物体分类+视频分类+图像与文字特征+猫狗分类

    本文适合于对机器学习和数据挖掘有所了解,想深入研究深度学习的读者 1.对概率基本概率有所了解 2.具有微积分和线性代数的基本知识 3.有一定的编程基础(Python) Java软件研发工程师转行之深度 ...

  3. 机器学习 深度学习 ai_如何突破AI炒作成为机器学习工程师

    机器学习 深度学习 ai I'm sure you've heard of the incredible artificial intelligence applications out there ...

  4. 刚发布!开发者调查报告:机器学习/深度学习算法工程师急缺

    近日,CSDN发布了<2019-2020中国开发者调查报告>,本报告从2004年开始针对一年一度的CSDN开发者大调查数据分析结果形成,是迄今为止覆盖国内各类开发者人群数量最多.辐射地域. ...

  5. 打好机器学习深度学习基础,做个合格的算法工程师

    点击上方"机器学习与生成对抗网络",关注"星标" 获取有趣.好玩的前沿干货! 文章来源 网络 侵删 2021届明年毕业的同学们,基本结束了秋招. 一般来说,程序 ...

  6. GitHub贡献全球第5,超15,000名软件工程师,后深度学习时代英特尔如何「软硬兼施」

    作为全球最大的半导体公司(2019年Q1数据),英特尔一直以「硬实力」示人,然而就是这样一家公司却有超过15000名软件工程师,在GitHub的2018贡献排行榜上全球第五. 深度学习时代,英伟达凭借 ...

  7. 国外AI工程师讲述:深度学习与目标检测,理论和实践果然两码事

    背景故事 2018 年,当时我在工厂实习,我开始研究目标检测技术,因为我需要解决视觉检测问题. 这个问题需要在来自工业相机的图像流中检测许多不同的物体目标. 为了应对这一挑战,我首先尝试将分类与滑窗法 ...

  8. 谷歌工程师:聊一聊深度学习的weight initialization

    TLDR (or the take-away) Weight Initialization matters!!! 深度学习中的weight initialization对模型收敛速度和模型质量有重要影 ...

  9. 3984个小时,阿秀亲眼见证:小白非科班学妹 - offer收割机

    作者:阿秀 阿秀的校招笔记:https://interviewguide.cn 大家好,我是阿秀. 不知道大家有没有这种体验? 看着小白非科班学妹一步一步慢慢学习,虽然很慢,但没停下自己的脚步,始终朝 ...

最新文章

  1. 企业为什么要使用基于Docker的PaaS/CaaS平台
  2. android checkbox状态不刷新,android开发分享更改checkbox的值,而不触发onCheckChanged
  3. 【GVA】gorm多对多many2many删除数据的同时级联删除关联中间表中的关联数据
  4. ajax form表单提交_LayUI提交表单,监听select,分页组件
  5. python编程入门第九讲,第九讲作业---函数
  6. [python opencv 计算机视觉零基础到实战] 六、图像运算
  7. python解压打开文件过多_让Python在后台自动解压各种压缩文件!
  8. 2--OC -- 类的创建与实例化
  9. 边做边学小型封装--利用主流框架进行Dao层通用化,Spring3.0+Hibernate3.3.2通用Dao层整合(四)...
  10. JavaWeb项目中解决中文乱码方法
  11. 【js】【cornerstone】cornerstone使用url方式加载图像
  12. Docker 容器的通信(十二)
  13. vue.js 入门案例,双向绑定实现任务清单
  14. 完成一个Vue3项目的过程
  15. #100天计划# 2013年10月8日
  16. genymotion-安卓模拟器-IMEI修改方法
  17. pytorch中dim的含义及相关做法
  18. 最强量子计算机争霸:谷歌和IBM,谁是真正赢家?
  19. 解决Windows中mfc100.dll文件缺少问题
  20. NLP自然语言处理中oov的词的解释

热门文章

  1. bochs上网镜像怎么上网_bochs win7镜像可上网版-bochs WIN7 IMG镜像文件下载 v1.0完整版...
  2. JavaScript的三座大山--(2)--作用域和闭包
  3. java跳转kotlin页面_Kotlin:return与跳转
  4. leet 75. 颜色分类
  5. 陈伟星“VVShare打车链”,打造区块链经济共享平台
  6. SAR,SHR,SAL,SHL区别
  7. 一个简单的文本编辑器。(是在DEV C++下写的)
  8. python计算2的平方代码_Python练习实例46 | 求输入数字的平方,如果平方运算后小于 50 则退出。...
  9. 计算机分级时无法度量视频播放,无法度量视频播放性能怎么办-无法度量视频播放性能的解决方法 - 河东软件园...
  10. phpstorm License Server激活 官网下载版本直接激活