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

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

文章目录

  • 机器学习课程学习周报十二
    • 摘要
    • 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.mfbz.cn/a/876183.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux | 探索 Linux 信号机制:信号的产生和自定义捕捉

信号是 Linux 操作系统中非常重要的进程控制机制,用来异步通知进程发生某种事件。理解信号的产生、阻塞、递达、捕捉等概念,可以帮助开发者更好地编写健壮的应用程序,避免由于未处理的信号导致程序异常退出。本文将带你从基础概念开始&#x…

数据结构基础详解:哈希表【C语言代码实践篇】开放地址法__拉链法_哈希表的创建_增删查操作详解

文章目录 1.哈希表代码实现之开放地址法1.1 开放地址法创建哈希表1.2 开放地址法之查找1.3 开放地址法之插入1.4 开放地址法之删除 2.哈希表代码实现之链地址法(拉链法)2.1 链地址法之创建哈希表2.2 链地址法之查找2.3 链地址法之插入2.4 链地址法之删除 1.哈希表代码实现之开放…

Mac电脑剪切板在哪里找 苹果电脑剪切板打开教程【详解】

Windows 和 Mac 电脑在使用方式上存在一些差异,许多习惯了 Windows 系统的用户初次接触 Mac 时可能会对某些操作感到困惑。比如,很多人会问:Mac 上的剪贴板在哪里?如果你也有这样的疑问,不妨看看下面这篇关于如何在 Ma…

MySQL查询执行(四):查一行也很慢

假设存在表t,这个表有两个字段id和c,并且我在里面插入了10万行记录。 -- 创建表t CREATE TABLE t (id int(11) NOT NULL,c int(11) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB;-- 通过存储过程向t写入10w行数据 delimiter ;; create procedure idat…

Android Studio新建工程(Java语言环境)

一、新建工程流程(java语言环境) 1、File->New->New Project 2、选择“Empty Views Activity” -> Next 3、创建项目名称/项目路径/语言环境 1)项目名称:使用默认Name 或 修改Name 2) Package name:每个项目的这个名称唯一&…

饿了么基于Flink+Paimon+StarRocks的实时湖仓探索

摘要:本文整理自饿了么大数据架构师、Apache Flink Contributor 王沛斌老师在8月3日 Streaming Lakehouse Meetup Online(Paimon x StarRocks,共话实时湖仓架构)上的分享。主要分为以下三个内容: 饿了么实时数仓演进之…

self-play RL学习笔记

让AI用随机的路径尝试新的任务,如果效果超预期,那就更新神经网络的权重,使得AI记住多使用这个成功的事件,再开始下一次的尝试。——llya Sutskever 这两天炸裂朋友圈的OpenAI草莓大模型o1和此前代码能力大幅升级的Claude 3.5&…

手机玩机常识____展讯芯片刷机平台ResearchDownload的一些基本常识与问题解决

展讯ResearchDownload工具 展讯芯片的刷机工具--ResearchDownload下载工具"是一款专为用户设计的高效、便捷的下载管理软件,它能够帮助用户快速、稳定地从互联网上获取各种文件。这款工具以其强大的功能和良好的用户体验,在众多展讯芯片下载工具中脱…

Python [ GUI编程自学 ],虽然但是,还是想出一个系列

Python [ GUI编程自学 ],虽然但是,还是想出一个系列。 目前跟着哔站自学完毕,皮毛了解了,本文GUI一系列文章请查看Python_GUI编程专栏! 本篇主要介绍了事件处理机制:事件处理原理(感觉和之前学的…

解决win11 使用wsl工具,不能使用systemctl

使用systemctl命令出现报错: System has not been booted with systemd as init system (PID 1). Can‘t operate. 默认情况下并不启用 systemd,而是使用了其他轻量级的初始化系统(SysV init初始化系统)。这导致一些需要 system…

利用未标记数据的半监督学习在模型训练中的效果评估

数据科学家在实践中经常面临的一个关键挑战是缺乏足够的标记数据来训练可靠且准确的模型。标记数据对于监督学习任务(如分类或回归)至关重要。但是在许多领域,获取标记数据往往成本高昂、耗时或不切实际。相比之下,未标记数据通常…

Java获取随机数

在Java中获取随机数通常会使用java.util.Random类或者Math.random()方法 1.java.util.Random java.util.Random类用于生成伪随机数。 // 使用无参构造方法创建Random对象Random rand new Random();// 生成一个[0, 100)范围内的随机整数int randomInt rand.nextInt(100);Sys…

linux使用命令行编译qt.cpp

步骤&#xff1a; mkdir qttestcd qttestvim hello.cpp #include <QApplication> #include <QDialog> #include <QLabel> int main(int argc,char* argv[]) {QApplication a(argc,argv);QLabel label("aaa");label.resize(100,100);label.show()…

vulnhub(6):Tr0ll(隐藏目录、hydra密码爆破、内核漏洞提权)

端口 nmap主机发现 nmap -sn 192.168.178.0/24 ​ Nmap scan report for 192.168.178.33 Host is up (0.00020s latency). ​ 33是新出现的机器&#xff0c;他就是靶机 nmap端口扫描 nmap -Pn 192.168.178.33 -p- --min-rate 10000 -oA nmap/scan 扫描开放端口保存到 nmap/sca…

【FATFS】FATFS简介及下载

1、FATFS简介 FatFs 是一个针对嵌入式系统开发的通用文件系统模块&#xff0c;主要用于支持 FAT 文件系统。它最初由 ChaN 开发&#xff0c;并被广泛应用于嵌入式设备上。FatFs 以其轻量级、可配置和设备无关的特性著称&#xff0c;支持 FAT12、FAT16、FAT32 以及 exFAT 文件系…

【iOS】单例模式

目录 前言单例模式认识单例模式单例模式的特点及使用情景单例模式的使用单例模式的实现步骤&#xff1a;完整代码 总结 前言 在进行大项目编写之前&#xff0c;开始对前面比较重要的知识进行回顾和重新学习&#xff0c;单例模式在软件开发设计中是比较重要的&#xff0c;尤其是…

EFI引导模式下配置Windows和Linux双系统共存

这几天在VirtualBox虚机里玩Modular MAX下的LLama3大模型&#xff0c;实在受不了这执行速度&#xff0c;于是下决心把Ubuntu系统安装在硬盘上跟Windows11做双系统共存。之前在传统BIOS引导模式下做过不少次双系统引导&#xff0c;EFI模式下第一次做&#xff0c;加之windows系统…

计算机毕业设计 大学志愿填报系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

大数据-129 - Flink CEP 详解 Complex Event Processing - 复杂事件处理

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

91、K8s之ingress上集

一、Ingress service模式&#xff1a; loadbalance NodePort&#xff1a;每个节点都会有一个指定的端口 30000-32767 内网 clusterip&#xff1a;默认模式&#xff0c;只能pod内部访问 externalName&#xff1a;需要dns提供域名 1.1、对外提供服务的ingress service&…