深度学习基本知识


概念与理解

来源:https://zhuanlan.zhihu.com/p/22888385

一、基本变换:层。层在做什么?

神经网络由层来构建。每一层的工作内容:

(动态图5种空间操作)

  每层神经网络的数学理解:用线性变换跟随着非线性变化,将输入空间投向另一个空间。

  每层神经网络的物理理解:通过现有的不同物质的组合形成新物质。

二、理解视角:层的行为如何完成识别任务?

 数学视角:“线性可分”

  

这里有非常棒的可视化空间变换demo,一定要打开尝试并感受这种扭曲过程。更多内容请看Neural Networks, Manifolds, and Topology

 线性可分视角:神经网络的学习就是学习如何利用矩阵的线性变换加激活函数的非线性变换,将原始输入空间投向线性可分/稀疏的空间去分类/回归。 
  增加节点数:增加维度(W权重矩阵的维度),即增加线性转换能力。 
       增加层数:增加激活函数的次数,即增加非线性转换次数。

物理视角:“物质组成”

  • 类比:回想上文由碳氧原子通过不同组合形成若干分子的例子。从分子层面继续迭代这种组合思想,可以形成DNA,细胞,组织,器官,最终可以形成一个完整的人。继续迭代还会有家庭,公司,国家等。这种现象在身边随处可见。并且原子的内部结构与太阳系又惊人的相似。不同层级之间都是以类似的几种规则再不断形成新物质。你也可能听过分形学这三个字。可通过观看从1米到150亿光年来感受自然界这种层级现象的普遍性。
  • 人脸识别情景:我们可以模拟这种思想并应用在画面识别上。由像素组成菱角再组成五官最后到不同的人脸。每一层代表不同的不同的物质层面 (如分子层)。而每层的W存储着如何组合上一层的物质从而形成新物质。 如果我们完全掌握一架飞机是如何从分子开始一层一层形成的,拿到一堆分子后,我们就可以判断他们是否可以以此形成方式,形成一架飞机。 附:Tensorflow playground展示了数据是如何“流动”的。

  物质组成视角:神经网络的学习过程就是学习物质组成方式的过程。 
  增加节点数:增加同一层物质的种类,比如118个元素的原子层就有118个节点。
  增加层数:增加更多层级,比如分子层,原子层,器官层,并通过判断更抽象的概念来识别物体。

