前言:随着“大数据”“云计算”“人工智能”等等科技的兴起,IT行业在今后三到五年将会迎来一个高速发展期。这也就意味着会出现大量的人才缺口,尤其是具有综合能力的高端IT人才将会成为各大企业争抢的重点对象。
怎么学人工智能编程,人工智能编程应该如何学才能最快,怎么样学习人工智能编程才能成为优秀的人工智能编程师?
普通程序员如何正确学习人工智能方向的知识?
“互联网+”已经发展的差不多了,应有尽有,空间不大,下个浪潮会不会是“AI+”?那么作为一个普通程序员,如何提前向人工智能(AI)靠拢?
学习人工智能的10本书:http://qh.itpxw.cn/ai/python/201839580.html
人工智能属于什么行业:http://qh.itpxw.cn/ai/python/201839579.html
本人码农,从六月开始正式接触机器学习(其实五年前的本科毕设就是在生物信息领域应用神经网络的项目,但是非常浅薄),深吸一口气,先要声明“人之患在好为人师”,我用的步骤只是适合我,下面的内容仅供参考。
第一步:复习线性代数。(学渣的线代忘了好多-_-||)
懒得看书就直接用了著名的——麻省理工公开课:线性代数,深入浅出效果拔群,以后会用到的SVD、希尔伯特空间等都有介绍;
广告:边看边总结了一套笔记 GitHub - zlotus/notes-linear-algebra: 线性代数笔记。
第二步:入门机器学习算法。
还是因为比较懒,也就直接用了著名的——斯坦福大学公开课 :机器学习课程,吴恩达教授的老版cs229的视频,讲的非常细(算法的目标->数学推演->伪代码)。这套教程唯一的缺点在于没有介绍最近大火的神经网络,但其实这也算是优点,让我明白了算法都有各自的应用领域,并不是所有问题都需要用神经网络来解决;
多说一点,这个课程里详细介绍的内容有:一般线性模型、高斯系列模型、SVM理论及实现、聚类算法以及EM算法的各种相关应用、PCA/ICA、学习理论、马尔可夫系列模型。课堂笔记在:CS 229: Machine Learning (Course handouts),同样非常详细。
广告:边看边总结了一套笔记 GitHub - zlotus/notes-LSJU-machine-learning: 机器学习笔记
第三步:尝试用代码实现算法。
依然因为比较懒,继续直接使用了著名的——机器学习 | Coursera,还是吴恩达教授的课程,只不过这个是极简版的cs229,几乎就是教怎么在matlab里快速实现一个模型(这套教程里有神经网络基本概念及实现)。这套课程的缺点是难度比较低,推导过程非常简略,但是这也是它的优点——让我专注于把理论转化成代码。
广告:作业参考 GitHub - zlotus/Coursera_Machine_Learning_Exercises: Machine Learning by Andrew Ng from Coursera
第四步:自己实现功能完整的模型——进行中。
还是因为比较懒,搜到了cs231n的课程视频 CS231n Winter 2016 - YouTube,李飞飞教授的课,主讲还有Andrej Karpathy和Justin Johnson,主要介绍卷积神经网络在图像识别/机器视觉领域的应用(前面神经网络的代码没写够?这门课包你嗨到爆~到处都是从零手写~)。这门课程的作业就更贴心了,直接用Jupyter Notebook布置的,可以本地运行并自己检查错误。主要使用Python以及Python系列的科学计算库(Scipy/Numpy/Matplotlib)。课堂笔记的翻译可以参考 智能单元 - 知乎专栏,主要由知友杜客翻译,写的非常好~
在多说一点,这门课对程序员来说比较走心,因为这个不像上一步中用matlab实现的作业那样偏向算法和模型,这门课用Python实现的模型同时注重软件工程,包括常见的封装layer的forward/backward、自定义组合layer、如何将layer组成网络、如何在网络中集成batch-normalization及dropout等功能、如何在复杂模型下做梯度检查等等;最后一个作业中还有手动实现RNN及其基友LSTM、编写有助于调试的CNN可视化功能、Google的DeepDream等等。(做完作业基本就可以看懂现在流行的各种图片风格变换程序了,如 cysmith/neural-style-tf)另外,这门课的作业实现非常推崇computational graph,不知道是不是我的幻觉……要注意的是讲师A.K的语速奇快无比,好在YouTube有自动生成解说词的功能,准确率还不错,可以当字幕看。
广告:作业参考 GitHub - zlotus/cs231n: CS231n Convolutional Neural Networks for Visual Recognition (winter 2016)(我的在作业的notebook上加了一些推导演算哦~可以用来参考:D)
因为最近手头有论文要撕,时间比较紧,第四步做完就先告一段落。后面打算做继续业界传奇Geoffrey Hinton教授的Neural Networks for Machine Learning | Coursera,再看看NLP的课程 Stanford University CS224d: Deep Learning for Natural Language Processing,先把基础补完,然后在东瞅瞅西逛逛看看有什么好玩的……
PS:一直没提诸如TensorFlow之类的神器,早就装了一个(可以直接在conda中为Tensorflow新建一个env,然后再装上Jupyter、sklearn等常用的库,把这些在学习和实践ML时所用到的库都放在一个环境下管理,会方便很多),然而一直没时间学习使用,还是打算先忍着把基础部分看完,抖M总是喜欢把最好的留在最后一个人偷偷享受2333333(手动奸笑
PS**2:关于用到的系统性知识,主要有:
线性代数,非常重要,模型计算全靠它~一定要复习扎实,如果平常不用可能忘的比较多;
高数+概率,这俩只要掌握基础就行了,比如积分和求导、各种分布、参数估计等等。(评论中有知友提到概率与数理统计的重要性,我举四肢赞成,因为cs229中几乎所有算法的推演都是从参数估计及其在概率模型中的意义起手的,参数的更新规则具有概率上的可解释性。对于算法的设计和改进工作,概统是核心课程,没有之一。答主这里想要说的是,当拿到现成的算法时,仅需要概率基础知识就能看懂,然后需要比较多的线代知识才能让模型高效的跑起来。比如最近做卷积的作业, 我手写的比作业里给出的带各种trick的fast函数慢几个数量级,作业还安慰我不要在意效率,岂可修!)
需要用到的编程知识也就是Matlab和Numpy了吧,Matlab是可以现学现卖的;至于Python,就看题主想用来做什么了,如果就是用来做机器学习,完全可以一天入门,如果想要做更多好玩的事,一天不行那就两天。(贴一个Python/Numpy的简要教程:Python Numpy Tutorial,是cs231n的课堂福利。)
我感觉机器学习的先修就这么点,记得Adobe的冯东大神也说过机器学习简直是21世界的黑科技——因为理论非常简单但是效果惊人的好。
====
既然提到好玩的,墙裂推荐 Kaggle: Your Home for Data Science ,引用维基上的介绍:
Kaggle是一个数据建模和数据分析竞赛平台。企业和研究者可在其上发布数据,统计学者和数据挖掘专家可在其上进行竞赛以产生最好的模型。这一众包模式依赖于这一事实,即有众多策略可以用于解决几乎所有预测建模的问题,而研究者不可能在一开始就了解什么方法对于特定问题是最为有效的。Kaggle的目标则是试图通过众包的形式来解决这一难题,进而使数据科学成为一场运动。
对于程序员来说,码农之路并不是一帆风顺。对于每一个入行IT业的社会青年来说,谁不是抱着想要成为最高峰的技术大咖或者跃进管理岗的小目标?然而往往更多的人并非互联网吹捧的如此耀眼,仿佛每一个程序员都是世界的领头人,身怀绝技,社会的弄潮儿,其实普遍都是借此糊口的普通人。

怎么学人工智能编程
每天工作内容就是跟其他程序员讨论、编写代码、熬夜编写代码、解决BUg、和用户沟通、Diss产品以及被老板Diss,不知道那一天才能被伯乐赏识,从此万事无忧。
但是还没等到伯乐,你的年龄越来越大,身体渐渐发福,开始发现自己已经不能像两三年前那样肆无忌惮的熬夜,好不容易认识了异性朋友却不懂如何去相处,好像一开始选择码农之路的惩罚慢慢袭来。
从事越久你会发现越力不从心,老板也总是更看好年轻人,在这个日新月异的社会,稍晚一步,感觉好像就要被新青年替代。

怎么学人工智能编程
你想过要转行,可是就实际而言,程序员的薪资已经超过很多行业的同级别岗位薪资,城市生活成本又在不断提升,你还敢轻易转行吗?
调查的数据显示,程序员一般都会在30-35岁左右转行,然而转行率最高的就是创业,这里的创业不是说独立出去拿着百万融资开始一心一意研发自己的IT产品,而大多是回老家开个餐馆或是开家奶茶店、花店。

怎么学人工智能编程
随着“大数据”“云计算”“人工智能”等等科技的兴起,IT行业在今后三到五年将会迎来一个高速发展期。这也就意味着会出现大量的人才缺口,尤其是具有综合能力的高端IT人才将会成为各大企业争抢的重点对象。人工智能可谓是个从业时间越长就越挣钱的领域。
程序员在30岁以后往往都会遇到开发瓶颈期,人工智能是个不错的调整方向。

怎么学人工智能编程
中国人工智能行业正处于一个创新发展时期,对人才的需求也在同步急剧增长。商情数据旗下国内领先的产业研究咨询服务机构中商产业研究院权威发布《2017年中国人工智能行业市场前景研究报告》。报告显示,目前,我国人工智能领域发展迅速。据中商产业研究院大数据显示,2015年中国的人工智能市场规模达12亿美元,预测将在2020年达到91亿美元的规模,这意味着在未来几年内,每年的增长速度都达到50%。未来将只有两种公司,一种是有人工智能的公司,一种是不赚钱的公司,何去何从,应早有打算。
如今程序员转人工智能的优势就在于具备行业基础,既然不敢直接了当转去别的行业,为何不奋勇向前,继续IT之路?对于还没有毕业或者刚刚毕业的大学生,恰好也是在最好的时机,新青年可以很快接受、理解新事物,学习能力也更强,既年轻又有兴趣那是最好不过了。
以下数据显示,管理岗在各岗位中薪酬最高,平均达到 23k,数据开发和人工智能紧随其后,都在 20k以上。人工智能在互联网岗位薪酬排名中位列第三。

怎么学人工智能编程
当你确定好转人工智能时,问题就来了,你不知道该如何入手,你去网站收集各大网站的免费教学视频,书籍推荐买了许多本,真正看完的三分之一不到,既学不会又浪费时间,想自学的人比比皆是,但是真正靠自学成AI高技术人材的寥寥无几。
所以伍老师给大家梳理了一条学习路径,希望对你的自学之路能够有起到一定的引导作用:
首先,你是零基础的话,就先将高等数学基础知识学透,从基础的数据分析、线性代数及矩阵等等入门,只有基础有了,才会层层积累,不能没有逻辑性的看一块学一块。具体学习内容请看图。

怎么学人工智能编程
其次就是Python,Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。这也是人工智能必备知识。

怎么学人工智能编程
接下来就是人工智能的重点学习内容,如果是已经从业多年的程序员可以就此开始学习:

怎么学人工智能编程
机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。
它是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域,它主要使用归纳、综合而不是演绎。

怎么学人工智能编程

怎么学人工智能编程
推荐算法是计算机专业中的一种算法,通过一些数学算法,推测出用户可能喜欢的东西,推荐算法就是利用用户的一些行为,通过一些数学算法,推测出用户可能喜欢的东西。在人工智能里起到一定的判断作用。

怎么学人工智能编程
人工智能深度学习以及数据挖掘都是对机器学习的进一步探究,学习过程中不能缺少实际项目应用的操作,如果没有实操性的学习在以后的工作中很难适应新项目。

怎么学人工智能编程
分布式搜索引擎是根据地域、主题、IP地址及其它的划分标准,将全网分成若干个自治区域,在每个自治区域内设立一个检索服务器的装置。这些就是人工智能主要应该学习的内容。
老师认为自学是一种低效且不划算的学习方式,既浪费了时间还不能把知识点学透。要想得到就先付出,所以伍老师建议在有条件的情况下报班学习,学习过后既提升了自己的工作技能又可以在工作中挣回学费,一举两得。不管你是小白还是有经验的程序员,转人工智能只要你找到方法坚持学习,从业时间越长,价值也就会逐渐体现出来了,想转人工智能并非难事。
人工智能时代,编程语言的学习方向该如何选择?
在科技领域,计算机/互联网近年来的发展速度是其他绝大多数领域所望尘莫及的。从WEB到移动互联网,从AI到大数据挖掘,你方还未唱罢我方就已登台。面对应接不暇的变化,很多非资深及潜在从业者难免感到迷茫:行业发展太快,技术更新频繁,面对如此多的编程技术,应该如何选择方向?
结合IEEE发布的2017年编程语言排名,小象君做了一个编程语言盘点,希望能给有需求的读者带来帮助。

怎么学人工智能编程
IEEE Spectrum公布的2017年编程语言排行榜
Python

怎么学人工智能编程
Python是最近几年最火的编程语言,没有之一!在IEEE发布的2017年编程语言排行榜中,Python高居首位。虽然在Java和C语言称王称霸的那些年代不那么耀眼,但Python并不是一匹新兴的黑马,实际上,Python早在1991年就出现了。
作为一种应用广泛的高级编程语言,在人工智能、数据科学、Web应用、用户交互界面、自动化任务、统计等等方面,Python总能找到自己的位置。正是这种特性,让Python坐上了AI及大数据时代的头把交椅。
不得不提的是,Python还是面对新手最为友好的一门语言,试想,对于一个技术底子没那么雄厚的开发新手,还有什么比一门简单易学而又可一步跨入AI/大数据开发领域的语言更具诱惑力?
在美国,Python开发人员的平均收入在所有语言中数一数二,而在国内,同等工龄的开发人员中,使用Python的收入最高,性价比第一无可争议。如果从事人工智能领域开发工作,年薪20万轻而易举,甚至年收入200万也大有人在。
Java

怎么学人工智能编程
1995年5月,当时大名鼎鼎的Sun公司(现属于Oracle)正式发布了Java,作为构建现代企业Web应用后端的最常用编程语言之一,Java是所有程序员必须了解并掌握的一门编程语言。
Java的应用场景包括移动(Android)应用、金融行业应用服务器程序、网站、嵌入式领域、大数据技术(包括Hadoop及其他大数据处理技术)科学应用等。
虽然各种编程语言轮番走红,但Java依然在最受欢迎的编程语言中高居前二。
根据2017年的最新数据,美国的Java程序员平均年薪约为10.2万美元,国内具有2-3年Java开发经验的程序员,月薪大约在10-15K左右,5年以上的开发人员则可达到25-50K。
怀揣大公司梦的从业者,如果Java开发技术优异,有望在阿里这样的企业谋得一席之地。
C语言

怎么学人工智能编程
C语言称得上编程语言里的活化石,1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上设计出了一种新语言,即C语言,时至今日依然是最受欢迎的编程语言之一。C语言的优点之一是占用空间小,处理速度快、功能强大。
C语言的应用领域极为广泛,从操作系统、嵌入式领域、数据库、服务器、单片机、编译器,到Linux开发等,几乎每个领域都有其身影。
对于新手来说,C语言起步难度较大,然而一旦稳定掌握即可前途无忧,拥有3-5年开发C语言经验的程序员月薪约为10-15k,而拥有5-10年工龄的码农,月薪可达到25K-50K。
C语言是一门非常基础的“必学语言”,硬件开发行业对于优秀的C语言开发者将是不错的选择方向,英特尔、ARM这样的国际巨头会是很好的归宿。
C++

怎么学人工智能编程
于1983年诞生在贝尔实验室的C++仍然是当今最受欢迎的编程语言之一。
C++的特点是什么?强大!当你需要直接访问硬件获得最大处理能力时,C++是不二选择,同时它也是开发桌面软件、操作系统、图形处理、游戏、网站、搜索引擎、数据库,以及开发在桌面、控制端和移动设备上的内容密集型应用的优秀编程语言。
但对于新手来说,C++不是那么友好,属于上手慢、但根基稳的“正派武功”,没有3-5年的学习时间很难上手,一旦出山便是稳健、优秀的代名词。
在国内,具有3年以上C++开发经验的码农,月薪不会低于20K-50K。优秀的求职可以把腾讯作为目标。
C#

怎么学人工智能编程
C#出生的2000年,它的父亲微软是当时无可匹敌的行业巨无霸,所以C#可以说是含着金钥匙出生的。虽然今时不同往日,微软已不再是当初那个微软,然而瘦死的骆驼比马大,如果打算在微软的开发环境下有所发展、建树,C#依然主要选择。
无论是在微软云计算平台Windows Azure和.NET框架创建现代网页应用,还是开发Windows终端应用,又或者开发企业级桌面应用,C#都能够既快又稳地进行驾驭。
R语言

怎么学人工智能编程
诞生于1993年的R语言推动了大数据革命。如果打算从事移动应用开发,你可以忽略R,但如果计划在统计分析、绘图、数据挖掘等近领域有所建树,R是你不得不学习的一门语言。这也是在人工智能及大数据时代来临之际,R语言越来越受欢迎的原因。
Java

怎么学人工智能编程
虽然舆论一直在渲染移动时代的崛起和PC时代的没落,而每个企业拥有一个网站时代也一去不复返,但不可否认的是,在很多应用场景下,网站依然具有不可替代的作用,网站的建设离不开Java。
在网站互动、搭建用户界面、网页游戏等方面,Java是最佳选择。
PHP

怎么学人工智能编程
PHP(超级文本预处理语言)是开发网页应用的最基本工具,又一种广受网站开发者欢迎的服务器端语言,PHP被应用于绝大多数的数据驱动网站,超过80%的网站,包括Facebook,Wikipedia,Tumblr和WordPress的创建都离不开PHP。PHP的易上手性,使其成为很多网站开发者最初学习掌握的语言。
Go

怎么学人工智能编程
Go(或称GOLANG)是一门由Google于2007年开发的开源编程语言。其优点是标准库强大、编译速度快。另外,Go善于处理并发任务和程序。作为自己的亲生孩子,Google给予了Go大量支持,目前使用Go语言的大型网站包括Netflix、YouTube和Adobe。
Swift

怎么学人工智能编程
放错图了,应该是下面这张……(手动脸红)

怎么学人工智能编程
Swift是由苹果公司推出,用于开发苹果生态系统(包括iOS,macOS)应用的基础语言。简单来说,作为Objective-C的接班人,Swift是史上发展最快的编程语言之一。由于其干净、快速、正确率高、可缩短代码长度以节省开发时间等优点,广受开发者的喜爱。另外,Swift是一种开源开发语言,不仅限于苹果的平台,开发者也可选择在Windows或者Linux上进行开发。
学习Swift开发最多能够获得多少收入?那取决于你能不能开发出一款App Store热门应用了。
文章出自:http://qh.itpxw.cn/ai/python/201839581.html
文章标题:怎么学人工智能编程
免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员
用户级别:10
机构名称:IT培训网
联 系 人:罗老师
联系电话:13783581536
联系手机:13783581536
在线客服:
在 线 QQ:
电子邮件:
网站域名:http://www.itpxw.cn
注册时间:2016-07-18 11:07
最后登录:2021-09-13 16:09
如此一来,随着时间推移,2040 年之后,感觉程序员迟早会被 人...
AI时代人类会不会丢饭碗,之前已经有很多讨论,大部分人都表...
人工智能作为新的用户界面不再是一个片面的方法。我们需要理...
过去的 20 年里,许多互联网公司有幸积累了大量的数据,因此在...