黑马程序员课程表,想转型人工智能吗

普通程序员如何向人工智能方向转型?_百度知道
普通程序员如何向人工智能方向转型?
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
当下,人工智能已经成为越来越火的一个方向。普通程序员,如何转向人工智能方向,是知乎上的一个问题。一.目的本文的目的是给出一个简单的,平滑的,易于实现的学习方法,帮助“普通”程序员踏入AI领域这个门。这里,我对普通程序员的定义是:拥有大学本科知识;平时工作较忙;自己能获取的数据有限。因此,本文更像是一篇“from the scratch”的AI入门教程。二. AI领域简介AI,也就是人工智能,并不仅仅包括机器学习。曾经,符号与逻辑被认为是人工智能实现的关键,而如今则是基于统计的机器学习占据了主导地位。最近火热的深度学习正是机器学习中的一个子项。目前可以说,学习AI主要的是学习机器学习。但是,人工智能并不等同于机器学习,这点在进入这个领域时一定要认识清楚。关于AI领域的发展历史介绍推荐看周老师写的《机器学习简介》。下面一个问题是:AI的门好跨么?其实很不好跨。我们以机器学习为例。在学习过程中,你会面对大量复杂的公式,在实际项目中会面对数据的缺乏,以及艰辛的调参等。如果仅仅是因为觉得这个方向未来会“火”的话,那么这些困难会容易让人放弃。考虑到普通程序员的特点,而要学习如此困难的学科,是否就是没有门路的?答案是否定的。只要制定合适的学习方法即可。三.学习方法学习方法的设定简单说就是回答以下几个问题:我要学的是什么?我怎样学习?我如何去学习?这三个问题概括说就是:学习目标,学习方针与学习计划。学习目标比较清楚,就是踏入AI领域这个门。这个目标不大,因此实现起来也较为容易。“过大的目标时就是为了你日后放弃它时找到了足够的理由”。学习方针可以总结为“兴趣为先,践学结合”。简单说就是先培养兴趣,然后学习中把实践穿插进来,螺旋式提高。这种方式学习效果好,而且不容易让人放弃。有了学习方针以后,就可以制定学习计划,也称为学习路线。下面就是学习路线的介绍。四.学习路线我推荐的学习路线是这样的,如下图:这个学习路线是这样设计的:首先了解这个领域,建立起全面的视野,培养起充足的兴趣,然后开始学习机器学习的基础,这里选择一门由浅入深的课程来学习,课程最好有足够的实验能够进行实战。基础打下后,对机器学习已经有了充足的了解,可以用机器学习来解决一个实际的问题。这时还是可以把机器学习方法当作一个黑盒子来处理的。实战经验积累以后,可以考虑继续进行学习。这时候有两个选择,深度学习或者继续机器学习。深度学习是目前最火热的机器学习方向,其中一些方法已经跟传统的机器学习不太一样,因此可以单独学习。除了深度学习以外,机器学习还包括统计学习,集成学习等实用方法。如果条件足够,可以同时学习两者,一些规律对两者是共通的。学习完后,你已经具备了较强的知识储备,可以进入较难的实战。这时候有两个选择,工业界的可以选择看开源项目,以改代码为目的来读代码;学术界的可以看特定领域的论文,为解决问题而想发论文。无论哪者,都需要知识过硬,以及较强的编码能力,因此很能考察和锻炼水平。经过这个阶段以后,可以说是踏入AI领域的门了。“师傅领进门,修行在个人”。之后的路就要自己走了。下面是关于每个阶段的具体介绍:0.领域了解在学习任何一门知识之前,首先第一步就是了解这个知识是什么?它能做什么事?它的价值在什么地方?如果不理解这些的话,那么学习本身就是一个没有方向的舟,不知道驶向何处,也极易有沉船的风险。了解这些问题后,你才能培养出兴趣,兴趣是最好的引路人,学习的动力与持久力才能让你应付接下来的若干个阶段。关于机器学习是什么,能做什么,它与深度学习以及人工智能的关系,可以看我写的博客从机器学习谈起。1.知识准备如果你离校过久,或者觉得基础不牢,最好事先做一下准备复习工作。“工欲善其事,必先利其器”。以下的准备工作不多,但足以应付后面阶段的学习。数学:复习以下基本知识。线性代数:矩阵乘法;高数:求导;概率论:条件与后验概率。其他的一些知识可以在后面的学习的过程中按需再补;英文:常备一个在线英文词典,例如爱词霸,能够不吃力的看一些英文的资料网页;FQ:可以随时随地上Google,这是一个很重要的工具。不是说百度查的不能看,而是很多情况下Google搜出来的资料比百度搜的几十页的资料还管用,尤其是在查英文关键字时。节省时间可是很重要的学习效率提升;2.机器学习机器学习的第一门课程首推Andrew Ng的机器学习。这门课程有以下特点:难度适中,同时有足够的实战例子,非常适合第一次学习的人。cs229这门课程我这里不推荐,为什么,原因有以下:时间:cs229的时间太早,一些知识已经跟不上当今的发展,目前最为火热的神经网络一笔带过。而Cousera上神经网络可是用了两个课时去讲的!而且非常详细;教学:Ng在cs229时候的教学稍显青涩,可能是面对网络教学的原因。有很多问题其实他都没有讲清楚,而且下面的人的提问其实也很烦躁,你往往不关心那些人的问题。这点在Coursera上就明显得到了改善,你会发现Ng的教学水平大幅度改善了,他会对你循循善诱,推心置腹,由浅入深的教学,在碰到你不明白的单词术语时也会叫你不要担心,更重要的,推导与图表不要太完善,非常细致清晰,这点真是强力推荐;字幕:cs229的字幕质量比Coursera上的差了一截。Coursera上中文字幕翻译经过了多人把关,质量很有保证;作业:cs229没有作业,虽然你可以做一些,但不会有人看。这点远不如Coursera上每周有deadline的那种作业,而且每期作业提交上去都有打分。更重要的是,每期作业都有实际的例子,让你手把手练习,而且能看到自己的成果,成就感满满!3.实践做项目学习完了基础课程,你对机器学习就有了初步了解。现在使用它们是没有问题的,你可以把机器学习算法当作黑盒子,放进去数据,就会有结果。在实战中你更需要去关心如何获取数据,以及怎么调参等。如果有时间,自己动手做一个简单的实践项目是最好的。这里需要选择一个应用方向,是图像(计算机视觉),音频(语音识别),还是文本(自然语言处理)。这里推荐选择图像领域,这里面的开源项目较多,入门也较简单,可以使用OpenCV做开发,里面已经实现好了神经网络,SVM等机器学习算法。项目做好后,可以开源到到 Github 上面,然后不断完善它。实战项目做完后,你可以继续进一步深入学习,这时候有两个选择,深度学习和继续机器学习;4.深度学习深度学习:深度学习是目前最火热的研究方向。有以下特点:知识更新快,较为零碎,没有系统讲解的书。因此学习的资源也相对零散,下面是一些资源介绍。其中不推荐的部分并不代表不好,而是在这个初学阶段不合适:推荐,UFLDL:非常好的DL基础教程,也是Andrew Ng写的。有很详尽的推导,有翻译,且翻译质量很高;推荐,Deep learning (paper):2015年Nature上的论文,由三位深度学习界的大牛所写,读完全篇论文,给人高屋建瓴,一览众山小的感觉,强烈推荐。如果只能读一篇论文了解深度学习,我推荐此篇。这篇论文有同名的中文翻译;推荐,Neural networks and deep learning:这本书的作者非常擅长以浅显的语言表达深刻的道理,虽然没有翻译,但是阅读并不困难;推荐,Recurrent Neural Networks:结合一个实际案例告诉你RNN是什么,整篇教程学完以后,会让你对RNN如何产生作用的有很清晰的认识,而这个效果,甚至是读几篇相关论文所没有的;不推荐,Neural Networks for Machine Learning University of Toronto Coursera:深度学习创始人教的课,最大的问题是太难,而且老先生的吐字有时不是很标准;不推荐,Deep Learning (book):同样也是由深度学习大牛所写的书,但感觉就像是第二作者,也就是他的学生所写的。很多内容都讲了,但是感觉也没讲出什么内容来,只是告诉你来自那篇论文,这样的话可能直接阅读论文更合适。不推荐,cs231n:李菲菲的课程,很有名,专门讲CNN。但是这门课程有一个最大的问题,就是没有字幕,虽然有youtube的自动翻译字幕,但有还不如没有。5.继续机器学习深度学习未必就是未来的一定主流,至少一些大牛是这么认为的。传统的机器学习有如下特点,知识系统化,有相对经典的书。其中统计学习(代表SVM)与集成学习(代表adaboost)是在实践中使用非常多的技术。下面是相关资源:推荐,机器学习(周志华):如果是在以前,机器学习方面的经典教材首推PRML,但现在周老师的书出来以后,就不再是这样了。首先推荐读周老师的书。这本书有一个特点,那就是再难的道理也能用浅显精炼的语言表达出来。正如周老师的名言:“体现你水平的地方是把难的东西讲容易了,而不是把容易的东西讲难,想把一个东西讲难实在太简单”;不推荐,Pattern Recognition And Machine Learning:当前阶段不推荐。PRML是以贝叶斯的观点看待很多机器学习方法,这也是它的一大特色。但对于初学者来说,这种观点其实并无必要。而且此书没有中文翻译,当前阶段硬啃很容易放弃;6.开源项目当知识储备较为充足时,学习可以再次转入实践阶段。这时候的实践仍然可以分两步走,学习经典的开源项目或者发表高质量的论文。开源项目的学习应该以尽量以优化为目的,单纯为读代码而学习效果往往不太好。好的开源项目都可以在Github 里搜索。这里以深度学习为例。深度学习的开源优秀库有很多,例如torch,theano等等,这里列举其中的两个:推荐,DeepLearnToolbox:较早的一个深度学习库,用matlab语言撰写,较为适合从刚学习的课程转入学习。遗憾的是作者不再维护它了;推荐,tensorflow:Google的开源库,时至今日,已经有40000多个star,非常惊人,支持移动设备;7.会议论文较好的课程都会推荐你一些论文。一些著名的技术与方法往往诞生于一些重要的会议。因此,看往年的会议论文是深入学习的方法。在这时,一些论文中的内容会驱使你学习数学中你不擅长的部分。有时候你会觉得数学知识储备不够,因此往往需要学习一些辅助课程。当你看完足够的论文以后,在这个阶段,如果是在校学生,可以选择某个课题,以发论文为目的来学习研究。一般来说,论文是工作的产物。有时候一篇基于实验的论文往往需要你写代码或者基于开源项目。因此开源项目的学习与会议论文的工作两者之间是有相关的。两者可以同时进行学习。关于在哪里看论文,可以看一下CCF推荐排名,了解一下这个领域里有哪些优秀的会议。下面介绍两个图像与机器学习领域的著名顶级会议:CVPR:与另两个会议ICCV和ECCV合称计算机视觉领域的三大会,注意会议每年的主页是变动的,因此搜索需要加上年份;Conference on Neural Information Processing Systems:简称NIPS,许多重要的工作发表在这上面,例如关于CNN的一篇重要论文就是发表在上面;8.自由学习到这里了,可以说是进入这个门了。下面可以依据兴趣来自由学习。前阶段不推荐的学习资源也可随意学习,下面是点评:cs229:Ng写的讲义很不错,其中关于SVM的推导部分很清晰,想学习SVM推荐;Neural Networks for Machine Learning:大牛的视角跟人就是不一样,看看Hinton对神经网络是怎么看的,往往会让你有种原来如此的感悟。其实看这门课程也等同于读论文,因为几乎每节课的参考资料里都有论文要你读;CS231n: Convolutional Neural Networks for Visual Recognition:最新的知识,还有详细的作业。国内应该有团队对字幕进行了翻译,可以找找;PRML:作为一门经典的机器学习书籍,是很有阅读必要的,会让你对机器学习拥有一个其他的观察视角;五.总结本文的目的是帮助对AI领域了解不深,但又想进入的同学踏入这个门。这里只说踏入,是因为这个领域的专精实在非常困难,需要数年的积累与努力。在进行领域学习前,充分认识自己的特点,制定合适的学习方法是十分重要的。首先得对这个领域进行充分了解,培养兴趣。在学习时,保持着循序渐进的学习方针,不要猛进的学习过难资源;结合着学习与实践相辅的策略,不要只读只看,实际动手才有成就感。学习某个资源时要有充分的目的,不是为了学开源项目而看代码,而是为了写开源项目而看;不是为了发论文而写论文,而是为了做事情而写论文。本文来自公众号:“大技术技术汇”,guanzhu了解大数据行业学习大数据技术和学习路线,还有免费学习资料放送。如果一个学习资源对你过难,并不代表一定是你的问题,可能是学习资源的演讲或撰写人的问题。能把难的问题讲简单的人才是真正有水平的人。所以,一定要学习优质资源,而不是不分青红皂白的学习。最后,牢记以兴趣来学习。学习的时间很长,过程也很艰难,而只有兴趣才是让你持之以恒,攻克难关的最佳助力。
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。关于移动端架构和全栈开发,Android,
HTML5,Swift,前端,人工智能,技术管理等...
程序员如何转型人工智能(机器学习)
我是一个工作时间比较久的全栈工程师,做过web开发,前端,后端,移动端,HTML5的开发。2016年底开始学习机器学习,做深度学习大概不到半年。在人工智能技术方面我肯定没有研究人工智能很多年的人有经验,但在怎样转型人工智能方面我还是有些体会的。
学习人工智能为什么比学习其他的编程技术要困难
首先是人工智能整个领域特别大
我们常说的深度学习是机器学习的一个小分支,而机器学习又只是人工智能的一个小分支。但目前深度学习比较热,因此很多人就把深度学习当成人工智能了。具体到业务领域,就有计算机视觉,语音识别,自然语言处理等,每一个领域都很专业,会用到机器学习的各种方法。后面的内容主要是说深度学习和机器学习。
其次人工智能是不确定性的
思维模式和传统编程不一样,我们平常接触的编程语言无论前端,后端还是移动端,都是确定性的,确定性是什么意思呢?例如你要修改个传统系统的bug,你弄明白了逻辑,就可以修改代码改掉bug。但做人工智能不一样,它是不确定性的,目前深度神经网络可能会有几百层,几千万个参数,我们没有严格的数学逻辑确定这些参数的意义,只能根据经验和一些原理进行调参,修改数据集等优化结果,过程中充满了不确定性。
第三,学习人工智能对于数学和英语有一定要求
特别是做模型优化的时候。数学方面需要知道一些微积分,线性代数,概率论的知识,英文方面需要能够比较顺利的看懂一些英文的资料和论文,例如很多著名模型的结构相关的论文都发表在arxiv上,需要能大概看懂这些论文。
第四,学习深度学习对于计算机有一定要求
模型训练在GPU上做能够明显加快速度,例如在Imagenet2012数据集上训练InceptionV3模型, 大概有120万张图片, 在一个nVidia Tesla P100 GPU上训练到95%的召回率需要3天,在普通CPU上训练可能需要几个星期。如果你学习一个东西,几星期后才能知道结果那肯定是让人崩溃的。万幸的是,现在Amazon,Goolge,阿里云,腾讯云等都GPU服务器可以租用。
程序员学习人工智能的三个阶段
学习人工智能的三个阶段是 应用,优化,和定义问题,这个观点是我在某大牛的一篇文章中看到的,然后我针对程序员的学习特点做了一些优化。
应用应该是学习的第一步,就是想怎么样才能把人工智能应用到你的业务中,在这一步之前你需要对人工智能的现状有个基本清晰的认识,抛弃不实际的想法。具体的做法大概是针对自己的问题,收集数据,建立模型,可以用传统模型或深度学习模型。这一块程序员去做还是有一定优势的, 做到这一步需要对机器学习和深度学习有一定了解, 熟悉python, 能用tensorflow做一些模型训练。举个应用的例子,,用人工智能实现桃子的智能筛选。
优化是学习的第二步,这一步就有些难度了,需要对卷积神经网络的原理和计算过程很清楚,需要对tensorflow,caffe,pyTorch等框架比较熟悉,需要对Inception,Resnet等经典模型的结构有一定研究,能够看懂论文和代码,并能够结合数据进行分析和实验,对模型结构,参数等不断进行优化,达到提高识别率等目的, 这个优化过程需要耗费大量的时间。
定义问题是学习的第三步,能够做到这一步应该是大神级的存在了,例如谷歌大脑,AlphaGO,百度大脑等顶级团队和学术界的科学家和资深工程师等。这一步的难点是如果用数学语言定义清楚问题,并能够用工程上可行的机器学习算法进行优化求解。做到这一步是很难的,能够做到这一步的人应该是很少的,大部分都是大公司某个方向的领军人物。
应该怎样转型人工智能
对于想转型人工智能的程序员, 我觉得首先要想清楚,自己想不想做这样一个不确定性的事情,自己的学习能力,数学和英语基础怎么样,不能看到行业热工资高就盲目转行。其实无论是前端,后端还是移动端,只要技术做到一定深度,收入都会不错,互联网行业的高薪还会持续很多年,做好技术可以有个不错的收入。
当然,学习和了解一些人工智能技术总是没有坏处的,可以先在自己感兴趣的领域尝试应用下人工智能技术,试试有没有这方面的兴趣和能力。毕竟IT行业变化很快,说不定几年后无论做什么开发都需要懂一些人工智能知识呢?
在人工智能这个热门的行业,早起的鸟有虫吃,但前提是鸟才行。
一个机器学习博士生的忠告
程序员转型AI,这里有最全的机器学习介绍+应用实例
机器学习--代码的终结者,我们很快就能像调教狗一样来调教我们的计算机
web前端 如何入门人工智能算法
没有更多推荐了,(梦在远方)
(遗忘无际)
第三方登录:程序员,想转型人工智能吗?先补补数学课吧!程序员,想转型人工智能吗?先补补数学课吧!大讲台百家号人工智能很火,也很高端,深度学习、机器学习、视觉识别,听上去就很高大上。而且不仅仅是听上去高大上,现实当中确实也是实实在在的高大上。在互联网圈子里,有一句话流传甚广:得人工智能者得天下。根据脉脉数据研究院提供的数据显示,目前国内人工智能相关岗位应届毕业生的起薪基本都在12.5k/月以上,毕业三年后人工智能岗位的技术人员,平均月薪在25k以上。年薪25万已成白菜价,AI应届研究生年薪更是高达50万,还没毕业就已被抢光。这两天人工智能平台公司商汤科技C轮融资6亿美元的新闻在朋友圈刷屏了。阿里加持,新加坡淡马锡、苏宁等投资机构和战略伙伴跟投。可见人工智能的火爆不仅仅是说说而已,是真正真金白银的火爆!人工智能那么问题来了,普通的IT工程师,尤其是程序员们如果想转型人工智能,行不行呢,会遇到哪些问题呢?在人工智能领域,无论是机器人、语音识别,还是图像识别、自然语言处理都离不开数学。所以说,数学功底才是码农们转型人工智能无论如何都是绕不开的门槛,传统程序员要想转战AI,任何绕过数学的想法都是鸵鸟策略。很多兴冲冲的同学一听数学就直接放弃,大错特错。人工智能中的数学分两个层面,一个研究层面,一个是工程层面。前者是要造轮子,很难,非数学专业研究生、博士级别不能问津,但这部分的行业需求之占5%的比例。后一个层面是要使用轮子即可,会有一定的难度,至少要比你想象的简单的多。而行业需求95%其实集中在后者。也正是因为这点难度才让人工智能门槛相交传统程序员更高,薪资更丰厚。近期大讲台官网上线了一门新的人工智能基础课程——《人工智能数学基础三部曲》,专门针对程序员数学基础薄弱的问题做针对性的提升。很多人都是离开学校之后就再也没有碰过数学了,捡起来也还是需要下一番功夫。课程主讲老师张晓明(大圣),是国内知名金融公司的资深数据挖掘工程师,阿里系大数据工程师出身,专业数据挖掘10年+,曾服务于电商、广告、电信、金融等行业大数据平台,全套大数据、数据挖掘、机器学习经验。大圣老师以其个人学习人工智能的切身经历,带领你在短时间内精准掌握人工智能核心数学基础——线性代数、凸优化和概率统计。网上数学公开课很多了,都是学院派的,听着懵比犯困,而且内容面面俱到、不突出重点,偏离工程甚远,难道非985、211的同学才能搞AI吗?非也!非也!!大讲台此次大讲台上线的《人工智能数学基础三部曲》课程和学院派最大区别是从“务实”角度讲解,只提炼工程中用得到的知识点串讲,避开抽象严谨的数学理论,围绕着工程问题进行原理推导与形象解释,对复杂的数学知识给出通俗易懂的解释,帮助大家快速夯实数学基本功。并配合python代码演示,为以后的机器学习、人工智能无障碍升级做好准备。大讲台大讲台本文由百家号作者上传并发布,百家号仅提供信息发布平台。文章仅代表作者个人观点,不代表百度立场。未经作者许可,不得转载。大讲台百家号最近更新:简介:北京大讲台高端IT人才在线实训平台作者最新文章相关文章您正在使用IE低版浏览器,为了您的雷锋网账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
发私信给孔令双
导语:转型 AI 会遇到那些坑,阿萨姆告诉你。
同步到新浪微博
当月热门文章
为了您的账户安全,请
您的邮箱还未验证,完成可获20积分哟!
您的账号已经绑定,现在您可以以方便用邮箱登录
请填写申请人资料

我要回帖

更多关于 人工智能取代程序员 的文章

 

随机推荐