现在打开一些知名招聘网站,搜索“人工智能”后会出现很多招聘岗位,具有诱惑力的薪酬会让人眼前一亮。以人工智能算法工程师为例,该职位少则月薪1万、2万,多则年薪百万。不像其它行业占据职业高薪榜的是高级管理人才,在人工智能领域中,技术类工程师拿的是最高薪。
人工智能,机器学习,算法这些东西相比较而言是比较难学的,技术性,研究性比一般应用性的开发更难,更费脑子,学习人工智能,机器学习以及算法我认为不仅仅只看重它目前的火热,以及薪水待遇高这些外在,要想学好这些,其实更重要的是需要兴趣以及研究型的头脑。兴趣是最好的老师,如果对算法,机器学习感兴趣这是最好的学习方式。
那么作为普通程序员,向人工智能领域靠拢的话,需要做哪些准备呢?
第一,复习线性代数。这非常重要,模型计算全靠它,一定要复习扎实,如果平常不用可能忘的比较多。而高数和概率只要掌握基础就行了,比如积分和求导、各种分布、参数估计等。概率与数理统计也非常要中,因为cs229种,几乎所有算法的推演都是从参数估计及其在概率模型中的意义起手的,参数的更新规则具有概率上的可能解释性。
第二,入门机器学习算法。并非所有的开发者都有机器学习算法的基础知识,那么开发者如何从零入门来学习好机器学习算法呢?跟着别人的教程来做是一个非常温和的开始。有很多优秀的资源,可以让你用来从零开始实现机器学习算法。也许最具权威性的是能指导你完成整个教程的书籍。从啃书本开始学习有很多好处。例如:其他人已经研究出了该算法并把它转换成了代码;你可以使用它作为一个用于修改和实验的已知工作起点。
第三,尝试用代码实现算法。在这一步,大部分人都卡在了对算法理解不够抽象。可以试试看是不是能把算法的每一步写成你所熟悉的代码的形式,不用管什么语法是否严密,重要的是每一步的逻辑是否清晰,是否能独立地解释清楚。一定写下来自己读一读,如果自己读起来觉得都有点不通,那么可能就是对算法的抽象还不够,如果读起来有一个大块自己觉得似是而非,细化不下去,那么就可能是理解得还不够深刻。
第四,评估一个机器学习模型。评估训练出的模型是准确预测的关键。训练出的模型是建立在总数据的子集上的,其被称为训练数据,训练结束后该模型将被用于预测其它新数据。通过训练集产生的模型,利用测试数据来进行模型效果的评估,评估结果以模型评估报告的形式呈现,在报告中通过AUC值、模型准确率、模型召回率等一系列评估指标将帮助判断模型是否可行以及是否满足业务目标。
接下来就是自己去实现完整的模型了,能做到这一点,你的工资能不翻倍?