从应用的角度来看，深度学习怎样快速入门？
谢 @叶竹 邀请。 按照UCLA教授朱松纯教授的定义，AI大概可以分为一下六类： （1）计算机视觉 -> 人类的视觉能力 （2）自然语言处理 -> 人类的语言文字能力 （3）语音识别与生成 ->  人类的听与说能力 （4）机器人学 -> 人类的运动能力和运动智能 （5）博弈与合作 -> 人类对抗与合作的能力 （6）机器学习 -> 人类的学习能力 可以看出以前的技术是让新工具取代旧工具。而人工智能不同，它的目标就是模仿人类的智能，取代人类的智能，超越人类的智能。 那现阶段的AI到底是个什么东西呢？ 我觉得现在的AI核心理念还是统计推断或者函数拟合。说人话就是找一个函数或者一个映射，使得一段声波进去能映射到语言，一张猫咪的图片进去能映射到猫咪。你跟siri说hi自动映射到回答hello～ 给大家推荐一些书，同时提醒大家一些坑。书大致可以分为三类『科普书籍』『机器学习算法书籍』『编程书籍』。 1.  科普书籍： 兴趣是最好的老师，阅读科普书籍有助于积累兴趣，对人工智能领域有个大概的了解。 2. 机器学习算法书籍： 3. 编程书籍： 4. 一些坑： 5. 面试书籍： 入门阶段： 链接：斯坦福大学公开课 ：机器学习课程 链接：机器学习（Machine Learning）- 吴恩达（Andrew Ng） | 斯坦福大学课程CS229（2014） 链接：机器学习基石，完整版_演讲•公开课_科技_bilibili_哔哩哔哩 进阶阶段： 链接：Hinton机器学习与神经网络中文课程 - 网易云课堂 链接：斯坦福李飞飞-深度学习计算机视觉 - 网易云课堂 链接：斯坦福2017季CS224n深度学习自然语言处理课程（by Chris Manning & Richard Socher）（英文字幕） 【官方】【中英】CS224n 斯坦福深度自然语言处理课 链接：【深度学习】李宏毅Machine Learning (2017,秋，台湾大学) 国语 机器学习-李宏毅(2019) Machine Learning 链接： 哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili 看到这里，大家会发现，其实只要你想学，视频大把大把的，互联网让知识的获取不再困难，真正阻碍你的只有你的决心和毅力了。 最后，提个坑，别去看张志华老师的统计机器学习视频，张老师的水平是很高的，但视频里满屏幕的公式，又让我回想起大学期间被各种定理推论支配的恐惧。中国大学的课感觉就一直都在劝退，提醒你学不会的，你听不懂的，你智商不够的。然而吴恩达的课不会，他觉得没有学不会的学生，只有教不好的老师～ 初学机器学习可能有一个误区，就是一上来就陷入到对各种高大上算法的追逐当中。动不动就我能不能用深度学习去解决这个问题啊？我是不是要用boosting算法做一些模型融合啊？我一直持有一个观点，『脱离业务和数据的算法讨论是毫无意义的』。实际上按我们的学习经验，从一个数据源开始，即使是用最传统，已经应用多年的机器学习算法，先完整地走完机器学习的整个工作流程，不断尝试各种算法深挖这些数据的价值，在运用过程中把数据、特征和算法搞透，真正积累出项目经验 才是最快、最靠谱的学习路径。那如何获取数据和项目呢？一个捷径就是积极参加国内外各种数据挖掘竞赛，数据直接下载下来，按照竞赛的要求去不断优化，积累经验。国外的Kaggle和国内的DataCastle 以及阿里天池比赛都是很好的平台，你可以在上面获取真实的数据和数据科学家们一起学习和进行竞赛，尝试使用已经学过的所有知识来完成这个比赛本身也是一件很有乐趣的事情。和其他数据科学家的讨论能开阔视野，对机器学习算法有更深层次的认识。有意思的是，有些平台，比如阿里天池比赛，甚至给出了从数据处理到模型训练到模型评估、可视化到模型融合增强的全部组件，你要做的事情只是参与比赛，获取数据，然后使用这些组件去实现自己的idea即可。不废话，直接划重点上干货。如果你觉得机器学习难，那一定是你打开的方式不对（认真脸）。机器学习看似难度大，但对入门者来说，也还是有一条通用的学习路径。正如前几个专栏里介绍的，还有很多优秀的入门资料可以大大降低学习门槛，同时激发学习的乐趣。简单的说，学习方法大概如下： 机器学习是一个将理论算法与计算机工程技术紧密结合的领域，你需要扎实的理论基础来帮助你分析数据，同业是需要工程能力去开发模型和部署服务。所以需要【编程技能】【机器学习知识】【数学基础】三个方面军齐头并进，才能最终夺取胜利的果实。转行AI的人里也可以分三类，一类是程序员出身，具有很好的工程经验；一类是统计学数学电子通信类出身，具有较为扎实的理论基础；还有一类既没有丰富的编程经验也没有扎实理论基础，例如我们学材料的...这三类同学入门AI，需要加强的部分是不一样的。 1.编程技能-pythonLife is short, I use python!在google, facebook等巨头钦定之后，人工智能领域的当红辣子鸡莫过于python。Python的工具库还是满全的，从数据获取到数据清理和机器学习算法应有尽有。与Ｒ相比，更加全面。对于python,　除掌握其自身语法外，还应该着重掌握下面这些库：pandas：超级excel，表格式操作数据，数据清洗和预处理的强大工具。numpy：数值计算库，快的不要不要的。matplotlib：模仿MATLAB的数据可视化工具。scikit-learn：封装超级好的机器学习库，一些简便的算法用起来不要太顺手。ipython notebook：数据科学家和算法工程师的笔记本，强力推荐。 ２.数学基础微积分：是机器学习中的核心知识之一，无论是梯度下降法中的求梯度还是反向传播中的误差传递的推导都需要用到微积分。线性代数：神经网络中大量的计算都是矩阵乘法，这就需要用到线性代数的知识了。计算向量的余弦相似度也要用到内积运算。此外，矩阵的各种分解办法也出现在主成分分析和奇异值分解中。概率论与统计学：广义的说，机器学习的核心是统计推断。所以机器学习的巨头不少都是统计学大师，如迈克尔乔丹，杨乐坤，辛顿等。机器学习中大量的用到贝叶斯公式，隐马尔科夫模型等等。诚然，数学很重要，但是我建议，具有本科数学基础的你，不要花费太多时间去刷数学书，这是南辕北辙，最好的办法还是直捣黄龙学习机器学习算法，到了看不懂的地方再去补充相应的数学知识，斯坦福的教程里就有大量的数学补充材料，很多时候读明白这些补充材料就够了。3.项目经验一个误区：很多新手初学机器学习，上来就追求复杂的深度学习模型和高大上的算法如AlexNet, ResNet。tensorflow和keras各种API全部调用一遍，却不知道自己在干什么，俗称调包侠。一个观点：脱离实际业务和数据的算法都是空中楼阁。一条路径：按照我的学习经验，从数据清洗到特征工程，再用最传统的算法把整个流程走一遍，不断的比较和尝试各种算法，把特征和算法搞透，才是最快最靠谱的学习方法。两个项目：国外的Kaggle和阿里云天池都是获取项目经验的好途径。我的建议是每个入门机器学习的人都应该参加两个项目。一个传统机器学习应用场景的项目，如阿里移动推荐算法。通过传统应用场景熟悉逻辑斯特回归，支持向量机和梯度增强决策树等算法。一个深度学习应用场景的项目，如肺癌识别和诊断，通过深度学习应用场景熟悉深度学习各种算法的优势和应用场景。 就说这么多，大家放手去干吧！美丽的天使在远方召唤你，勇敢的少年啊，快去创造奇迹！