李宏毅机器学习(八)自编码器(Auto-encoder)

前情提要

什么自监督学习?
做不需要标注资料的任务,比如做填空题,比如预测下一个任务!
这个时候我们只需要对在自监督中训练的模型进行fine-tune就可以用在下游任务中了!

但是在不需要标注的数据之前呢,在BERT、self-supervised learning之前有一个工具叫做Auto-Encoder! 也是不需要标注的数据的。

Auto-Encoder

怎么运作的?

它是一个无监督的,不需要任何标注资料的任务! 目的就是让图片经过中间的网络后和最终的目标尽可能的相似! 和Cycle GAN中的方法是一样的! 中间的Vector叫做Embedding、Representation,code!都是指的是同一件事! 这有什么用呢? 我们要使用的中间的这个Vector,它不再是原来图片的高维向量(比如100 * 100维度的图片, 如果是RGB那么就是3万维度),而经过Encoder 压缩之后的低维向量,这个向量往往是10维,100维等。 同时Encoder的输出也叫做瓶颈层,叫做BottleNeck,因为我们输入的是宽维度的向量,但是最终输出的是低纬度向量! 同时这也叫做Dimension reduction。 也可以叫做pre-train

Dimension reduction方法有PCA、t-SNE,它们不是深度学习!

Why Auto-encoder?

为什么Auto-encoder能获取存储图片信息的低维度的向量呢? 这些向量怎么就能代表这个图片呢?

因为图片的变化看起来大,但是却很小。图片的变化类型是有限的, 我们只需要记录这几种变化类型就可以!就仿佛上图中四个3*3大小的图片, 只有两种类型! 所以我们只需要记录这两种变化类型就行了, 01和10就够了!

就仿佛神雕侠侣中樊一翁,它的胡子虽然变化多,但是只是表象,头的可变化的类型很少! 我们只需要预判了它的头的变化就可以了。

Auto-encoder 并不是一个新的idea

原来的方法并没有深度学习的概念,要分块进行训练的!

De-noising Auto-encoder

给原图片添加噪音, 然后还是让它恢复到原来的图片,那么这个encoder必须有能力来去除噪音!
这在BERT中也有相同的应用! 比如添加mask! 所以我们可以说BERT就是一个添加了噪音的Auto-encoder! 当然Decoder不一定是一个Linear层,也可以自己定义哦!

Feature Distangle

Distangle: 就是把原来纠缠在一起的东西解开来!
下面的各种特征都在这里面,但是我们并不知道哪些特征代表了哪些资讯!

所以我们是不是可以分解出特征来,比如前五十维度表示内容信息,后五十维度表示的是说话人的信息等等!当然feature Distangle也是有很多的办法来去做的!

这是有办法做的,下边的就是方法了!每一个dimension就代表了一个资讯!

Application: Voice Conversion

Voice Conversion:语音转换!就是柯南的领结变声器!
在过去都是有监督学习,在采集样本时候需要Speaker A 和 Speaker B录制相同的语音,这样才能完成模型的训练! 但是现在我们可能不再需要一模一样的录制了!

比如下面的encoder中的特征一部分代表了语者,一部分代表了语音。那么我们就可以交换语音! 让某个人说别人的话!

Discrete Representation

向量的表示有三种可能性: Real Numbers、Binary和One-hot! 比如Binary中某一个值就代表了是不是的问题, 是男的还是女的?戴眼镜了吗? 而One-hot也代表了分类任务,比如0-9手写体的识别!

例子:VQVAE(Vector Quantized Variational Auto-encoder)

Codebook中是一系列向量,是学习出来的数据! 同时也是预定义的向量! 我们需要的就是计算Encoder出的向量和Codebook中的相似度,相似度最高的那个向量就作为Decoder的输入! 类似于Self-attention! 当然也可以用在语音识别中,在语音识别中,codebook中的向量完全可以代表kk音标!

Text as Representation

我们可不可以embedding出文字,而不是向量呢? 该文字经过Decoder后会得到整个文章! 而该sequence就是文章的核心和摘要! 这是一个seq2seq2seq的auto-encoder, 而这个任务仅仅需要一大堆的文件拉进行训练这个模型。但是这是不行的,因为Decoder会发明自己的暗号,中间生成的文字是看不懂的文字! 这要怎么办呢? 这个时候就可以添加一个Discriminator,Discriminator是可以分出输出是不是真汉字的,所以Discriminator可以判断中间的单词是不是问题。这样就可以添加双向限制, 既能生成文章, 又可以判断出是不是汉字! 这就是CycleGAN

