十余年谷歌大佬的见解:成为算法工程师到底需要学些什么?

人工智能?

感觉这个词很广泛,我之前想把人工智能当成某一项技术来学,但是并没有找到我满意的答案,还是说人工智能本就不是某一项技术?

首先回答一下人工智能到底学什么

1、学习并掌握一些数学知识

高等数学是基础中的基础,一切理工科都需要这个打底,数据挖掘、人工智能、模式识别此类跟数据打交道的又尤其需要多元微积分运算基础

线性代数很重要,一般来说线性模型是你最先要考虑的模型,加上很可能要处理多维数据,你需要用线性代数来简洁清晰的描述问题,为分析求解奠定基础

概率论、数理统计、随机过程更是少不了,涉及数据的问题,不确定性几乎是不可避免的,引入随机变量顺理成章,相关理论、方法、模型非常丰富。很多机器学习的算法都是建立在概率论和统计学的基础上的,比如贝叶斯分类器、高斯隐马尔可夫链。

再就是优化理论与算法,除非你的问题是像二元一次方程求根那样有现成的公式,否则你将不得不面对各种看起来无解但是要解的问题,优化将是你的GPS为你指路

有以上这些知识打底,就可以开拔了,针对具体应用再补充相关的知识与理论,比如说一些我觉得有帮助的是数值计算、图论、拓扑,更理论一点的还有实/复分析、测度论,偏工程类一点的还有信号处理、数据结构。

2、掌握经典机器学习理论和算法

如果有时间可以为自己建立一个机器学习的知识图谱,并争取掌握每一个经典的机器学习理论和算法,我简单地总结如下:

1) 回归算法: 常见的回归算法包括最小二乘法(OrdinaryLeast

Square),逻辑回归(Logistic Regression),逐步式回归(Stepwise

Regression),多元自适应回归样条(MultivariateAdaptive Regression

Splines)以及本地散点平滑估计(Locally Estimated Scatterplot Smoothing);

2) 基于实例的算法: 常见的算法包括 k-Nearest Neighbor(KNN), 学习矢量量化(Learning Vector Quantization, LVQ),以及自组织映射算法(Self-Organizing Map , SOM);

3) 基于正则化方法: 常见的算法包括:Ridge Regression, Least Absolute Shrinkage and Selection Operator(LASSO),以及弹性网络(Elastic Net);

4) 决策树学习: 常见的算法包括:分类及回归树(ClassificationAnd

Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C4.5,

Chi-squared Automatic Interaction Detection(CHAID), Decision Stump,

随机森林(Random Forest), 多元自适应回归样条(MARS)以及梯度推进机(Gradient Boosting Machine,

GBM);

5) 基于贝叶斯方法: 常见算法包括:朴素贝叶斯算法,平均单依赖估计(AveragedOne-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN);

6) 基于核的算法: 常见的算法包括支持向量机(SupportVector Machine, SVM), 径向基函数(Radial Basis Function ,RBF), 以及线性判别分析(Linear Discriminate Analysis ,LDA)等;

7) 聚类算法: 常见的聚类算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM);

8) 基于关联规则学习: 常见算法包括 Apriori算法和Eclat算法等;

9) 人工神经网络: 重要的人工神经网络算法包括:感知器神经网络(PerceptronNeural

Network), 反向传递(Back Propagation), Hopfield网络,自组织映射(Self-OrganizingMap,

SOM)。学习矢量量化(Learning Vector Quantization, LVQ);

10) 深度学习: 常见的深度学习算法包括:受限波尔兹曼机(RestrictedBoltzmann

Machine, RBN), Deep Belief Networks(DBN),卷积网络(Convolutional Network),

堆栈式自动编码器(Stacked Auto-encoders);

11) 降低维度的算法: 常见的算法包括主成份分析(PrincipleComponent

Analysis, PCA),偏最小二乘回归(Partial Least Square Regression,PLS),

Sammon映射,多维尺度(Multi-Dimensional Scaling, MDS), 投影追踪(ProjectionPursuit)等;

12) 集成算法: 常见的算法包括:Boosting,

