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

机器学习课程学习周报十二

机器学习课程学习周报十二

文章目录

  • 机器学习课程学习周报十二
    • 摘要
    • Abstract
    • 一、机器学习部分
      • 1.1 fGAN: General Framework of GAN
      • 1.2 CycleGAN
      • 1.3 Auto-Encoder
      • 1.4 概率论复习(一)
    • 总结

摘要

本周的学习内容涵盖了fGAN框架、CycleGAN、自编码器以及概率论的基础知识。fGAN利用f-divergence来衡量概率分布间的差异,并通过Fenchel共轭解释其与GAN的关系。CycleGAN在无监督学习中实现图片风格转换,特别是在无成对数据的情况下。自编码器用于特征降维和重构,并探讨了去噪自编码器和离散隐表征的应用。最后,复习了概率论的基本概念,为理解VAE和Diffusion模型奠定基础。

Abstract

This week’s study focuses on the fGAN framework, CycleGAN, autoencoders, and fundamental concepts of probability theory. fGAN utilizes f-divergence to measure differences between probability distributions, and the Fenchel conjugate is used to explain its relationship with GANs. CycleGAN enables image style transfer in unsupervised learning, particularly without paired data. Autoencoders are explored for feature dimensionality reduction and reconstruction, including applications of denoising autoencoders and discrete latent representations. Finally, a review of probability theory basics lays the groundwork for understanding VAE and Diffusion models.

一、机器学习部分

1.1 fGAN: General Framework of GAN

f-divergence是一类用于衡量两个概率分布之间差异的函数族,f-divergence具体的定义为:

D f ( P ∣ ∣ Q ) = ∫ f ( p ( x ) q ( x ) ) q ( x ) d x {D_f}(P||Q) = \int {f(\frac{{p(x)}}{{q(x)}})} q(x)dx Df(P∣∣Q)=f(q(x)p(x))q(x)dx

给定两个概率分布 P P P Q Q Q,且 p ( x ) {p(x)} p(x) q ( x ) {q(x)} q(x) P P P Q Q Q的概率密度函数,函数 f f f是一个凸函数,并保证 f f f是非负的。具体定义和推导过程如下:
在这里插入图片描述

下图为指定了函数 f f f的具体形式后,f-divergence能转化为不同的divergence。
在这里插入图片描述

Fenchel Conjugate(凸共轭)

凸函数的共轭函数定义如下所示:

在这里插入图片描述

下图的例子表示,给定所有的 x x x,画出函数图像,在 t t t的定义域上,取最大的函数部分, f ∗ {f^*} f的图像是凸函数的形状, f ∗ {f^*} f一定是凸函数。

在这里插入图片描述

下图表明了,利用凸共轭证明f-divergence与GAN的关系,不同的目标函数对应不同的Divergence函数,不同的Divergence函数对应不同的 f ∗ {f^*} f函数。

在这里插入图片描述

1.2 CycleGAN

假设我们现在要把一个 x x x域的真人的头像照片,转换为 y y y域的动漫人物的头像照片,在这个例子里,我们没有任何的成对的数据,因为我们有一堆真人的照片,但是我们没有这些真人的动漫头像。

这个时候就可以用到 GAN,在这种完全没有成对数据的情况下进行学习,把GAN用在无监督学习上。原本无条件的GAN的输入是一个高斯的分布,输出可能是一个复杂的分布。现在我们将 x x x域的真人的头像照片作为GAN的输入,替换为原来输入的高斯分布,输出部分期望生成 y y y域中的动漫人物的头像图片。判别器同时输入 x x x域的图片和 y y y域的图片,然后输出一个数值,这个数值代表这两张图片是不是一对的。

这里我们完全套用原来GAN的训练方式是有问题的,我们没有对输入和输出的关系做任何限制,生成器也许就把这张 x x x域的真人图片当作一个符合高斯分布的噪音,然后不管你输入什么它都无视它,只要判别器觉得它做得很好就可以了。

在这里插入图片描述

引入循环生成对抗网络Cycle GAN),会训练两个生成器。第一个生成器是把 x x x域的图变成 y y y域的图,第二个生成器它的工作是能将一张 y y y域的图还原回至 x x x域的图。在训练的时 候,我们会增加一个额外的目标,就是我们希望输入一张图片,其从 x x x域转成 y y y域以后,要从 y y y域转回原来一模一样的 x x x域图片。就这样经过两次转换以后,输入跟输出要越接近越好,或者说两张图片对应的两个向量之间的距离越接近越好。因为这边有一个循环,从 x x x y y y再从 y y y回到 x x x,所以它是一个循环,所以被称为Cycle GAN。

在这里插入图片描述

另一个角度,Cycle GAN可以是双向的。同时训练上图中下面的部分,给橙色的生成器输入 y y y域的图片,让它产生 x x x域的图片。然后再让蓝色的生成器把 x x x域的图片还原回原来 y y y域的图片。同时我们依然希望输入跟输出越接近越好,所以一样要训练一个判别器,这个判别器是 x x x域的判别器, 它是要看橙色生成器输出的图片像不像是真实人脸的图片。这个橙色的生成器它要去骗过这个 D X {D_X} DX判别器。这两部分合起来就是 Cycle GAN。

1.3 Auto-Encoder

自编码器Auto-Encoder)属于self-supervised learning(自监督学习)其中的一种方法。

在这里插入图片描述