我们就硬Train!

Tree as Embedding

Application

Generator

我们可以将Decoder作为Generator! 我们通过模型训练之后得到Decoder!

Compression

如果图片太大了,我们可以把Encoder当作压缩器来生成低维向量! 而Decoder做的事情Decompression,但是这样得出的图片是有失真的!

Anomaly(Outlier、Novelty) Detection

检查输入的x和训练数据是不是一样!

但是我们的x正确不正确完全取决于训练数据!

欺诈检测: 训练数据,正确的信用卡交易
网络的侵入检测: 黑客检测,连入是不是正常的
细胞检测:是不是一个癌细胞?

和分类任务的区别: 分类任务是需要大量正反样本的,而且其中很多错误的样本就混在了正样本里。 但是现实中是很难收集很多的负样本的! 再比如人脸识别,这肯定不能收集所有的负样本啊,只能是收集正样本!
这是一个one-class问题,而不是二分类问题! 这就需要Auto-encoder登场了!

人脸检测
我们检测是不是真人的人脸,而不是二次元的,那么我们就可以通过搜集一堆的人脸图片,通过将它们encoder和Decoder,如果能合成真人图片,那么就是真人!
如果输入的是二次元图片,那么在经过encoder和decoder后是合成不了正常的图片的!

More about Anomaly Detection

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/476249.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 406. 根据身高重建队列(排序)

