【完结】12篇文章告诉你深度学习理论应该学到什么水平

专栏《AI初识境》正式完结了,在这一个专题中,我们给大家从神经网络背景与基础,讲到了深度学习中的激活函数,池化,参数初始化,归一化,优化方法,正则项与泛化能力,讲到了深度学习中的评测指标,优化目标,以及新手开始做训练时的注意事项

消化完这12期文章后,你肯定具备了扎实的深度学习理论基础,接下来就大胆地往前走吧,下面再次回顾提炼一下主要内容。

作者&编辑 | 言有三

1、人工智能简史

按照中国古代思想家荀子在《荀子·正名篇》的说法:“所以知之在人者谓之知,知有所合谓之智。所以能之在人者谓之能,能有所合谓之能”。老人家认为,智能包含了两层含义,当然这是站在哲学的角度。

霍华德·加德纳的多元智能理论中将人类的智能分成七种能力:

(1) 语言 (Verbal/Linguistic)

(2) 逻辑 (Logical/Mathematical)

(3) 空间 (Visual/Spatial)

(4) 肢体运作 (Bodily/Kinesthetic)

(5) 音乐 (Musical/Rhythmic)

(6) 人际 (Inter-personal/Social)

(7) 内省 (Intra-personal/Introspective)

基本覆盖了现在人工智能的研究领域,包括计算机视觉,语音识别,自然语言处理等。

在这一篇文章里,会从图灵与机器智能,冯诺伊曼与类脑计算,约翰·麦卡锡(John McCarthy)、马文·闵斯基(Marvin Minsky,人工智能与认知学专家)、克劳德·香农(Claude Shannon,信息论的创始人)、艾伦·纽厄尔(Allen Newell,计算机科学家)、赫伯特·西蒙(Herbert Simon,诺贝尔经济学奖得主),塞弗里奇(Oliver Selfridge)等科学家参与的达特茅斯会议讲起。

从人工智能的启蒙,到三次浪潮的曲折和技术的成长史,值得每一个从事该行业的人阅读。

2、神经网络

人工智能的研究派系分为两大阵营。

第一大阵营,被称为符号派。他们用统计逻辑和符号系统来研究人工智能。第二大阵营是统计派。现在的深度学习就属于这一派,研究问题的方法就是仿造大脑。

这一篇从感受野,到MP模型,到感知机,到反向传播开始讲起,历数全连接神经网络的劣势,然后讲述卷积神经网络的特点,核心技术和优势,是学习深度学习最重要的基础。

3、图像领域的突破

既然学深度学习,就必须要了解深度学习的重要进展。

在前深度学习时代,视觉机制的发现,第一个卷积神经网络Neocognitron的提出,反向传播算法的流行,促进了LeNet5和MNIST数据集的诞生。

随着新理论的成熟,大数据的积累,GPU的普世,以卷积神经网络为代表的技术在图像分类,目标检测等基础领域取得重大突破,随着AlphaGo的成功同时在业内和业外人士的心目中种下了深度学习/人工智能技术的种子,从此焕发勃勃生机。

4、激活函数

深度学习的机制模仿于人脑,人脑的细胞接受刺激从而产生活动需要一定的阈值,这便是激活函数根本性的由来。

激活函数肩负着网络非线性表达能力的提升,从早期平滑的sigmoid和tanh激活函数,到后来的ReLU和各类ReLU的变种(LReLU,PReLU,RReLU,ELU,SELU,GELU等等),Maxout,研究者一直试图让网络拥有更好的表达能力。

随着技术的发展,利用增强学习等算法从函数池中学习新的激活函数如swish等,成为了当下的研究主流,激活函数也走上了数据驱动的道路。

激活机制看似简单,实则不易,大家不妨多了解了解。

5、初始化

参数初始化,一个看似很简单的问题,却实实在在地困住了神经网络的优化很久,2006年Hinton等人在science期刊上发表了论文“Reducing the dimensionality of data with neural networks”,揭开了新的训练深层神经网络算法的序幕,仍旧被认为是当前第三次人工智能热潮的纪元。

