avatar
文章
37
標籤
19
分類
4

首頁
歸檔
標籤
分類
友鏈
開往
極東晝寢愛好家
首頁
歸檔
標籤
分類
友鏈
開往

極東晝寢愛好家

笔记|Score-based Generative Models(一):基础理论
發表於2024-07-02|Notes
这篇文章应该属于 Diffusion Models 系列的一个番外篇,虽然基于分数的生成模型包括了一系列比较复杂的研究,不过之所以写这篇博客是为了给 score-based diffusion models 的学习做准备,所以应该不会面面俱到,主要还是介绍基础知识。 正式开始介绍之前首先解答一下这个问题:score-based 模型是什么东西,微分方程在这个模型里到底有什么用?我们知道生成模型基本都是从某个现有的分布中进行采样得到生成的样本,为此模型需要完成对分布的建模。根据建模方式的不同可以分为隐式建模(例如 GAN、diffusion models)和显式建模(例如 VAE、normalizing flows)。和上述的模型相同,score-based 模型也是用一定方式对分布进行了建模。具体而言,这类模型建模的对象是概率分布函数 log 的梯度,也就是 score function,而为了对这个建模对象进行学习,需要使用一种叫做 score matching 的技术,这也是 score-based 模型名字的来源。至于第二个问题,微分方程的作用本篇文章暂时不介绍,下一篇文章再进行 ...
笔记|扩散模型(三):Improved DDPM 理论与实现
發表於2024-06-24|Notes
论文链接:Improved Denoising Diffusion Probabilistic Models 在前边两篇文章中我们学习了 DDPM 和 DDIM,这篇文章介绍的是 Improved DDPM,是一个针对 DDPM 生成效果进行改进的工作。 虽然 DDPM 在生成任务上取得了不错的效果,但如果使用一些 metric 对 DDPM 进行评价,就会发现其虽然能在 FID 和 Inception Score 上获得不错的效果,但在负对数似然(Negative Log-likelihood,NLL)这个指标上表现不够好。根据 VQ-VAE2 文章中的观点,NLL 上的表现体现的是模型捕捉数据整体分布的能力。而且有工作表明即使在 NLL 指标上仅有微小的提升,就会在生成效果和特征表征能力上有很大的提升。 Improved DDPM 主要是针对 DDPM 的训练过程进行改进,主要从两个方面进行改进: 不使用 DDPM 原有的固定方差,而是使用可学习的方差; 改进了加噪过程,使用余弦形式的 Scheduler,而不是线性 Scheduler。 可学习的方差 我们知道 DDPM ...
笔记|扩散模型(二):DDIM 理论与实现
發表於2024-06-12|Notes
论文链接:Denoising Diffusion Implicit Models 在上一篇文章中我们进行了 DDPM 的理论推导,并且自己编写代码实现了 DDPM 的训练和采样过程。虽然取得了还不错的效果,但 DDPM 有一个非常明显的问题:采样过程很慢。因为 DDPM 的反向过程利用了马尔可夫假设,所以每次都必须在相邻的时间步之间进行去噪,而不能跳过中间步骤。原始论文使用了 1000 个时间步,所以我们在采样时也需要循环 1000 次去噪过程,这个过程是非常慢的。 为了加速 DDPM 的采样过程,DDIM 在不利用马尔可夫假设的情况下推导出了 diffusion 的反向过程,最终可以实现仅采样 20~100 步的情况下达到和 DDPM 采样 1000 步相近的生成效果,也就是提速 10~50 倍。这篇文章将对 DDIM 的理论进行讲解,并实现 DDIM 采样的代码。 DDPM 的反向过程 首先我们回顾一下 DDPM 反向过程的推导,为了推导出 \(q(\mathbf{x}_{t-1}|\mathbf{x}_t)\) 这个条件概率分布,DDPM 利用贝叶斯公式将其变成了先验分布的组 ...
笔记|扩散模型(一):DDPM 理论与实现
發表於2024-06-08|Notes
感谢 qq、wbs、hsh 等读者对本文提出的宝贵意见(大拍手 论文链接:Denoising Diffusion Probabilistic Models 端午假期卷一卷,开一个新坑系统性地整理一下扩散模型的相关知识。扩散模型的名字来源于物理中的扩散过程,对于一张图像来说,类比扩散过程,向这张图像逐渐加入高斯噪声,当加入的次数足够多的时候,图像中像素的分布也会逐渐变成一个高斯分布。当然这个过程也可以反过来,如果我们设计一个神经网络,每次能够从图像中去掉一个高斯噪声,那么最后就能从一个高斯噪声得到一张图像。虽然一张有意义的图像不容易获得,但高斯噪声很容易采样,如果能实现这个逆过程,就能实现图像的生成。 这个过程可以形象地用上图表示,扩散模型中有两个过程,分别是前向过程(从图像加噪得到噪音)和反向过程(从噪音去噪得到图像)。在上图中,向图像 \(\mathbf{x}_0\) 逐渐添加噪声可以得到一系列的 \(\mathbf{x}_1,\mathbf{x}_2,...,\mathbf{x}_T\),最后的 \(\mathbf{x}_T\) 即接近完全的高斯噪声,这个过程显然是比较容易 ...
笔记|Normalizing Flow 理论与实现(一):基础理论
發表於2024-05-11|Notes
Normalizing flow(标准化流)是一类对概率分布进行建模的工具,它能完成简单的概率分布(例如高斯分布)和任意复杂分布之间的相互转换,经常被用于 data generation、density estimation、inpainting 等任务中,例如 Stability AI 提出的 Stable Diffusion 3 中用到的 rectified flow 就是 normalizing flow 的变体之一。 为了便于理解,在正式开始介绍之前先简要说明一下 normalizing flow 的做法。如上图所示,为了将一个高斯分布 \(z_0\) 转换为一个复杂的分布 \(z_K\),normalizing flow 会对初始的分布 \(z_0\) 进行多次可逆的变换,将其逐渐转换为 \(z_K\)。由于每一次变换都是可逆的,从 \(z_K\) 出发也能得到高斯分布 \(z_0\)​。这样,我们就实现了复杂分布与高斯分布之间的互相转换,从而能从简单的高斯分布建立任意复杂分布。 对 diffusion models 比较熟悉的读者可能已经发现了,这个过程和 diffusi ...
技术相关|使用 Pytorch 进行分布式训练
發表於2024-03-15|Techniques
其实 Pytorch 分布式训练已经不算什么新技术了,之所以专门写一篇 blog 是因为今天训模型的时候出现了一个没见过的问题,在调试的时候发现自己平时都是用别人写好的分布式代码,没有深入研究过其中的实现细节,因此感觉有必要整理吸收一下。 最简单的数据并行 作为最简单的并行计算方式,使用 nn.DataParallel 只需要添加一行代码即可完成: 123456module = nn.DataParallel( module, # 原始模型 device_ids=None, # 使用的显卡 output_device=None, # 输出汇总的显卡 dim=0 # Batch 所在维度) 除此之外,其他的部分和单卡训练的内容基本上都相同。在使用 nn.DataParallel 进行训练时,在每次前向传播时,nn.DataParallel 会做以下几件事: 切分数据:对于输入的 Tensor,其会被沿 batch 维度切分成多份,用于输入不同的显卡;对于元组、列表、字典等类型,其会被浅拷贝 ...
技术相关|Linux 虚拟机的安全加固
發表於2023-07-12|Techniques
近期正在部署一个服务,刚刚准备开放公网端口,在开放之前先简单做一下安全加固,以我使用的 Ubuntu 22.04.1 LTS 系统为例。 ssh 加固 更换登录端口 默认的 ssh 端口为 22,为了防止端口扫描&暴力破解,我将 ssh 端口修改为 27001(以此为例)。首先编辑 /etc/ssh/sshd_config: 12# Port 22Port 27001 保存后用 service sshd restart 重启 sshd 服务,即可重置 ssh 端口。 禁用 root 登陆 随后需要禁止 root 账户登陆,首先创建普通用户:useradd -d /home/littlenyima -m littlenyima,然后使用 passwd littlenyima 为新用户创建一个密码。把用户添加到 sudo 用户组:visudo /etc/sudoers 12root ALL=(ALL:ALL) ALLlittlenyima ALL=(ALL:ALL) ALL 然后编辑 /etc/ssh/sshd_config,禁用 root 账户登陆,保存后重启 sshd 服务: ...
技术相关|对 Python built-in pprint 进行拓展
發表於2023-03-10|Techniques
把上一个阶段的工作收尾之后,终于有时间实现一些平时想实现但比较麻烦就一直懒得弄的功能。事情的起因是这样的:刚刚我正在研究 Human3.6M 数据集的标注,这个数据集的标注是一个类似 JSON 的格式。并且除了一般的 JSON 文件结构外,其中还有一些字段的值是高维 numpy 数组。我试着将其中的两项打印出来,命令行瞬间被一大堆各种各样的数值填满了。尽管 IPython Terminal 的输出有自带的格式化功能,但整个输出的格式还是被巨大的数组打乱了。 实际上我平时经常行地遇到这种问题,一般的解决方法是仿照 mmcv.parallel.collate 中的形式写一个递归打印函数,然后把诸如 np.ndarray、torch.Tensor 以及 mmcv.DataContainer 这种高维数据的 __repr__ 函数映射为一个形式类似 lambda x: f"{x.shape}, {x.dtype}" 的函数。 这种方式虽然能在一定程度上解决高维数据打印的问题,但是由于函数逻辑未经仔细考虑,打印的效果依然不是非常好,甚至在一些 corner ...
杂谈|还能不能完整听首歌了
發表於2023-02-02|Jottings
本文转载自微信公众号「鸦栖」还能不能完整听首歌了。 前段时间和同学一起去天津转了转,路上聊起已经解散的哪吒乐队和当下搞乐队面临的困境,进而提到了他的一个大学同学。这位同学坚持着在抖音平台上发一些自己弹唱的视频,并且口音有趣会聊天,直播效果不错。后来她差不多算是成为了一个小网红,目前有一百多万粉丝。 在同学的手机上我听了两段她的作品,加起来一共十几秒。听完我陷入了沉思,想当场锐评一下,但想了想感觉说出来就好像是我酸了之后开始冷嘲热讽一样,于是欲言又止。不得不承认,我确实羡慕得不行。这个人唱得怎么样呢?唱得挺好的,音准不错共鸣到位又是网红声线,作为普通人我觉得蛮不错的。有没有缺点呢?也有并且挺明显,气息不太稳(应该是腹部没怎么用力,有的地方声音发颤)并且感觉只是在复刻旋律,没什么个人特点。 当然,仅靠这十几秒很难听出来一个人真正的水平如何,直接评价某某优点某某不足未免过于武断且主观。但我能够确定的是,这不是我想象中百万粉丝的歌手唱出的歌,因此也可以说我就是酸了,怎么唱成这样就能有一百多万粉丝呢??我平时基本不用抖音,所以不是很清楚抖音平台创作者的粉丝体量。不过对比 bilibili 我 ...
杂谈|《波西米亚狂想曲》与流浪者
發表於2022-11-01|Jottings
本文转载自微信公众号「鸦栖」《波西米亚狂想曲》与流浪者。 在开始写正文之前先碎碎念几句,我的公众号又双叒重启了。前两个公众号要么半路弃坑,要么因为想重新规划而注销了,最近又开始想写一些东西,希望这个号可以存活得久一点(x) 这个公众号的名字「鸦栖」来自我在几个月之前做的一个梦:在深蓝色的天空下是铁红色的土地,三个戴着乌鸦面具、身穿皮制长袍的人围着篝火起舞。木柴猛烈燃烧噼啪作响,冒出的火星随着热空气升腾起来。(虽然乌鸦面具是欧洲某个时代的医生的装束,但这个场景更像是某种古老的神秘宗教仪式) 醒来后我便想到了一个与渡鸦有关的名字,但一搜发现已经被注册成商标了,于是我在那个名字的基础上稍作调整变成了现在这个样子。 昨天在学院的晚会上唱了《波西米亚狂想曲》,这首歌有一点难,对于我来说也是一个比较大的挑战。虽然作为乐手上台我已经习以为常,但作为歌手上台演出这还是第一次。一直以来我对歌手的印象都是:只要上台别把词忘了就是成功,但当我自己面对一个舞台的时候,我发现歌手需要考虑的事情也非常多。 不同于在 KTV 想到哪唱到哪,歌手在舞台上不仅需要考虑自己的唱法、真假音切换等一系列技术性问题,还要 ...
1234
avatar
LittleNyima
文章
37
標籤
19
分類
4
Follow Me
公告
欢迎来到 LittleNyima 的栖息地~(偶尔出没)
最新文章
技术相关|使用 Certbot 为通配符域名签发 SSL 证书2025-05-26
开发记录|基于 CogVideoX 实现 DDIM Inversion2025-02-20
笔记|扩散模型(一八):Flow Matching 理论详解2024-09-20
笔记|扩散模型(一七):扩散模型中的 Velocity Prediction2024-09-19
笔记|扩散模型(一六):CogVideoX 论文解读|文生视频扩散模型2024-09-11
分類
  • Jottings3
  • Notes23
  • Techniques8
  • Tutorials2
標籤
Hexo Animation engine SSL Music theory Diffusion models Python Generavie models Generative models Distributed Computing Security Deep learning Github Actions Genetative models Manimgl Normalizing flow Linux Pytorch Writing Certbot
歸檔
  • 五月 20251
  • 二月 20251
  • 九月 20244
  • 八月 20246
  • 七月 20249
  • 六月 20243
  • 五月 20241
  • 三月 20241
網站資訊
文章數目 :
37
本站訪客數 :
本站總訪問量 :
最後更新時間 :
©2020 - 2025 By LittleNyima
框架 Hexo|主題 Butterfly
网站封面图作者よこ。