(中文)零基础深度学习deep learning

合集下载

深度学习基础知识

深度学习基础知识

深度学习基础知识深度学习(Depth Learning)是机器学习的一个重要分支,旨在模仿人类大脑的工作方式,通过神经网络的构建和训练实现智能化的数据分析与决策。

在深度学习的背后,有一些基础知识需要我们掌握,才能更好地理解和应用深度学习技术。

一、神经网络的基本结构神经网络是深度学习的核心,它由多个神经元组成,每个神经元都有激活函数,能接收来自其他神经元的输入,并产生输出。

神经网络通常包括输入层、隐藏层和输出层,其中隐藏层可以有多个。

输入层接受外部数据输入,隐藏层负责对数据进行特征提取和转换,输出层产生最终的结果。

二、梯度下降算法梯度下降算法是深度学习中最基础且最常用的优化算法,用于调整神经网络中各个神经元之间的连接权重,以最小化损失函数。

在训练过程中,通过计算损失函数对权重的偏导数,不断地更新权重值,使得损失函数逐渐减小,模型的性能逐渐提升。

三、反向传播算法反向传播算法是神经网络中用于训练的关键算法,通过将误差从输出层倒推到隐藏层,逐层计算每个神经元的误差贡献,然后根据误差贡献来更新权重值。

反向传播算法的核心思想是链式法则,即将神经网络的输出误差按照权重逆向传播并进行计算。

四、卷积神经网络(CNN)卷积神经网络是一种主要用于图像处理和识别的深度学习模型。

它通过共享权重和局部感受野的方式,有效地提取图像中的特征。

卷积神经网络通常包括卷积层、池化层和全连接层。

其中卷积层用于提取图像中的局部特征,池化层用于降低特征的维度,全连接层用于输出最终的分类结果。

五、循环神经网络(RNN)循环神经网络是一种主要用于序列数据处理的深度学习模型。

它通过引入时间维度,并在每个时间步上传递隐藏状态,实现对序列数据的建模。

循环神经网络可以解决序列数据中的时序依赖问题,适用于音频识别、语言模型等任务。

六、生成对抗网络(GAN)生成对抗网络是一种通过让生成器和判别器相互博弈的方式,实现模型训练和生成样本的深度学习模型。

生成器负责生成与真实样本相似的假样本,判别器负责对真假样本进行分类。

DeepLearning论文翻译(NatureDeepReview)

DeepLearning论文翻译(NatureDeepReview)

DeepLearning论⽂翻译(NatureDeepReview)原论⽂出处:by Yann LeCun, Yoshua Bengio & Geoffrey HintonNature volume521, pages436–444 (28 May 2015)译者:零楚L()这篇论⽂性质为深度学习的综述,原本只是想做做笔记,但找到的翻译都不怎么通顺。

既然要啃原⽂献,索性就做个翻译,尽⼒准确通畅。

转载使⽤请注明本⽂出处,当然实在不注明我也并没有什么办法。

论⽂中⼤量使⽤貌似作者默认术语但⼜难以赋予合适中⽂意义或会造成歧义的词语及其在本⽂中将采⽤的固定翻译有:representation-“特征描述”objective function/objective-“误差函数/误差” 本意该是⽬标函数/评价函数但实际应⽤中都是使⽤的cost function+正则化项作为⽬标函数(参考链接:)所以本⽂直接将其意为误差函数便于理解的同时并不会影响理解的正确性这种量的翻译写下⾯这句话会不会太⾃⼤了点,不过应该也没关系吧。

看过这么多书⾥接受批评指正的谦辞,张宇⽼师版本的最为印象深刻:我⽆意以“⽔平有限”为遁词,诚⼼接受批评指正。

那么,让我们开始这⼀切吧。

Nature Deep Review摘要:深度学习能让那些具有多个处理层的计算模型学习如何表⽰⾼度抽象的数据。

这些⽅法显著地促进了⼀些领域最前沿技术的发展,包括语⾳识别,视觉对象识别,对象检测和如药物鉴定、基因组学等其它很多领域。

深度学习使⽤⼀种后向传播算法(BackPropagation algorithm,通常称为BP算法)来指导机器如何让每个处理层根据它们⾃⾝前⾯的处理层的“特征描述”改变⽤于计算本层“特征描述”的参数,由此深度学习可以发现所给数据集的复杂结构。

