我在之前 ICLR 2025 的论文中提出了一种全新的生成模型「离散分布网络」(Discrete Distribution Networks)
前两天在 Hacker News 上宣传,反响热烈,竟然来到了日榜第二名,给项目的网页带来了近 1.5 万的访问量。
所以,现在想在 V2EX 也宣传交流一下~
一句话介绍:「离散分布网络」是一个原理简单、性质独特的全新生成模型,有着非常多有趣的性质。期待 DDN 能给更多人带来灵感~
PS. GitHub 五万关注者的算法大 V lucidrains 也复现了 DDN 算法: https://github.com/lucidrains/discrete-distribution-network
英文介绍: https://x.com/diyerxx/status/1978531040068321766 ( twitter 冷启动实在太难啦,求互动一下鼓励鼓励)
中文介绍: https://zhuanlan.zhihu.com/p/1935903948990047972
项目网页: https://discrete-distribution-networks.github.io/
GitHub: https://github.com/DIYer22/discrete_distribution_networks
![]() | 1 chen88ijn 2 天前 太强了,巨佬 |
![]() | 2 JoeJoeJoe PRO K-means? |
![]() | 3 Wcowin 2 天前 先收藏慢慢看 |
4 diyer22 OP @JoeJoeJoe DDN 的形式上和 k-means 比较相似,且都支持无监督聚类。但他们不同点有:算法作用(生成建模 VS 聚类)、优化目标、优化方式、DDN 的层次结构、DDN 的样本点是神经网络的 outputs 等。 所以,属于独立的两个算法。 |
![]() | 5 molvqingtai 2 天前 ![]() 虽然看不懂,但我大受震撼! |
![]() | 7 monmon 2 天前 |
8 pianjiao 2 天前 虽然看不懂,但是佬就是牛逼 |
![]() | 9 spike0100 2 天前 via iPhone 虽然不知道你在说什么,但是感觉很厉害的样子! |
![]() | 10 hikarumx 2 天前 v 站就是大佬多。 |
11 xion21 2 天前 大佬 |
![]() | 12 tanglindan6 PRO 仰望一下大佬! |
![]() | 13 irrigate2554 2 天前 是大佬 |
![]() | 14 Simon95 2 天前 ![]() 支持,x 关注了,github 星星了。我简单看了下,感觉有点像 RVQ ? |
![]() | 15 Simon95 2 天前 哇,大佬一个人创新算法,膜拜。还有请教下最近做的工作感觉,FSQ codebook usage 能到 1 ,大佬觉得 VQ-VAE codebook collapse 还是问题吗? |
16 halberd 2 天前 非常有才华的想法啊,用一棵树撑起整个特征空间。 从网络参数分配的角度讲,我感觉直观上存在这样一个问题:第 i 层网络负责的区域实际上会分散在特征空间的各处,它做的事是把负责的这一块空间再向下切分成 K 小块。也就是说每一层并不会去擅长某种类型的特征,而是专门做某一级的细分。给我一种缺乏“局部性”的感觉,好像这个专家分配并没有很优,会不会潜在地影响能力呢。 当然这是用线性的参数量去拟合指数的空间肯定会遇到的问题。默认的多层实现相当于按照树深度、也即特征空间中的位置层级来分配参数,属于一种人为、简洁有效的策略;而共享参数实现和 diffusion 类似,是把全部任务交给整个模型,让模型自己学习不同位置的策略(以 v-pred diffusion 为例,使用全部参数去完成在任意位置 x_t 上的 v_t(x_t)预测)。 |
![]() | 17 cjh1095358798 2 天前 牛批啊佬 |
![]() | 18 ik 2 天前 via iPhone 我什么身份和大佬在一个帖子 |
19 diyer22 OP @Simon95 DDN 和 VQ-VAE ( RVQ ) 明显不同。 相似之处: - 两者都把数据映射到离散的潜空间。 区别: - VQ-VAE 需要额外的先验模型(如 PixelCNN 或 transformer 先验)来建模码本的分布; DDN 自己就能构建层次离散分布,甚至可作为类似 VQ-VAE 系统的先验模型。 - DDN 的 K 个输出是随输入变化的特征; VQ-VAE 的码本是一组与输入无关、固定不变的独立参数( embedding )。 - VQ-VAE 输出二维 code index 网格 latent ; DDN 输出一维/树状结构的 latent 。 - VQ-VAE 需要 Straight-Through 梯度估计器。 - DDN 支持零样本条件生成。 因此,我认为它们挺互补的。(参见论文中的“Connections to VQ-VAE”部分。) --- 我对 VQ-VAE 不是很了解,在我看来 VQ-VAE codebook collapse 应该有很多方法能缓解,比如和 DDN 论文中 Split-and-Prune 类似的 reinitialization 的方案。(也在“Connections to VQ-VAE”部分。) |
![]() | 20 itechify PRO 虽然看不懂,但我大受震撼! |
21 diyer22 OP @halberd 感谢欣赏~ 别忘了,主干 feature 会贯穿 DDN 的每一层。也就是说,每一层的计算和特征还会为最后一层的 output 负责,而不仅仅是专门为了某一层切分成 K 小块而服务。 |
22 supemaomao 2 天前 虽然看不懂,但我大受震撼! |
23 djs 2 天前 via iPhone 大佬牛逼 |
24 gmuubyssss 2 天前 我是来为大神喝彩的。 |
25 lzjunika 1 天前 膜拜 |
26 NeedforV2 1 天前 虽然看不懂,但我大受震撼! |
![]() | 27 spacebound 1 天前 虽然看不懂,但我大受震撼! |
28 xinyu391 1 天前 看不懂 |
![]() | 29 zhaosong 1 天前 已经是另一个 level 呢吗,你这家伙 |
![]() | 30 wukaige 1 天前 |
31 TQQQ 1 天前 能应用到 TTS(语音合成)吗 |
32 diyer22 OP @TQQQ 我觉得 DDN 是具备处理 TTS 任务的能力,因为在文字条件的约束下,生成空间被大幅缩小。 建议再搭配一个自回归模型( GPT ),以获得更强的建模能力。比如把 GPT 的分类 head 换为 DDN ,应该能 work 。 |
![]() | 33 jy02534655 1 天前 原来这就是大佬的世界,我只能说 6666 |
![]() | 34 Simon95 1 天前 @diyer22 DDN 和 RVQ ( Residual vector Quantization )我觉得结合 GPT 在训练时候可能都有一个问题,就是第一层的码本(对应着 DDN 第一个 level )的重建都相当好,但其余码本的效果就比较差。 因为 DDN 好像不同 level 之间也类似于的“残差”?但是在样本空间,而不是在 latent space 。 我就是做语音的,在图像领域最新的论文( Diffusion Transformers with Representation Autoencoders )好像也表示不压缩效果更好。但用 CFM 去做生成的话,好像利用样本空间的分布直接生成的效果不是很好,而用 latent space 的分布更好,我感觉 DDN 的分布更接近于样本空间? 不知道训练的效率怎么样,我找个时间在更大的数据集上跑跑试试。 |
![]() | 35 lyxxxh2 1 天前 hacker new? 以前也听过别人贴子:"登上 Hacker News 榜第 x" 好像很水吧,随便发帖就能上的。 |
36 diyer22 OP @Simon95 - 我觉得 DDN 的情况可能是第一层重建效果会比较差(非常模糊),随着层数增加才会变得清晰。 - 虽然 DDN 是在样本空间做的采样和 “残差”,但 DDN 也可以像 latent diffusion 一样在 latent 空间做生成。(这时候的生成样本就成了 AutoEncoder 的 latent ) - 训练效率还可以,中文博客的 “附录的 Q1” 有论述。目前 DDN 的最大问题还是 latent 空间不够大,需要改进自身(方案见中文博客的“不足和改进”)或者和 GPT 结合来分段建模,缩小空间 - 欢迎尝试,遇到问题了随时提 issue ,发邮件~ |
![]() | 37 evilcat 1 天前 |