ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

​两年前不知如何编写代码的我,现在是一名人工智能工程师

2020-01-24 13:38:41  阅读:268  来源: 互联网

标签:慕课 工程师 人工智能 ML 编程 python 学习 AI 编写


全文共3526字,预计学习时长11分钟

图源:Unsplash

 

经常有小伙伴私信给小芯,我没有编程基础,不会写代码,如何进入AI行业呢?还能赶上AI浪潮吗?

 

任何时候努力都不算晚。

 

下面,小芯就给大家讲一个朋友的真实故事,希望能给那些处于迷茫与徘徊中的小伙伴们一丝启发。(下文以第一人称叙述)

 

图源:Unsplash

 

正如Elsa所说,职业转换是一次“进入未知领域”的旅程。

 

两年前,我从大学毕业,主修经济学与金融学,做好了在金融业工作的一切准备。投资银行和全球市场是我理想的工作。毕业前9个月,我找到了在一家投行的工作,感到十分自豪,因为如果之前没有在这家银行实习过就很难得到聘用的机会。

 

在那个岗位上干了几个月后,我学会了一些Excel VBA编程方法,以及如何使用Tableau、Power BI和UiPath(一款机器人过程自动化软件)。我意识到相对于银行产品,自己对使用这些工具和学习代码更有兴趣。我曾经对于银行产品的复杂性很好奇,但现在发现它只是银行从客户身上获利的一种方法罢了。

 

银行环境对我的个人价值观构成了极大的挑战,但那是以后的话题。

 

同时,我的一位同事向我打开了“机器学习”的大门。输入特定数据就能“预测”特定结果,这一事实深深吸引了我。

 

我立刻入迷了。

 

但问题来了,我的编程技巧太过基础。在我的字典里,Python是一种“蛇”,而Pig……是一只猪。

 

两年过去了,我将要进入人工智能(AI)行业,成为这个领域的一名工程师。这段旅程艰难而漫长。对我而言,转战人工智能只是学习和成长的新开始。

 

图源:Unsplash

 

 

我的旅程

 

跳上慕课的宣传列车

 

只有经济学和金融学背景,我不知道怎样编程。ExcelVBA与编程十分接近,但仅此而已。为了成为一名高成就者,跳进数据科学的潮流,我报名参加了很多大型网络公开课(慕课)。以下是我报名的课程列表:

 

· python训练营:从零到英雄[Udemy]

· 数据科学和机器学习的python训练营 [Udemy]

· 使用MySQL管理大数据[Coursera]

· 初学者的Java教程[Udemy]

· Web开发人员训练营[Udemy]

· 机器学习A-Z:数据科学中的python和R实践[Udemy]

· 使用Docker部署机器学习和NLP模型[Udemy]

 

毋庸置疑,大多数课程我都没能完成(只完成了标记粗体的课程)。我陷入了慕课自我延续的循环。知识的易获取性使得课程很自然地从一门课延续到下一门,因为覆盖的主题太简短,使我的兴趣转瞬即逝,我经常还没上完前一门课就跳到了下一门。

 

对我而言,内容简短是慕课最大的缺点。我本希望学完慕课就能得到一份数据科学的职业,但现在看来过于天真了。

 

为了提供观点,教授传统的机器学习(ML)方法的慕课常常忽略了模型的实际作用。慕课讲述随机森林算法是决策树的集合,但并未说明决策树如何决定在哪个分支上选择哪个特征(如熵的概念和计算)。它只简单讲述了支持向量机是一种分类方式,但没有说明如何确定超平面。

 

在更先进的AI领域(如深度学习)里,“我知道什么”和“我需要知道什么”大相径庭。教深度学习的慕课的惯用套路是:把一堆代码放到Tensorflow上,放在如MNIST的优秀数据库中,并推断“你现在已经是一名深度学习专家了”(有些夸张,但你应该能懂我意思)。这与现实相差甚远,因为研究报告经常包含复杂的结构,包括对深度神经网络模型中提取特征的理解,以及其他更复杂的特征,如变压器和双向编码的理解。理解最先进模型优于其他模型的原因也很重要,以及一些概念如转移学习和元学习。

 

我认为,教ML的慕课常常给人以这样的错觉,即任何人都能成为一名ML从业者。他们天真的以为,ML仅仅是几行包含.fit()和.predict()的代码。这是因为慕课表示人们可以较为轻松的开始学习ML(或许正是对于ML的大量炒作使得这些课程利润丰厚)。

 

不过别误解我,慕课其实很棒。它使人们能方便快捷地获得知识,开始某个话题。但是它们能使你成为专家吗?明显不能。你在学完课程后所做的,才能决定你能否成为专家。

 

把手弄“脏”

 

