三个月教你从零入门深度学习Charlotte77

当时看到这个参考书目挺迷的,数学类从高中数学推荐到数学专业学生看的数学分析,计算机算法类一上来就推荐大块头的《算法导论》和理论性偏强的《数据挖掘:概念与技术》,认为这样入门的人来说并不合适。看书应当是有阶梯型的,不能一口吃成个大胖子,基于不想"大牛"误人子弟,于是我给出了如下建议:

我的回复很平和,也给出了一些对新手比较友好的建议,并且有6个人支持我,想想算了,然而,今天,在首页中又看到了这位"大牛"在博文骂我是喷子:

这我就不赞同而且不能忍了。对于任何人,不管你是大牛还是小白,我的原则都是,你可以反驳我的建议,有理有据就行,如果我错了,那就改,没有错,那就互相讨论,交流一下,气场合说不定还能成为个朋友呢。但是对于别人真诚的建议您回以"喷子"是一个有教养的人的表现吗?仗着自己是"大牛",这样没有素质的怼不觉得脸红吗?并且,我之所以给出这个建议,有以下三点:

3.对于深度学习方面书籍的推荐我就不吐槽了。槽点太多,无力吐槽。省点力气后面推荐真正适合不同阶段的新手阅读的书籍好了。

下面,开始输出干货。

AI处于目前的风口,于是很多人想要浑水摸鱼,都来分一杯羹,然而可能很多人连AI是什么都不知道。AI,深度学习,机器学习,数据挖掘,数据分析这几点的联系和区别也搞不清楚。于是滋生了很多培训班,收着不菲的费用,教教demo,调调参,教你一个月速成深度学习工程师,赚的盆满钵满。这种行业风气我们应该摒弃!我认为,目前市面上的任何AI培训都不值得参加!别撒钱给别人了,难道不会心痛吗?--然而,当大家自学的时候,又不知道从何学起。下了一堆资料,跑了一堆demo,报了一堆cousera,调调参,看看模型结果不错,就以为入了门,抱歉,不好意思,我说话比较直接,可能你连门都没入。我认为,深度学习这块,有几个层次:(自己胡乱起的名字,忽略吧--)

demo侠--->调参侠--->懂原理侠--->懂原理+能改模型细节侠--->超大数据操控侠--->模型/框架架构师

demo侠:下载了目前所有流行的框架,对不同框里的例子都跑一跑,看看结果,觉得不错就行了,进而觉得,嘛,深度学习也不过如此嘛,没有多难啊。这种人,我在面试的时候遇到了不少,很多学生或者刚转行的上来就是讲一个demo,手写数字识别,cifar10数据的图像分类等等,然而你问他这个手写数字识别的具体过程如何实现的?现在效果是不是目前做好的,可以再优化一下吗?为什么激活函数要选这个,可以选别的吗?CNN的原理能简单讲讲吗?懵逼了。

调参侠:此类人可能不局限于跑了几个demo,对于模型里的参数也做了一些调整,不管调的好不好,先试了再说,每个都试一下,学习率调大了准确率下降了,那就调小一点,那个参数不知道啥意思,随便改一下值测一下准确率吧。这是大多数初级深度学习工程师的现状。当然,并不是这样不好,对于demo侠来说,已经进步了不少了,起码有思考。然而如果你问,你调整的这个参数为什么会对模型的准确率带来这些影响,这个参数调大调小对结果又会有哪些影响,就又是一问三不知了。

懂原理侠:抱歉我起了个这么蠢的名字。但是,进阶到这一步,已经可以算是入门了,可以找一份能养活自己的工作了。CNN,RNN,LSTM信手拈来,原理讲的溜的飞起,对于不同的参数对模型的影响也是说的有理有据,然而,如果你要问,你可以手动写一个CNN吗?不用调包,实现一个最基础的网络结构即可,又gg了。

懂原理+能改模型细节侠:如果你到了这一步,恭喜你,入门了。对于任何一个做机器学习/深度学习的人来说,只懂原理是远远不够的,因为公司不是招你来做研究员的,来了就要干活,干活就要落地。既然要落地,那就对于每一个你熟悉的,常见的模型能够自己手动写代码运行出来,这样对于公司的一些业务,可以对模型进行适当的调整和改动,来适应不同的业务场景。这也是大多数一二线公司的工程师们的现状。然而,对于模型的整体架构能力,超大数据的分布式运行能力,方案设计可能还有所欠缺,本人也一直在这个阶段不停努力,希望能够更进一步。

超大数据操控侠:到这一阶段,基本上开始考虑超大数据的分布式运行方案,对整体架构有一个宏观的了解,对不同的框架也能指点一二。海量数据的分布式运行如何避免网络通信的延迟,如何更高效更迅速的训练都有一定经验。这类人,一般就是我这种虾米的领导了。