深度卷积⽹络为图像、视频、语⾳和⾳频的处理领域都带来了突破,⽽递归⽹络(或更多译为循环神经⽹络)则在处理⽂本、语⾳等序列数据⽅⾯展现出潜⼒。

deep l 翻译

deep l 翻译

deep l 翻译Deep learning,即深度学习,是一种机器学习的方法,受到大脑神经网络的启发,采用多层神经网络来模拟人脑处理信息的方式。

具体而言,深度学习使用复杂的神经网络结构,通过多次层叠以实现对复杂模式和特征的学习和理解。

深度学习在许多领域取得了令人瞩目的成功,如计算机视觉、语音识别和自然语言处理等。

其主要优势在于可以从原始数据中自动学习高级抽象特征,而无需手动提取特征。

这使得深度学习在处理大规模、高维度和复杂的数据时具有显著的优势。

深度学习通常使用神经网络模型,其中包含多个隐藏层和激活函数。

每个隐藏层都负责逐渐提取输入数据的更高级别的特征。

这种层叠的结构使得模型能够学习到数据中更加抽象的特征,并在这些特征的基础上做出预测和判断。

同时,深度学习还需要大量的标记数据进行训练,以优化网络参数和权重。

深度学习的应用场景非常广泛。

在计算机视觉领域,深度学习可以识别图像中的物体、人脸或文字等,并进行分类、检测或分割。

在语音识别方面,深度学习可以将语音信号转换为文本,并实现语音命令的识别和语音合成。

在自然语言处理领域,深度学习可以实现机器翻译、文本分类、情感分析等任务。

此外,深度学习还可应用于推荐系统、金融风险分析、医学图像诊断等领域。

深度学习的成功得益于数据量的增加和计算能力的提升。

随着互联网的普及和大数据时代的到来,我们可以获取到海量的数据,使得深度学习模型能够更好地从数据中学习到规律和特征。

同时,随着硬件和算法的发展,如GPU计算和反向传播等技术的应用,深度学习模型的训练和推理速度得到了极大的提高。

然而,深度学习也面临着一些挑战。

首先,深度学习模型需要大量的标记数据进行训练,而获取和标注数据需要耗费大量的时间和人力。

其次,深度学习模型的可解释性较差,难以理解其决策和推理过程。

此外,深度学习模型还需要较高的计算资源和存储空间。

总之,深度学习是一种强大的机器学习方法,已经在许多领域取得了显著的成果。

深度学习基础教程

深度学习基础教程

深度学习基础教程标题:深度学习基础教程导语:深度学习是一种机器学习的分支,它模拟人脑神经网络的工作原理,通过多层次的神经元来处理和分析大量的数据。

本篇文章将详细介绍深度学习的基础知识和步骤,帮助初学者快速入门。

正文:一、深度学习的基本概念和原理1. 了解深度学习的定义和作用2. 了解神经网络和深度学习的关系3. 了解前馈神经网络的结构和工作原理4. 了解反向传播算法及其在深度学习中的应用二、深度学习的主要应用领域1. 计算机视觉:图像分类、目标检测和图像生成2. 自然语言处理:文本分类、语义理解和机器翻译3. 语音识别:语音转文字和语音合成4. 强化学习:智能游戏和机器人控制三、深度学习的步骤和流程1. 数据预处理a) 收集和清洗数据b) 数据标准化和归一化c) 数据划分为训练集、验证集和测试集2. 模型构建a) 选择适合任务的神经网络结构b) 设计网络的层数和每层的神经元数目c) 定义激活函数和损失函数3. 模型训练a) 初始化模型参数b) 使用训练数据进行前向传播和反向传播c) 更新参数以最小化损失函数d) 重复以上步骤直到收敛4. 模型评估a) 使用验证集评估模型性能b) 根据评估结果调整模型参数c) 重复以上步骤直到满足预期性能指标5. 模型应用a) 使用测试集评估模型泛化能力b) 部署模型到实际应用中c) 监控和调整模型性能四、深度学习实践和学习资源推荐1. 深度学习框架和工具介绍a) TensorFlowb) PyTorchc) Keras2. 学习资源推荐a) 推荐书籍:《深度学习》、《神经网络与深度学习》等b) 在线教程和课程:Coursera、Udemy、机器之心等网站c) 论坛和社区:Stack Overflow、GitHub等结语:深度学习作为一种强大的机器学习方法,已经在各个领域展现出许多成功的应用。

