谷歌八年算法工程师分享几点算法学习小技巧

https://www.toutiao.com/a6651524729897222670/

 

2019-01-29 17:50:00

作为一名技术人员,我想大部分人都经历过迷茫的阶段,不知道自己该超那个方向努力,搞不清该怎么往后规划自己的未来,这也是正常现象,谁都有迷茫的时候,只要走出来就好了,这才是完整的人生,只要采取积极的方法与措施,最终肯定是能走出这段迷茫的阶段的,

谷歌八年算法工程师分享几点算法学习小技巧

 

怎样成为一名优秀的算法工程师?

这是很多从事人工智能学术研究和产品研发的同学都关心的一个问题。面对市场对人才的大量需求与供给的严重不足,以及高薪水的诱惑,越来越多的人开始学习这个方向的技术,或者打算向人工智能转型。市面上各种鱼龙混杂的培训班以及误导人的文章会把很多初学者带入歧途,浮躁的跟风将会让你最后收获甚微,根本达不到企业的用人要求。为了更好的帮助大家学习和成长,少走弯路,在今天的文章里,以自己的亲身经历和思考,为大家写下对这一问题的理解与答案。

首先来看一个高度相关的问题:一个优秀的算法工程师必须具备哪些素质?我们给出的答案是这样的:

​数学知识

编程能力

机器学习与深度学习的知识

应用方向的知识

对自己所做的问题的思考和经验

除去教育背景,逻辑思维,学习能力,沟通能力等其他方面的因素,大多数公司在考察算法工程师的技术水平时都会考虑上面这几个因素。接下来我们将按照这几个方面进行展开,详细的说明如何学习这些方面的知识以及积累经验。

在机器学习中主要用到了微分部分,积分用的非常少。具体的,用到了下面的概念:

导数和偏导数的定义与计算方法,与函数性质的关系

梯度向量的定义

极值定理,可导函数在极值点处导数或梯度必须为0

雅克比矩阵,这是向量到向量映射函数的偏导数构成的矩阵,在求导推导中会用到

Hessian矩阵,这是2阶导数对多元函数的推广,与函数的极值有密切的联系

凸函数的定义与判断方法泰勒展开公式

拉格朗日乘数法,用于求解带等式约束的极值问题

其中最核心的是多元函数的泰勒展开公式,根据它我们可以推导出梯度下降法,牛顿法,拟牛顿法等一系列最优化方法。如果你想要深入的学习微积分,可以阅读数学系的教程,称为数学分析:

谷歌八年算法工程师分享几点算法学习小技巧

 

与工科的高等数学偏重计算不同,它里面有大量的理论证明,对于锻炼数学思维非常有帮助。北大张筑生先生所著的数学分析可谓是国内这方面教材的精品。

下面来看线性代数,同样是同济版的教材:

如果想更全面系统的学习线性代数,可以看这本书:

谷歌八年算法工程师分享几点算法学习小技巧

 

相比之下,线性代数用的更多。具体用到的知识点有:

向量和它的各种运算,包括加法,减法,数乘,转置,内积

向量和矩阵的范数,L1范数和L2范数

矩阵和它的各种运算,包括加法,减法,乘法,数乘

逆矩阵的定义与性质

行列式的定义与计算方法

二次型的定义

矩阵的正定性

特征值与特征向量

奇异值分解

线性方程组的数值解

机器学习算法处理的数据一般都是向量、矩阵或者张量。经典的机器学习算法输入的数据都是特征向量,深度学习算法在处理图像时输入的2维的矩阵或者3维的张量。掌握这些概念是你理解机器学习和深度学习算法的基础。

学习人工智能的就业前景本身就非常好,人工智能正在一步步的渗透并改变我们的生活方式。李彦宏就曾经在互联网大会上做出了掷地有声的结论:下一个时代是人工智能时代!

近年来,人工智能技术在各行各业中的应用越来越普及,相关专业技术人才也是供不应求,各大公司或是创业公司不惜重金招募AI人才。

因此,大家一定要抓紧时间学习人工智能。如果真的想好了要入行,就早点投身人工智能行业进行学习吧!