多层自编码器的微调

多层自编码器由多个稀疏自编码器和一个Softmax分类器构成;(其中,每个稀疏自编码器的权值可以利用无标签训练样本得到, Softmax分类器参数可由有标签训练样本得到)多层自编码器微调是指将多层自编码器看做是一个多层的神经网络,利用有标签的训练样本集,对该神经网络的权值进行调整。

1多层自编码器的结构

多层自编码器的结构如图1所示,它包含一个具有2个隐藏层的栈式自编码器和1个softmax模型;栈式自编码器的最后一个隐藏层的输出作为softmax模型的输入,softmax模型的输出作为整个网络的输出(输出的是条件概率向量)。

图1 多层自编码器的结构

微调多层自编码器的流程图如图2所示,该流程主要包括三部分:

(1)初始化待优化参数向量

(2)调用最优化函数,计算最优化参数向量

(3)得到最优化参数向量,可以转换为网络各结构所对应的参数

其中,最小化代价函数主要利用minFunc函数,该优化函数格式如下:

可知,为了实现优化过程,最为关键问题就是编写stackedAECost函数


图2 多层自编码器的微调流程

2整个网络参数的初始化

整个网络的参数stackedAETheta(列向量形式)由两部分组成:softmax分类器参数向量+稀疏自编码器参数向量;他们的初始化值由稀疏自编码和softmax学习获得:

3 stackedAECost函数

3.1稀疏自编码器部分的激励值

3.1.1 稀疏自编码器部分的结构图

多层网络的稀疏自编码器部分如下图所示

图3 多层网络的稀疏自编码器部分

3.1.2 稀疏自编码器部分各层激励值(输出)


单个样本


多个样本



3.1.3 softmax分类器的激励值(输出)


单个样本


多个样本



3.1.4 程序

3.2代价函数

3.2.1代价函数的计算公式

该多层网络的代价函数完全按照softmax模型的代价函数计算,并加入正则项,但要注意,这里加入的正则项必须要对整个网络的所有参数进行惩罚!

3.2.2程序如下

3.3梯度计算

3.3.1 softmax模型

该模型的梯度计算与单独使用softmxa模型的公式是相同的,即:

只不过这里的x为softmax自编码器最后一层的输出h(2)

3.1.2 stack自编码器各层


单个样本


多个样本



3.3.3 整个网络的梯度

最后,将整个网络的梯度(softmaxThetaGrad和stackgrad)存放在一个列向量中

时间: 2024-10-01 15:09:02

多层自编码器的微调的相关文章

学习笔记TF025:自编码器

传统机器学习依赖良好的特征工程.深度学习解决有效特征难人工提取问题.无监督学习,不需要标注数据,学习数据内容组织形式,提取频繁出现特征,逐层抽象,从简单到复杂,从微观到宏观. 稀疏编码(Sparse Coding),基本结构组合.自编码器(AutoEncoder),用自身高阶特征编码自己.期望输入/输出一致,使用高阶特征重构自己. Hinton教授在Science发表文章<Reducing the dimensionality of data with neural networks>,讲解自

转:Deep learning系列(十五)有监督和无监督训练

http://m.blog.csdn.net/article/details?id=49591213 1. 前言 在学习深度学习的过程中,主要参考了四份资料: 台湾大学的机器学习技法公开课: Andrew NG的深度学习教程: Li feifei的CNN教程: caffe官网的教程: 对比过这几份资料,突然间产生一个困惑:台大和Andrew的教程中用了很大的篇幅介绍了无监督的自编码神经网络,但在Li feifei的教程和caffe的实现中几乎没有涉及.当时一直搞不清这种现象的原因,直到翻阅了深度

【转】有监督训练 &amp; 无监督训练

原文链接:http://m.blog.csdn.net/article/details?id=49591213 1. 前言 在学习深度学习的过程中,主要参考了四份资料: 台湾大学的机器学习技法公开课: Andrew NG的深度学习教程: Li feifei的CNN教程: caffe官网的教程: 对比过这几份资料,突然间产生一个困惑:台大和Andrew的教程中用了很大的篇幅介绍了无监督的自编码神经网络,但在Li feifei的教程和caffe的实现中几乎没有涉及.当时一直搞不清这种现象的原因,直到

【deep learning精华部分】稀疏自编码提取高阶特征、多层微调完全解释及代码逐行详解

我们前面已经讲了如何训练稀疏自编码神经网络,当我们训练好这个神经网络后,当有新的样本输入到这个训练好的稀疏自编码器中后,那么隐藏层各单元的激活值组成的向量就可以代表(因为根据稀疏自编码,我们可以用来恢复),也就是说就是在新的特征下的特征值.每一个特征是使某一个取最大值的输入.假设隐藏层单元有200个,那么就一共有200个特征,所以新的特征向量有200维.特征显示情况在前面博客中已经给出,我们把这时候的特征称为一阶特征. 我们知道脑神经在处理问题,比如看一个图片的时候,也不只使用了一层的神经,而是

(翻译)deeplearning.net/tutorial —— 栈式去噪自编码器(SdA)

前言 栈式去噪自编码器是栈式自动编码器的扩展[Bengio07],并且它在[Vincent08]里有介绍. 这次教程建立在之前的去噪自编码器Denoising Autoencoders.如果你对自编码器没什么了解,建议你先了解一下. 栈式自编码器 通过把上一层去噪自编码器找到的隐藏输入(output code)当作下一层的输入,我们可以把去噪自编码器以栈的形式构成一个深度网络.这种无监督预训练的结构在一层里同时实现.每一层当作一个去噪自编码器,通过重构输入(上一层的输出)最小化损失.一旦前面 层

深度学习笔记(五) 栈式自编码器

部分内容来自:http://ufldl.stanford.edu/wiki/index.php/%E6%A0%88%E5%BC%8F%E8%87%AA%E7%BC%96%E7%A0%81%E7%AE%97%E6%B3%95 栈式自编码神经网络是一个由多层稀疏自编码器组成的神经网络,其前一层自编码器的输出作为其后一层自编码器的输入.对于一个  层栈式自编码的编码过程就是,按照从前向后的顺序执行每一层自编码器的编码步骤. 自编码器的隐含层t会作为t+1层的输入层,第一个输入层就是整个神经网络的输入层

《神经网络与深度学习》(二) 常用模型之自编码器

转自:http://www.cnblogs.com/flippedkiki/p/7765693.html Deep Learning的常用模型或者方法 1.AutoEncoder自动编码器 Deep Learning最简单的一种方法是利用人工神经网络的特点,人工神经网络(ANN)本身就是具有层次结构的系统,如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重.自然地,我们就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征.自动编码器就是一种

降噪自编码器/稀疏自编码器/栈式自编码器

漫谈autoencoder:降噪自编码器/稀疏自编码器/栈式自编码器(含tensorflow实现) 2018年08月11日 20:45:14 wblgers1234 阅读数 13196更多 分类专栏: 机器学习 深度学习 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/wblgers1234/article/details/81545079 0. 前言   在非监督学习中,最典型的一类神经

x264 - 高品质 H.264 编码器

转自:http://www.5i01.cn/topicdetail.php?f=510&t=3735840&r=18&last=48592660 H.264 / MPEG-4 AVC 是优秀的视讯编码格式就目前已成熟的视讯编码格式而言,H.264的压缩率是最佳的.压缩率极高,可以只用很低 bitrate 提供堪用画质. 而 x264 为免费开放原始码的 H.264 / MPEG-4 AVC 编码器,是目前编码效率最高的开放原始码 H.264 编码器. 此文只是基础知识,说明只是大略