模型/框架架构师:前面说了一堆都是对现有的框架/模型处理的经验,这个阶段的大侠,哦,不对,是大师可以独立设计开发一套新框架/算法来应对现有的业务场景,或者解决一直未解决的历史遗留问题。没啥好说了,膜拜!

说了这么多,希望大家对自己找个清洗准确的定位,这样才能针对性的学习。下面基于我个人的经验对不同阶段的学习者做一些推荐:

demo侠+调参侠:这两个放在一起说,毕竟五十步笑百步,谁也没有比谁强多少。当然也不要妄自菲薄,大家都是从这个阶段过来的。这个阶段编程不好的就好好练编程,原理不懂的就好好看书理解原理。动手做是第一位,然后不断改一些模型的参数,看效果变化,再看背后的数学推导,理解原因,这样比先看一大堆数学公式的推导,把自己绕的晕晕乎乎在开始写代码要好得多。

懂原理侠:很不错,你的经验值已经提升了不少了。然而还不能开始打怪,毕竟没有那个怪物可以直接被喷死的。你缺少工具。那么这个阶段,就需要多多加强编程能力。先找一个框架下下来,阅读源码,什么?你说你不会阅读源码,没关系,网上一大堆阅读源码的经验。当然,这些经验的基础无一例外都是:多读多写。在此基础上再找trick。下好框架的源码后,改动一些代码在运行,debug一下,再不断的找原因,看看每个api是怎么写的,自己试着写一写。多写多练,死磕coding三十年,你一定会有收获的。

模型/框架架构师:抱歉,我不懂,不写了。

总结:

其实大家从我上面的推荐来看,打好基础是非常重要的,后续都是不断的多读优秀的论文/框架,多比较/实践和debug,就能一点点进步。打基础的阶段一定不能浮躁。扎扎实实把基础打好,后面会少走很多弯路。不要跟风盲目崇拜,经典永远不会过时,自己多看书/视频/优秀的博客,比无脑跟风要强得多。最后,我之所以今天这么生气,是因为这个行业目前太浮躁了,很多人太浮夸,误人子弟,有人说真话还被人骂喷子,真是气死我了!大家一定要擦亮双眼,多靠自己多努力。

最后一句,低调做人,好好学习,大家下期再会^_^!

----2018.12.3更新

现在越来越发现作为一个算法工程师,工程能力也非常重要,如果只懂理论,不会实现,也没有什么竞争力。

