热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【李宏毅2020ML/DL】P59UnsupervisedLearningAutoencoder

我已经有两年ML经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。已经有人记了笔记(很用心,强烈推荐&#x

我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。


已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-notes

本节对应笔记:


  • https://github.com/Sakura-gh/ML-notes/blob/master/ML-notes-md/22_Unsupervised%20Learning%20Deep%20Auto-encoder.md

本节内容综述


  1. Auto-encoder 思想是,对数据进行压缩;此外,要有一个 Decoder 来把数据解压。Encoder 与 Decoder 在一起训练。
  2. 从 PCA 开始介绍起。可见【李宏毅2020 ML/DL】P57 Unsupervised Learning - Linear Methods | PCA & Matrix Factorization。
  3. 开始介绍 Deep Auto-encoder ,2006年的成果。
  4. 用在文字处理上Auto-encoder Text Retrieval
  5. 此外,也可用在图像搜索上Similar Image Search
  6. 还可以用在预训练神经网络上Pre-training DNN这个方法可能很适用于半监督学习。
  7. 此外,还有一些加噪的编码方法De-noising auto-encoder,还提及了Contractive auto-encoder。
  8. 还提及了 Restricted Boltzmann Machine 以及 Deep Belief Network,见 Learn More 。
  9. 最后详细介绍了 CNN 。介绍了很有趣的去卷积,发现去卷积其实就是卷积
  10. 最后进行思考,我们是否可以用 Decoder 来产生新的东西?


文章目录

  • 本节内容综述
  • 小细节
      • Deep Auto-encoder
      • Auto-encoder Text Retrieval
        • Bag-of-word
      • Auto-encoder Similar Image Search
      • Auto-encoder Pre-training DNN
      • De-noising auto-encoder
      • Learn More
      • CNN as Encoder
        • Unpooling
        • Deconvolution
      • Next...


小细节


Deep Auto-encoder


此外,注意到可以按照 PCA的思路,将 Encoder 与 Decoder 的参数一一对应。这可以通过为二者赋同样的初值得到。并且,还需要设置同样的更新过程,这样可以节省一半的参数,降低过拟合的概率。

但是这并不是必要的。

来看一篇 2006 年的论文成果。

如图,使用了 Deep Auto-encoder ,可以解码会很清晰的图片。


如图,使用了深层的编码,即便是2维的编码,其聚类效果也是很好的。


Auto-encoder Text Retrieval


Bag-of-word


如果这个词出现过,在词袋(一个词袋可能表示一篇文章)中,就是1,否者是0。


如上,使用 Auto-encoder 效果远好于 LSA 。


Auto-encoder Similar Image Search


如上,直接算像素插值,找不到好结果。

如上,如果经过编码,会找到比较同类的结果。


Auto-encoder Pre-training DNN

如上图右边,要注意,可能需要对编码的层进行一个大的正则(当编码层维度大于被编码对象时)。

如上,然后保存住这个网络的参数。训练下一层。

如上,再训练长度为 500 的这一层。


之后,再通过反向传播微调就行。

注意:


  • 现在可能已经不太需要使用这个预训练技术了(因为机器条件好了);
  • 但是如果有大量无标签数据和少量标签数据,我们可以通过无标签数据进行预训练。

因此,这个方法可能更适于半监督学习。


De-noising auto-encoder


如图,在输入时,加入一些噪声,这样,神经网络就会学到一些去噪的技巧。

此外,还提到了Contractive auto-encoder,在编码时,做个约束,目的是加了噪声编码还能不变。而De-noising 是为了解码后还能还原。


Learn More



上述两个,都不是神经网络。李老师不准备在本课程中展开。


CNN as Encoder


如图,怎么做去卷积层(Deconvolution)去池化层(Unpooling)呢?


Unpooling


如上,做 Unpooling 的前提是,要记得Pooling在哪里取的值

但是,在 Keras 里没有记录这些位置,直接做了重复值。


Deconvolution

其实 Deconvolution 就是 convolution 。

老师先拿一维的卷积举例子。很巧妙。因此,在Keras里甚至直接使用卷积层就行。


Next…


如图,我们做了一个二维的 code ,在红色框框里取样;发现左上角”四不像“,因为红色框框左上角确实没有东西。

我们还可以对 code 加 L2 正则,以限制 code 产生在原点附近。

如上,发现两个维度其实是意义的:


  • 从左到右,是否有圈圈;
  • 从上到下则表示是否倾斜。

推荐阅读
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 详解 Python 的二元算术运算,为什么说减法只是语法糖?[Python常见问题]
    原题|UnravellingbinaryarithmeticoperationsinPython作者|BrettCannon译者|豌豆花下猫(“Python猫 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了一些好用的搜索引擎的替代品,包括网盘搜索工具、百度网盘搜索引擎等。同时还介绍了一些笑话大全、GIF笑话图片、动态图等资源的搜索引擎。此外,还推荐了一些迅雷快传搜索和360云盘资源搜索的网盘搜索引擎。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文主要讨论了如何通过已知图片的base64流将图片上传到文件服务器并返回URL的问题。通过模拟文件上传过程,成功解决了该问题。然而,在返回的URL中出现了一个名为blob的文件,作者对于该文件的具体含义以及base64转blob格式的意义有所困惑。本文将对这些问题进行探讨和解答。 ... [详细]
  • Imdevelopinganappwhichneedstogetmusicfilebystreamingforplayinglive.我正在开发一个应用程序,需要通过流 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • 本文研究了使用条件对抗网络进行图片到图片翻译的方法,并提出了一种通用的解决方案。通过学习输入图像到输出图像的映射和训练相应的损失函数,我们可以解决需要不同损失函数公式的问题。实验证明该方法在合成图片、重构目标和给图片着色等多个问题上都很有效。这项工作的重要发现是不再需要人为构建映射函数和损失函数,同时能够得出合理的结果。本文的研究对于图片处理、计算机图片合成和计算机视觉等领域具有重要意义。 ... [详细]
  • 本文讨论了使用bootstrapselect插件设置container后,选择完选项后options不隐藏的问题,给出了解决方法,并提供了相应的jsfiddle链接进行演示。 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
author-avatar
微笑5885
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有