毫无疑问,人工智能是目前整个互联网领域最火的行业,随着AlphaGo战胜世界围棋冠军,以及各种无人驾驶、智能家居项目的布道,人们已经意识到了AI就是下一个风口。当然,程序员是我见过对于新技术最敏感的一个人群,举一个例子:当TensorFlow刚刚面世的时候,几乎所有搞大数据的同学一见面就开始交流这方面的内容,仿佛所有人一夜之间成了“TFboys”(tensorflow_boys)。我觉得之所以程序员对于新技术很敏感有两个原因,其一是技术这碗饭会逼着你不停地去学习,不然很快会被淘汰;其二是程序员大多是理工男,对于新事物是充满好奇的。借着出版《机器学习实践应用》的机会 
 
,又是到了这样一个档口,就是很多程序员面临转型,需要去学习AI技术,在这一文我就简单谈谈我对学习AI的一些看法,我自己的肤浅想法,轻喷哈。

(先声明下我不是算法大神,我是阿里机器学习产品经理,不过我身边都是各种各样的算法大牛)首先讲下我个人的学习经历,我最先接触编程是在刚上大学的时候,2010年左右。最早的时候大家都信奉PHP是最牛的语言,当时觉得能做网站的人都是大仙。过了不到3年,移动互联网的浪潮来了,几乎所有人全部转去学Android开发、iOS开发,而且最初的时候做移动端开发是非常吃香的(这股浪潮很像现在的AI浪潮,我确信不到三年时间市面上的算法工程师会成指数性增长)。我自己当时是在做android开发,也是在一家大的手机公司实习,我当时觉得开发手机软件挺酷的,直到有一个契机让我见识到了AI。当时是有一次机会调用了某个以色列公司开发的眼球识别SDK,13年那时候看到眼球识别这总高端技术是觉得非常神奇的,后来我偷偷Google了下后端的技术,这才第一次认识到了世界上居然有机器学习算法这种东西。于是理工男的那种对新技术的好奇心就促使我去学习机器学习算法,刚一开始先认识了一些基础的算法,比如LR、KNN、RF这些,当时在国内没有这么多的视频课程可以学习,买了一本《机器学习实战》的书,是外国翻译过来的,把里面的很多代码都自己推敲了一遍,成长很大。但是学习机器学习,光知道算法是远远不够的,还需要数据和场景去操练。正好当时阿里举办第一届天池大赛,奖金记得有100万,于是就和几个小伙伴结队参赛,比赛比了两个月,当时真正的在TB级别的数据下实践了特征工程、调参、交叉验证、计算F1分等等。而且第一次体会了分布式集群的威力。当时比赛用的是阿里云的xlab,也就是机器学习PAI的前身。比赛的时候我就深深的爱上了这款云端的机器学习工具,导致后来我义无反顾的投身阿里云,做了PAI的产品经理,开启了我的机器学习业务实践之路。

讲了这么多我自己的经历,希望对大家有一些启发。总结归纳一下程序员如何转型成为AI工程师。首先,需要确立自己的职责,是算法开发还是算法应用,这两个差别很大。如果工作的性质是通过算法去解决一些实际的业务问题,偏算法应用,那我觉得需要更专注于了解业务以及算法的使用场景。如果工作性质是去开发算法,提升效率,那么需要更多的关注数学推导能力以及编程技巧。机器学习算法对数学的能力要求是非常高的,这就是为什么BAT很多算法开发工程师都是数学专业毕业的原因。 
 
当明确了自己的定位,还需要一个环境去实践,需要有大量的数据在特定的场景下去不断磨练自己对数据的认知,对数据认知的过程就是将业务抽象成数学公式,将数据转化为特征的过程,我觉得这个能力会比推导算法更重要。在这里给大家一些推荐: 
1.首先学习算法可以去看一些书《机器学习实战》(强烈推荐)、《统计学习方法》(偏底层数学推导)、《机器学习实践应用》(偏业务)。也可以去看看吴恩达老师的关于机器学习的斯坦福公开课。 
2.关于实践场景,可以去参加Kaggle的比赛或者天池大赛,在这里强烈推荐天池大赛,因为天池不光会提供真实的数据和比赛环境,最关键的是你可以获得许多与高手切磋交流的机会,这些交流会让人快速成长。 
3.多多实践,其实市面上有很多现成的开源工具可以使用,有R、Spark-MLib、Sklearn等等,也有很多地方可以下载到开源数据集,推荐UCI数据集。下载好数据,选定一个场景,自己用代码去跑跑效果,比看100篇鸡汤都管用。

最后希望大家都能掌握算法技巧,即使不能从事AI工作,对于数据的认知能力也一定是未来最核心的竞争力。

我自己的一些小看法,仅代表个人哈。 
作者微信公众号: 

