深度自动编码器(Deep Auto-encoder)

本文是学习B站上李宏毅老师的机器学习笔记。

Auto-encoder

它做的事情和PCA、t-SNE一样,都是要降维。只是这里用网络结构来降维,降维的网络被称为Encoder,这个Encoder就是很多个隐层网络的网络结构,输入一张图片后会输出降维以后的结果。这个结果比PCA的结果复杂是因为它不是一个线性的东西。

通用有一个Decoder也是网络结构,输入降维的图片会输出原来的图片。

由于encoder和decoder独自存在的时候无法学,所以将它们连接在一起后就可以学了。

PCA:

输入一个vector X,乘上一个W得到c,再乘上W的转置。

可以将PCA的过程当做网络结构来看

Deep Auto-encoder:

它和PCA比起来可以理解为多加了几个隐藏层网络。

PCA和Deep Auto-encoder的结果比较:

我们主要是看coder做的有多好,可以看到不同的方法降维到2维后的区别。

De-noising auto-encoder可以让Auto-encoder训练的更好

它会在input上面加上noise,然后进行编码和解码。还必需解码到加noise前的图片。

Auto-encoder被用在文字上的例子:搜索引擎上查找功能

Vector Space Model:把每一个document和query用一个vector 来描述,接下来计算每一个query和document的相似度,看query和哪个document的相似度比较高,那它就是搜索的结果。

那如何将一个document描述成一个vector呐?最常用的就是词袋(Bag-of-Word),它是将每一个句子都表示成一个列向量,列向量的维数就是现有所有词汇的个数。 如果现在世界上有10w个词,那vector的维数就是10w。这样的话一个句子中出现的词处的数值是1,其他的都是0。但是它的坏处就是没有考虑到词语的语义。

一个搜索引擎要想做好的话就必须考虑到语义。

现在有一个方法就是叠一个auto-encoder,假设有2000个词,将这两千个词降维到2维。也就是说每一个文章都是2维空间上的一个点。同样将一个query也降维到2维空间,然后把这些点可视化。计算query和那些点的相似度。这样就可以找到与query相同的同类文章。

每一个点代表一个新闻,不同颜色的点代表不同类别的新闻。

Auto-encoder也可以做影像搜寻

计算输入的图片和数据集中图片的相似度。

先学习一个encoder和decoder,进行解码和编码。

CNN来处理

使用CNN来处理更有效。

在做Pool的时候是在filter的输出中四个一组选最大的,除了选最大的以外,我们还要知道谁是最大的。在做Unpooling的时候就是把每一个像素扩展成四个像素,其实就是max pooling的相反。max Pooling取出最大所放的位置在扩展成四个像素后依然在对应的位置,对于那个max Pooling丢掉的值不知道是多少就补0。

所以Pooling会把图片变小,而Unpooling会把图片变大。

Convolution是把同一个filter乘上不同的input和一样的weight得到输出。

Deconvolution就反过来,原来是三个value乘上不同的weight得到一个输出,而这里则是一个输入乘上不同的weight得到三个输出。做完后会有一部分输出的位置重叠,然后再把重叠的地方加起来。

上面的Deconvolution就相当于给除了那三个输入外补上0,然后在做卷积(Convolution)

深度自动编码器(Deep Auto-encoder)相关推荐

  1. Auto Encoder用于异常检测

    对基于深度神经网络的Auto Encoder用于异常检测的一些思考 from:https://my.oschina.net/u/1778239/blog/1861724 一.前言 现实中,大部分数据都 ...

  2. 堆叠降噪自动编码器 Stacked Denoising Auto Encoder(SDAE)

    原文链接 自动编码器(Auto-Encoder,AE) 自动编码器(Auto-Encoder,AE)自编码器(autoencoder)是神经网络的一种,经过训练后能尝试将输入复制到输出.自编码器内部有 ...

  3. 【深度学习】李宏毅2021/2022春深度学习课程笔记 - Auto Encoder 自编码器 + PyTorch实战

    文章目录 一.Basic Idea of Auto Encoder 1.1 Auto Encoder 结构 1.2 Auto Encoder 降维 1.3 Why Auto Encoder 1.4 D ...

  4. 自编码器(Auto Encoder)原理及其python实现

    目录 一.原理 二.为什么要使用自编码器 三.代码实现 1.原始自编码器 2.多层(堆叠)自编码器 3.卷积自编码器 4.正则自编码器 4.1稀疏自编码器 四.降噪自编码器 五. 逐层贪婪训练堆叠自编 ...

  5. 使用Keras和TensorFlow构建深度自动编码器

    In this tutorial, we will explore how to build and train deep autoencoders using Keras and Tensorflo ...

  6. 机器学习——深度学习(Deep Learning)

    Deep Learning是机器学习中一个非常接近AI的领域,其动机在于建立.模拟人脑进行分析学习的神经网络,近期研究了机器学习中一些深度学习的相关知识,本文给出一些非常实用的资料和心得. Key W ...

  7. 机器学习——深度学习(Deep Learning)经典资料

    Deep Learning是机器学习中一个非常接近AI的领域,其动机在于建立.模拟人脑进行分析学习的神经网络,最近研究了机器学习中一些深度学习的相关知识,本文给出一些很有用的资料和心得. Key Wo ...

  8. 机器学习(Machine Learning)深度学习(Deep Learning)资料汇总

    本文来源:https://github.com/ty4z2008/Qix/blob/master/dl.md 机器学习(Machine Learning)&深度学习(Deep Learning ...

  9. Auto Encoder(AE),Denoising Auto Encoder(DAE), Variational Auto Encoder(VAE) 区别

    文章主要内容参考李宏毅老师的机器学习课程:https://www.bilibili.com/video/BV1Wv411h7kN?p=70 Auto Encoder: 是什么?有什么用? Auto E ...

最新文章

  1. 人人可以理解的区块链100问——比特币可以用于支付吗?
  2. python字典的常见操作_Python 字典(Dictionary) 基本操作
  3. 怎样封装一个自己的mvc框架(五)
  4. LeetCode 第 20 场双周赛(294 / 1541,前19.07%,第1次全部通过)
  5. PHP String
  6. 用PredicateBuilder实现Linq动态拼接查询
  7. prometheus.yml 配置文件参数详解
  8. ExtJs视频教程下载地址
  9. java 下载excel到本地_java已知下载链接将Excel文件利用httpclient下载到本地
  10. 中小制造型企业如何成功实施5S管理?
  11. 彻底解决乱码问题(一):为何会出现乱码
  12. 计算机硬件与软件教学反思,计算机硬件教学反思.doc
  13. 数据库六种范式详解(1NF/2NF/3NF/BCNF/4NF/5NF)
  14. jquery中e.target是什么意思
  15. 解决项目Unable to find GatewayFilterFactory with name CacheRequestFilter错误
  16. DataList和ListView数据控件的使用
  17. 《青春舞曲》教学设计
  18. Java基础 DAY02
  19. java获取空气质量在线监测分析平台(PM2.5真气网)数据
  20. (附源码)springboot 房产中介系统 毕业设计 312341

热门文章

  1. 【自用】Excel数据分析查漏补缺
  2. ChatGPT 拓展资料:Telegram Bot 打造专属聊天机器人
  3. C++程序报错0xc000007b解决方法
  4. 第七章 - 直方图与匹配 - 直方图的计算与显示(cvCalcHist)
  5. slam 直接法(七)
  6. partial的使用
  7. 【Unity连载】斗兽棋-棋类游戏开发演示(2)
  8. 使用 Javascript 创建和生成 UUID
  9. 人工智能---图像识别
  10. rdesktop用法