三、神经网络的训练

  神经网络的学习过程就是学习控制着空间变换方式(物质组成方式)的权重矩阵W。如何学习W?

  如何训练:

   既然我们希望网络的输出尽可能的接近真正想要预测的值。那么就可以通过比较当前网络的预测值和我们真正想要的目标值,再根据两者的差异情况来更新每一层的权重矩阵(比如,如果网络的预测值高了,就调整权重让它预测低一些,不断调整,直到能够预测出目标值)。因此就需要先定义“如何比较预测值和目标值的差异”,这便是损失函数或目标函数(loss function or objective function),用于衡量预测值和目标值的差异的方程。loss function的输出值(loss)越高表示差异性越大。那神经网络的训练就变成了尽可能的缩小loss的过程。 所用的方法是梯度下降(Gradient descent):通过使loss值向当前点对应梯度的反方向不断移动,来降低loss。一次移动多少是由学习速率(learning rate)来控制的。

  

  梯度下降的问题:

   使用梯度下降训练神经网络拥有两个主要难题。

  

  

  试图解决“卡在局部极小值”问题的方法分两大类:

  • 调节步伐:调节学习速率,使每一次的更新“步伐”不同。常用方法有:

    • 随机梯度下降(Stochastic Gradient Descent (SGD):每次只更新一个样本所计算的梯度
    • 小批量梯度下降(Mini-batch gradient descent):每次更新若干样本所计算的梯度的平均值
    • 动量(Momentum):不仅仅考虑当前样本所计算的梯度;Nesterov动量(Nesterov Momentum):Momentum的改进
    • Adagrad、RMSProp、Adadelta、Adam:这些方法都是训练过程中依照规则降低学习速率,部分也综合动量
  • 优化起点:合理初始化权重(weights initialization)、预训练网络(pre-train),使网络获得一个较好的“起始点”,如最右侧的起始点就比最左侧的起始点要好。常用方法有:高斯分布初始权重(Gaussian distribution)、均匀分布初始权重(Uniform distribution)、Glorot 初始权重、He初始权、稀疏矩阵初始权重(sparse matrix)

  

  2、梯度的计算

   机器学习所处理的数据都是高维数据,该如何快速计算梯度、而不是以年来计算。 其次如何更新隐藏层的权重? 解决方法是:计算图,反向传播算法。这里的解释留给非常棒的Computational Graphs: Backpropagation 需要知道的是,反向传播算法是求梯度的一种方法。如同快速傅里叶变换(FFT)的贡献。 而计算图的概念又使梯度的计算更加合理方便。

  基本流程图:

   下面结合图简单浏览一下训练和识别过程,并描述各个部分的作用。要结合图解阅读以下内容。

  

    

     

      

      • 预测新值:训练过所有样本后,打乱样本顺序再次训练若干次。训练完毕后,当再来新的数据input,就可以利用训练的网络来预测了。这时的output就是效果很好的预测值了。

    

  为了理解深层神经网络,需要明白最基本的训练过程。 若能理解训练过程是通过梯度下降尽可能缩小loss的过程即可。 若有理解障碍,可以用python实践一下从零开始训练一个神经网络,体会整个训练过程。若有时间则可以再体会一下计算图自动求梯度的方便利用TensorFlow

  结合Tensorflow playground理解5种空间操作和物质组成视角

  https://zhuanlan.zhihu.com/p/22888385

  

  

四、表现原因

  文章的最后稍微提一下深层神经网络。深层神经网络就是拥有更多层数的神经网络。

  按照上文在理解视角中所述的观点,可以想出下面两条理由关于为什么更深的网络会更加容易识别,增加容纳变异体(variation)(红苹果、绿苹果)的能力、鲁棒性(robust)。

  数学视角:变异体(variation),很多的分类的任务需要高度非线性的分割曲线。不断的利用那5种空间变换操作将原始输入空间像“捏橡皮泥一样”在高维空间下捏成更为线性可分/稀疏的形状。

  物理视角:通过对“抽象概念”的判断来识别物体,而非细节。比如对“飞机”的判断,即便人类自己也无法用语言或者若干条规则来解释自己如何判断一个飞机。因为人脑中真正判断的不是是否“有机翼”、“能飞行”等细节现象,而是一个抽象概念。层数越深,这种概念就越抽象,所能涵盖的变异体就越多,就可以容纳战斗机,客机等很多种不同种类的飞机。


深度学习

参考:https://zhuanlan.zhihu.com/p/24245040



参考:

https://zhuanlan.zhihu.com/p/24245040

https://zhuanlan.zhihu.com/p/22888385

https://www.zhihu.com/question/26006703/answer/126777449

原文地址:https://www.cnblogs.com/xianhan/p/8609573.html

时间: 2024-11-12 19:45:19

深度学习基本知识的相关文章

深度学习简单知识

卷积神经网络 http://blog.csdn.net/u010555688/article/details/24848367 https://www.toutiao.com/i6479655961521816078/ http://blog.csdn.net/u010555688/article/details/24848367 循环神经网络 https://www.toutiao.com/i6482640110192951821/ 长短时记忆网络 https://www.toutiao.co

深度学习数学知识之数理统计

原文地址:https://www.cnblogs.com/xiximayou/p/12401428.html

秦涛:深度学习的五个挑战和其解决方案

深度学习的五个挑战和其解决方案 编者按:日前,微软亚洲研究院主管研究员秦涛博士受邀作客钛媒体,分享他对深度学习挑战和解决方案的思考 ,本文为秦涛博士在此次分享的实录整理. 大家好,我是微软亚洲研究院的秦涛,今天我将分享我们组对深度学习这个领域的一些思考,以及我们最近的一些研究工作.欢迎大家一起交流讨论. 先介绍一下我所在的机器学习组.微软亚洲研究院机器学习组研究的重点是机器学习,包含机器学习的各个主要方向,从底层的深度学习分布式机器学习平台(AI的Infrastructure)到中层的深度学习.

深度学习:卷积神经网络(convolution neural network)

(一)卷积神经网络 卷积神经网络最早是由Lecun在1998年提出的. 卷积神经网络通畅使用的三个基本概念为: 1.局部视觉域: 2.权值共享: 3.池化操作. 在卷积神经网络中,局部接受域表明输入图像与隐藏神经元的连接方式.在图像处理操作中采用局部视觉域的原因是:图像中的像素并不是孤立存在的,每一个像素与它周围的像素都有着相互关联,而并不是与整幅图像的像素点相关,因此采用局部视觉接受域可以类似图像的此种特性. 另外,在图像数据中存在大量的冗余数据,因此在图像处理过程中需要对这些冗余数据进行处理

深度学习在自然语言处理的应用(Version 0.76)

/* 版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/ Author:   张俊林 TimeStamp:2014-10-3 主要对最近两年深度学习在自然语言处理的应用方法和技术进行了综述性的归纳,相关的PPT内容请参考这个链接,这里列出主要提纲. 大纲 ?深度学习简介 ?基础问题:语言表示问题 –Word Embedding –不同粒度语言单元的表示 ?字符/单字/单词/短语/句子/文档 ?值得重点关注的深度学习模型 –RAE(Recursive AutoEncoders)

斯坦福大学深度学习与自然语言处理第一讲:引言

斯坦福大学在三月份开设了一门"深度学习与自然语言处理"的课程:CS224d: Deep Learning for Natural Language Processing ,授课老师是青年才俊Richard Socher,他本人是德国人,大学期间涉足自然语言处理,在德国读研时又专攻计算机视觉,之后在斯坦福大学攻读博士学位,拜师NLP领域的巨牛 Chris Manning和Deep Learning 领域的巨牛 Andrew Ng ,其博士论文是< Recursive Deep Le

语音语义的深度学习

深度学习系列 | 诺亚面向语音语义的深度学习研究进展 编者:本文来自华为诺亚方舟实验室资深专家刘晓华在携程技术中心主办的深度学习Meetup中的主题演讲,介绍了华为诺亚面向语音语义的深度学习进展.关注“携程技术中心”微信公号(ctriptech),可获知更多技术分享信息哦. 本次演讲简要回顾了深度学习近十年进展,重点介绍华为诺亚方舟实验室最近两年内和深度学习相关的研究成果,并探讨了深度学习的未来趋势. 一.深度学习的近十年进展 深度学习为什么现在这么火?大数据,算法突破和计算能力.算法上有什么样

斯坦福大学深度学习与自然语言处理第一讲

我学习自然语言是从Christopher D.Manning的统计自然语言处理基础这本书开始的,很多文本分析也是应用统计方法,或者机器学习的方法,而近年来深度学习逐渐渗入各个领域,其在自然语言处理领域中也取得了令人惊叹的效果,这成功的引起了我的重视,决定学习一下.何其所幸,让我找到了斯坦福大学深度学习与自然语言的课程,深得我心啊,所以打算好好学习一下,鉴于我爱自然语言处理中有相关课程的slides,我就直接复制粘贴了,接下来打算做的工作是对该课程中推荐阅读的部分论文做一些笔记.本人才疏学浅,专业

[Tensorflow实战Google深度学习框架

本系列为Tensorflow实战Google深度学习框架知识笔记,仅为博主看书过程中觉得较为重要的知识点,简单摘要下来,内容较为零散,请见谅. 2017-11-06 [第五章] MNIST数字识别问题 1. MNIST数据处理 为了方便使用,Tensorflow提供了一个类来处理MNIST数据,这个类会自动下载并转化MNIST数据的格式,将数据从原始的数据包中解析成训练和测试神经网络时使用的格式. 2. 神经网络模型训练及不同模型结果对比 为了评测神经网络模型在不同参数下的效果,一般会从训练数据