编辑
2026-01-12
技术杂谈
00

目录

课程信息:
Introduction

课程信息:

  • MIT课程
  • 我只上过微积分/概率论,希望能够以不那么数学的方式学懂

Introduction

  • 为什么我们需要概率分布去建模图片生成?
    • 对于同一个prompt, 可能合法的图片有很多,不能够单纯地区分正例负例
    • 和前一点类似,在数据集中,对于同一个prompt,有许多对应的图片,我们可以说,这些图片服从一个概率分布;由于这个概率和prompt相关,因此若想要生成的东西为zz,prompt本身是yy, 那么zpdata(y)z\sim p_{data}(·|y)
    • 为了保证生成图片的多样性,我们可以从一个初始分布pinitp_{init}出发,一步一步到达pdatap_{data},在实际操作中,我们从xpinitx\sim p_{init}中随机采样一个x0x_0, 每次对x的值进行变换再加上噪声,最终得到的xnx_n可能就符合pdatap_{data}
  • pinitp_{init}pdatap_{data}
    • 既然xx是一个向量,那么不考虑随机噪声的情况下x变换的过程其实是在一个向量场中进行运动(μt(x)\mu_t(x)代表x这一点前进的方向)
    • 我们可以列出方程dXt=μt(Xt)dtdX_t=\mu_t(X_t)dt建模这一个确定的过程
    • 在计算机模拟的时候我们可以用欧拉算法进行建模:
      • Set t=0t=0
      • Set step size h=1n\frac{1}{n}
      • Set X0=x0X_0=x_0
      • for i=1,,n1 do\textbf{for}\ i=1,\dots,n-1\ \textbf{do}
        • Xt+h=Xt+hμt(Xt)X_{t+h}=X_t+h\mu_t(X_t)
        • Update tt+ht\leftarrow t+h
      • end for\textbf{end for}
    • 现在我们希望这个变换不再是确定性的,而是在每次变换的时候也添加一定的噪声;而高斯分布是最常见的噪声,因此添加高斯噪声。布朗运动是高斯噪声对应的随机过程(神秘名词),其满足性质
      • WtWsN(0,(ts)Id)W_t-W_s\sim N(0,(t-s)I_d) 也就是它是高斯噪声的叠加
      • 由于布朗运动实际上不可导,所以我们希望能用一个不依赖导数的方程去建模它:
      • dXt=μt(Xt)dt+σtdWtdX_t=\mu_t(X_t)dt+\sigma_tdW_t(实际上不合法)对应的是Xt+h=Xt+hμt(Xt)+h(Wt+hWt)+hR(t)X_{t+h}=X_t+h\mu_t(X_t)+h(W_{t+h}-W_t)+hR(t)&&limh0E(R(t))=0lim_{h\rightarrow0}E(R(t))=0
    • 所以我们可以这样模拟:
      • Set t=0t=0
      • Set step size h=1n\frac{1}{n}
      • Set X0=x0X_0=x_0
      • for i=1,,n1 do\textbf{for}\ i=1,\dots,n-1\ \textbf{do}
        • Sample ϵN(0,Id)\epsilon \sim N(0,I_d)
        • Xt+h=Xt+hμt(Xt)+σthϵX_{t+h}=X_t+h\mu_t(X_t)+\sigma_t\sqrt{h}\epsilon h\sqrt{h}是为了保证方差为h
        • Update tt+ht\leftarrow t+h
      • end for\textbf{end for}