Bootstrapped Aggregation(Bagging),AdaBoost,堆叠泛化(Stacked

Generalization, Blending),梯度推进机(GradientBoosting Machine,

GBM),随机森林(Random Forest)。

3、掌握一种编程工具,比如Python

一方面Python是脚本语言,简便,拿个记事本就能写,写完拿控制台就能跑;另外,Python非常高效,效率比java、r、matlab高。matlab虽然包也多,但是效率是这四个里面最低的。

4、了解行业最新动态和研究成果, 比如各大牛的经典论文、博客、读书笔记、微博微信等媒体资讯。

5、买一个GPU,找一个开源框架,自己多动手训练深度神经网络,多动手写写代码,多做一些与人工智能相关的项目。

6、选择自己感兴趣或者工作相关的一个领域深入下去

人工智能有很多方向,比如NLP、语音识别、计算机视觉等等,生命有限,必须得选一个方向深入的专研下去,这样才能成为人工智能领域的大牛,有所成就。

再回答第二个问题,人工智能到底是不是一项技术?

根据百度百科给的定义,人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的还能的理论、方法、技术及应用系统的一门新的技术科学。

人工智能是一项技术。希望能帮到你,还整理了针对于想学习人工智能这一板块的学习资料。

人工智能?

感觉这个词很广泛,我之前想把人工智能当成某一项技术来学,但是并没有找到我满意的答案,还是说人工智能本就不是某一项技术?

首先回答一下人工智能到底学什么

1、学习并掌握一些数学知识

高等数学是基础中的基础,一切理工科都需要这个打底,数据挖掘、人工智能、模式识别此类跟数据打交道的又尤其需要多元微积分运算基础

线性代数很重要,一般来说线性模型是你最先要考虑的模型,加上很可能要处理多维数据,你需要用线性代数来简洁清晰的描述问题,为分析求解奠定基础
概率论、数理统计、随机过程更是少不了,涉及数据的问题,不确定性几乎是不可避免的,引入随机变量顺理成章,相关理论、方法、模型非常丰富。很多机器学习的算法都是建立在概率论和统计学的基础上的,比如贝叶斯分类器、高斯隐马尔可夫链。

再就是优化理论与算法,除非你的问题是像二元一次方程求根那样有现成的公式,否则你将不得不面对各种看起来无解但是要解的问题,优化将是你的GPS为你指路

有以上这些知识打底,就可以开拔了,针对具体应用再补充相关的知识与理论,比如说一些我觉得有帮助的是数值计算、图论、拓扑,更理论一点的还有实/复分析、测度论,偏工程类一点的还有信号处理、数据结构。

2、掌握经典机器学习理论和算法

如果有时间可以为自己建立一个机器学习的知识图谱,并争取掌握每一个经典的机器学习理论和算法,我简单地总结如下:

1) 回归算法: 常见的回归算法包括最小二乘法(OrdinaryLeast

Square),逻辑回归(Logistic Regression),逐步式回归(Stepwise

Regression),多元自适应回归样条(MultivariateAdaptive Regression

Splines)以及本地散点平滑估计(Locally Estimated Scatterplot Smoothing);

2) 基于实例的算法: 常见的算法包括 k-Nearest Neighbor(KNN), 学习矢量量化(Learning Vector Quantization, LVQ),以及自组织映射算法(Self-Organizing Map , SOM);

3) 基于正则化方法: 常见的算法包括:Ridge Regression, Least Absolute Shrinkage and Selection Operator(LASSO),以及弹性网络(Elastic Net);

4) 决策树学习: 常见的算法包括:分类及回归树(ClassificationAnd

Regression Tree, CART), ID3 (Iterative Dichotomiser 3), C4.5,

Chi-squared Automatic Interaction Detection(CHAID), Decision Stump,

随机森林(Random Forest), 多元自适应回归样条(MARS)以及梯度推进机(Gradient Boosting Machine,

GBM);

5) 基于贝叶斯方法: 常见算法包括:朴素贝叶斯算法,平均单依赖估计(AveragedOne-Dependence Estimators, AODE),以及Bayesian Belief Network(BBN);

6) 基于核的算法: 常见的算法包括支持向量机(SupportVector Machine, SVM), 径向基函数(Radial Basis Function ,RBF), 以及线性判别分析(Linear Discriminate Analysis ,LDA)等;

