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

news2024/9/22 5:43:45

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

文章目录

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

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

相关文章

【逐行注释】自适应Q和R的AUKF(自适应无迹卡尔曼滤波),附下载链接

文章目录 自适应Q的KF逐行注释的说明运行结果部分代码各模块解释 自适应Q的KF 自适应无迹卡尔曼滤波(Adaptive Unscented Kalman Filter,AUKF)是一种用于状态估计的滤波算法。它是基于无迹卡尔曼滤波(Unscented Kalman Filter&am…

通义灵码在Visual Studio上

通义灵码在Visual Studio上不好用,有时候会出现重影,不如原生的自动补全好用,原生的毕竟的根据语法来给出提示的。

MySQL练手题--体育馆的人流量(困难)

一、准备工作 Create table If Not Exists Stadium (id int, visit_date DATE NULL, people int); Truncate table Stadium; insert into Stadium (id, visit_date, people) values (1, 2017-01-01, 10); insert into Stadium (id, visit_date, people) values (2, 2017-01-02…

Java 每日一刊(第8期):流程控制

“计算机程序本质上是艺术的一种表现形式。” 前言 这里是分享 Java 相关内容的专刊,每日一更。 本期将为大家带来以下内容: 条件控制语句循环控制语句跳转控制语句 条件控制语句 条件控制语句用于 根据条件判断执行不同的代码块,是编程…

COMP 6714-Info Retrieval and Web Search笔记week1

哭了哭了,这周唯一能听懂的就这门 目录 IR(Information Retrieval)是什么?IR的基本假设Unstructured (text) vs. structuredDocuments vs. Database Records比较文本(Comparing Text)IR的范围(Dimensions of IR)IR的任…

【目标检测数据集】锯子数据集1107张VOC+YOLO格式

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):1107 标注数量(xml文件个数):1107 标注数量(txt文件个数):1107 标注…

如何使用myabtis log plugin插件展示出数据库查询语句

1、安装myabtis log plugin插件 直接插件市场搜该插件进行安装就行,安装完成后,会有如下图标 2、需要集成log4j springboot版本需要集成log4j,集成遇到的问题可以参考我之前文章 3、配置log4j.xml文件,添加mapper文件的打印 &l…

软考高级:存储系统 DAS、NAS、SAN 区别 - AI 解读

DAS(直接附加存储)、NAS(网络附加存储)和SAN(存储区域网络)是三种常见的数据存储架构,主要用于不同场景下的数据存储和管理。我们可以从它们的架构、用途以及优缺点来理解。 生活化例子 想象一…

标准库标头 <bit>(C++20)学习

<bit>头文件是数值库的一部分。定义用于访问、操作和处理各个位和位序列的函数。例如&#xff0c;有函数可以旋转位、查找连续集或已清除位的数量、查看某个数是否为 2 的整数幂、查找表示数字的最小位数等。 类型 endian (C20) 指示标量类型的端序 (枚举) 函数 bit_ca…

阿里云 Quick BI使用介绍

Quick BI使用介绍 文章目录 阿里云 Quick BI使用介绍1. 创建自己的quick bi服务器2. 新建数据源3. 上传文件和 使用4. 开始分析 -选仪表盘5. 提供的图表6. 一个图表的设置使用小结 阿里云 Quick BI使用介绍 Quick BI是一款全场景数据消费式的BI平台&#xff0c;秉承全场景消费…

文学智能体——摄影皮卡丘

前言 今天尝试进行智能体创建&#xff0c;我想创建什么呢&#xff0c;旅游的话&#xff0c;除了美食那就是摄影啦&#xff0c;那我就创建个皮卡丘吧&#xff0c;就决定是你啦&#xff0c;摄影皮卡丘&#xff01; 一、创建智能体 那怎么创建一个皮卡丘呢&#xff0c;那就使用…

cc2530按键中断实现控制LED

1开启中断的步骤 1-1使能端口组的中断 IEN1 IEN2 实例 IEN2 | 0x10 //使能P1口中断 1-2 端口中断屏蔽 P0IEN和P1IEN P2IEN 实例 P1IEN |0x10&#xff1b; //使能P1_2口中断 1-3设置触发方式 PICTL 实例 PICTL |0X02 ;//P1_3到P1_2口下降沿触发 1-4设置中断优先级…

解决:Vue 中 debugger 不生效

目录 1&#xff0c;问题2&#xff0c;解决2.1&#xff0c;修改 webpack 配置2.2&#xff0c;修改浏览器设置 1&#xff0c;问题 在 Vue 项目中&#xff0c;可以使用 debugger 在浏览器中开启调试。但有时却不生效。 2&#xff0c;解决 2.1&#xff0c;修改 webpack 配置 通…

【webpack4系列】webpack构建速度和体积优化策略(五)

文章目录 速度分析&#xff1a;使用 speed-measure-webpack-plugin体积分析&#xff1a;使用webpack-bundle-analyzer使用高版本的 webpack 和 Node.js多进程/多实例构建资源并行解析可选方案使用 HappyPack 解析资源使用 thread-loader 解析资源 多进程并行压缩代码方法一&…

掌握远程管理的艺术:揭秘Python的pywinrm库

文章目录 &#x1f525; 掌握远程管理的艺术&#xff1a;揭秘Python的pywinrm库 &#x1f525;背景&#xff1a;为何选择pywinrm&#xff1f;pywinrm库简介安装pywinrm库简单库函数使用方法场景应用常见问题与解决方案总结 &#x1f525; 掌握远程管理的艺术&#xff1a;揭秘Py…

gingivitis

gingivitis 牙龈炎 1&#xff09;这个是啥不知道 2&#xff09;七叶莲片 3&#xff09;甲硝唑芬布芬胶囊 4&#xff09;盐酸左氧氟沙星胶囊 5&#xff09;纳珍 开始学习记录医生开的药。日常备药记录一下。【不要乱吃药哈】

C++ | Leetcode C++题解之第409题最长回文串

题目&#xff1a; 题解&#xff1a; class Solution { public:int longestPalindrome(string s) {unordered_map<char, int> count;int ans 0;for (char c : s)count[c];for (auto p : count) {int v p.second;ans v / 2 * 2;if (v % 2 1 and ans % 2 0)ans;}retur…

C语言进阶版第10课—qsort函数排序

文章目录 1. 回调函数2. qsort排序函数&#xff08;定义&#xff09;3. bubble冒泡函数4. qsort函数对整型数组排序5. qsort函数对字符指针数组排序6. qsort函数对结构体数组排序7. 模拟实现qsort排序函数7.1 模拟实现排序整型数组7.2 模拟实现排序结构体数组 8. 结构体访问 1.…

数据库事务中的四大问题:脏读、脏写、不可重复读与幻读详解

数据库事务中的四大问题&#xff1a;脏读、脏写、不可重复读与幻读详解 什么是脏读 定义 事务B读取数据时&#xff0c;读取到的是事务A更新之后&#xff0c;但还未提交的数据。 事务A修改了一条数据&#xff0c;但是还没有提交时&#xff0c;事务B查询到了这条未提交的数据…

火语言RPA流程组件介绍--下拉框选择

&#x1f6a9;【组件功能】&#xff1a;勾选下拉框选项 配置预览 配置说明 丨目标元素 支持T或# 默认FLOW输入项 通过自动捕获工具捕获(选择元素工具使用方法)或手动填写网页元素的css,xpath&#xff0c;指定对应网页元素作为操作目标 丨值 支持T或# 选中目标的值&#xf…