从全零初始化和随机初始化,到标准初始化,Xavier初始化,He初始化,时至今日上千层网络的训练都已经成为了现实,初始化似乎已经不再是那么重要的课题了,但是谁说就没有思考的空间了呢。

6、归一化

我们总是希望所研究的统计问题能够满足固定的分布,而且这样也的确会降低问题的难度。

在深度学习中,因为网络的层数非常多,如果数据分布在某一层开始有明显的偏移,随着网络的加深这一问题会加剧,进而导致模型优化的难度增加。

归一化便是致力于解决这个问题,从数据到权重,从限定在同一样本的一个特征通道到不同样本的所有通道,各类归一化方法以简单的方式,优雅地解决了深度学习模型训练容易陷入局部解的难题,顺带提升训练速度提高泛化能力,这是一定要掌握的理论和工程技巧。

7、池化

大脑学习知识靠抽象,从图像中抽象知识是一个“从大到小”过滤提炼信息的过程。从视觉机制中来的pooling即池化,正是对信息进行抽象的过程。

池化增加了网络对于平移的不变性,提升了网络的泛化能力,大家已经习惯了使用均值池化mean pooling和最大池化(max pooling),虽然可以用带步长的卷积进行替代。

尽管池化究竟起到了多大的作用开始被研究者怀疑,但是池化机制仍然是网络中必备的结构,所以你一定要熟悉它,而且基于数据驱动的池化机制值得研究。

8、最优化

模型的学习需要通过优化方法才能具体实现。深度学习模型的优化是一个非凸优化问题,尽管一阶二阶方法都可以拿来解决它,但是当前随机梯度下降SGD及其各类变种仍然是首选。

从SGD开始,有的致力于提高它的优化速度如Momentum动量法和Nesterov accelerated gradient法,有的致力于让不同的参数拥有不同的学习率如Adagrad,Adadelta与Rmsprop法,有的希望大家从调参中解脱如Adam方法及其变种,有的致力于让收敛过程更加稳定如Adafactor方法和Adabound方法。

没有一个方法是完美的,训练的时候总归要试试。

9、泛化能力

如果一个模型只能在训练集上起作用,那不就成为了书呆子要其何用。

因此我们总是希望模型不仅仅是对于已知的数据(训练集)性能表现良好,对于未知的数据(测试集)也表现良好,即具有良好的泛化能力,通过添加正则项来实现。

从直接提供正则化约束的参数正则化方法如L1/L2正则化,工程上的技巧如训练提前终止和模型集成,以及隐式的正则化方法如数据增强等,研究人员在这方面投入的精力非常多,大家一定要时刻关注。

10、模型评估

口说无凭,用数据说话才是研究者们进行PK的正确姿态。计算机视觉的任务何其多,从分类,回归,质量评估到生成模型,这篇文章就全部都来说一遍。

11、损失函数

模型的学习需要指导,这正是损失函数的责任,它往往对模型最终表现如何影响巨大。

这一篇文章就重点总结分类问题,回归问题,生成对抗网络中使用的损失目标,为大家设计更好的优化目标奠定理论基础。

12、如何开始训练你的模型

磨刀不误砍柴工,当我们开始训练自己的模型的时候,总归要想清楚一些事儿再动手。

第一步知道你要做的任务是一个什么任务,找到竞争对手做好预期,想好你需要什么样的数据。第二步确定好框架,基准模型,准备好数据。然后才是第三步开始训练,从输入输出,数据的预处理到维持正确地训练姿势。

既然是总结出来的经验,想必总是有用的。

总结

相信经过这一个系列后,大家应该都夯实了自己的深度学习基础,从此向着更高的目标前进。

下一个系列《AI不惑境》,将在休息一个星期以后开始每周一连载,尽情期待,4月8日归来。

如果你还有很多的疑问,那就来有三AI知识星球吧,更多好用,好玩的知识,大咖云集等你来撩。

有三带领的精英小队“学习季划”已进入深度学习篇,想上车速来,仅此一趟。

重新解释“季”划 & 为什么我不是在搞培训

转载文章请后台联系

侵权必究

(0)

相关推荐