毫无疑问,人工智能是目前整个互联网领域最火的行业,随着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. [置顶] 程序员必知(三):一分钟知道URI编码(encodeURI)

    因为浏览器会用一些特殊的字符作为特定的意义,所以在要传输的内容上如果有这些特殊的字符的话,就需要对其进行转义才能正确传输,如以下字符为发送时候的关键字,即特殊字符 ;/?:@&=+$,# 所以 ...

  7. [置顶] 程序员必知(二):位图(bitmap)

    位图是什么? 位图就是数组,一般来说是bit型的数组,具有快速定位某个值的功能,这种思想有很广泛的应用,比如下边两题: 1 找出一个不在5TB个整数中存在的数 假设整数是32位的,总共有4GB个数,我 ...

  8. [置顶] 程序员面试之道(《程序员面试笔试宝典》)之看着别人手拿大把的offer,不淡定了怎么办?

    不管是在哪里,不管发生什么事,不要随便放下自己. ——<当男人恋爱时> 很多求职者都会面临一个问题:别人手拿大把大把的offer了,而自己却是两手空空,别人签约之后已经过着“猪狗不如”的悠 ...

  9. [置顶] 轻量级语言Lua入门

    作为一个脚本爱好者,而且是脚本(Perl)起家的我,一有空就喜欢学习下这些脚本语言.据说魔兽世界.愤怒小鸟都用到了它,所以今天研究下Lua这个叫法有点奇特的脚本 [转载请注明出处:http://blo ...

随机推荐

  1. 20145329 《Java程序设计》第九周学习总结

    教材学习内容总结 十六章 1.Metadata即"诠读数据的数据",数据库是用来存储数据的地方,然而数据库本身产品名称为何?数据库中有几个数据表格?表格名称为何?表格中有几个字段等 ...

  2. mongodb入门很简单(3)

     ##简单的mongodb入门命令## 1.show dbs;      //查看当前数据库 2.use databaseName;         //选库 3.show tables/collec ...

  3. Exynos4412 IIC总线驱动开发(一)—— IIC 基础概念及驱动架构分析

    关于Exynos4412 IIC 裸机开发请看 :Exynos4412 裸机开发 —— IIC总线 ,下面回顾下 IIC 基础概念 一.IIC 基础概念 IIC(Inter-Integrated Ci ...

  4. visual studio中添加existing web site, website名字附带数字

    用visual studio直接运行website项目 发现有一个conifg文件的配置,路径是solution同级目录下的.vs/config文件夹下有一个applicationhost.confi ...

  5. STL map用法总结(multimap)

    2017-08-19 10:58:52 writer;pprp #include <map> #include <string> #include <iostream&g ...

  6. Spring boot 外部资源配置

    tomcat配置访问图片路径映射到磁盘路径   首先,我在调试页面的时候发现,图片路径为: 1 /webapps/pic_son/img/1234565456.jpg 但是,tomcat中webapp ...

  7. maven spring MVC 及tomcat

    eclipse+tomcat8+springMVC环境搭建https://blog.csdn.net/code_fighter/article/details/79169058 Eclipse+Tom ...

  8. 使用jsonp去访问跨域数据,回调使用数据

    var foo = function (data) { console.log("foo", data)} var testJsonP = function () { $.ajax ...

  9. codevs 1540 银河英雄传说 并查集

    1540 银河英雄传说 2002年NOI全国竞赛  时间限制: 1 s  空间限制: 256000 KB       题目描述 Description 公元五八○一年,地球居民迁移至金牛座α第二行星, ...

  10. linux ps 命令参数详解

    -a 显示所有终端机下执行的进程,除了阶段作业领导者之外. a 显示现行终端机下的所有进程,包括其他用户的进程. -A 显示所有进程. -c 显示CLS和PRI栏位. c 列出进程时,显示每个进程真正 ...