热门标签 | 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 产生在原点附近。

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


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

推荐阅读
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • 计算机视觉领域介绍 | 自然语言驱动的跨模态行人重识别前沿技术综述(上篇)
    本文介绍了计算机视觉领域的最新进展,特别是自然语言驱动的跨模态行人重识别技术。上篇内容详细探讨了该领域的基础理论、关键技术及当前的研究热点,为读者提供了全面的概述。 ... [详细]
  • 在尝试对 QQmlPropertyMap 类进行测试驱动开发时,发现其派生类中无法正常调用槽函数或 Q_INVOKABLE 方法。这可能是由于 QQmlPropertyMap 的内部实现机制导致的,需要进一步研究以找到解决方案。 ... [详细]
  • javax.mail.search.BodyTerm.matchPart()方法的使用及代码示例 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 在日常开发中,正则表达式是处理字符串时不可或缺的工具。本文汇总了常用的正则表达式,帮助开发者高效解决常见问题。例如,验证数字:`1$`;验证n位数字:`^\d{n}$`;验证至少n位数字:`^\d{n,}$`;验证m到n位数字:`^\d{m,n}$`。此外,还涵盖了验证零和非零数字、邮箱地址、手机号码等多种场景,建议关注并收藏以备不时之需。 ... [详细]
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社区 版权所有