1. 题目 假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。 注意: 总人数少于1100人。示例 输入: [[7,0], [4,4], [7,1]…

sql2000 版本号

SQL Server 2000 原始版本 8.00.194 RTM Database Components SP1 8.00.384 SP1 Database Components SP2 8.00.534 SP2 Database Components SP3、SP3a 或 MSDE 2000 Release A 8.00.760 SP3 Database Components SP4 8.00.2039 SP4.转载于:https:/…

iphone和mac互传文件_在mac和iphone之间传文件夹那么难吗

一直听说苹果几件套多么好用,工作生活资料文件可以多无缝衔接等等,买了手机后几乎没什么时间研究,对于苹果的生态圈还是有些陌生和不习惯,目前来说我感觉最方便的一个功能是隔空传送,比如在家里,大涛哥要给…

LeetCode LCP 11. 期望个数统计

1. 题目 某互联网公司一年一度的春招开始了,一共有 n 名面试者入选。 每名面试者都会提交一份简历,公司会根据提供的简历资料产生一个预估的能力值,数值越大代表越有可能通过面试。 小 A 和小 B 负责审核面试者,他们均有所有面试…

李宏毅机器学习(七)Bert and its family

技术前瞻 在预训练模型上训练Bert,并在我们的数据上fine-tune所需要的模型! 就像学习英文一样! 应该是通读英文文章后再去做题,而不是先做题再读懂文章! Pre-train Model Embedding 刚开始是 Word2Vertor&#xff0…

利用SharePoint Designer开发可循环工作流

介绍 大家都知道SharePoint工作流有两种开发(设计)方式:通过SharePoint Designer和Visual Studio. l 使用Visual Studio,开发人员可以通过编码的方式灵活的开发SharePoint工作流. l 使用SharePoint Designer,网站管理人员可以基于定义和规则设计SharePoint工作流,无需编码. 使用…

跨部门不配合工作_作为管理者,如何解决跨部门成员互不配合的情况?

原标题:作为管理者,如何解决跨部门成员互不配合的情况?有过类似的情况,但已经解决,分享一下我的经验:1.管理者要以身作则,既然答应了就帮对方到底。上司在平时,不应该有“小农”思想…

李宏毅机器学习(八)ELMo、BERT、GPT、XLNet、MASS、BART、UniLM、ELECTRA、others

怎么得到这个pre-train好的模型呢? Pre-training by Translation(翻译) Context Vector(CoVe): Embedding的words必须要考虑上下文! 有一个方法是用基于Translation的Model! 就是用…

LeetCode 712. 两个字符串的最小ASCII删除和(DP,类似编辑距离)

1. 题目 给定两个字符串s1, s2,找到使两个字符串相等所需删除字符的ASCII值的最小和。 示例 1: 输入: s1 "sea", s2 "eat" 输出: 231 解释: 在 "sea" 中删除 "s" 并将 "s" 的值(115)加入总和。 在 "eat…

正则研究

到目前为止,许多的编程语言和工具都包含对正则表达式的支持,当然.NET也不例外,.NET基础类库中包含有一个名称空间和一系列可以充分发挥规则表达式威力的类。 正则表达式的知识可能是不少编程人员最烦恼的事儿了。如果你还没有规则表达式方面的…

python3字节转化字符_捋一捋字符串与字节序列的关系

Python3的一个新特性算是把文本和二进制数据清晰地区分开来了。我们看到的文本其实就是一连串的Unicode字符组成的str(下文文无特殊说明均指Unicode字符),最后计算机以二进制数据的形式存储起来。Python内置了两种二进制数据类型,分别是bytes和bytearray…

李宏毅机器学习(九)Multi-lingual BERT

Multi-lingual BERT 输入多种语言来训练BERT Zero-shot Reading Comprehension 首先模型是在104种语言上进行训练的! 并且以English的QA来training我们的模型,最后在回答问题的时候使用中文! 可以看到如果在104种语言pre-train,…

[转]详细介绍如何做关联

如何在脚本中做关联 (Correlation)当录制脚本时,VuGen会拦截client端(浏览器)与server端(网站服务器)之间的对话,并且通通记录下来,产生脚本。在VuGen的Recording Log中,您可以找到浏…

zillow房价预测比赛_Kaggle竞赛 —— 房价预测 (House Prices)

这个比赛总的情况就是给你79个特征然后根据这些预测房价 (SalePrice),这其中既有离散型也有连续性特征,而且存在大量的缺失值。不过好在比赛方提供了data_description.txt这个文件,里面对各个特征的含义进行了描述,理解了其中内容…

【转】RNN、LSTM、Transformer、BERT简介与区别

几者的主要参考文章: https://blog.csdn.net/weixin_41089007/article/details/96474760 RNN与LSTM的区别参考文章: https://blog.csdn.net/hfutdog/article/details/96479716 RNN和LSTM的区别如下: RNN没有细胞状态;LSTM通过细…

LeetCode 812. 最大三角形面积(坐标面积公式)

1. 题目 给定包含多个点的集合&#xff0c;从其中取三个点组成三角形&#xff0c;返回能组成的最大三角形的面积。 示例: 输入: points [[0,0],[0,1],[1,0],[0,2],[2,0]] 输出: 2 解释: 这五个点如下图所示。组成的橙色三角形是最大的&#xff0c;面积为2。注意: 3 < po…

孩子感冒发烧怎么办

老大感冒发烧三天刚好&#xff0c;老二开始咳嗽鼻塞&#xff0c;孩子们生病忙的就是父母&#xff0c;几天下来&#xff0c;连自己也病了。终于一切恢复常态&#xff0c;想想也该总结一下孩子们生病的经历。 1月1号夜里&#xff0c;老大开始咳嗽&#xff0c;以为是气候干燥&…

李宏毅机器学习(十)GPT-3

前情提要 论文名称&#xff1a; Language Models are Few-shot learners 但是GPT-3的缺点在于&#xff0c;太过巨大&#xff01; 它有多大呢&#xff1f; 原来最大的时候是Turing NLG&#xff0c;有17B&#xff0c;而GPT-3是它的10倍&#xff01; 对GPT-3的评价&#xff1a; …

ipython是免费的吗_IPython技巧

IPython是一个python的交互式shell&#xff0c;比python自带的shell好用得多&#xff0c;支持变量自动补全、自动缩进、直接运行shell命令、内置了许多很有用的功能和函数&#xff0c;让我们可以用更高的效率来使用python&#xff0c;同时也是利用Python进行科学计算和交互可视…

LeetCode 985. 查询后的偶数和

1. 题目 给出一个整数数组 A 和一个查询数组 queries。 对于第 i 次查询&#xff0c;有 val queries[i][0], index queries[i][1]&#xff0c;我们会把 val 加到 A[index] 上。 然后&#xff0c;第 i 次查询的答案是 A 中偶数值的和。 &#xff08;此处给定的 index quer…