完成几个慕课课程后,我一无所获。诚然,我学会了python的一些基本技能,知道如何通过.fit()和.predict()使用sci-kit learn,但仅此而已。

 

为了提高编程技巧,我在Hackerrank上进行练习并完成了与SQL和Python相关的问题。与其同时,我想将python应用于真实项目中。于是我开始研究用于预订羽毛球场的机器人,它主要能使用Selenium与浏览器交互以进行网页导航,最终购买并支付定金(类似于运动鞋机器人)。我开始该研究的动机是,新加坡的羽毛球场通常提取两周就被订满了,常常一到放票时间,许多人就每天在预订网站上露营抢票。(它们通常在一两秒内就被预订了)

 

虽然我对自己的python编程比较自信,但我对代码效率一无所知。时间和空间复杂度对我来说是完全陌生的。对我而言,面对对象编程只是一个概念,我从未实战过(更不用说最终会被遗忘了)。

 

在ML领域,我是Jupyternotebook专家。我可以将Jupyter notebook的主题改为“黑暗模式”并充分利用键盘上所有快捷键。显然,我已经准备好接受数据科学家这一角色了。

 

而事实检验——我的面试惨败。设计代码的技术测试让我更快的迈出了“数据科学”的大门。我申请的技术分析岗位让我到另一个部门,因为他们觉得我去业务分析岗位可能更合适。

 

我距离我需要去的地方还很远。

 

图源:Unsplash

 

手还不够“脏”

 

为了更加深入学习ML和训练python技能,我决定在新加坡管理大学攻读IT商业硕士学位(专攻AI)。

 

我学习了传统ML模型背后的数学原理,并将最先进的深度学习架构应用到自我管理的数据集中。我学习了关于AI的重要概念,包括通用搜索算法、Q学习和深度Q学习。学习了算法设计,包括图形算法、时间和空间复杂度、名字匹配算法以及许多几乎要撕裂我非计算机科学大脑的算法。实质上,这些课程为我提供了慕课所缺乏的学术严谨性。

 

硕士期间我的一些项目小有成就。他们不是完全成熟的项目,因为所用的数据集通常是别人给的或者从Kaggle上获得的,而且展示在Jupyter notebook后项目就结束了。深度学习模型在Docker上持续运行,但是从未考虑过部署方面。毕竟只是学校的项目而已。

 

我认为,硕士学位提供了AI专业人士所必需的学术严谨性,但是缺乏实用性。硕士课程不会告诉你找到一份数据科学工作需要什么,你必须自己弄清楚。软件工程和开发运维技能是数据科学家工作的一部分(但是不够广泛)。代码协作在大型组织里也很重要。同样地,知道如何搭建Docker环境、启动AWS EC2实例、在Azure blob存储上托管数据集、有效组织代码以及使用GitHub或Gitlab进行版本控制都是一些必需的关键技巧,然而这些在课堂上也学不到。

 

就算你认为自己不够优秀,也要大胆去尝试。

 

我继续参加面试,在技术面试和非技术面试中积累了大量经验(尽管大多数面试还是不及格)。这使我了解自己的知识盲区并能花时间学习相关技能。更重要的是,它使我了解不同公司对同一岗位提出的不同工作描述,以及这些工作描述与公司在AI应用的成熟度上的相关性。

 

两年后,我得到了一份AI工程师的工作。对我来说,这是一个极大的学习和成长机会,是我所梦寐以求的。除此之外,这也证明了任何人都能完成他们着手做的事情,尽管有些人花费的时间可能会久一些。

 

最后,职业是一场马拉松,而不是冲刺赛。做你热爱的事情,因为工作会占据你人生的大部分时间。

 

如果你彷徨不知向何处去,请记住Elsa所说的,“做下一件该做的事”。

 

图源:Unsplash

 

所以,与其浪费时间在那纠结,不如赶紧行动起来吧~

 

声明:每个人在数据科学上的旅程是不同的。这篇文章不是关于“如何进入AI世界的大门”,也不应被视为入门指南。这只是我的个人经历,希望能鼓励人们冒险去做自己想做的,因为生命转瞬即逝,不应毫无意义地虚度一生。

 

留言 点赞 关注

我们一起分享AI学习与发展的干货
欢迎关注全平台AI垂类自媒体 “读芯术”

(添加小编微信:dxsxbb,加入读者圈,一起讨论最新鲜的人工智能科技哦~)

读芯术 发布了733 篇原创文章 · 获赞 2402 · 访问量 35万+ 他的留言板 关注

标签:慕课,工程师,人工智能,ML,编程,python,学习,AI,编写
来源: https://blog.csdn.net/duxinshuxiaobian/article/details/104080206

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有