深度学习网络框架
2021-02-22 13:41:52 3 举报
AI智能生成
深度学习的定义、分支、训练方法、模型结构汇总
作者其他创作
大纲/内容
学习结构
多隐层的多层感知器
定义
通过组合低层特征形成更加抽象的高层,表示属性类别或特征,以发现数据的分布式特征表示
深度学习可通过学习一种深层非线性网络结构,实现复杂函数逼近,表征输入数据分布式表示,并展现了强大的从少数样本集中学习数据集本质特征的能力。
(多层的好处是可以用较少的参数表示复杂的函数,通常有5层、6层,甚至10多层的隐层节点)
(多层的好处是可以用较少的参数表示复杂的函数,通常有5层、6层,甚至10多层的隐层节点)
步骤
Step 1: 定义神经网络(Neural Network)
Step 2: 对函数进行优化(goodness of function)
Step 3: 选择最好的函数(pick the best function)
训练过程
1、每次训练一层网络
2、当所有层训练完后,使用wake-sleep算法进行调优。调整所有的权重。
向上的权重用于“认知”,向下的权重用于“生成”。让认知和生成达成一致,
也就是保证生成的最顶层表示能够尽可能正确的复原底层的结点。
向上的权重用于“认知”,向下的权重用于“生成”。让认知和生成达成一致,
也就是保证生成的最顶层表示能够尽可能正确的复原底层的结点。
wake阶段:认知过程,通过外界的特征和向上的权重(认知权重)产生每一层的抽象表示(结点状态),
并且使用梯度下降修改层间的下行权重(生成权重)。
并且使用梯度下降修改层间的下行权重(生成权重)。
sleep阶段:生成过程,通过顶层表示(醒时学得的概念)和向下权重,生成底层的状态,同时修改层间向上的权重。
具体过程
1)自下上升非监督学习(就是从底层开始,一层一层的往顶层训练),和传统神经网络区别最大的部分(这个过程可以看作是feature learning过程
2)自顶向下的监督学习(就是通过带标签的数据去训练,误差自顶向下传输,对网络进行微调):
训练方法
梯度下降法(gradient descent)学习权重(weights)和偏置(biases):
重复计算梯度∇C,然后沿着梯度的反方向运动
重复计算梯度∇C,然后沿着梯度的反方向运动
反向传播算法 BP (backpropagation)快速计算梯度的算法
损失函数/代价函数,衡量我们当前取得的结果距离目标结果的好坏程度。
损失函数值越小,说明实际输出和预期输出的差值就越小,也就说明我们构建的模型越好。
损失函数值越小,说明实际输出和预期输出的差值就越小,也就说明我们构建的模型越好。
0-1损失函数
绝对损失函数
平方损失函数
误差逆传播算法 Error Backpropagation:“从后至前”的训练参数方法
逐层初始化:“从前至后”的逐层训练方法
模型
多层前馈神经网络
(multi-layer feedforward neural networks)
(multi-layer feedforward neural networks)
每一层神经元仅仅与下一层的神经元全连接。而在同一层,神经元彼此不连接,而且跨层的神经元,彼此间也不相连。
输入层神经元主要用于接收外加的输入信息
隐含层和输出层中,都有内置的激活函数,可对输入信号进行加工处理,最终的结果,由输出层“呈现”出来。
总结:神经网络的学习过程,就是通过根据训练数据,来调整神经元之间的连接权值(connection weight)以及每个功能神经元的输出阈值。
换言之,神经网络需要学习的东西,就蕴含在连接权值和阈值之中。
换言之,神经网络需要学习的东西,就蕴含在连接权值和阈值之中。
激活函数
数据经过经过函数运算后由激活函数映射输出。如果没有激活函数,多次线性运算的堆叠仍然是一个线性运算
神经元的工作模型存在“激活(1)”和“抑制(0)”等两种状态的跳变,那么理想型的激活函数就应该是阶跃函数,
但这种函数具有不光滑、不连续等众多不“友好”的特性。
但这种函数具有不光滑、不连续等众多不“友好”的特性。
每一个输入都有自己的权重,权重和输入的值相乘,然后加上一个偏置b之后在经过一个函数f得到输出y,这个f就是激活函数。
性质
不会饱和
均值为零
容易计算
常用的激活函数
sigmoid
输入一个实值,输出一个 0 至 1 间的值。
两侧尾端会有饱和现象,这会使导数在这些区域接近零,从而阻碍网络的训练。
tanh(双曲正切函数)
输入一个实值,输出一个 [-1,1] 间的值
两侧尾端会有饱和现象,这会使导数在这些区域接近零,从而阻碍网络的训练。
ReLU 代表修正线性单元
输出一个实值,并设定 0 的阈值(函数会将负值变为零)
输出均值不为零,这会影响网络的训练。
自动编码器:是一种尽可能复现输入信号的神经网络,捕捉可以代表输入数据的最重要的因素
1)给定无标签数据,用非监督学习学习特征:
2)通过编码器产生特征,然后训练下一层。这样逐层训练:
将第一层输出的code当成第二层的输入信号,同样最小化重构误差(调整encoder和decoder的参数),
就会得到第二层的参数,并且得到第二层输入的code,也就是原输入信息的第二个表达了。
将第一层输出的code当成第二层的输入信号,同样最小化重构误差(调整encoder和decoder的参数),
就会得到第二层的参数,并且得到第二层输入的code,也就是原输入信息的第二个表达了。
3)有监督微调:将最后层的特征code输入到最后的分类器,然后
通过标准的多层神经网络的监督训练方法(梯度下降法)去训练。
通过标准的多层神经网络的监督训练方法(梯度下降法)去训练。
只调整分类器
通过有标签样本,微调整个系统
稀疏自动编码器:在自动编码器的基础上加上L1的Regularity限制
(L1主要是约束每一层中的节点中大部分都要为0,只有少数不为0)
(L1主要是约束每一层中的节点中大部分都要为0,只有少数不为0)
限制每次得到的表达code尽量稀疏。因为稀疏的表达往往比其他的表达要有效
降噪自动编码器 DA,在自动编码器的基础上,训练数据加入噪声
编码器要去学习输入信号的更加鲁棒的表达,这也是它的泛化能力比一般编码器强的原因。
限制波尔兹曼机 RBM
假设有一个二部图,每一层的节点之间没有链接,一层是可视层,即输入数据层(v),一层是隐藏层(h),
如果假设所有的节点都是随机二值变量节点(只能取0或者1值),同时假设全概率分布p(v,h)满足波尔兹曼分布
如果假设所有的节点都是随机二值变量节点(只能取0或者1值),同时假设全概率分布p(v,h)满足波尔兹曼分布
当输入v的时候,通过p(h|v) 可得到隐藏层h,而得到隐藏层h之后,通过p(v|h)
又能得到可视层,调整参数使隐藏层得到的可视层v1与原来的可视层v一样
又能得到可视层,调整参数使隐藏层得到的可视层v1与原来的可视层v一样
深信度网络,DBNs是一个概率生成模型,是建立一个观察数据和标签之间的联合分布
由多个限制玻尔兹曼机层组成,网络被“限制”为一个可视层和一个隐层,层间存在连接,但层内的单元间不存在连接
隐层单元被训练去捕捉在可视层表现出来的高阶数据的相关性。
指定某些特征神经元的值,然后进行“反向运行”,产生输入激活的值。
生成式模型更像人类的大脑:不仅可以读数字,还能够写出数字
DBN 可以进行无监督和半监督的学习
一个DBN的连接是通过自顶向下的生成权值来指导确定的
卷积DBNs (CDBNs)
Convolutional Deep Belief Networks
Convolutional Deep Belief Networks
堆叠自动编码器,它是通过用堆叠自动编码器来替换传统DBNs里面的RBMs
卷积神经网络 CNN Convolutional Neural Networks
适用于语音分析和图像识别
适用于语音分析和图像识别
局部感受野,隐藏神经元对应的输入神经元的一个小区域。
在一个卷积网络中,把输入看作是一个的方形排列的神经元
在一个卷积网络中,把输入看作是一个的方形排列的神经元
共享权重和偏置,每个隐藏神经元使用相同的权重和偏置。
意味着隐藏层的所有神经元检测完全相同的特征,只是在输入图像的不同位置。
意味着隐藏层的所有神经元检测完全相同的特征,只是在输入图像的不同位置。
特征映射:从输入层到隐藏层的映射
共享权重:定义特征映射的权重
混合层,通常紧接着在卷积层之后使用,简化从卷积层输出的信息
最大值混合,输出其输入区域的最大激活值,如在2*2区域对应一个最大激活值
L2 混合,是一种凝缩从卷积层输出的信息的方式,取2*2区域中激活值的平方和的平方根,而不是最大激活值。
全连接层,网络中最后连接的层,将最大值混合层的每一个神经元连接到每一个输出神经元。
循环神经网络(RNN)
是某种体现出了随时间动态变化的特性的神经网络
允许网络中的元素能够以动态方式不断地变化
隐藏神经元的行为不是完全由前一层的隐藏神经元,而是同样受制于更早的层上的神经元的激活值。
可以使用梯度下降和 BP 的直接的修改来训练 RNN。
其他一些在前馈神经网络中的想法,如正规化技术,卷积和代价函数等都在 RNN 中非常有效
长短期记忆单元(Long short-term memory units,LSTMs),解决不稳定梯度的问题。
机器学习
模型:深度神经网络(DNN,Deep Neural Networks)
三类
监督学习(Supervised Learning):是“分类(classification)”的代名词。
它从有标签的训练数据中学习,然后给定某个新数据,预测它的标签(given data, predict labels)。
它从有标签的训练数据中学习,然后给定某个新数据,预测它的标签(given data, predict labels)。
非监督学习(Unsupervised Learning):就是“聚类(cluster)”的近义词。
非标签的数据,一旦我们归纳出“类”或“群”的特征,如果再要来一个新数据,
我们就根据它距离哪个“类”或“群”较近,就“预测”它属于哪个“类”或“群”,从而完成新数据的“分类”或“分群”功能。
非标签的数据,一旦我们归纳出“类”或“群”的特征,如果再要来一个新数据,
我们就根据它距离哪个“类”或“群”较近,就“预测”它属于哪个“类”或“群”,从而完成新数据的“分类”或“分群”功能。
半监督学习(Semi-supervised Learning):既用到了标签数据,又用到了非标签数据
函数 f:X→Y 可以准确地对未标识的数据xi预测其标记yi
函数 f:X→Y 可以准确地对未标识的数据xi预测其标记yi
步骤
(1) 如何找一系列函数来实现预期的功能,这是建模问题;
(2) 如何找出一组合理的评价标准,来评估函数的好坏,这是评价问题;
(3) 如何快速找到性能最佳的函数,这是优化问题(比如说,机器学习中梯度下降法)
人工智能
两大主流
符号主义:自顶向下设计规则,然后通过各种推理,逐步解决问题。
多层感知机:“有监督”的学习
(multi-layer perceptrons,MLP)
(multi-layer perceptrons,MLP)
由两层神经元构成的网络结构,它在输入层接收外界的输入,通过激活函数(含阈值)的变换,把信号传送至输出层,
因此它也称之为“阈值逻辑单元(threshold logic unit)”。
因此它也称之为“阈值逻辑单元(threshold logic unit)”。
多层感知器也可以学习非线性函数。多层感知机的最后一层全连接层实质上是一个线性分类器,
而其他部分则是为这个线性分类器学习一个合适的数据表示,使倒数第二层的特征线性可分。
而其他部分则是为这个线性分类器学习一个合适的数据表示,使倒数第二层的特征线性可分。
梯度
在单变量的实值函数中,梯度就可以简单地理解为只是导数,或者说对于一个线性函数而言,梯度就是线的斜率
在向量微积分中,标量场的梯度其实是一个向量场(vector field)。对于特定函数的某个特定点,它的梯度就表示从该点出发,该函数值增长最为迅猛的方向(direction of greatest increase of a function)。
应用
快速找到多维变量函数的极(大/小)值
连接主义:试图编写一个通用模型,然后通过数据训练,不断改善模型中的参数,直到输出的结果符合预期。
连接主义认为,人的思维就是某些神经元的组合。因此,可以在网络层次上模拟人的认知功能,用人脑的并行处理模式,
来表征认知过程。这种受神经科学的启发的网络,被称之人工神经网络(Artificial Neural Network,简称ANN)。
人工神经网络可以在理论上证明:只需一个包含足够多神经元的隐藏层,多层前馈网络能以任意进度逼近任意复杂度的连续函数。
连接主义认为,人的思维就是某些神经元的组合。因此,可以在网络层次上模拟人的认知功能,用人脑的并行处理模式,
来表征认知过程。这种受神经科学的启发的网络,被称之人工神经网络(Artificial Neural Network,简称ANN)。
人工神经网络可以在理论上证明:只需一个包含足够多神经元的隐藏层,多层前馈网络能以任意进度逼近任意复杂度的连续函数。
0 条评论
下一页