人工智能的未来世界令人神往。当我看到媒体上各种神乎其神的报道,作为一名咸鱼程序员时不时有这样的冲动:What the fuck it is?与此同时,与『人工智能』这个热点伴随出现的是『深度学习』、『机器学习』这些不明觉厉的玩意。甚至在圈内交流(chuiniubi)的时候言必谈XX学习。为了可以跟上时代的脚步,储备知识能力(可以一起chui),今年我又一次开始入门机器学习/深度学习之旅。本文是我最近学习内容的概括。

前传

这是或许是我第N次试图入门机器学习。大约三年前,当我试图打开这扇大门时,发现找到一份能看懂的资料十分困难。于是,我潜心搜索入门资料,当时最火的入门资料是Andrew Ng的视频:斯坦福机器学习课程。 这门课现在依旧是很多人的入门首选,可是当课程讲到反向传播推导各种微积分的时候,我没能坚持下来。我更习惯从书本学习入门知识,便开始寻找一本最基础的入门的书籍。皇天不负有心人,终于在国外一个热门的机器学习入门帖子中发现了一本好书《集体智慧编程》(Programming Collective Intelligence),如获至宝。全书使用Python作为开发语言,讲解了机器学习的基本概念,没有数学公式,侧重实践与代码。可惜的是,这本书也因为一些自身原因半途而废了。

PS:那个帖子的作者是Jason Brownlee,一个国外出名的机器学习传道者。他的这篇帖子的2017年的相关更新Machine Learning Books ,在国内有很多媒体转载翻译,总结了一下比较流行的机器学习相关书籍。

似乎我的机器学习之旅就此结束了。然而近年来人工智能大火,更重要的是工作上又与这些东西产生了诸多交集,我想是时候也有必要再次开始新的学习了。正当我准备重新拿起那本落灰的《集体智慧编程》之时,在Twitter上候偶然发现阮一峰老师推荐了一门Udacity在线收费课程《深度学习》。心想借此机会,体验一下这种新式的教育模式,同时也给自己一点压力把这事搞定。于是,在2017新年前报名了这门课程。(PS:当时连深度学习是什么都不知道😂,以为是机器学习的时髦名字)

经过4个月的学习,基本了解了什么是深度学习,它的基本原理,具有哪些能力与应用以及最新的一些成果。同时,完成了几个实践项目。虽然这些都很初级😂,但是,总的而言让我入门了这领域,并且知道下一步如何走,也算是对技术去魅的过程。

概要

我从深度学习在计算机科学中的地位,深度学习的具体内容与知识,以及深度学习入门之后如何深入的角度来谈一下我的认识。

在哪里?

深度学习是什么,他与机器学习,人工智能是什么关系?这是首要需要解决的问题。最基本的答案是:人工智能>机器学习>深度学习,后者是前者的子集

因此,学习深度学习,必须先了解机器学习中的人工神经网络(神经元,感知器等)。我们通过这一步步引出近些年快速发展的深度学习,这是课程学习的主要内容。

参考文章:人工智能、机器学习与深度学习

学习内容

深度学习入门主要分为下面几个部分

开发环境与工具

神经网络/深度神经网络DNN

卷积神经网络CNN

循环神经网络RNN

对抗生成网络GAN

其他

去哪儿?

在知识宽度上,虽然深度学习在大部分任务中表现十分出色,但是机器学习中的其他算法依旧有很广泛的应用(如SVM等),可以学习这些内容:

在知识深度上,系统学习一下TextBook了解数学原理。了解最佳的应用实践。深度学习的在快速发展,各个子领域都有很多新的进展,专注某些领域,follow最新论文是必要的。

小结

后续会按照本文的概要,详细介绍一下深度学习的各个方面。主要基于Udacity的深度学习课程,记录我学习中遇到的一些问题。深度学习是一门十分大的学问,入门不易,想要深入更需要大量时间与实践,本人只是接触几个月,说是完全入门都不敢,写作的目的一窥深度学习的神秘面纱,同时把疑惑与问题总结一下,与大家共勉。我对深度学习的认识还浮于表面,比较粗浅,行文中难免有错误,望不吝指出。