首页 > 其他分享 >[深度学习] Contractive Autoencoder

[深度学习] Contractive Autoencoder

时间:2022-12-21 20:22:05浏览次数:61  
标签:DAE autoencoder 雅克 矩阵 偏导 深度 Autoencoder Contractive CAE

 转载于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

标签:DAE,autoencoder,雅克,矩阵,偏导,深度,Autoencoder,Contractive,CAE
From: https://www.cnblogs.com/luohenyueji/p/16997102.html

相关文章

  • PyTorch 深度学习实践第四讲(反向传播)
    简单回顾关于w的更新神经网络原理备注:最后加入惩罚项反向传播原理备注:后期对权重进行更新,先进行前馈过程,再反向相应代码importtorchx_data=[1.0,2.0,3.0]y_data=[2.0,4......
  • PyTorch 深度学习实践(梯度下降算法)
    梯度下降上课代码importnumpyasnpimportmatplotlib.pyplotaspltx_data=[1.0,2.0,3.0]y_data=[2.0,4.0,6.0]w=1.0defforward(x):returnx*wdefcost(xs,y......
  • PyTorch 深度学习实践第二讲(线性模型)
    写在前面:B站刘二大人 ,传送门 ​​PyTorch深度学习实践——线性模型​​​​学习步骤准备数据集模型的选择和设计训练的过程(确定权重)推理和测试工作(infering) Traininglo......
  • 深度学习课程第一章重点梳理
    1.人脑的视觉机理1.1理解人脑的分层世界机理人脑视觉机理:1981年的诺贝尔医学/生理学奖,发现可视皮层是分级的人的视觉系统的信息处理是分级的。从低级的V1区提取边缘特征......
  • 求二叉树的深度
    求二叉树的深度TimeLimit:1000MSMemorylimit:65536K题目描述已知一颗二叉树的中序遍历序列和后序遍历序列,求二叉树的深度。输入T组数据。每组数据包括两个长......
  • [js] 树结构查找节点,深度优先
    查找节点其实就是一个遍历的过程,遍历到满足条件的节点则返回,遍历完成未找到则返回null。类似数组的find方法,传入一个函数用于判断节点是否符合条件,代码如下:functiontreeFin......
  • 深度生成模型
    邱锡鹏NNDL学习笔记首先应明白什么是生成模型。了解生成模型的两个模块:(概率)密度估计,生成样本(采样)。在密度估计或生成样本的时候,采用神经网络的方法,就是深度生成模型。......
  • 数智管理新动能,深度解读《2022中国指标中台市场研究报告》
    在经济增速放缓的大背景下,激烈的市场竞争,多变的消费需求以及日新月异的技术创新为企业带来高风险的生存环境,疫情的爆发又使企业的生存空间进一步恶化。企业的未来充满不确定......
  • PyTorch 深度学习实践第一讲
    写在前面:B站刘二大人 传送门​​Pytorch深度学习实践第一讲​​预备知识线性代数和概率论与数理统计(至少知道分布)Python(了解面向对象、类)引言:HumanIntelligence推理能力......
  • 深度学习炼丹-数据处理和增强
    前言一,Normalization概述1.1,Normalization定义1.2,什么情况需要Normalization1.3,DataNormalization方法1.4,示例代码二,normalizeimages2.1,图像normalizat......