阅读355 返回首页    go 阿里云 go 技术社区[云栖]


简单入门——深度学习笔记(Part I)

首发地址:https://yq.aliyun.com/articles/71667


https://yq.aliyun.com/cloud

作者介绍:Deepak Shah

Deepak Shah毕业于德克萨斯奥斯汀分校,徒步旅行爱好者,目前是深度学习\数据科学实习生,研究领域专注于深度学习、编程、金融等方面。

https://www.deepakvshah.com/

Medium论坛:https://medium.com/@dvshah13

Github论坛:https://github.com/Dvshah13

 笔记分为两个部分,本文是笔记Part I,关于深度学习笔记Part II可以看这篇博客

   目前有一些正在进行已经完成编码项目,这些项目与深度学习有关。写下一些笔记,简单地向大家介绍深度学习与神经网络

Datasoap项目:https://github.com/DigitalCrafts-HTX-11-2016-Cohort/DataSoap

Digital Crafts项目:https://github.com/MarvinM579/e-commerce

  • 神经网络的结构就像任何其他网络。
  • 它是一系列互连的节点,称为神经元和边缘,并将它们连接在一起。
  • 主要功能是接收一组输入执行逐步复杂的计算并使用输出来解决问题。
  • 分类是其中的一个应用。分类是对一组对象进行分类,而只使用描述它们的一些基本数据特征。
  • 分类器的例子 - 逻辑回归,支持机器向量(SVM)、朴素贝叶斯、神经网络。
  • 分类器数据作为输入开始,通过隐藏层进行处理,并在输出处给出置信分数。
  • 神经网络由输入层,隐藏层和输出层组成。隐藏层位于输入和输出层之间。
  • 神经网络可以被视为在分层网络中将分类器一起旋转的结果,因为隐藏和输出层中的每个节点都有自己的分类器。
  • 从输入 - >隐藏层 - >输出的过程称为前向传播(prop)。
  • 分层的感知器网络大大提高了个体感知器触发的准确性。
  • 每组输入受其自身的权重和偏置影响。这就是为什么当通过相同的图层,得到一个不同的结果。
  • 每个边具有唯一的权重,并且具有唯一的偏置。神经网络的预测精度取决于其权重和偏置
  • 目标是希望精确度高神经网每次都预测一个尽可能接近实际输出的值。
  • 提高神经网络精度的过程称为训练。
  • 为了训练网络,将来自前向传播的输出与已知正确的输出进行比较。代价是两者的
  • 训练的目的是使这个代价尽可能小。
  • 为此,逐步调整权重和偏置,直到预测与正确的输出密切匹配。
  • 一旦训练良好,神经网络有可能每次都能进行准确的预测。

  • 深度学习有能力识别令人难以置信的复杂模式特别是神经网络。
  • 计算机一直擅长重复计算并能给出详细的说明,但历来是不擅长进行模式识别。
  • SVM
  • 但是随着你的数据增长到几十或更多的输入,神经网络开始表现优异。
  • 随着模式变得更复杂,具有少量层的神经网络可能变得不可用。原因是因为每层中所需的节点数量随着数据中可能的模式的数量呈指数增长。这使得训练变得昂贵(时间),并且精度受损。
  • 深层网络
  • 深层网络能够将复杂的模式分解成一系列更简单的模式。
  • 示例:检测人脸。深层网络首先将使用边缘来检测面部的不同部分(嘴唇、鼻子、眼睛、耳朵),然后将结果组合在一起以形成整个面部。
  • 使用更简单的模式作为复杂模式的构建块,这使得深层网络具有优势。
  • 精度已变得越来越令人印象深刻。
  • 深层网络的灵感来自于我们自己的大脑的结构。大脑的模式识别类似于深层网络。
  • GPU

  • 第一步是弄清楚你是否想要构建一个分类器或者在数据中找到模式。
  • 无监督学习试图在未标记的数据中找到模式。如果这是你的目标,最好的方法是受限玻尔兹曼机(RBM)或自动编码器。
  • 监督学习试图使用标签数据构建分类器。可以根据应用程序选择不同的方法
  • 对于文本处理任务,如情感分析解析和命名实体识别,使用递归神经张量网络(RNTN)或循环网络(RNN
  • 对于图像识别,使用深信念网络(DBN)或卷积网络CNN
  • RNTN
  • 对于语音识别使用循环网络
  • 一般来说,具有整流线性单元(RELU)的深信念网络(DBN)和多层感知器(MLP)是分类的好选择。
  • 对于时间序列分析,最好使用循环网络。
  • 之所以花费这么长的时间来实现深层网络由于其训练难度高

为什么深层网络难以训练

  • 当我们尝试使用称为反向传播的方法训练它们时,会遇到一个称为消失梯度的基本问题,有时称为爆炸梯度。
  • 当发生消失梯度时,训练花费时间太长,精度受到很大影响。
  • 训练神经网络时,会不断计算成本值。然后通过在整个训练过程中对所述权重和偏置进行微调来降低成本,直到获得最低可能值。
  • 训练过程使用了梯度,用来测量成本相对于权重或偏置的变化而变化的速率。
  • 2006
  • 想象梯度类似于斜坡,训练过程如一个球下坡。坡度越陡,球越快下降。相同的逻辑适用于深层网络的梯度。
  • 在神经网络中,梯度开始衰减或消失。梯度在早期的层中小得多。因此早期的层是最慢的训练。
  • 如果早期的层是错误的,由网络建立的结果将是错误的。
  • 反向传播
  • 在反向传播中,每次计算梯度时,它会使用该点所有以前的梯度。一个节点可以在整个网络中使用许多不同的梯度。
  • 网络越大和越深,其变得越复杂,并且每个节点具有更多的梯度。这是因为任何节点处的梯度是到该点为止之前梯度的乘积。
  • 1/4
  • 2006


本文由北邮@爱可可-爱生活老师推荐,阿里云云栖社区组织翻译。

文章原标题《My notes on Deep Learning》,作者:Deepak Shah,译者:海棠

文章为简译,更为详细的内容,请查看原文

最后更新:2017-07-12 22:10:22

  上一篇:go  简单入门——深度学习笔记(Part II)
  下一篇:go  让系统更清晰——解构复杂系统的五种常用模型