读书笔记《Deep Learning for Computer Vision with Python》- 第一卷 - 第2章

        第一卷 第二章 内容总结

        1、什么是什么学习

        深度学习是机器学习的一个子领域,而机器学习又是人工智能(AI)的一个子领域。(其它所有的书也都是这么说)。“深度学习方法是具有多个表示级别的表示学习方法,通过组合简单但非线性的模块获得,每个模块将一个级别的表示(从原始输入开始)转换为更高、更抽象的级别的表示。”

读书笔记《Deep Learning for Computer Vision with Python》- 第一卷 - 第2章

        2、神经网络和深度学习简史

        反向传播算法给现代神经网络带来的变化

        在1950年代,Rosenblatt[12,13]发布了开创性的感知器算法—该模型可以自动学习对输入进行分类所需的权重(无需人工干预)。感知器架构的一个例子可以在图2.2中看到。事实上,这种自动训练过程构成了随机梯度下降(SGD)的基础,今天它仍然用于训练非常深的神经网络。

读书笔记《Deep Learning for Computer Vision with Python》- 第一卷 - 第2章
简单感知器网络架构的一个例子,它接受多个输入,计算加权和,并应用阶跃函数来获得最终预测

        在此期间,基于感知器的技术在神经网络社区风靡一时。然而,Minsky和Papert[14]1969年发表的一篇论文有效地使神经网络研究停滞了近十年。他们的工作表明,具有线性激活函数(无论深度如何)的感知器只是一个线性分类器,无法解决非线性问题。非线性问题的典型例子是图2.3中的XOR数据集。现在花一点时间让自己相信,尝试一条线来将蓝色星星与红色圆圈分开是不可能的。

读书笔记《Deep Learning for Computer Vision with Python》- 第一卷 - 第2章
XOR(E(X)clusiveOr)数据集是感知器无法解决的非线性可分问题的一个例子。不可能画一条线将蓝色星星与红色圆圈分开。

        此外,作者认为(当时)我们没有构建大型深度神经网络所需的计算资源(事后看来,它们是绝对正确的)。仅这一篇论文就几乎扼杀了神经网络研究。

        幸运的是,反向传播算法和Werbos(1974)[15]、Rumelhart(1986)[16]和LeCun(1998)[17]的研究能够使神经网络从可能早逝的情况中复苏。他们对反向传播算法的研究使多层前馈神经网络得以训练(图2.4)。

读书笔记《Deep Learning for Computer Vision with Python》- 第一卷 - 第2章
一个多层前馈网络架构,具有一个输入层(3个节点)、两个隐藏层(第一层有2个节点,第二层有3个节点)和一个输出层(2个节点)。

         结合非线性激活函数,研究人员现在可以学习非线性函数并解决XOR问题,为神经网络的全新研究领域打开大门。

        进一步的研究表明,神经网络是通用逼近器[18],能够逼近任何连续函数(但不保证网络是否可以实际学习表示函数所需的参数)。

        反向传播算法是现代神经网络的基石,使我们能够有效地训练神经网络并“教”它们从错误中学习。但即便如此,此时,由于(1)计算机速度较慢(与现代机器相比)和(2)缺乏大型标记训练集,研究人员无法(可靠地)训练具有两个以上隐藏的神经网络层——这在计算上是不可行的。

        今天,我们所知的神经网络的最新化身被称为深度学习。深度学习与之前版本的不同之处在于,我们拥有更快、更专业的硬件和更多可用的训练数据。我们现在可以训练具有更多隐藏层的网络,这些隐藏层能够进行分层学习,其中在网络的较低层学习简单的概念,在网络的较高层学习更抽象的模式。

         3、分层特征学习

        这一节主要描述了传统机器学习和深度学习的一些区别,传统机器学习应用手工设计的特征提取算法,然后对特征训练机器学习分类器的传统过程。现代深度学习采用堆叠层的学习方法,自动学习更复杂、抽象和有区别的特征。

读书笔记《Deep Learning for Computer Vision with Python》- 第一卷 - 第2章
采用一组输入图像,应用手工设计的特征提取算法,然后对特征训练机器学习分类器的传统过程。右:堆叠层的深度学习方法,自动学习更复杂、抽象和有区别的特征。

        深度学习和卷积神经网络的主要好处之一是它允许我们跳过特征提取步骤,而是专注于训练我们的网络以学习这些过滤器的过程。然而,正如我们将在本书后面发现的那样,训练网络以在给定的图像数据集上获得合理的准确性并不总是一件容易的事。

        4、“深”到底有多深

        简短的回答是专家们对网络的深度没有达成共识。

        在处理您自己的深度学习应用程序时,我建议使用以下经验法则来确定您给定的神经网络是否是深度的:

        1.您是否使用了专门的网络架构,例如卷积神经网络、循环神经网络或长短期记忆(LSTM)网络?如果是这样,是的,您正在执行深度学习。

        2.你的网络深度是否大于2?如果是,那么您正在进行深度学习。

        3.您的网络是否具有>10的深度?如果是这样,您正在执行非常深度的学习[40]。

        综上所述,尽量不要陷入围绕深度学习和什么是/不是深度学习的流行语中。从本质上讲,深度学习在过去60年中经历了基于各种思想流派的许多不同的化身——但这些思想流派中的每一个都集中在受大脑结构和功能启发的人工神经网络上。无论网络深度、宽度或专用网络架构如何,您仍在使用人工神经网络执行机器学习。

上一篇:CSS开发细节


下一篇:基于深度学习的两种信源信道联合编码