通过本篇文章的学习,读者可以了解深度学习的基本概念、原理和应用步骤,并掌握深度学习的核心算法和工具。

Deeplearning4j入门指南

Deeplearning4j入门指南

Deeplearning4j入门指南Deeplearning4j(DL4J)是一个用于构建、训练和部署深度学习模型的Java库。

它是一种功能强大、易于使用的框架,适用于大规模数据集和分布式计算。

本文将向您介绍DL4J的基本概念和使用方法,帮助您入门深度学习并开始使用DL4J构建自己的模型。

一、DL4J简介DL4J是一个基于Java的深度学习框架,旨在实现分布式和并行计算,支持多种硬件环境,如CPU和GPU。

它提供了丰富的工具和函数,可以轻松构建各种类型的深度神经网络模型,包括卷积神经网络(CNN)和递归神经网络(RNN)等。

DL4J还提供了许多预处理和后处理工具,以及可视化工具来帮助您分析和理解模型的表现。

二、DL4J安装与配置使用DL4J前,您需要先安装Java运行时环境(JRE)和Maven构建工具。

接下来,您可以通过以下步骤安装DL4J:1. 使用以下命令将DL4J添加到您的Maven项目依赖中:```xml<dependency><groupId>org.deeplearning4j</groupId><artifactId>dl4j-core</artifactId><version>1.0.0-beta7</version></dependency>```2. 在项目中导入所需的DL4J类:```javaimport org.deeplearning4j.nn.multilayer.MultiLayerNetwork;import org.deeplearning4j.datasets.iterator.impl.MnistDataSetIterator;import org.nd4j.linalg.dataset.api.iterator.DataSetIterator;```三、使用DL4J构建模型接下来,我们将介绍使用DL4J构建深度学习模型的基本步骤。

深度学习基础(PPT36页)

深度学习基础(PPT36页)

CNN的优点
参数减少与权值共享 如下图所示,如果我们有1000x1000(每个隐层神经元都连接图像的每一个像素点),就有 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 = 1 0 1 2个连接,也就是10^12个权值参数。
局部连接网络,每一个节点与上层节点同位置附近10x10的窗口相连接, 则1百万个隐层神经元就只有 16 0100 18 0,即10^8个参数。其权值连 接个数比原来减少了四个数量级。
深度学习可以通过学习一种深层非线性网络结构,实 现复杂函数逼近,表征输入数据分布式表示,并展现 了强大的从少数样本中集中学习数据及本质特征的能 力。
深度学习的实质
通过构建具有很多隐层的机器学习模型和海量的训练数 据,来学习更有用的特征,从而最终提升分类或预测的 准确性。因此,“深度模型”是手段,“特征学习”是 目的。
人脑的视觉机理
1981年的诺贝尔医学奖获得者 David Hubel和Torsten Wiesel发现了视觉系统的信息处理机制,他们发现了一 种被称为“方向选择性细胞的神经元细胞,当瞳孔发现 了眼前的物体的边缘,而且这个边缘指向某个方向时, 这种神经元细胞就会活跃。
由此可知人的视觉系统的信息处理是分级的,高 层的特征是低层特征的组合,从低层到高层的特征表示 越来越抽象,越来越能表现语义或者意图,抽象层面越 高,存在的可能猜测就越少,就越利于分类。
与神经网络的异同
深度学习与神经网络的异同
神经网络
深度学习
深度学习与神经网络的异同
相同点
二者均采用分层结构,系统包括输入层、隐层(多层)、 输出层组成的多层网络,只有相邻层节点之间有连接,同 一层以及跨层节点之间相互无连接,每一层可以看作是一 个logistic 回归模型。

学习使用DeepLearningToolbox进行深度学习

学习使用DeepLearningToolbox进行深度学习

学习使用DeepLearningToolbox进行深度学习Deep Learning Toolbox是MathWorks公司开发的一个强大的工具箱,用于实现和应用深度学习算法。

它为使用者提供了一套完整的工具,帮助他们轻松地构建、训练和评估各种类型的深度学习模型。

本文将介绍如何使用Deep Learning Toolbox来进行深度学习。

第一章:Deep Learning Toolbox简介Deep Learning Toolbox是MATLAB软件的一个附加模块,提供了大量用于深度学习的函数和工具。

