深度学习笔记


前言(废话)

作为一个深度学习的小白(其实小白都算不上,仅仅是任务需要利用TensorFlow写过一两个浅层的卷积神经网络而已)有幸的参加了CCF举办的深度学习前沿讨论班,整体感受是大家做的都很高大上,具体对一个小白抱着想学一点深度学习日常使用的小技巧的我而言,为期两天的讨论班学习让我显得有点儿格格不入。钱花了,总是要学点东西才对得起自己呀,在第一场报告之后我就明确了专属于自己的学习目标,1⃣️明白深度学习的现状;2⃣️了解目前的前沿热门研究。
所以,LZ将围绕自己定下的目标进行总结和整理。


深度学习发展历程

这个发展历程,你一google就能发现各种各样或简单或详细的介绍。但是在这次讨论班之后对LZ自己而言是对深度学习发展历程的一次全新的认识,不再是几次低谷几次高潮流于文字表面的理解。
不方便透露报告者名字的一位老师在讨论班第二天下午进行了一场关于深度学习宏观的报告,比起前面高大上的报告而言,LZ可能更能接受这样的报告。这位老师幽默风趣讲段子,故事性极强的向大家展示了深度学习的发展历程

背景

在介绍深度学习发展历程之前,先简单介绍一下神经网络的一些基本背景知识。大家一直在讲“机器学习”、“深度学习”。那么,思考这样一个问题,什么是学习?学习的本质是什么? 学习就是基于经验数据进行函数估计,我想这样的回答应该是大家可能都不能反驳的事实吧。所以,神经网络本质也就是一个函数估计问题,只是这个函数可能会比较复杂一点儿罢了。对于不同的算法进行分类常有根据是否是有标签数据分为监督学习和非监督学习,同时我们也能将算法分为“傻瓜”和“专家”类型。这种分类方式类似于照相机,专业型的单反在专业人士手中体现出的效果往往是普通人难以企及的,傻瓜型的学习算法也就是任何人在同样的数据下使用这种算法得到的效果往往是差不多的,(PCA,K近邻等典型代表),反之专家型就是因人而异差距巨大。例如,深度学习,其网络的结构,小技巧的使用,超参数的设定都会影响到算法的效果,所以专家往往能比普通人更好驾驭这类型算法。

深度学习的发展历程(人工智能的发展历程)

深度学习作为人工智能重要的一个部分,其发展历程也直接相关反映出了人工智能的发展历程。提到人工智能发展历程,下面这张图或者类似的图往往被拿出来说人工智能发展几起几落。接下来,LZ将就为什么出现这样的情况进行介绍。
深度学习笔记
1956年夏天约翰.麦卡锡等人在美国达特茅斯学院开会研讨“如何利用机器模拟人的智慧”大会上提出了人工智能,标志着人工智能的诞生。1958年提出线性感知器算法,这个算法对线性数据进行了很好的拟合,大家也对这样的算法能有效拟合各种函数感到乐观,大量的科研工作者以及*资金的流入让人工智能进入了第一个高潮。
但是这样的线性感知器很快就被人们发现了其弊端。连最简单的异或和二分类都不能进行有效拟合,本质上多层的线性感知器还是线性的算法。而真实世界中存在的问题更多是非线性的,这样适用范围极小的算法被*和投资者抛弃。进入第一次低谷。
1982年,Hopfield 网络以及多层的前馈神经网络被提出。相当于,在每层之间加入了非线性变换(Sigmoid函数)**。这样,神经网络就能适用于更多的非线性场景了,并且在当时成功了进行了手写数字的识别(多分类问题)。万有逼近(如果一个隐藏层包含足够多的神经元,多层前馈神经网络就能以任意精度逼近任意连续函数)定理出现,成功迎来了第二次高潮。

深度学习笔记
1995年一个牛逼得不行的算法出现,SVM。SVM算法应对于小样本数据效果可以和神经网络媲美,同时它有很强的可解释性,这可是神经网络一直的弊端。没办法,只有被打败,自然的进入了第二次低谷。
知道06年,数据量增大,计算能力提高等让深度学习有了更多数据,这样就能体现出它的优势。但是,为什么之前也有不错数据量的时候为什么也没有让其腾飞呢?究其原因还是一直只适用了3层的结构,毕竟梯度消失问题一直制约着神经网络结构加深(多层sigmiod**函数求导,链式法则导致梯度消失)。伴随数据量上升,计算能力提高,迫切的解决了梯度消失问题,迎来了第三次高潮。

深度学习能和不能

目前,深度学习已经火爆得应用于各行各业。那么深度学习到底适合做什么,不适合做什么。
深度学习适合做特征提取。这个也是深度学习众多应用中的一种,深度学习本质上是一种端到端的学习模式,自动进行了特征提取然后进行相关任务(分类、预测等)。
我们都知道,机器学习中特征提取是重中之重,能决定一个算法的上限。但是特征提取往往是基于经验知识,反复尝试这样的方法造成提取的特征难以达到最好,深度学习通过所有特征的线性组合,非线性变换得到最适合学习任务的特征。(LZ认为这就是深度学习的最大优势所在吧)既然,深度学习有这样的特性那么它自然适合进行特征提取任务。自编码器就是最好的例子,同时LZ从事的网络表示学习它也取得了重大成就。LZ也将在如何利用深度学习进行更好的图特征提取工作上进行更深一步的研究探索。
反之,深度学习又不适合做什么呢?目前有什么缺点。

  1. 鲁棒性不足
    深度学习笔记
    如上图,人类肉眼可见的两种同类物体,会被深度学习误判。根据深度学习损失函数,进行构造噪声导致深度学习判别失真。这样的鲁棒性不足,导致深度学习可能被各种恶意攻击。这也是目前自动驾驶突然停滞不前的一个重要原因。
  2. 推理能力不足
  3. 数据驱动导致的先天不足
    从数据中获取到的知识导致深度学习存在偏见。例如,罪犯判别中由于历史数据中有很多黑人犯罪,导致深度学习出现种族歧视。等等
  4. 可解释差
    深度学习笔记

目前前沿研究

语义图像分割

深度学习的攻击和防御

自动驾驶