自编码器中包含一个编码器和一个解码器。编码器可能读入一张图片,图片是一种维度非常高的向量,编码器能将高维度的向量压缩为低维度的向量,编码器通常有降维的作用。而解码器的网络架构可能更类似于GAN中的生成器,解码器要输入通过编码器得到的低维向量,生成一张图片。而训练的目标是要将解码器得到的输出图片与编码器的输入图片越接近越好,这个任务也叫做重构reconstruction)。

编码器的任务就是化繁为简,有时本来比较复杂的东西,它实际上只是表面上看起来复杂,而本身的变化是有限的。我们只需要找出其中有限的变化,就可以将它本来比较复杂 的东西用更简单的方法来表示。例如,一组图片的大小都是 3 × 3 3 \times 3 3×3,就是用9维度的向量来表示一张图片,然而实际上这一组图片的表示类型只有2种,可以只用2维度的向量表示。

在这里插入图片描述

去噪自编码器denoising autoencoder),去噪自编码器就是把原来需要输入到编码器的图片,加上一些噪声,然后一样地通过编码器,再通过解码器,目标是还原出加入噪声前的图片。 BERT模型也可以当做为一个去噪自编码器,输入时我们会加入掩码,掩码就是噪声。

自编码器可应用于特征解耦feature disentanglement),解耦是指把一堆本来纠缠在一起的东西把它解开。如果是图片的话,就是把一张图片变成一个编码,再把编码变回图片,既然这个编码可以变回图片,代表说这个编码里面有很多的信息,包含图片里面所有的信息。举例来说,包含图片里面的色泽、纹理等等。在语音上,语音的编码包含了语音里面所有重要的信息,可能有这句话的内容,这句话的语者信息。然而这些信息是全部纠缠在一个向量里面,我们并不知道一个向量的哪些维度代表了哪些信息。例如,100维的语音向量编码,前50维代表了这句话的内容,后50维代表了说话人的特征,这就叫特征解耦。有了特征解耦之后,如果我们现在有A和B两个不同对象说不同话的语音,将其通过编码器得到的编码拿出来,交换其后50维的向量,再通过解码器生成,我们可以得到音色的互换,或者交换其前50维的向量,再通过解码器生成,我们可以得到语音的合成。

自编码器还可应用于离散隐表征。目前为止我们都假设编码是一个向量,这样就是一串 实数,编码也可以是二进制,是每一个维度就代表了某种特征的有无。比如输入的图片,如果是女生,可能第一维就是1,男生第一维就是0;如果有戴眼镜,就是第三维是1,没有戴眼镜第三维就是是0。编码也可以是独热向量,只有一维是1,其他就是0。

在这里插入图片描述

在离散的表征技术中,有一种向量量化变分自编码器vector quantized variational auto-encoder),它运作的原理就是输入一张图片,然后编码器输出一个向量, 这个向量它是一般的向量,并且是连续的,但接下来有一个码本,所谓码本的意思就是一排向量。这排向量也是学出来的,把编码器的输出,去跟这排向量计算一个相似度,然后就会发现这其实跟自注意力有点像,上面这个向量就是查询,下面这些向量就是键, 那接下来就看这些向量里面,谁的相似度最大,把相似度最大的那个向量拿出来再输入至解码器中。假设码本里面有32个向量,那解码器的输入就只有32种可能,相当于让这个编码没有无穷无尽的可能,只有 32 种可能而已。这种技术在语音中,码本可以学到最基本的发音部位,相当于英文的音标或者中文的拼音,而这个码本里面每一个向量,它就对应到某一个发音,就对应到音标里面的某一个符号。

1.4 概率论复习(一)

为了更好地了解VAE和Diffusion模型的原理,并结合信息论前置课程的需要,我将分几次对概率论与数理统计的知识进行复习。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

本周的学习加强了对生成对抗网络及其在无监督学习中的应用的理解,并深入探讨了自编码器在特征提取和表示学习中的作用。VAE和Diffusion模型中涉及分布的理解和推导,通过对概率论的复习,为后续学习更复杂的深度学习模型打下了坚实的理论基础。


http://www.mrgr.cn/news/27539.html

相关文章:

  • 在linux里如何利用vim对比两个文档不同的行数
  • 低成本出租屋5G CPE解决方案:ZX7981PG/ZX7981PM WIFI6千兆高速网络
  • 中心极限定理的三种形式
  • Springboot校园失物招领平台
  • 用OMS进行 OceanBase 租户间数据迁移的测评
  • Docker部署Kafka SASL_SSL认证,并集成到Spring Boot
  • Unity-Transform类-缩放和看向
  • 【网络安全的神秘世界】ssrf服务端请求伪造
  • 103.WEB渗透测试-信息收集-FOFA语法(3)
  • Acwing 双链表
  • 2011年全国硕士研究生入学统一考试计算机科学与技术
  • springboot瑜伽课约课小程序-计算机毕业设计源码87936
  • ElasticSearch介绍+使用
  • 基于R语言的统计分析基础:使用键盘输入数据
  • 系统分析师--系统可靠性分析与设计
  • 「数组」堆排序 / 大根堆优化(C++)
  • 天体的结构图
  • 深入了解图像生成模型:Imagen
  • 轨道列车舱门检测系统源码分享
  • 如何查看串口被哪个程序占用?截止目前最方便的方法
  • anaconda安装manim
  • Linux-Swap分区使用与扩容
  • 通过对比理解C++智能指针
  • 面试常见题之Spring Cloud
  • 【数据库】MySQL内置函数
  • (k8s)Kubernetes本地存储接入