该工具箱基于MATLAB的强大数值运算和图像处理能力,为用户提供了一个灵活、高效的开发平台。

Deep Learning Toolbox支持多种类型的深度学习网络,包括卷积神经网络(CNN)、循环神经网络(RNN)和生成对抗网络(GAN)等。

第二章:构建深度学习网络Deep Learning Toolbox提供了一系列函数和工具,用于构建深度学习网络。

用户可以根据需要选择不同类型的网络层,并设置各层的参数。

例如,可以使用卷积层构建卷积神经网络,使用全连接层构建前馈神经网络。

此外,Deep Learning Toolbox还提供了一些高级层,如LSTM层和Batch Normalization层,以增强模型的性能和稳定性。

第三章:数据预处理在进行深度学习之前,通常需要对原始数据进行预处理。

Deep Learning Toolbox提供了一系列函数和工具,用于处理和转换数据。

例如,可以使用数据分割函数将数据集分为训练集、验证集和测试集,并使用数据增强函数对训练集进行数据增强。

此外,Deep Learning Toolbox还提供了多种数据格式和加载函数,方便用户加载和处理不同类型的数据。

第四章:模型训练与优化Deep Learning Toolbox提供了多种优化算法和训练选项,用于训练深度学习模型。

用户可以选择合适的优化算法,并设置各种参数,如学习率、迭代次数和批量大小等。

(中文)零基础深度学习deep learning

(中文)零基础深度学习deep learning

目录[1] Deep learning简介[2] Deep Learning训练过程[3] CNN卷积神经网络推导和实现[4] CNN的反向求导及练习[5] CNN卷积神经网络(一)深度解析CNN[6] CNN卷积神经网络(二)文字识别系统LeNet-5[7] CNN卷积神经网络(三)CNN常见问题总结[1] Deep learning简介一、什么是Deep Learning?实际生活中,人们为了解决一个问题,如对象的分类(对象可是是文档、图像等),首先必须做的事情是如何来表达一个对象,即必须抽取一些特征来表示一个对象,如文本的处理中,常常用词集合来表示一个文档,或把文档表示在向量空间中(称为VSM 模型),然后才能提出不同的分类算法来进行分类;又如在图像处理中,我们可以用像素集合来表示一个图像,后来人们提出了新的特征表示,如SIFT,这种特征在很多图像处理的应用中表现非常良好,特征选取得好坏对最终结果的影响非常巨大。

因此,选取什么特征对于解决一个实际问题非常的重要。

然而,手工地选取特征是一件非常费力、启发式的方法,能不能选取好很大程度上靠经验和运气;既然手工选取特征不太好,那么能不能自动地学习一些特征呢?答案是能!Deep Learning就是用来干这个事情的,看它的一个别名Unsupervised Feature Learning,就可以顾名思义了,Unsupervised的意思就是不要人参与特征的选取过程。

因此,自动地学习特征的方法,统称为Deep Learning。

