[深度学习] Contractive Autoencoder
转载于DeepLearning: Contractive Autoencoder - dupuleng - 博客园
一、雅克比矩阵
雅克比矩阵是一阶偏导,假设(x1,x2,....,xn)到(y1,y2,...,ym)的映射,相当于m个n元函数,它的Jacobian Matrix如下
编辑
该矩阵表示x的微小波动对y的影响。
雅克比矩阵与Hessian矩阵不同,hessian矩阵表示二阶偏导。
可以用雅克比矩阵表示函数的一阶泰勒展开
编辑
二、Contractive Autoencoder( CAE )
在特征学习中使用雅克比矩阵,CAE的损失函数:
编辑
第一部分原始autoencoder的损失函数,第二部分是F范式下的雅克比矩阵的形式
编辑
编辑
第一部分最小化重构误差,第二部分是让模型具有局部不变性,我们的目标是使偏导尽可能的小,假设极端情况下偏导为0,那么即表示模型对局部的抖动具有鲁棒性。
hogo的解释很有意思,第一部分最小化重构误差,即要在编码的时候将最具代表性的特征信息保留下来,而第二部分只与偏导不为0时的样本有关,即丢掉了所有有用的信息,而保留下抖动信息,我们要使模型对抖动具有不变性。
那么整个损失函数的作用即只保持具有代表性的好特征信息
编辑
从下图可以看出,CAE在编码时,对横坐标的变化要具有不变性,即三个手写体2要具有相同的编码,而对纵轴不需要具有不变性。
因为CAE只考虑样本中出现的情况,不考虑未出现的情况。而denoising autoencoder( DAE)是对输入加入噪声,然后重构未加噪声的样本,
也就是说它要对样本中未出现的测试样本具有鲁棒性。
编辑
三、DAE and CAE
- CAE主要挖掘训练样本内在的特征,它使用的是样本本身的梯度信息,而DAE使用的是加了噪声的样本的梯度信息,不能够完全体现原数据分布,因此CAE的泛化能力比DAE好
- DAE实现比较简单,只需要加几句代码就行,不需要计算隐含层的Jacobian矩阵
- CAE需要使用 使用二阶的优化方法(conjugate gradient, LBFGS等)
特征表示的两个衡量标准
- 重构误差小,很好的重构出原数据 (autoencoder , sparse autoencoder )
- 对抖动具有不变性 ( denoising autoencoder , contractive autoencoder )
参考文献 :
hogo youtube上的视频:https://www.youtube.com/watch?v=79sYlJ8Cvlc
[深度学习] Contractive Autoencoder的更多相关文章
- 深度学习之自编码器AutoEncoder
原文地址:https://blog.csdn.net/marsjhao/article/details/73480859 一.什么是自编码器(Autoencoder) 自动编码器是一种数据的压缩算法, ...
- Deep Learning 1_深度学习UFLDL教程:Sparse Autoencoder练习(斯坦福大学深度学习教程)
1前言 本人写技术博客的目的,其实是感觉好多东西,很长一段时间不动就会忘记了,为了加深学习记忆以及方便以后可能忘记后能很快回忆起自己曾经学过的东西. 首先,在网上找了一些资料,看见介绍说UFLDL很不 ...
- 深度学习Keras框架笔记之AutoEncoder类
深度学习Keras框架笔记之AutoEncoder类使用笔记 keras.layers.core.AutoEncoder(encoder, decoder,output_reconstruction= ...
- 深度学习——无监督,自动编码器——尽管自动编码器与 PCA 很相似,but自动编码器既能表征线性变换,也能表征非线性变换;而 PCA 只能执行线性变换
自动编码器是一种有三层的神经网络:输入层.隐藏层(编码层)和解码层.该网络的目的是重构其输入,使其隐藏层学习到该输入的良好表征. 自动编码器神经网络是一种无监督机器学习算法,其应用了反向传播,可将目标 ...
- SIGAI深度学习第五集 自动编码器
深度学习模型-自动编码器(AE),就是一个神经网络的映射函数,f(x)——>y,把输入的一个原始信号,如图像.声音转换为特征. 大纲: 自动编码器的基本思想 网络结构 损失函数与训练算法 实际使 ...
- Deep Learning 19_深度学习UFLDL教程:Convolutional Neural Network_Exercise(斯坦福大学深度学习教程)
理论知识:Optimization: Stochastic Gradient Descent和Convolutional Neural Network CNN卷积神经网络推导和实现.Deep lear ...
- [译]2016年深度学习的主要进展(译自:The Major Advancements in Deep Learning in 2016)
译自:The Major Advancements in Deep Learning in 2016 建议阅读时间:10分钟 https://tryolabs.com/blog/2016/12/06/ ...
- Deep learning:四十八(Contractive AutoEncoder简单理解)
Contractive autoencoder是autoencoder的一个变种,其实就是在autoencoder上加入了一个规则项,它简称CAE(对应中文翻译为?).通常情况下,对权值进行惩罚后的a ...
- Deep learning:四十(龙星计划2013深度学习课程小总结)
头脑一热,坐几十个小时的硬座北上去天津大学去听了门4天的深度学习课程,课程预先的计划内容见:http://cs.tju.edu.cn/web/courseIntro.html.上课老师为微软研究院的大 ...
- 深度学习中的Data Augmentation方法(转)基于keras
在深度学习中,当数据量不够大时候,常常采用下面4中方法: 1. 人工增加训练集的大小. 通过平移, 翻转, 加噪声等方法从已有数据中创造出一批"新"的数据.也就是Data Augm ...
随机推荐
- Linux安装oracle 12C
安装虚拟系统CentOS6.5,分配给至少1G的内存,其他条件适当高些,具体参考官方文档 环境准备 vim /etc/profileexport JAVA_HOME=/opt/jdk1.7.0_79e ...
- react 可视化编辑器1
可视化编辑器1 前言 前面我们学习低代码,例如百度的低代码平台 amis,也有相应的可视化编辑器,通过拖拽的方式生成配置文件.就像这样 笔者自己也有类似需求:比如中台有个归档需求,通过选择一些配置让后 ...
- ansible应用之安装elk框架
最近在学习ansible,先大致看了下视频,现在需要练习使用了.对照视频中的练习方式,我觉得用处也不是太大,正好现在还要学习elk,以集群方式部署es,需要执行一些批量命令,而且还有一些修改配置文件的 ...
- jQuery $.fn.extend()方法类插件
一.为JQuery原型扩展新的属性和方法,然后在JQuery的实例对象上调用 在 jQuery 中,我们可以使用$.fn.extend()方法来定义一个方法类插件.方法类插件就是首先你使用 jQuer ...
- CentOS7虚拟机配置git仓库(配置虚拟机,网络,git仓库,windows端git访问)
想要达成的目的:从windows使用git访问CentOS7服务器上搭建的git仓库 用到的软件: (1)VMware-workstation-full-15.5.0-14665864.exe (2) ...
- 详解AQS中的condition源码原理
摘要:condition用于显式的等待通知,等待过程可以挂起并释放锁,唤醒后重新拿到锁. 本文分享自华为云社区<AQS中的condition源码原理详细分析>,作者:breakDawn. ...
- JS数据结构与算法-数组结构
数组结构 几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构. 数组通常情况下用于存储一系列同一种数据类型的值. 但在JavaScript里,也可以在数组中保存不同类型的值. 但我们 ...
- Linux系统部署Jenkins
搭建Jenkins,准备搞一个定时任务来自动部署服务.做个记录. 问题写在前头:①建议使用最新版的Jenkins版本,jdk版本要跟Jenkins版本对应(有要求):②最好使用war包部署Jenkin ...
- js把秒数转换为HH:MM:SS及时分秒格式
/** * 转为HH:MM:SS * @param second * @returns {string} * @private */ var _showTime = function (second) ...
- 如何使用webgl(three.js)实现3D储能,3D储能站,3D智慧储能、储能柜的三维可视化解决方案——第十七课
前言 上节课我们讲了<3D光伏发电>,与之配套的就是能量存储 这节课我们主要讲讲储能,储能站,在分布式能源系统中起到调节用对电的尖峰平谷进行削峰填谷的作用.特别是小型储能站,更加灵活,因地 ...