生成式学习是用来生成有结构的复杂物件,这些复杂物件通常由一些小的元素构成:
- 文句:由 token 所构成
- 中文的 token 就是【字】
- 英文的 token 是 word piece。 unbreakable -> un break able
- 影像:由像素所组成
- 语音:由取样点所组成。16k 取样频率,每秒有16000个取样点
策略一:各个击破——每次只生成一个元素。模型:Autoregressive(AR) model。
策略二:一次到位——一次性生成所有元素。模型:Non-autoregressive(NAR) model。
各个击破 vs. 一次到位:
- 生成速度:通常一次到位策略速度更快。各个击破策略每个元素生成之前都要等前面的元素生成,时间开销大,没有办法平行化。一次到位策略只要有足够的平行运算能力,就可以把所有元素一次都生成出来。这就是为什么影像生成常常采用一次到位策略,影像的像素太多了!
- 生成品质:往往各个击破策略生成品质比较好,一次到位策略生成品质比较差。以生成文句举例(下图):各个击破策略会生成第一个元素的概率分布,假设采样到【老】,再根据第一个元素来确定后续元素生成的结果,【老】后无疑是【师】概率比较大。一次到位策略会一次性生成第一个元素和第二个元素的概率分布,然后采样,则可能生成相邻词汇之间不匹配的情况。
图片来源:李宏毅机器学习课程
总结:AR 的生成品质更好,常用于生成文句。NAR 的生成速度更快,常用于生成影像。
那有没有方法综合两种策略从而截长补短呢?有两种方法:
方法一:先用各个击破策略决定大方向,然后用一次到位策略确定最后结果。常用于语音合成。
一段语音的采样点很多,用各个击破策略生成时间开销大。一次到位策略把握生成方向能力差,生成的语音又会较模糊。
可以用各个击破策略产生一个中间产物把握大方向,再用一次到位策略把中间产物变成语音。
图片来源:李宏毅机器学习课程
方法二:一次到位策略改为 N 次到位。相当于把各个击破策略融合进了一次到位策略。
一次到位策略虽然能快速生成图像,但一次性生成的像素点之间可能存在不匹配情况,图像会非常模糊。可以把模糊的图像再通过一次到位策略变得更清楚一点,因为第一次生成图像的大方向已经决定了,之后的每次都会生成更清晰的图像。
图片来源:李宏毅机器学习课程
Diffusion Model 的基本精神就是 N 次到位策略。
标签:各个击破,策略,李宏毅,生成式,生成,学习,一次,元素,到位 From: https://www.cnblogs.com/hzyuan/p/17457498.html