7) 聚类算法: 常见的聚类算法包括 k-Means算法以及期望最大化算法(Expectation Maximization, EM);

8) 基于关联规则学习: 常见算法包括 Apriori算法和Eclat算法等;

9) 人工神经网络: 重要的人工神经网络算法包括:感知器神经网络(PerceptronNeural

Network), 反向传递(Back Propagation), Hopfield网络,自组织映射(Self-OrganizingMap,

SOM)。学习矢量量化(Learning Vector Quantization, LVQ);

10) 深度学习: 常见的深度学习算法包括:受限波尔兹曼机(RestrictedBoltzmann

Machine, RBN), Deep Belief Networks(DBN),卷积网络(Convolutional Network),

堆栈式自动编码器(Stacked Auto-encoders);

11) 降低维度的算法: 常见的算法包括主成份分析(PrincipleComponent

Analysis, PCA),偏最小二乘回归(Partial Least Square Regression,PLS),

Sammon映射,多维尺度(Multi-Dimensional Scaling, MDS), 投影追踪(ProjectionPursuit)等;

12) 集成算法: 常见的算法包括:Boosting,

Bootstrapped Aggregation(Bagging),AdaBoost,堆叠泛化(Stacked

Generalization, Blending),梯度推进机(GradientBoosting Machine,

GBM),随机森林(Random Forest)。

3、掌握一种编程工具,比如Python

一方面Python是脚本语言,简便,拿个记事本就能写,写完拿控制台就能跑;另外,Python非常高效,效率比java、r、matlab高。matlab虽然包也多,但是效率是这四个里面最低的。

4、了解行业最新动态和研究成果, 比如各大牛的经典论文、博客、读书笔记、微博微信等媒体资讯。

5、买一个GPU,找一个开源框架,自己多动手训练深度神经网络,多动手写写代码,多做一些与人工智能相关的项目。

6、选择自己感兴趣或者工作相关的一个领域深入下去

人工智能有很多方向,比如NLP、语音识别、计算机视觉等等,生命有限,必须得选一个方向深入的专研下去,这样才能成为人工智能领域的大牛,有所成就。

再回答第二个问题,人工智能到底是不是一项技术?

根据百度百科给的定义,人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的还能的理论、方法、技术及应用系统的一门新的技术科学。

人工智能是一项技术。希望能帮到你,还整理了针对于想学习人工智能这一板块的学习资料。

原文地址:https://www.cnblogs.com/t198520/p/10826413.html

时间: 2024-10-08 08:04:20

十余年谷歌大佬的见解:成为算法工程师到底需要学些什么?的相关文章

搞机器学习要哪些技能/算法工程师的技能

https://zhuanlan.zhihu.com/p/21276788 前言 本来这篇标题我想的是算法工程师的技能,但是我觉得要是加上机器学习在标题上,估计点的人会多一点,所以标题成这样了,呵呵,而且被搜索引擎收录的时候多了一个时下的热门词,估计曝光也会更多点.不过放心,文章没有偏题,我们来说正经的.今天就说说机器学习这个最近两年计算机领域最火的话题,这不是一篇机器学习的技术文章,只是告诉大家机器学习里面的坑实在是太多,而且很多还没入门或者刚刚入门的朋友们,其实在你们前面是个大坑,如果你励志

阿里巴巴算法工程师四面(三轮技术+hr面)详细面经

阿里面试总结: 一遍一遍地刷阿里网站,今天发现“面试中”变成“待跟进offer”了,写个面经攒人品,希望offer通知邮件早点来吧. 我当时投简历时投了C/C++工程师,其实也没经过啥考虑,因为我一开始是把重点放在进网易游戏或者腾讯游戏部门,投阿里就纯粹出于增加点面试经验,随便找了个C/C++工程师岗位就找人内推了(后转为算法工程师). 一面(3月16日):电话打来时手机显示北京电话,还以为是诈骗的(囧...).听声音,这位阿里面试官大概是三十多岁,有点资历的人吧.一开始让我介绍项目,然后我就把

为什么“高大上”的算法工程师变成了数据民工?

