软件工程师如何转行做人工智能?

wobushinv


软件工程师转行做人工智能是一个不错的选择,但是要根据自身的知识结构进行相应的准备。对于研发级软件工程师(研发级程序员)来说,转行做人工智能是相对比较容易的,因为研发级工程师往往都有扎实的算法基础。对于应用级软件工程师(应用级程序员)来说,转行做人工智能需要一个系统的准备(学习)过程。

人工智能目前的研究方向比较多,比如自然语言处理、机器学习以及计算机视觉都是不错的研究方向,下面就以机器学习为例,说一下作为应用级软件工程师来说,都应该做好哪些准备。

首先,需要系统的学习一下算法知识。机器学习的研发是以算法为核心进行展开的,所以要有一个扎实的算法基础。这个过程需要了解一些比较经典的算法设计过程,逐步培养起解决问题的思路。这部分的学习内容包括随机算法、堆排序算法、快排、计数排序、贪心算法、核算法、势能法、图算法、多线程算法、数论算法和近似算法等,在学习算法的过程中也会连带着把数据结构一并学习一下,因为算法和数据结构本就不分家。

其次,了解机器学习的实现步骤。机器学习的流程包括数据收集、数据整理、算法设计、算法实现、验证算法和应用算法,数据收集是机器学习的第一步,目前可以用于机器学习的公共数据集并不少,对于实验来说已经够用了。接下来就是了解常见的机器学习算法,目前比较常见的机器学习算法包括NB、k-mean、kNN、SVM、Apriori、EM、PageRank、CART等算法,对于有算法基础的人来说,这些算法的学习并不困难。

最后,选择一门编程语言来实现这些算法并对其进行验证。对于软件工程师来说,这个步骤还是相对比较轻松的,目前使用Python做机器学习的算法实现是一个比较常见的做法。

人工智能是我的主要研究方向之一,目前我也在带相关方向的研究生,我会陆续在头条写一些关于人工智能方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有人工智能方面的问题,也可以咨询我,谢谢!


IT人刘俊明



首先人工智能肯定是未来的一个方向,无论是否想转行,都有必要去了解人工智能技术。


其次我认为学习人工智能主要有四种境界,你需要确定自己需要达到哪种境界,才好确定你的努力方向和策略。


1.科学家境界
2.工程师境界
3.应用者境界
4.知其然境界


科学家境界

科学家境界是很少很少一部分人能达到的境界,主要是那些从事人工智能研究的科学家,他们能原创出很多的算法和理论,解决一些最前沿的难题。比如深度学习的鼻祖Hinton,生成对抗网络发明人 Ian goodfellow,Xgboost发明人陈天奇等等。


工程师境界

工程师境界也是很难的一种境界,需要用很强的理论背景和工程实现能力,能独立复现最新的论文,深刻理解论文的实现原理,并能在上面做一些小创新。


应用者境界

应用者境界是大部分人工智能算法工程师所在的境界,主要就是明白算法原理,知道如何实现,核心在于知道如何把他应用在一个实际的业务场景之中。


知其然境界

最后一个是知其然,也知其所以然境界,知道当下的人工智能到底是什么,知道机器学习和深度学习大概是个什么东西,不会过分的去神话AI,知道目前AI的优势,更知道目前AI的局限。


不同的境界对应不同的要求,简单点概括就是:

工程能力决定你的下界,理论能力与业务理解决定你的天花板。


PS:本号作者目前是某大厂机器学习算法工程师,致力于全栈AI算法和业务场景落地,非常乐于在网上分享最新的AI知识,也经常开直播教同学AI算法和编程。感兴趣的同学可以关注本头条号,获得最新的干货!


人工智能与未明学院


软件工程师,首先上手python不是问题。

然后就得补机器学习的知识了。这个比较需要精力,初步的了解简单网络,以cnn最为常见。cnn家族很大,如果做的与图像相关,肯定要深入了解并关注最新文献状态。其他还有很多类型的网络模型,以rnn,对抗生成网络,自编码器等为代表,这些东西通过国内的博客就能大量学习,作为转阵地的资学习资料足够丰富了

接着,机器学习里,作为程序员最喜欢的部分,深度学习框架,选择主流几种的一个,上手做实验。代码去github上找,数据集就用公开的。还是那句话,博客对爱学习的人来说,非常友好

机器学习要由浅入深,跑一跑经典的网络,分析一下代码,再对照论文理解理解。见得多,练的多,基本就进了机器学习的大门了。对于程序员来说,应该不用做学术研究吧,熟悉性能最优的最新网络就够了,用的好就行


allenlew312


人工智能和使用何种语言无关。目前主要是模糊控制(Fuzzy Logic Control)和神经元网络(Neural Networks - NN),大多应用于模式识别,图像处理,自动控制,语音识别等。基于NN, 就开发了机器学习(Machine Learning - ML)和深度学习(Deep Learning - DL)等应用领域,这二者是有区别的。ML 需人工干预(设定输入和输出以训练Training NN),但DL无需人工干预,可自动实现训练和学习过程。且ML有有限的层(2层 - 2 Layers), 但DL具有多层(Multi-Layer), 属于深度学习。所谓深度,就是具有更多尽(深层)NN.


YingBai910


需要很深的数学功底,其它都不重要


等着我96988731


先可以学python,之后再学神经网络搭建。


真IT小叮当


只听说过卷积神经网络。


蓝色土耳其267


我是打酱油的,进错门了不好意思😜


傻傻的冲1


看书学习,实践。基本就是这个套路


JosephKwok659


学习就可以转


分享到:


相關文章: