江南官网app 为船舶与海洋工程行业提供技术支持与动力,是船舶行业最大门户分类网站
全国: | 上海:
水上物流产品分类
主页 > 电气自动 > 软件工程师如何转行做人工智能?
软件工程师如何转行做人工智能?
来源:www.ascsdubai.com    时间:2022-06-10 08:23    点击:97   编辑:admin

谢谢邀请!

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

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

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

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

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

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

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

说说我的个人经历我亲身经历了从非AI软件开发到AI的转变。

我一直对AI感兴趣,也知道这是技术发展的一个大趋势。所以在2016年以前,陆陆续续地关注一些AI博客,断断续续地学习,但一直没有系统学习过。

在2016年,因为工作的变动,就开始系统地学习了AI。买了一些AI的书来读,在coursera在线学习网站上,参加了业界有名的Andrew Ng(吴恩达)的《机器学习》课程。

这是我是在2016年5月份获得的《机器学习》结业证书。

《机器学习》结业,只是入门。而AI分成好几个领域,比如图像识别、NLP等等,每一门的水都挺深。我选择进入NLP,因为其它领域都被大公司吃完了,而NLP相对不太成熟,小公司更有机会。

我学习了NLP的实用技术,并用来做产品。后来还是因为AI更是大公司的菜,加上其它的一些事情,就转向聚焦在区块链上了。

所以,我觉得我有资格来回答这个问题。

对于软件工程师,这种转变,不叫转行,而叫学习新技能。

首先,还是需要有扎实的数学知识对于很多软件工程师,数学知识平时用得少,软件功能都是调用这个库、那个API来实现的。这在AI之前,在很多公司还算是合格的,毕竟能完成工作。

但到AI领域后,你就会发现没有数学知识,碰到一些问题就懵了,很吃亏,效率会很低。

我的《微积分》是很多年钱学的,早就丢掉了。到了AI领域,发现有很多微积分内容,又得捡回来。

你至少需要准备这些数学知识:

线性代数。将会碰到有很多向量和矩阵,所有计算的基础,重要性不言而喻

概率与统计

微积分

其次,系统地参加人工智能的通用课程刚开始入门,要推荐吴恩达的《机器学习》,这是一堂有名的课,评分高达4.9分。

这门课程难度为中等偏低,每期都有习题练习,习题需要一般的编程能力,全部通过才能获得结业证书。

然后再深入一点,就是目前业界广泛使用的神经网络中的深度学习。

深度学习在Coursera上,是有一个专项课程。专项课程是几个相关课程的集合。深度学习专项内部包含了4个课程。如果有条件,最好把所有的课程学一遍:

如果没时间学完专项,那么其中的《神经网络和深度学习》是必学的:

再次,根据具体的业务领域,选择适合的框架和语言,边学边做到了这一步,你就要开始实战了。

这里要看你从事的领域的需求,学习更具体的算法。比如公司搞图像识别,那CNN必须要精通;如果是NLP,要学word2vec、RNN等。

然后选择编程语言和AI框架。

如果公司没有硬性要求语言和框架。在语言方面,而你是新手,或者编程经验不多,最好就直接用Python;对于老手,存在存量绑架,也因为对某语言用得熟练,那要选择支持你的编程语言的框架。

一般来说,选择谷歌的TensorFlow更好,公司有技术实力保障,对语言支持能力强,连JavaScript都支持。

给码农的话最后,对于软件工程师,再过几年,AI将是所有公司所必备一项能力,那么的AI技能,也就是码农必备的技能,那就快点学起来,用起来。

和其它行业一样,码农要保持自己的职业竞争力,需要活到老,学到老。在软件技术这块,迭代周期别其它行业要快很多,就更需要坚持不断学习。

Baidu
map