二、Deep Learning的基本思想假设我们有一个系统S,它有n层(S1,…Sn),它的输入是I,输出是O,形象地表示为:I =>S1=>S2=>…..=>Sn => O,如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失(呵呵,大牛说,这是不可能的。

信息论中有个“信息逐层丢失”的说法(信息处理不等式),设处理a信息得到b,再对b处理得到c,那么可以证明:a和c的互信息不会超过a和b的互信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录[1] Deep learning简介[2] Deep Learning训练过程[3] CNN卷积神经网络推导和实现[4] CNN的反向求导及练习[5] CNN卷积神经网络(一)深度解析CNN[6] CNN卷积神经网络(二)文字识别系统LeNet-5[7] CNN卷积神经网络(三)CNN常见问题总结[1] Deep learning简介一、什么是Deep Learning?实际生活中,人们为了解决一个问题,如对象的分类(对象可是是文档、图像等),首先必须做的事情是如何来表达一个对象,即必须抽取一些特征来表示一个对象,如文本的处理中,常常用词集合来表示一个文档,或把文档表示在向量空间中(称为VSM 模型),然后才能提出不同的分类算法来进行分类;又如在图像处理中,我们可以用像素集合来表示一个图像,后来人们提出了新的特征表示,如SIFT,这种特征在很多图像处理的应用中表现非常良好,特征选取得好坏对最终结果的影响非常巨大。

因此,选取什么特征对于解决一个实际问题非常的重要。

然而,手工地选取特征是一件非常费力、启发式的方法,能不能选取好很大程度上靠经验和运气;既然手工选取特征不太好,那么能不能自动地学习一些特征呢?答案是能!Deep Learning就是用来干这个事情的,看它的一个别名Unsupervised Feature Learning,就可以顾名思义了,Unsupervised的意思就是不要人参与特征的选取过程。

因此,自动地学习特征的方法,统称为Deep Learning。

二、Deep Learning的基本思想假设我们有一个系统S,它有n层(S1,…Sn),它的输入是I,输出是O,形象地表示为:I =>S1=>S2=>…..=>Sn => O,如果输出O等于输入I,即输入I经过这个系统变化之后没有任何的信息损失(呵呵,大牛说,这是不可能的。

信息论中有个“信息逐层丢失”的说法(信息处理不等式),设处理a信息得到b,再对b处理得到c,那么可以证明:a和c的互信息不会超过a和b的互信息。

这表明信息处理不会增加信息,大部分处理会丢失信息。

当然了,如果丢掉的是没用的信息那多好啊),保持了不变,这意味着输入I经过每一层Si都没有任何的信息损失,即在任何一层Si,它都是原有信息(即输入I)的另外一种表示。

现在回到我们的主题Deep Learning,我们需要自动地学习特征,假设我们有一堆输入I(如一堆图像或者文本),假设我们设计了一个系统S(有n层),我们通过调整系统中参数,使得它的输出仍然是输入I,那么我们就可以自动地获取得到输入I的一系列层次特征,即S1,…, Sn。

对于深度学习来说,其思想就是堆叠多个层,也就是说这一层的输出作为下一层的输入。

通过这种方式,就可以实现对输入信息进行分级表达了。

另外,前面是假设输出严格地等于输入,这个限制太严格,我们可以略微地放松这个限制,例如我们只要使得输入与输出的差别尽可能地小即可,这个放松会导致另外一类不同的方法。

上述就是Deep Learning的基本思想。

三、浅层学习(Shallow Learning)和深度学习(Deep Learning)浅层学习是机器学习的第一次浪潮。

20世纪80年代末期,用于人工神经网络的反向传播算法(也叫Back Propagation算法或者BP算法)的发明,给机器学习带来了希望,掀起了基于统计模型的机器学习热潮。

这个热潮一直持续到今天。

人们发现,利用BP算法可以让一个人工神经网络模型从大量训练样本中学习统计规律,从而对未知事件做预测。

这种基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显出优越性。

这个时候的人工神经网络,虽也被称作多层感知机(Multi-layer Perceptron),但实际是种只含有一层隐层节点的浅层模型。

20世纪90年代,各种各样的浅层机器学习模型相继被提出,例如支撑向量机(SVM,Support Vector Machines)、Boosting、最大熵方法(如LR,Logistic Regression)等。

这些模型的结构基本上可以看成带有一层隐层节点(如SVM、Boosting),或没有隐层节点(如LR)。

这些模型无论是在理论分析还是应用都获得了巨大的成功。

相对目前的深度学习,由于理论分析难度大,训练方法又需要很多经验和技巧,浅层人工神经网络后来相对沉寂。

深度学习是机器学习的第二次浪潮。

2006年,加拿大多伦多大学教授、机器学习领域的泰斗Geoffrey Hinton和他的学生RuslanSalakhutdinov在《科学》上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。

这篇文章有两个主要观点:1)多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;2)深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wisepre-training)来有效克服。

这篇文章中,逐层初始化是通过无监督学习实现的。

当前多数分类、回归等学习方法为浅层结构算法,其局限性在于有限样本和计算单元情况下对复杂函数的表示能力有限,针对复杂分类问题其泛化能力受到一定制约。

深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据的分布式表示,并展现了强大的从少数样本集中学习数据集本质特征的能力。

多层的好处是可以用较少的参数表示复杂的函数深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而提升分类或预测的准确性。

因此,“深度模型”是手段,“特征学习”是目的。

区别于传统的浅层学习,深度学习的不同在于:1)强调了模型结构的深度,通常有5层、6层,甚至10多层的隐层节点;2)明确了特征学习的重要性。

也就是说,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更容易。

与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据丰富的内在信息。