1.算法与算法工程师 先来一段我在知乎里回答"做算法工程师是一种怎样的体验?"的答案(其中的思想并非原创,而是山寨自新加坡某大学一门Quantitative Investment课程的ppt) 理想中的算法工程师:提出假设->收集数据->训练模型->解释结果.实际中的算法工程师:提出假设->收集数据->预处理->预处理->训练模型->调试->调试->重新收集数据->预处理->收集更多数据->调试->调试

算法面试课程笔记001 算法面试到底是什么鬼

算法面试课程笔记001算法面试到底是什么鬼 =============================================================================== 本文地址 : =============================================================================== 算法面试是什么? 让大家在面对面试中的算法问题时,有一个合理的思考路径: ·不代表能够"正确"回答每一个算法问题

【美团点评】2020校招算法工程师方向笔试题

这套题难啊..好多坑点.而且想了好久.交卷两小时..想了一晚上. 第一题还是不知道怎么dp的..可能要坑一下明天补.. 如果有大佬能指点下我就更好了QAQ.我是真的菜.. 试题链接:2020校招算法工程师方向笔试题 5. 外卖小哥的保温箱 题意:众所周知,美团外卖的口号是:”美团外卖,送啥都快”.身着黄色工作服的骑手作为外卖业务中商家和客户的重要纽带,在工作中,以快速送餐突出业务能力:工作之余,他们会通过玩智力游戏消遣闲暇时光,以反应速度彰显智慧,每位骑手拿出装有货物的保温箱,参赛选手需在最短的

算法工程师

算法工程师包括 音/视频算法工程师(通常统称为语音/视频/图形开发工程师).图像处理算法工程师.计算机视觉算法工程师.通信基带算法工程师.信号算法工程师.射频/通信算法工程师.自然语言算法工程师.数据挖掘算法工程师.搜索算法工程师.控制算法工程师(云台算法工程师,飞控算法工程师,机器人控制算法).导航算法工程师( @之介 感谢补充).其他[其他一切需要复杂算法的行业] 专业要求:计算机.电子.通信.数学等相关专业: 学历要求:本科及其以上的学历,大多数是硕士学历及其以上: 语言要求:英语要求是熟

一天一道算法题---6.8--数学题

感谢微信平台:一天一道算法题---每天多一点进步----明天 考离散了 明天 高考结束了 看上去都是 好日子..... 上题目了: 求出用1 , 2 ,5这三个数不同个数的组合的和为100的组合个数. 如:100个1是一个组合:5个1+19个5是一个组合 OK:--- 几天折磨后 终于来了个 我能做的.... PS:  关于6.7--栈中O(1)实现min函数等的  应该会在今晚贴上.. 平台上关于这题的分析很到位: 设 1的个数为X 2的个数为Y 5的个数为Z 和为100的组合总数为cnt 1

当推荐算法开源包多如牛毛,为什么我们还要专门的推荐算法工程师

作为一个推荐系统业余爱好者,在机器学习领域的鄙视链中,我感觉一直地位不高,时常被搞NLP CV语音等高科技技术的朋友鄙视. 最近甚至被人问,推荐算法开源包多如牛毛,我们为什么还要专门的推荐算法工程师?(难道想要辞退我!?惊) 不得不说,我想吐槽这个观点很久了.事实上搞推荐的工作不等于 import IBCF 或者 import time SVD++ import tensor啊摔! 于是找回帐号打开N年不用的博客,写一篇随想,其中含有大量主观臆断以及学术错误,尽量不中英夹杂术语之外的英文,如果有

一天一道算法题--6.5--数学题

感谢 微信平台: 一天一道算法题 ---每天多一点进步---- 话说 这题 我百度了一下 没找到哪个OJ 有出这题 下次 来给我们的学弟学妹们把.... 那我来说下题目大意: 给你一个n 问你从1,2,3--n中选出3个数 能够构成多少种不同的三角形 比如N=5 可以有(2,3,4)(2,3,5)(3,4,5)三种 输入:(3<=n<=n1000000) 输出:种类数 首先 既然是做acm 那么 一般暴力 都直接放弃吧 这里也需要O(n^3)  GG 这里 微信提供的分析 很好  我相信 你慢