THE END
1.深度学习揭秘:不懂技术也能秒懂AI的学习秘籍!想象一下,你手里拿着一本厚厚的书,封面上写着“深度学习”四个大字。你翻开书页,里面全是密密麻麻的公式和代码,看得你眼花缭乱。你是不是觉得,这玩意儿太高深了,我肯定看不懂?别急,今天我就带你一起揭开深度学习的神秘面纱,让你这个“技术小白”也能轻松理解它到底是什么。一、深度学习:AI界的“https://baijiahao.baidu.com/s?id=1807716840178914168&wfr=spider&for=pc
2.每日科普深度学习——模仿人脑的算法深度学习作为新一代人工智能(AI)的技术支柱,为机器装上了“超级大脑”,让机器变得非常聪明,甚至能做一些人类都觉得困难的事情。下面,让我们一起揭开深度学习的神秘面纱吧! 什么是深度学习? 简单来说,深度学习是一种模仿人脑神经系统的算法。算法是指完成一个任务所https://mp.weixin.qq.com/s?__biz=MzA5NTc2NzI3Mw==&mid=2650222621&idx=4&sn=ab53731cb1b41e19efef10768e2ecc11&chksm=895d3e7315f12c41899bcd5e32070bf8f14f3a9caa2209234de6ea239ed53122ab42093ba1fc&scene=27
3.深度学习入门,一文讲解神经网络的构成训练和算法深度学习入门,一文讲解神经网络的构成、训练和算法 神经网络的构成、训练和算法 什么是神经网络 人工神经网络(Artificial Neural Network,ANN),简称神经网络(Neural Network,NN),是一种模仿生物神经网络的结构和功能的数学/计算模型,用于拟合各种函数。 一个神经网络,有两个基本要素:神经元和连接。https://cloud.tencent.com/developer/article/1518746?areaSource=102001.5&traceId=qq7DcMnNSWaY5OAZi0FEp
4.深度学习(Deeplearning)入门导读深度学习是利用不断地学习组合底层特征形成更加抽象的高层特征,来发现数据的分布式特征。在深度学习中,计算机可以自行观测学习数据和结果来实现自动解决问题。在深度学习算法的发展过程中,Caffe受到广大研究和开发人员的欢迎,是一款优秀的神经网络深度学习框架。https://www.51cto.com/article/657022.html
5.人工智能:深度学习入门到精通实战深度卷积神经网络视频《人工智能:深度学习入门到精通实战》课程主要就人工智能领域相关的深度学习基础、深度学习计算、卷积神经网络+经典网络、循环神经网络+RNN进阶、优化算法、计算机视觉和自然语言处理等,配套实战案例与项目全部基于真实数据集与实际任务展开,结合深度学习框架进行建模实战。 https://edu.csdn.net/course/detail/31822/483017
6.推荐「深度学习入门与实践」公开课陪你过大年新闻动态本课程是由北京大学前沿计算研究中心的董豪老师带来的深度学习入门课程,包含深度学习基础知识与代码实战。 课程简介 “深度学习入门与实践”课程的主要目标,是希望学习者通过该课程初步掌握深度学习的理论知识、常用算法原理并且具备一定的应用开发能力。本课程特色一方面是兼顾理论和实践,既讲解了深度学习的底层算法原理,又https://cfcs.pku.edu.cn/news/241174.htm
7.2深度学习入门自然语言处理v.pdf深度学习入门(自然语言处理) 科学院大学 目录 1 深度学习概述 发展历程、领域应用 2 为什么使用深度学习 从图像识别说起: 为什么使用深度学习 全连接神经网络 3 如何使用深度学习 卷积神经网络 4 课程实践 实践:手写数字识别 目录 1 深度学习概述 发展历程、领域应用 2 为什么使用深度学习 从图像识别说起: 为什么https://max.book118.com/html/2021/1123/8107047065004043.shtm
8.GitHub机器学习与深度学习书单 深度学习基础 快速入门 深度学习思维导图 && 深度学习算法地图 《斯坦福大学深度学习基础教程》 Andrew Ng(吴恩达) 深度学习 吴恩达 个人笔记 && 视频 MIT深度学习基础-2019视频课程 台湾大学(NTU)李宏毅教授课程 && [leeml-notes 图解深度学习_Grokking-Deep-Learning 《神经网络与深度学习》 https://github.com/Mikoto10032/DeepLearning
9.深度学习之神经网络(CNN/RNN/GAN)算法原理+实战本课程使用原理讲解加实战的方式学习卷积神经网络(CNN)、循环神经网络(RNN)、对抗神经网络(GAN),通过图像分类、文本分类、图像风格转换、图像文本生成、图像翻译等项目,深度掌握算法调参以及使用Tensorflow进行编程的能力。 正十七 讲师 Google资深算法工程师 https://coding.imooc.com/class/259.html
10.awesome前沿分享 :定期分享顶会最新论文解读和代码复现,开发者可以实时掌握最新的深度学习算法。 二、 零基础实践深度学习入门课 AI Studio在线课程:《零基础实践深度学习》:理论和代码结合、实践与平台结合,包含20小时视频课程,由百度杰出架构师、飞桨产品负责人和资深研发人员共同打造。 《零基础实践深度学习》书籍:本课程配https://gitee.com/nimabi2321wrq-fgwesdfhuy3q/awesome-DeepLearning
11.深度学习入门深度学习的过程就是使用多个处理层对数据进行高层抽象,得到多重非线性变换函数的过程。就目前而言,深度学习主要是与人工神经网络相结合的,因此这里的深度学习算法框架也可以成为深度神经网络算法框架。 深度学习通过构建深层神经网络,来模拟人类大脑的工作原理。如下图所示,深层神经网络由一个输入层,数个隐层,以及一个输https://www.jianshu.com/p/194a22c747b2
12.一文看懂机器学习「3种学习方法+7个实操步骤+15种常见算法」机器学习研究和构建的是一种特殊算法(而非某一个特定的算法),能够让计算机自己在数据中学习从而进行预测。 所以,机器学习不是某种具体的算法,而是很多算法的统称。 机器学习包含了很多种不同的算法,深度学习就是其中之一,其他方法包括决策树,聚类,贝叶斯等。 https://easyai.tech/ai-definition/machine-learning/
13.深度学习有什么好的入门书籍?核心知识点:Scikit-Learn和TensorFlow的实践应用、机器学习算法、深度学习算法等。适合读者:机器学习实战者https://www.zhihu.com/question/55228464/answer/3448557684
14.深度学习:卷积神经网络从入门到精通带目录完整pdf[92MB]电子书下本书专注讨论深度学习中应用非常广泛的模型——卷积神经网络,该模型特别适用于图像分类和识别、目标分割和检测以及人工智能游戏方面,受众对象包括计算机、自动化、信号处理、机电工程、应用数学等相关专业的研究生、教师以及算法工程师和科研工作者。本书的最大特色是对卷积神经网络进行由浅入深的分类描述,依次包括:现代雏https://www.jb51.net/books/684151.html