四、Deep learning与Neural Network深度学习是机器学习研究中的一个新的领域,其动机在于建立模拟人脑进行分析和学习的神经网络,它模仿人脑的机制来解释数据,例如图像,声音和文本。

深度学习是无监督学习的一种。

深度学习的概念源于人工神经网络的研究。

含多隐层的多层感知器就是一种深度学习结构。

深度学习通过组合低层特征形成更加抽象的高层,来表示属性类别或特征,以发现数据的分布式特征表示。

Deep learning本身算是machine learning的一个分支,简单可以理解为neural network的发展。

大约二三十年前,neural network曾经是ML领域特别火热的一个方向,但是后来确慢慢淡出了,原因包括以下几个方面:1)比较容易过拟合,参数比较难调整,而且需要不少技巧;2)训练速度比较慢,在层次比较少(小于等于3)的情况下效果并不比其它方法更优。

所以中间有大约20多年的时间,神经网络被关注很少,这段时间基本上是SVM 和boosting算法的天下。

但是,一个痴心的老先生Hinton,他坚持了下来,并最终(和其它人一起Bengio、Yann.lecun等)提出了一个实际可行的deep learning 框架。

Deep learning与传统的神经网络之间有相同的地方也有很多不同。

二者的相同在于deep learning采用了与神经网络相似的分层结构,系统由包括输入层、隐层(多层)、输出层组成的多层网络,只有相邻层节点之间有连接,同一层以及跨层节点之间相互无连接,每一层可以看作是一个logistic regression模型;这种分层结构,是比较接近人类大脑的结构的。

而为了克服神经网络训练中的问题,DL采用了与神经网络不同的训练机制。

传统神经网络中,采用的是back propagation的方式进行,简单来讲就是采用迭代的算法来训练整个网络,随机设定初值,计算当前网络的输出,然后根据当前输出和label之间的差去改变前面各层的参数,直到收敛(整体是梯度下降方法)。

而deep learning整体上是一个layer-wise的训练机制。

这样做的原因是因为,如果采用back propagation的机制,对于一个deep network(7层以上),残差传播到最前面的层已经变得太小,出现所谓的gradient diffusion(梯度扩散)。

参考:/zouxy09/article/details/8775518/zouxy09/article/details/8775488[2] Deep Learning训练过程1、传统神经网络的训练方法为什么不能用在深度神经网络BP算法作为传统的训练多层网络的典型算法,实际上对仅含几层的网络,该训练方法就已经很不理想。

深度结构(涉及多个非线性处理单元层)非凸目标代价函数中普遍存在的局部最小是训练困难的主要来源。

BP算法存在的问题:(1)梯度越来越稀疏:从顶层越往下,误差校正信号越来越小;(2)收敛到局部最小值:尤其是从远离最优区域开始的时候(随机值初始化会导致这种情况的发生);(3)一般,我们只能用有标签的数据来训练:但大部分的数据是没标签的,而大脑可以从没有标签的数据中学习。

2、deep learning训练过程如果对所有层同时训练,时间复杂度会太高;如果每次训练一层,偏差就会逐层传递。

这会面临监督学习相反的问题,会严重欠拟合(因为深度网络的神经元和参数太多了)。

2006年,Hinton提出了在非监督数据上建立多层神经网络的一个有效方法。

简单的说,分为两步,一是每次训练一层网络;二是调优,使原始表示x向上生成的高级表示r和该高级表示r向下生成的x'尽可能一致。

方法是:1)首先逐层构建单层神经元,这样每次都是训练一个单层网络;2)当所有层训练完后,Hinton使用wake-sleep算法进行调优。

将除最顶层的其它层间的权重变为双向的,这样最顶层仍然是一个单层神经网络,而其它层则变为了图模型。

向上的权重用于“认知”,向下的权重用于“生成”。

然后使用Wake-Sleep算法调整所有的权重。

让认知和生成达成一致,也就是保证生成的最顶层表示能够尽可能正确的复原底层的结点。

比如顶层的一个结点表示人脸,那么所有人脸的图像应该激活这个结点,并且这个结果向下生成的图像应该能够表现为一个大概的人脸图像。

Wake-Sleep算法分为醒(wake)和睡(sleep)两个部分。

1)wake阶段:认知过程,通过外界的特征和向上的权重(认知权重)产生每一层的抽象表示(结点状态),并且使用梯度下降修改层间的下行权重(生成权重)。

相关文档
最新文档