普通程序员如何入门AI的更多相关文章

  1. [置顶] 普通程序员如何入门AI

    毫无疑问,人工智能是目前整个互联网领域最火的行业,随着AlphaGo战胜世界围棋冠军,以及各种无人驾驶.智能家居项目的布道,人们已经意识到了AI就是下一个风口.当然,程序员是我见过对于新技术最敏感的一 ...

  2. 普通程序员如何转向AI方向(转)

    普通程序员如何转向AI方向   眼下,人工智能已经成为越来越火的一个方向.普通程序员,如何转向人工智能方向,是知乎上的一个问题.本文是我对此问题的一个回答的归档版.相比原回答有所内容增加. 一. 目的 ...

  3. 【转帖】普通程序员如何转向AI方向

    普通程序员如何转向AI方向 https://www.cnblogs.com/subconscious/p/6240151.html 眼下,人工智能已经成为越来越火的一个方向.普通程序员,如何转向人工智 ...

  4. 普通程序员如何转向AI方向

    眼下,人工智能已经成为越来越火的一个方向.普通程序员,如何转向人工智能方向,是知乎上的一个问题.本文是我对此问题的一个回答的归档版.相比原回答有所内容增加. 一. 目的 本文的目的是给出一个简单的,平 ...

  5. 分享 - 普通程序员如何转向AI方向

    原作者:计算机的潜意识 原文链接,内容稍有改动,侵删 1. 目的2. AI领域简介3. 学习方法4. 学习路线 0) 领域了解1) 知识准备2) 机器学习3) 实践做项目4) 深度学习5) 继续机器学 ...

  6. 普通程序员转型AI免费教程整合,零基础也可自学

    普通程序员转型AI免费教程整合,零基础也可自学 本文告诉通过什么样的顺序进行学习以及在哪儿可以找到他们.可以通过自学的方式掌握机器学习科学家的基础技能,并在论文.工作甚至日常生活中快速应用. 可以先看 ...

  7. 程序员们,AI来了,机会来了,危机也来了

    程序员们,AI来了,机会来了,危机也来了 1.人工智能真的来了 纵观古今,很少有计算机技术能有较长的发展寿命,大部分昙花一现,比如:昔日的DOS.windows3.2.foxpro.delphi.80 ...

  8. 普通程序员,三年成为年薪70w架构师,只因做到了这些

    每个程序员.或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来.今天给大家分享的是一篇来自阿里Java架构师对普通程序员的职业建议,希望 ...

  9. <程序员从入门到精通> -- How

    定位 自己才是职业生涯的管理者,想清楚自己的发展路径: 远期的理想是什么?近期的规划是什么?今日的任务和功课又是什么? 今日之任务或功课哪些有助于近期之规划的实现,而近期之规划是否有利于远期之理想? ...

随机推荐

  1. JAX-RS REST 服务结果的自动封装

    如转发请注明: 原文luyiisme博客 当使用遵循 JAX-RS 标准的框架开发REST 服务时,我们倾向于定义个(含有JAX-RS)注解接口. 服务器端负责实现该接口,而客户端是该接口的代理进行远 ...

  2. 使用Scribefire在博客中插入语法高亮

    效果如下, 文字1 int cool void main() { cout<<"hello world!"<<endl } 文字2 经过一番折腾,终于搞定了 ...

  3. js-ES6学习笔记-Set结构和Map结构

    http://www.cnblogs.com/lonhon/ 1.ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set ...

  4. 从栈不平衡问题 理解 calling convention

    最近在开发的过程中遇到了几个很诡异的问题,造成了栈不平衡从而导致程序崩溃. 经过几经排查发现是和调用规约(calling convention)相关的问题,特此分享出来. 首先,讲一下什么是调用规约. ...

  5. maven编译常见错误解决方法整理

    程序包com.sun.xml.internal.ws.spi不存在 当maven项目里面有用到JDK内部的一些类,接口(如:com.sun.xml.internal.ws.spi.ProviderIm ...

  6. Mysql元数据分析

    Mysql元数据分析 @(基础技术) 一.information_schema库 information_schema库中的表,保存的是Mysql的元数据. 官网元数据表介绍 InnoDB相关的表介绍 ...

  7. JAXP Dom 案例 对xml文件进行增加 查找 删除

    利用 JAXP 对 XML文件 的处理,把xml当做一个数据库来对待

  8. 谷歌是如何做代码审查的 | 外刊IT评论 - Google Chrome

    谷歌是如何做代码审查的           本文的作者 Mark CC 在上一篇文章中提到过,我已经不在Google工作了.我还没有想清楚应该去哪里-有两三个非常好的工作机会摆在我面前.因为在这段做决 ...

  9. easyui点击搜索的时候获取不要文本框里面的值的问题

    jsp的代码 <div id="tb"> <input id="AppID" placeholder="请根据申请人ID搜索&quo ...

  10. UVa455 Periodic String 的wronganswer问题探讨,以及AC的新思路

    题目的意思是一个字符串有某个长度为k的字符串通过不断重复形成的,而k被称为该字符串的周期.而我们所要做的是找出该字符串的最小周期. input The first line is an integer ...