当前位置: 首页 > article >正文

机器学习(李宏毅)——Auto-Encoder

一、前言

本文章作为学习2023年《李宏毅机器学习课程》的笔记,感谢台湾大学李宏毅教授的课程,respect!!!

二、大纲

  1. Basic Idea of Auto-encoder
  2. Feature Disentanglement
  3. Discrete Latent Representation
  4. More Applications

三、Basic Idea of Auto-encoder

Self-supervised Learning Framework

在讲Auto-encoder之前,先再温习一下Self-supervised Learning Framework,即自监督学习框架。

最典型的就是BERT模型了,可参照本人BERT博客。框架如下图所示:

在这里插入图片描述
一言以蔽之:有一堆没有标注的资料data,把资料的部分遮住,丢到预训练模型里面,期待输出和遮住部分越接近越好。换句话说就是在做填空题。然后预训练模型可针对不同下游任务进行微调和应用。

Auto-encoder
Auto-encoder也可以看成是Self-supervised Learning的一种,虽然Auto-encoder比Self-supervised Learning提出的还要早。

举例而言,将Auto-encoder应用在图像生成领域,那就是类似于Cycle GAN的思想,如下图:
在这里插入图片描述
说明:有一堆未标注的图片,经过NN Encoder变成一个向量vector,再经过NN Decoder还原至原来的输入图片,期待输入输出越接近越好,这就是Auto-encoder的基本思想。

那为什么这招能够work呢?
我个人的理解这是一种空间映射,将图像空间和矩阵空间映射在一起,而这个映射关系完全可以自己定义。
在这里插入图片描述
什么叫自己定义,举例而言,假设矩阵就两列,如果图片中看到光头的,矩阵第一维值就是1,其他为0。没看到光头,矩阵第一维值就是0,其他为1。这是一种方法,当然还可以是其他方法,比如男女分开、黑发黄发等。

这让我想到了一个游戏(没玩过的可以pass):这是开,这是闭,这是开还是闭。文字“开”、“闭”完全可以映射到手势、嘴巴等部分,但是要符合规律即可,起初没人告诉我“开”、“闭”应该对应什么,好似Auto-encoder是Self-supervised一样,需要去找一种映射关系,满足输出结果规律。

De-noising Auto-encoder
这也是Auto-encoder的一种,只不过是加入了noises,如下图所示:
在这里插入图片描述
说明:先对原始图片加入杂讯,杂讯图片再丢入Auto-encoder中,期待输入的结果和原始图片越像越好,这不就和BERT一模一样吗!BERT是在做填空题,它是在去杂讯。(不禁让我想起了去马的操作,想跃跃欲试了~)

以下是把de-noising auto-encoder思想套进BERT:
在这里插入图片描述

四、Feature Disentanglement

什么叫做Feature Disentanglement?
就是不要让Feature 纠结在一起,要把它们分开来。

举例而言,语音辨识经过Encoder的向量既有语者的资讯,又有声音的内容,如下图:
在这里插入图片描述
那怎么把这两者分开呢?参考左下角的链接。

分开后又有啥应用呢?
柯南变声器,或者是可以伪造别人的声音,听着这操作很骚啊~

在这里插入图片描述
说明:
将新垣结衣的语者特征和李宏毅老师的文字内容拼接,就可以以新垣结衣的声音来上课了。

五、Discrete Latent Representation

啥是Discrete Latent Representation,翻译成中文是离散潜在表示,其实这里就是针对Encoder得到的向量而言,向量这一块的表示方法,上面也提到了这块内容,就是你爱咋定义映射关系就咋定义,于是乎有了各种各样的定义方式,如下图:
在这里插入图片描述
说明:可以是Real numbers、Binary、One-hot等。

也可以设定一个索引表(codebook),看这个编码向量和索引表中哪个向量越接近(类似于self-attention中的q、k),如下图:
在这里插入图片描述
更狂一点的就是Encoder出来的不一样要是向量,直接就是一段文字:
在这里插入图片描述
直接一段文字,那不就是摘要吗?对,没错!
为了让模型学会说人话,还需要一个老师(Discriminator),如下图:
在这里插入图片描述

六、More Applications

不得不说,真是博大精深啊!
当然,还有其他应用,比如:
1、Generator:把Decoder拿出来,直接当成图片生成器来用。
在这里插入图片描述
2、Compression(压缩)
在这里插入图片描述
NN Encoder就是在做压缩Compression,可以直接拿来做图片压缩相关工作,再通过NN Decoder解压缩回去(Decompression),虽然会有一点图片失真。

3、Anomaly Detection(异常检测)
在这里插入图片描述
思想很直接,就是如果今天是一张不同于训练集的图片送入Auto-encoder中,那是还原不回去的,domain不一样嘞,从而可以检测出异常。

可以应用在Fraud Detection(欺诈检测)、Network Intrusion Detection(网络入侵检测)、Cancer Detection(癌症检测)等领域。
在这里插入图片描述


http://www.kler.cn/a/580524.html

相关文章:

  • 基于SpringBoot+Vue的瑜伽课体验课预约系统【附源码】
  • git大文件传输报错
  • pdf修改内容:分享5款好用的工具
  • STM32的Systick定时器的作用
  • 解决电脑问题(7)——软件问题
  • Django 模型的逆向工程
  • Django 初始化导入数据详解
  • 【学习方法二】
  • 手写识别革命:Manus AI如何攻克多语言混合识别难题(一)
  • 【Linux】36.简单的TCP网络程序
  • Qt无法抓取鼠标键盘事件
  • 用android studio模拟器,模拟安卓手机访问网页,使用Chrome 开发者工具查看控制台信息
  • Jeinkins配置sonarqube
  • WebSocket(WS)协议系列(四)SSL/TLS协议
  • uni-app开发的App和H5嵌套封装的App,以及原生App有什么区别
  • LeetCode 热题 100_每日温度(72_739_中等_C++)(栈)(暴力破解;栈(从左到右);栈(从右到左))
  • LeetCode 2070.每一个查询的最大美丽值:排序 + 二分查找
  • 使用Langflow和AstraDB构建AI助手:从架构设计到与NocoBase的集成
  • 解锁Conda:Python环境与包管理的终极指南
  • 基于多目标向日葵优化算法(Multi-objective Sunflower Optimization,MOSFO)的移动机器人路径规划研究,MATLAB代码