U7.2 34 分鐘閱讀 2026年10月

U7.2 既要像資料,又要 reward 高:我們真正想抽哪個 distribution?

知識秘境(Beta) 第一次學這個單元?從知識秘境(Beta)開始:先想、先選,內容再一段段浮現 →

本篇重用3 篇

一個高分樣本,還是一個高分 distribution?

在 U7.1 中,我們用外部 classifier 的判斷,或模型「有 condition」與「沒有 condition」的兩個回答,調整生成方向。但假如模型訓練完後,我們才拿到一個美感評分程式,它只能看完成的圖片並打分,既沒有對應的 noisy classifier,也沒有 conditional prediction,該怎麼辦?

我們把這個打出的分數記成 R(x0)R(x_0),稱為 reward:輸入是乾淨資料,而輸出是一個數字,數字越大代表越符合這次的要求。它不一定要是個機率,也不一定能微分。

我們首先要釐清的是:它應該如何改變我們想抽的 distribution? 這才能幫助我們決定 sampling 可以怎麼做。

我們一方面希望 reward 越高越好,但又不能只顧 reward。若產生出一張 reward model 給滿分、在人眼看來卻完全不像資料的影像,這就不是一個好的 steering。這裡把「生成結果仍像原本的資料、保有合理的特徵與結構」這個要求稱為 data fidelity。如果用數學的語言說,我們同時在乎

  • reward function R(x0)R(x_0):這個樣本有多符合這次的要求;
  • log density log⁡pdata(x0)\log p_{\mathrm{data}}(x_0):值越大,表示原本資料在這個樣本附近越密集。
補充為什麼使用 log density,而不直接用 density?

回想 L5.0 中的 maximum likelihood。若乾淨樣本 x0(1),…,x0(n)x_0^{(1)},\ldots,x_0^{(n)} 獨立取自 pdatap_{\mathrm{data}},模型是 pθp_\theta,整批資料的 likelihood 與取 log 後的分數分別是

L(θ)=∏i=1npθ(x0(i)),log⁡L(θ)=∑i=1nlog⁡pθ(x0(i)).\begin{aligned} L(\theta)&=\prod_{i=1}^n p_\theta(x_0^{(i)}),\\ \log L(\theta)&=\sum_{i=1}^n\log p_\theta(x_0^{(i)}). \end{aligned}

log 把乘法變成加法,而且不改變最大 likelihood 的解。 因為 log 嚴格遞增,arg⁡max⁡θL(θ)=arg⁡max⁡θlog⁡L(θ)\arg\max_\theta L(\theta)=\arg\max_\theta\log L(\theta)。實作時直接累加 log density,也能避免先算出很小的乘積而造成數值下溢,微分則變成逐筆加總。

再除以樣本數,就從整批 likelihood 變成每筆資料的平均表現:

1nlog⁡L(θ)=1n∑i=1nlog⁡pθ(x0(i))≈Ex0∼pdata[log⁡pθ(x0)].\begin{aligned} \frac1n\log L(\theta) &=\frac1n\sum_{i=1}^n\log p_\theta(x_0^{(i)})\\ &\approx\mathbb E_{x_0\sim p_{\mathrm{data}}}[\log p_\theta(x_0)]. \end{aligned}

這個 expectation 固定真實資料的分布,平均它們在模型下的 log density;若 log density 可積分,隨著獨立樣本數增加,左邊的平均會逼近右邊。它還有一個統計上的意義:在相關期望有限時,展開 KL 的定義可得

Epdata[log⁡pθ(x0)]=Epdata[log⁡pdata(x0)]−DKL(pdata∥pθ).\begin{aligned} &\mathbb E_{p_{\mathrm{data}}}[\log p_\theta(x_0)]\\ &\quad=\mathbb E_{p_{\mathrm{data}}}[\log p_{\mathrm{data}}(x_0)]\\ &\qquad-D_{\mathrm{KL}}(p_{\mathrm{data}}\|p_\theta). \end{aligned}

第一項與 θ\theta 無關,所以最大化 expected log-likelihood,等於讓模型最小化這個 KL。

但 log 的單調性不能直接穿過期望值:E[log⁡pθ(x0)]\mathbb E[\log p_\theta(x_0)] 與 E[pθ(x0)]\mathbb E[p_\theta(x_0)] 是不同目標。例如真實資料只有 A,BA,B,比例是 0.9:0.10.9:0.1,模型給它們的機率是 q,1−qq,1-q:

目標(對真實資料取平均)最佳 qq
平均 probability
0.9q+0.1(1−q)0.9q+0.1(1-q)
11
平均 log probability
0.9log⁡q+0.1log⁡(1−q)0.9\log q+0.1\log(1-q)
0.90.9

前者只希望 qq 越大越好;後者在模型還原真實比例、KL 為零時最大。真實會出現、卻被模型分配極低機率的事件,會受到 log 很強的懲罰。

這裡的 MLE 固定資料分布、調整模型 pθp_\theta;正文則固定 pdatap_{\mathrm{data}},選擇新的抽樣分布。兩個問題使用同一個 log density 分數,但最佳化的對象不同。

用 λ>0\lambda>0 控制 reward 在兩個要求中的影響。如果只想找一個點,可以最大化 λR(x0)+log⁡pdata(x0)\lambda R(x_0)+\log p_{\mathrm{data}}(x_0)。但我們希望每次生成仍能得到不同的合理答案,所以要決定的應該是一個新的 distribution,用它的 density 同時反映 reward 與 data fidelity。我們用 p~\widetilde p 來表示這個 distribution。

要讓整個 distribution 同時偏向高 reward、
又保留原本 data distribution 的影響,我們該最大化什麼?

把 data fidelity、reward 與 diversity 放進同一個 objective

最自然的嘗試,是比較不同 distributions 生成的結果,哪一個平均表現最好。想像我們反覆從 p~\widetilde p 生成圖片,替每張計算 λR(x0)+log⁡pdata(x0)\lambda R(x_0)+\log p_{\mathrm{data}}(x_0),再把分數取平均。換一個 distribution,各種結果出現的頻率就會不同,平均分數也會跟著改變。

所以,我們要找的是讓整批平均分數最高的 p~\widetilde p,而不是某一個最高分的樣本:

max⁡p~  Ex0∼p~[λR(x0)+log⁡pdata(x0)].\max_{\widetilde p}\; \mathbb E_{x_0\sim \widetilde p} \big[\lambda R(x_0)+\log p_{\mathrm{data}}(x_0)\big].

這裡 RR、pdatap_{\mathrm{data}} 與 λ\lambda 都先固定,改變的是 p~\widetilde p。Expectation 是對它抽出的 x0x_0 取平均:我們希望平均 reward 高,平均 log density 也高。但這樣就會保留多種答案嗎?

先把相簿簡化成兩張都合理的照片 AA、BB:原本各以 1/21/2 機率出現,reward 分別是 00、11。若新的抽樣方法以機率 qq 選 BB,剛才的 objective 就是

(1−q)(0+log⁡12)+q(λ+log⁡12)=−log⁡2+λq.\begin{aligned} &(1-q)(0+\log\tfrac12)\\ &\quad+q(\lambda+\log\tfrac12)\\ &=-\log2+\lambda q. \end{aligned}

只要 λ>0\lambda>0,它就希望 qq 越大越好,最後每次都回傳 BB。兩張照片原本都合理,但這個 objective 沒有要求保留另一個答案。

少掉的要求是不要過度集中。我們用 entropy H(p~)=−Ep~[log⁡p~(x0)]H(\widetilde p)=-\mathbb E_{\widetilde p}[\log \widetilde p(x_0)] 表示這件事:過度集中在少數結果時,entropy 會較低。在期望與 entropy 有定義的情況下,把它加進目標:

max⁡p~  Ep~[λR(x0)+log⁡pdata(x0)]+H(p~).\max_{\widetilde p}\; \mathbb E_{\widetilde p}\big[\lambda R(x_0)+\log p_{\mathrm{data}}(x_0)\big] +H(\widetilde p).

因為 expectation 是 linear 的,把 entropy 展開後,三項可以放進同一個 log:

Ep~[λR(x0)+log⁡pdata(x0)]+H(p~)=Ep~[log⁡pdata(x0)eλR(x0)p~(x0)].\begin{aligned} &\mathbb E_{\widetilde p}\big[\lambda R(x_0)+\log p_{\mathrm{data}}(x_0)\big]+H(\widetilde p)\\ &\qquad=\mathbb E_{\widetilde p}\left[ \log\frac{p_{\mathrm{data}}(x_0)e^{\lambda R(x_0)}}{\widetilde p(x_0)} \right]. \end{aligned}

分子已經告訴我們如何重新加權:原本的 data density 乘上 eλR(x0)e^{\lambda R(x_0)}。但乘完後不一定積分為 11,所以先把總量記成 ZRZ_R,再除掉它,定義

ZR=∫pdata(x0)eλR(x0) dx0,pR(x0)=1ZRpdata(x0)eλR(x0).Z_R=\int p_{\mathrm{data}}(x_0)e^{\lambda R(x_0)}\,\mathrm dx_0, \qquad p_R(x_0)=\frac{1}{Z_R}p_{\mathrm{data}}(x_0)e^{\lambda R(x_0)}.

把 pdataeλR=ZRpRp_{\mathrm{data}}e^{\lambda R}=Z_Rp_R 代回去:

Ep~[log⁡pdataeλRp~]=log⁡ZR+Ep~[log⁡pRp~]=log⁡ZR−DKL(p~∥pR).\begin{aligned} \mathbb E_{\widetilde p}\left[ \log\frac{p_{\mathrm{data}}e^{\lambda R}}{\widetilde p} \right] &=\log Z_R+\mathbb E_{\widetilde p}\left[\log\frac{p_R}{\widetilde p}\right]\\ &=\log Z_R-D_{\mathrm{KL}}(\widetilde p\|p_R). \end{aligned}

ZRZ_R 由 base distribution、reward 與 λ\lambda 決定,不隨我們正在選的 p~\widetilde p 改變。假設 0<ZR<∞0<Z_R<\infty,KL 非負且在 p~=pR\widetilde p=p_R 時為零,所以這個 objective 的最佳解是

pR(x0)=1ZRpdata(x0)eλR(x0).\boxed{ p_R(x_0)=\frac{1}{Z_R}p_{\mathrm{data}}(x_0)e^{\lambda R(x_0)} }.

我們把原本的 data density pdata(x0)p_{\mathrm{data}}(x_0) 乘上 reward 決定的係數 eλR(x0)e^{\lambda R(x_0)},再除以 ZRZ_R,得到新的 density pR(x0)p_R(x_0)。Reward 越高,乘上的係數就越大;但新的相對權重仍由 pdata(x0)eλR(x0)p_{\mathrm{data}}(x_0)e^{\lambda R(x_0)} 共同決定,而不是只挑 reward 最大的點。 這個做法稱為 exponential tilting 或 reward tilting。

回到剛才兩張照片的例子,tilting 後的相對權重成為 1:eλ1:e^\lambda,所以 BB 被抽中的機率是 eλ/(1+eλ)e^\lambda/(1+e^\lambda)。它更常出現,但有限的 λ\lambda 沒有把 AA 完全刪掉。連續資料做的是同一件事,只是對整片 density 重新加權。

這裡的 pdatap_{\mathrm{data}} 是理想的 base distribution。實作時,我們只能使用 pretrained model 學到的 pθp_\theta 或它的 score;因此 steering 能逼近的是以 learned model 為 base 的 tilted distribution,原本的 model error 並不會因此消失。

課堂提問Q1

既然我們在乎的就是 reward 與 log density,把 entropy H(p~)H(\widetilde p) 拿掉,直接最大化兩個 expectation,不是更單純嗎?

先想一想,再展開看整理後的答案

拿掉 entropy 後,objective 對 p~\widetilde p 是 linear 的。令 F(x0)=λR(x0)+log⁡pdata(x0)F(x_0)=\lambda R(x_0)+\log p_{\mathrm{data}}(x_0),則

max⁡p~ Ep~[F(x0)]\max_{\widetilde p}\ \mathbb E_{\widetilde p}[F(x_0)]

在離散情況會把全部 mass 放到 FF 最大的點;若有多個並列最大點,才可能分到它們上面。在連續 density 的情況,則可能只能越來越集中、逼近這個極限。這是在找最高分區域,不是在保留其他合理答案。

剛才 AA、BB 的例子已經看到這個差別。只最大化平均分數,不會得到正文的 pRp_R;加入 entropy,才把「保留其他可能答案」一起放進我們要解的問題。

補充同一個 tilted distribution,在論文裡還有哪些常見寫法?

先把正文的 objective 展成三項。固定 reward、base distribution 與 λ>0\lambda>0,我們要在不同的 p~\widetilde p 之間最大化

max⁡p~λEp~[R(x0)]+Ep~[log⁡pdata(x0)]+H(p~).\begin{aligned} \max_{\widetilde p}\quad &\lambda\mathbb E_{\widetilde p}[R(x_0)]\\ &+\mathbb E_{\widetilde p}[\log p_{\mathrm{data}}(x_0)]\\ &+H(\widetilde p). \end{aligned}

下面的比較沿用正文的條件:相關期望與 entropy 有限,且 0<ZR<∞0<Z_R<\infty。我們逐一看,它們如何回到這三項。

KL-regularized reward maximization:

這個寫法把「原本的 log density」與「新 distribution 的 entropy」合成一個 KL 項。把 KL 的定義展開,就看得到:

DKL(p~∥pdata)=Ep~[log⁡p~(x0)pdata(x0)]=−H(p~)−Ep~[log⁡pdata(x0)].\begin{aligned} &D_{\mathrm{KL}}(\widetilde p\|p_{\mathrm{data}})\\ &\quad=\mathbb E_{\widetilde p}\left[ \log\frac{\widetilde p(x_0)}{p_{\mathrm{data}}(x_0)} \right]\\ &\quad=-H(\widetilde p)\\ &\qquad-\mathbb E_{\widetilde p}[\log p_{\mathrm{data}}(x_0)]. \end{aligned}

因此,正文後兩項就是 −DKL(p~∥pdata)-D_{\mathrm{KL}}(\widetilde p\|p_{\mathrm{data}})。再把整個 objective 除以正的常數 λ\lambda,不會改變最佳的 p~\widetilde p,就得到

max⁡p~Ep~[R(x0)]−1λDKL(p~∥pdata).\begin{aligned} \max_{\widetilde p}\quad &\mathbb E_{\widetilde p}[R(x_0)]\\ &-\frac1\lambda D_{\mathrm{KL}}(\widetilde p\|p_{\mathrm{data}}). \end{aligned}

所以它不是另外一個目標:正文的「log density + entropy」,正好就是限制新 distribution 偏離 base 的 KL penalty。 λ\lambda 越大,這個寫法中的 KL 懲罰係數 1/λ1/\lambda 越小,相對上更重視 reward。

Constrained formulation:

另一個問法是:先指定「最多能偏離 base 多少」,再在這個範圍內提高 reward。用 δ≥0\delta\ge0 表示可接受的 KL 上限:

max⁡p~Ep~[R(x0)]條件:DKL(p~∥pdata)≤δ.\begin{aligned} \max_{\widetilde p}\quad &\mathbb E_{\widetilde p}[R(x_0)]\\ \text{條件:}\quad &D_{\mathrm{KL}}(\widetilde p\|p_{\mathrm{data}})\le\delta. \end{aligned}

要把限制放進 objective,可以用 1/λ1/\lambda 作為 Lagrange multiplier,也就是限制的懲罰係數,扣掉 1λ(DKL−δ)\frac1\lambda(D_{\mathrm{KL}}-\delta)。展開後是

Ep~[R(x0)]−1λDKL(p~∥pdata)+δλ.\begin{aligned} &\mathbb E_{\widetilde p}[R(x_0)]\\ &\quad-\frac1\lambda D_{\mathrm{KL}}(\widetilde p\|p_{\mathrm{data}})\\ &\quad+\frac\delta\lambda. \end{aligned}

對固定的 λ,δ\lambda,\delta,最後一項不隨 p~\widetilde p 改變,拿掉它就回到前一種 objective。但 δ\delta 與 λ\lambda 必須匹配,不能任意指定後就說兩個問題相同。

一個具體的對應是取 δ=DKL(pR∥pdata)\delta=D_{\mathrm{KL}}(p_R\|p_{\mathrm{data}})。因為 pRp_R 已是 KL-regularized objective 的最佳解,對任何符合 KL 上限的 p~\widetilde p,都有

Ep~[R(x0)]≤EpR[R(x0)]+1λ(DKL(p~∥pdata)−δ)≤EpR[R(x0)].\begin{aligned} \mathbb E_{\widetilde p}[R(x_0)] &\le\mathbb E_{p_R}[R(x_0)]\\ &\quad+\frac1\lambda\bigl( D_{\mathrm{KL}}(\widetilde p\|p_{\mathrm{data}})-\delta \bigr)\\ &\le\mathbb E_{p_R}[R(x_0)]. \end{aligned}

第一個不等式是把前一種 objective 的最佳性移項;第二個用到 DKL≤δD_{\mathrm{KL}}\le\delta。所以在這個對應下,pRp_R 也讓 constrained problem 的 reward 最大。這是懲罰強度與偏離上限之間的關係,不是任意 constraint 都自動得到同一個 pRp_R。

Bayesian posterior:

假如手上只有一張模糊照片 yy,候選的清楚照片是 x0x_0,我們還希望它經過量測後能符合 yy。此時 p(y∣x0)p(y\mid x_0) 描述這個候選對觀測的支持程度;選它的 log-likelihood 當 reward,並令 λ=1\lambda=1:

R(x0)=log⁡p(y∣x0).R(x_0)=\log p(y\mid x_0).

現在把這個選擇代進正文的 tilted density,而不是另外假設一個 posterior:

pR(x0)∝pdata(x0)eR(x0)=pdata(x0)p(y∣x0)∝p(x0∣y).\begin{aligned} p_R(x_0) &\propto p_{\mathrm{data}}(x_0)e^{R(x_0)}\\ &=p_{\mathrm{data}}(x_0)p(y\mid x_0)\\ &\propto p(x_0\mid y). \end{aligned}

第二行用 elog⁡p(y∣x0)=p(y∣x0)e^{\log p(y\mid x_0)}=p(y\mid x_0),第三行就是 Bayes rule:base distribution 在這裡是 prior,reward 的指數變成 measurement likelihood。 正文的 normalization 也變成

ZR=∫pdata(x0)p(y∣x0) dx0=p(y).\begin{aligned} Z_R &=\int p_{\mathrm{data}}(x_0)p(y\mid x_0)\,\mathrm dx_0\\ &=p(y). \end{aligned}

因此在 0<p(y)<∞0<p(y)<\infty 時,正規化後恰好是 pR(x0)=p(x0∣y)p_R(x_0)=p(x_0\mid y),也就是 posterior sampling。這個解釋使用指定的量測模型;yy 是 observation,一般的類別或文字 condition 仍寫成 cc。

RLHF:

把情境換成語言模型。RLHF(Reinforcement Learning from Human Feedback)用人類偏好提供 reward 訊號;固定一個 prompt 後,x0x_0 是 response,prefp_{\mathrm{ref}} 是固定的 reference model 產生回答的 distribution。這種產生回答的分布也稱為 policy,我們要調整的 policy 仍記成 p~\widetilde p;下面省略固定 prompt 的條件。

Ouyang 等人 [4] 的目標包含提高 reward、同時限制偏離 reference policy 的部分。以我們的符號寫成

max⁡p~Ep~[R(x0)]−βDKL(p~∥pref),β>0.\begin{aligned} \max_{\widetilde p}\quad &\mathbb E_{\widetilde p}[R(x_0)]\\ &-\beta D_{\mathrm{KL}}(\widetilde p\|p_{\mathrm{ref}}), \qquad\beta>0. \end{aligned}

用前面展開的 KL 定義,再把整個 objective 除以 β\beta,就得到

max⁡p~1βEp~[R(x0)]+Ep~[log⁡pref(x0)]+H(p~).\begin{aligned} \max_{\widetilde p}\quad &\frac1\beta\mathbb E_{\widetilde p}[R(x_0)]\\ &+\mathbb E_{\widetilde p}[\log p_{\mathrm{ref}}(x_0)]\\ &+H(\widetilde p). \end{aligned}

逐項和最上面的正文 formulation 比較:base 換成 prefp_{\mathrm{ref}},reward 係數換成 λ=1/β\lambda=1/\beta,entropy 項沒有變。 因此在理想的分布最佳化下,最佳 policy 同樣滿足 p~(x0)∝pref(x0)eR(x0)/β\widetilde p(x_0)\propto p_{\mathrm{ref}}(x_0)e^{R(x_0)/\beta}。

這裡只比較 reward 與 KL 的部分;原論文的 PPO-ptx 還加入預訓練資料項。實際 RLHF 會訓練 policy 的參數,本單元則固定 pretrained model、在 sampling 時 steering;共同的是 objective 的結構,不是訓練與取樣的流程。

若 reward 可以微分,直接把 gradient 加上去嗎?

在乾淨資料 x0x_0 端(t=0t=0),tilted distribution pRp_R 的 score functions 可以寫成:

∇x0log⁡pR(x0)=∇x0log⁡pdata(x0)+λ∇x0R(x0).\nabla_{x_0}\log p_R(x_0) =\nabla_{x_0}\log p_{\mathrm{data}}(x_0) +\lambda\nabla_{x_0}R(x_0).

這裡 ∇x0R\nabla_{x_0}R 指向「稍微改動乾淨樣本,reward 上升最快」的方向。它可以加到乾淨資料的 score;例如在乾淨空間用 score 建立抽樣 dynamics 時,這就是要用的方向。Classifier guidance 在 λ=1\lambda=1 時,也可看成選 R(x0)=log⁡p(c∣x0)R(x_0)=\log p(c\mid x_0) 的特例。

但 diffusion sampling 大部分時間拿到的是 noisy xtx_t,reward 卻通常定義在 clean sample x0x_0。回想 U7.1 那張尚未畫完的草稿:同一個模糊輪廓,可能完成為不同的品種、動作與場景;它們最後的 reward 也不同。要判斷這張草稿值不值得保留,就得一起考慮這些可能結果,而不是假裝它已經是一張完成的圖片。

我們想知道的,是高 reward 的乾淨結果加噪後,會如何分布在這些 xtx_t 上。從 pRp_R 抽乾淨資料,再沿用 U1 的 forward process 加噪,就得到目標 noisy density ptRp_t^R。若 q(xt∣x0)q(x_t\mid x_0) 是原本加噪的 conditional density,這個平均寫成

ptR(xt)=∫q(xt∣x0)pR(x0) dx0.p_t^R(x_t)=\int q(x_t\mid x_0)p_R(x_0)\,\mathrm dx_0.

把 pRp_R 的定義代進去:

ptR(xt)=1ZR∫q(xt∣x0)pdata(x0)eλR(x0) dx0.(1)p_t^R(x_t) =\frac{1}{Z_R}\int q(x_t\mid x_0) p_{\mathrm{data}}(x_0)e^{\lambda R(x_0)}\,\mathrm dx_0.\tag{1}

接下來,我們希望把目標 density ptRp_t^R 和原本的 base density ptp_t 接起來。Pretrained model 已經在近似 ptp_t 的 score;我們想看看,能不能利用模型學到的東西,再結合 reward,算出 ptRp_t^R 的 score。

我們可以先在積分裡乘除 pt(xt)p_t(x_t)。被積分的前兩項 q(xt∣x0)pdata(x0)q(x_t\mid x_0)p_{\mathrm{data}}(x_0) 除以它,Bayes rule 就給出

q(xt∣x0)pdata(x0)pt(xt)=p(x0∣xt).(2)\frac{q(x_t\mid x_0)p_{\mathrm{data}}(x_0)}{p_t(x_t)} =p(x_0\mid x_t).\tag{2}

p(x0∣xt)p(x_0\mid x_t) 的意思是:看到目前的 noisy state xtx_t 後,原本可能來自哪些乾淨資料 x0x_0,以及各個來源有多可能。 這是對乾淨來源的 conditional density,也叫 posterior density。

有了它,如果想估計目前這個 xtx_t 的 reward,最自然的方法就是考慮所有可能的乾淨來源 x0x_0,把它們的 R(x0)R(x_0) 按照 p(x0∣xt)p(x_0\mid x_t) 加權取平均:

E[R(x0)∣xt]=∫R(x0)p(x0∣xt) dx0.\mathbb E[R(x_0)\mid x_t] =\int R(x_0)p(x_0\mid x_t)\,\mathrm dx_0.

不過,我們現在要算的是 tilted density ptRp_t^R,它用 eλR(x0)e^{\lambda R(x_0)},而不是 R(x0)R(x_0) 來重新加權。因此,回到剛才的積分,同樣的 posterior 平均要作用在這個係數上:

ht(xt):=∫eλR(x0)p(x0∣xt) dx0=E ⁣[eλR(x0)∣xt].h_t(x_t):=\int e^{\lambda R(x_0)}p(x_0\mid x_t)\,\mathrm dx_0 =\mathbb E\!\left[e^{\lambda R(x_0)}\mid x_t\right].

回到前面得到的 ptRp_t^R 積分式(1):

ptR(xt)=1ZR∫q(xt∣x0)pdata(x0)eλR(x0) dx0.p_t^R(x_t) =\frac{1}{Z_R}\int q(x_t\mid x_0) p_{\mathrm{data}}(x_0)e^{\lambda R(x_0)}\,\mathrm dx_0.

利用式(2)的 Bayes rule,再把不隨 x0x_0 改變的 pt(xt)p_t(x_t) 提到積分外,就能接上 hth_t 的定義:

ptR(xt)=pt(xt)ZR∫eλR(x0)p(x0∣xt) dx0=pt(xt)ht(xt)ZR.p_t^R(x_t)=\frac{p_t(x_t)}{Z_R}\int e^{\lambda R(x_0)}p(x_0\mid x_t)\,\mathrm dx_0=\frac{p_t(x_t)h_t(x_t)}{Z_R}.

現在像 U7.1 一樣取 log、對 xtx_t 微分;因為 ZRZ_R 不隨 xtx_t 改變,所以我們得到:

∇xtlog⁡ptR(xt)=st(xt)+∇xtlog⁡ht(xt).\boxed{ \nabla_{x_t}\log p_t^R(x_t) =s_t(x_t)+\nabla_{x_t}\log h_t(x_t) }.

也就是說,我們可以在原本 pretrained model 估計的 score function 上,加上 ∇xtlog⁡ht(xt)\nabla_{x_t}\log h_t(x_t) 來影響原本的生成軌跡,steer samples 往 target distribution pRp_R 的方向走。

Reward 重加權乾淨端的 density,noisy state 的 guidance 則來自 reward 權重的 posterior average

圖:reward 重加權乾淨端的機率;在 noisy state 上,hth_t 先對所有可能來源的 eλRe^{\lambda R} 取 posterior average。枝線表示後驗可能性,不是生成軌跡。

補充Exact tilted sampling 還需要匹配起始的 noisy distribution

和 U7.1 一樣,精確方向還需要配合正確的起始 distribution。Sampling 從 t=Tt=T 往回走;要走過目標的 ptRp_t^R,起點也得從 pTRp_T^R 抽,而不一定是原本的 pTp_T。剛才的推導在 t=Tt=T 也成立:

pTR(xT)=pT(xT)hT(xT)ZR.p_T^R(x_T)=\frac{p_T(x_T)h_T(x_T)}{Z_R}.

想像不管原圖是貓、狗,還是其他內容,加噪到 t=Tt=T 後都服從同一個 noise distribution。這就是 forward process「完全忘掉 x0x_0」:q(xT∣x0)=pT(xT)q(x_T\mid x_0)=p_T(x_T),不再依賴原圖,xTx_T 與 x0x_0 也就獨立了。

因此,看到 xTx_T 不會再提供原圖的線索。代入式(2)的 Bayes rule,分子與分母的 pT(xT)p_T(x_T) 抵消,posterior 就回到原本的 data density:

p(x0∣xT)=pdata(x0).p(x_0\mid x_T)=p_{\mathrm{data}}(x_0).

這時 hTh_T 的 posterior 平均,就變成對原本整個 data distribution 的平均。用剛才的 posterior 代入 hTh_T 的定義:

hT(xT)=∫eλR(x0)pdata(x0) dx0=ZR.\begin{aligned} &h_T(x_T)\\ &=\int e^{\lambda R(x_0)}p_{\mathrm{data}}(x_0)\,\mathrm dx_0\\ &=Z_R. \end{aligned}

最後一行正好是前面 ZRZ_R 的定義。把它代回起點的 density,兩個 ZRZ_R 就會相消:

pTR(xT)=pT(xT)ZRZR=pT(xT).p_T^R(x_T)=\frac{p_T(x_T)Z_R}{Z_R}=p_T(x_T).

在這個條件下,我們就可以沿用原本的 pTp_T 作為生成起點。但有限的 noise level 可能仍留著原圖的些許訊息;看起來像 Gaussian noise,不等於已經和 x0x_0 獨立。 此時 hT(xT)h_T(x_T) 不一定等於 ZRZ_R,pTRp_T^R 也就不一定和 pTp_T 相同。

所以,直接沿用原 Gaussian 起點,也可能有起始 distribution 的 approximation。這和 guidance 的估計誤差是兩件事:一個是起點的 distribution 沒對上,一個是途中使用的方向沒估準。

實作上的近似,近似的是哪一項?

回顧一下,ht(xt)h_t(x_t) 是固定目前的 noisy state xtx_t,把所有可能的乾淨來源 x0x_0 所對應的 reward 權重 eλR(x0)e^{\lambda R(x_0)},按照 posterior p(x0∣xt)p(x_0\mid x_t) 取平均。因此,要算出它,就得對這些 x0x_0 進行積分:

ht(xt)=E ⁣[eλR(x0)∣xt]=∫eλR(x0)p(x0∣xt) dx0.\begin{aligned} h_t(x_t) &=\mathbb E\!\left[e^{\lambda R(x_0)}\mid x_t\right]\\ &=\int e^{\lambda R(x_0)}p(x_0\mid x_t)\,\mathrm dx_0. \end{aligned}

但我們不知道完整的 pdata(x0)p_{\mathrm{data}}(x_0),也就沒有一份可直接代入積分的完整 posterior p(x0∣xt)p(x_0\mid x_t)。Pretrained model 雖然能估計 score 或 noise,卻不直接給出這個 posterior;這個平均通常還是算不出來。

既然精確地算出 ht(xt)h_t(x_t) 很困難,有沒有可以近似的方法呢?

我們可以先試著替目前的 xtx_t 找一個乾淨結果的估計,再用它來評估 reward。還記得 U1.3 的 Tweedie formula 嗎?只要 signal 尚未完全消失(αˉt>0\bar\alpha_t>0),它就讓我們不必跑完整條 reverse process,而能從 xtx_t 與理想 score st(xt)s_t(x_t) 直接得到乾淨端的 posterior mean:

E[x0∣xt]=xt+σt2st(xt)αˉt.\mathbb E[x_0\mid x_t] =\frac{x_t+\sigma_t^2s_t(x_t)}{\sqrt{\bar\alpha_t}}.

把理想 score 換成 pretrained model 的估計 st(xt)≈−ϵθ(xt,t)/σts_t(x_t)\approx-\epsilon_\theta(x_t,t)/\sigma_t,就得到

x^0(xt,t)=xt−σtϵθ(xt,t)αˉt.\hat x_0(x_t,t) =\frac{x_t-\sigma_t\epsilon_\theta(x_t,t)}{\sqrt{\bar\alpha_t}}.

分子先扣掉預測 noise,分母再還原 signal amplitude。

有了這個估計,我們可以先用單一的 x^0\hat x_0 代表所有可能的乾淨結果,交給 reward function 評分。這就把原本的 posterior 平均 ht(xt)h_t(x_t) 用 eλR(x^0(xt,t))e^{\lambda R(\hat x_0(x_t,t))} 來近似:

ht(xt)≈eλR(x^0(xt,t)).h_t(x_t) \approx e^{\lambda R(\hat x_0(x_t,t))}.

這類先估計 x^0\hat x_0,再把它代入 reward 權重的做法,被叫做一種 plug-in estimation(代入估計),也可以稱為 plug-in approximation。這個近似手法在 test-time guidance 的研究中很常見 [1, 5]。

取 log-gradient 後,我們得到 guidance term 的近似:

∇xtlog⁡ht(xt)≈λ∇xtR(x^0(xt,t)),\nabla_{x_t}\log h_t(x_t) \approx\lambda\nabla_{x_t}R(\hat x_0(x_t,t)),

這個近似方法在 Bansal 等人的論文 [1] 中被稱為 forward universal guidance。

這是在問:「稍微改動 xtx_t,它的去噪結果會怎麼變,reward 又會怎麼變?」Chain rule 把這兩個變化接起來:

∇xtR(x^0(xt,t))=(∂x^0∂xt) ⁣⊤∇x0R(x^0(xt,t)).\nabla_{x_t}R(\hat x_0(x_t,t)) =\left(\frac{\partial\hat x_0}{\partial x_t}\right)^{\!\top} \nabla_{x_0}R(\hat x_0(x_t,t)).

右邊先算乾淨結果的 reward gradient,再用 ∂x^0/∂xt\partial\hat x_0/\partial x_t 這個 Jacobian——各個輸入座標改動對去噪結果的影響——換回 noisy image 的方向。這裡會對固定網路的輸入微分,並不更新 θ\theta。

雖然這個方法提供了一個近似,但它不保證得到 exact tilt,因為一般來說

ht(xt)=E ⁣[eλR(x0)∣xt]≠eλR(E[x0∣xt]).\begin{aligned} h_t(x_t) &=\mathbb E\!\left[e^{\lambda R(x_0)}\mid x_t\right]\\ &\neq e^{\lambda R(\mathbb E[x_0\mid x_t])}. \end{aligned}

而用這個近似算出的 log-gradient,也不保證與 ∇xtlog⁡ht(xt)\nabla_{x_t}\log h_t(x_t) 相同。近期有一些研究試圖處理這個差距,我們把它們整理成下面的補充,有興趣的讀者可以參考一下。

補充近期研究如何處理實作 guidance 與精確 target 的差距?

問題不是只有「guidance 強度怎麼調」。我們原本需要的是 ht(xt)=E[eλR(x0)∣xt]h_t(x_t)=\mathbb E[e^{\lambda R(x_0)}\mid x_t],但實作同時可能近似了 posterior、這個平均,以及最後的取樣過程。研究可以從不同的地方處理這些誤差。

以下以 2024–2026 年的正式會議論文為主,並保留兩篇 2023 年的研究,幫助我們看清後續方法在改什麼。涉及 inverse problems 時,取 λR(x0)=log⁡p(y∣x0)\lambda R(x_0)=\log p(y\mid x_0),就回到前面講過的 Bayesian posterior;但只對某種 measurement likelihood 成立的結果,不能直接推廣成任意 reward 的保證。

(一)不要只評分平均圖片,改成平均多個可能結果的權重。

如果同一張模糊圖片可能來自不同的乾淨結果,只評分它們的平均,會漏掉這些可能性。Song 等人的 Loss-Guided Diffusion/LGD-MC(ICML 2023) [6] 改成先抽多個候選,再平均 eλRe^{\lambda R}。用本篇的符號寫,就是

x0(i)∼p^0∣t(⋅∣xt),h^t(xt)=1K∑i=1KeλR(x0(i)).\begin{aligned} x_0^{(i)}&\sim\hat p_{0\mid t}(\cdot\mid x_t),\\ \hat h_t(x_t)&=\frac1K\sum_{i=1}^K e^{\lambda R(x_0^{(i)})}. \end{aligned}

這裡的 p^0∣t\hat p_{0\mid t} 是用來近似 p(x0∣xt)p(x_0\mid x_t) 的 distribution;LGD-MC 使用以 denoiser 預測為中心、帶有指定 variance 的 Gaussian,再對 log⁡h^t\log\hat h_t 微分。它在 toy mixtures、影像與動作生成中改善了 point estimate 的結果,但 增加 KK 只會更準確地算出這個近似 distribution 下的平均,不會自動把 p^0∣t\hat p_{0\mid t} 變成真正的 posterior。原文的 total variation bound 控制的是平均權重的誤差,也不能直接當成 log-gradient 的誤差上界。

Geyfman 等人的 Calibrated Bayesian Guidance/CBG(ICML 2026) [2] 更進一步:要求候選來自 p(x0∣xt)p(x_0\mid x_t),而不是只在平均圖片旁加 Gaussian noise。對可微的取樣過程,可以直接估計平均權重的 gradient;對不可微 reward,則用它作為權重,估計 tilted score。沿用本篇的 VP forward kernel,後一種估計寫成

ωi=eλR(x0(i)),xˉ0,R=∑iωix0(i)∑iωi,stR(xt)≈αˉt xˉ0,R−xtσt2.\begin{aligned} \omega_i&=e^{\lambda R(x_0^{(i)})},\\ \bar x_{0,R}&=\frac{\sum_i\omega_i x_0^{(i)}}{\sum_i\omega_i},\\ s_t^R(x_t)&\approx \frac{\sqrt{\bar\alpha_t}\,\bar x_{0,R}-x_t}{\sigma_t^2}. \end{aligned}

也就是讓高 reward 的可能來源在平均時有較大的權重,再用 Tweedie 的關係換成 score;減掉 base score sts_t,才是要加上的 guidance。在 posterior 取樣正確、相關平均存在的條件下,K→∞K\to\infty 時這個估計會趨近正確值,但有限 KK 的比例估計一般仍有偏差。實作若用少步模型近似內層 posterior sampling,也會留下那一層誤差;代價則是每個外層 timestep 都要另外生成候選。

(二)如果仍要用 Gaussian 近似,能不能把 uncertainty 算得更好?

只保留 x^0\hat x_0,等於沒有描述「可能的 x0x_0 離這個平均有多遠」。Rissanen、Heinonen 與 Solin 的 Free Hunch(ICLR 2025) [7] 處理的是 posterior covariance Σt=Cov⁡(x0∣xt)\Sigma_t=\operatorname{Cov}(x_0\mid x_t)。例如 measurement 是 y=Ax0+ξy=Ax_0+\xi、ξ∼N(0,τ2I)\xi\sim\mathcal N(0,\tau^2I),把 posterior 近似成 Gaussian 後,積分會給出

p(y∣xt)≈N(y;Ax^0,Ct),Ct=τ2I+AΣtA⊤.\begin{aligned} p(y\mid x_t)&\approx\mathcal N(y;A\hat x_0,C_t),\\ C_t&=\tau^2I+A\Sigma_tA^\top. \end{aligned}

τ2I\tau^2I 是測量本身的 uncertainty,AΣtA⊤A\Sigma_tA^\top 則是乾淨來源還不確定所增加的 uncertainty。Free Hunch 利用資料 covariance 初始化,再利用相鄰 denoiser evaluations 的變化做低秩更新,避免直接計算完整 score Hessian。它在 linear inverse problems 中分析 covariance 不準造成的 guidance 偏差,並改善重建結果;但補上 covariance 不等於還原多峰 posterior,論文也沒有給任意 reward 的 exact sampling 保證。

另一個方向是不直接從 xtx_t 猜到乾淨端。Moufad 等人的 Midpoint Guidance/MGPS(ICLR 2025) [8] 先引入噪聲較小的中間 state,將 reverse transition 拆成「先抽這個中間 state,再經 Gaussian bridge 回到下一步」。中間 state 更接近乾淨資料,likelihood 的近似可以較容易;但從目前 state 到它的 conditional 也更難算,因此方法用 Gaussian variational distribution、最小化一個 KL 上界來折衷。它在 linear/nonlinear inverse problems 中驗證效果,仍是在取樣 surrogate posterior,而不是證明這些近似全都消失。

(三)近似 guidance 可以留下,但能不能在取樣時修正它?

想像目前的導航只是幫我們提出「可能往哪裡走」;我們也可以同時記錄,每條被提出的路在真正 target 下應有多少權重。這類方法維持多條生成軌跡,稱為 particles,逐步更新權重並重抽,稱為 sequential Monte Carlo(SMC)。重抽是按權重抽選,不是只保留最高 reward 的一條路。

Wu 等人的 Twisted Diffusion Sampler/TDS(NeurIPS 2023) [9] 就把近似 guidance 用來建立 proposal,再用包含「模型 transition/proposal」比例的 importance weights 修正。其定理要求最終的 twisting function 等於真實 likelihood、相關權重正且有界、twisting 的 log-gradient 有界,並讓 proposal variance 大於模型 transition variance 等條件。在這些條件下,particles 數量增加時,對 pretrained diffusion model 的 conditional distribution 得到一致估計。這不等於有限幾個 particles 已經精確,也不保證 pretrained model 本身就是 pdatap_{\mathrm{data}}。

Singhal 等人的 Feynman–Kac steering(ICML 2025) [10] 把這個想法推廣到一般 reward 與離散 diffusion。每步用一個 potential GtG_t 更新路徑權重,設計時要求

∏t=0TGt(xT:t)=eλR(x0).\prod_{t=0}^{T}G_t(x_{T:t})=e^{\lambda R(x_0)}.

這裡的乘積指沿著 T,T−1,…,0T,T-1,\ldots,0 每步的 potential 全部相乘。如此一來,整條模型路徑最後被乘上的,正好是我們要的 reward 權重;若改了 proposal,也要保留相應的比例修正。中間的 reward estimate 可以不精確,但最後的總權重不能任意改掉。正確的權重與適當 SMC 條件給出對模型 tilted distribution 的一致近似;有限 particles 仍可能漏掉罕見 modes,或在重抽後只剩少數不同的路徑。

Skreta 等人的 Feynman–Kac Correctors/FKC(ICML 2025) [11] 處理相關但不同的問題:就算把多個模型的 scores 混合成所設計的 density 的 score,照原本 reverse dynamics 走,也未必真的走過那組中間 distributions。他們從 Fokker–Planck equation 找出缺少的項,改用帶權重的 dynamics 與 SMC 修正,涵蓋 CFG、temperature annealing 與 product of experts。這提醒我們,不只要檢查 score 公式,也要檢查它與所選 dynamics 是否一致。 其加權表示在理想 scores/連續 dynamics 下成立;有限步、有限 particles 與 score 誤差仍要另算,且它設計的中間 path 不必就是本篇的 ptRp_t^R。

Wu 等人的 Reverse Diffusion SMC/RDSMC(NeurIPS 2025) [13] 也用 weights 修正近似 score 與離散化造成的 proposal 偏差,並在其條件下得到一致的 target estimates。差別是它的設定要求 能評估未正規化的 target density,不是只給一支 pretrained score model 加上 reward;我們這裡通常不能直接評估 pdata(x0)eλR(x0)p_{\mathrm{data}}(x_0)e^{\lambda R(x_0)},所以不能不補這個條件就直接套用。

(四)也可以不估計 ∇log⁡ht\nabla\log h_t,改成分開處理 likelihood 與 prior。

Zihui Wu 等人的 PnP-DM(NeurIPS 2024) [12] 引入輔助變數,交替進行兩個 sampling steps:一步讓結果符合 measurement likelihood;另一步使用 diffusion model 抽 Gaussian denoising posterior,而不是只回傳 denoiser mean。它使用 split Gibbs sampling,讓兩個原本纏在一起的要求分開處理。理論需要正確的條件取樣與相應假設;固定的 splitting parameter ρ>0\rho>0 對應的是擴充 target,相關條件下 ρ→0\rho\to0 才逼近原 posterior。實際的有限迭代、score 近似與 numerical solver 也各有誤差,不能把這套架構簡稱為「有限步 exact posterior sampling」。

延伸閱讀:為什麼 mode 選對了,仍可能不是 exact tilt?

Dandapanthula 與 Boffi 的 Are We Really Tilting? [3] 是 2026 年 preprint,不列入上面的正式會議論文。它分析的是用有限 conditional particles 估計 reward 平均的 guidance,不只本文的單一 posterior-mean 代入。在 Gaussian/mixture 的可分析例子中,它區分「是否走向正確 mode」與「mode 內是否過度偏移、過度縮窄」,並研究 reward damping schedule;特定 Gaussian 情況的修正,不能直接當成一般 reward 的通用解。

所以讀這些結果時,要確認三件事:它修正的是哪一層近似?保證是在增加 samples、減小步長,還是特殊模型的條件下成立?target 是真實資料的 pRp_R,還是 pretrained model 所定義的 tilted distribution? Reward 上升,是評分變好;是否抽到指定的 distribution,則是另一個要檢查的問題。

消化一下

想一想

為什麼 reward-tilted distribution 要含有 pdata(x0)p_{\mathrm{data}}(x_0)?

想一想

在 noisy state xtx_t 上,exact reward guidance 是哪一項?

想一想

將 hth_t 近似成 eλR(x^0)e^{\lambda R(\hat x_0)} 時,最主要省掉了什麼?

參考文獻

  1. Bansal, A. et al. Universal Guidance for Diffusion Models. 2023, §3.1, Eq. (6).(對 denoised prediction 使用可微 guidance,原文稱為 forward universal guidance,並引用更早的 DPS。)
  2. Geyfman, D. et al. Calibrated Test-Time Guidance for Bayesian Inference. ICML 2026, §5, Eqs. (16), (20).(從 conditional samples 建立 gradient-based/gradient-free 一致估計;§5.3 討論內層取樣的成本與近似。)
  3. Dandapanthula, S., Boffi, N. M. Are We Really Tilting? The Mechanics of Reward Guidance in Flow and Diffusion Models. 2026, preprint.(有限 conditional particles 的 mode selection、mode 內偏差與 damping 分析;不標為已正式發表的會議論文。)
  4. Ouyang, L. et al. Training Language Models to Follow Instructions with Human Feedback. NeurIPS 2022, §3.5, Eq. (2).(RLHF 的 reward 與 KL 部分;PPO-ptx 另包含預訓練資料項。)
  5. Chung, H. et al. Diffusion Posterior Sampling for General Noisy Inverse Problems. ICLR 2023, §3.1.(Preprint 首次公開於 2022-09-29;使用 Tweedie 的 posterior mean 近似 measurement likelihood。)
  6. Song, J. et al. Loss-Guided Diffusion Models for Plug-and-Play Controllable Generation. ICML 2023, §4.3, Eq. (9), Proposition 4.1.(LGD-MC 使用近似 posterior 下的多候選平均;其平均權重 bound 不直接保證 gradient 正確。)
  7. Rissanen, S., Heinonen, M., Solin, A. Free Hunch: Denoiser Covariance Estimation for Diffusion Models Without Extra Costs. ICLR 2025, §§3.1–3.7.(利用資料 covariance 與 denoiser evaluations 更新 posterior covariance,應用於 linear inverse problems。)
  8. Moufad, B. et al. Variational Diffusion Posterior Sampling with Midpoint Guidance. ICLR 2025, §3, Lemma 3.1.(MGPS 的 midpoint decomposition、Gaussian variational approximation 與 surrogate posterior。)
  9. Wu, L. et al. Practical and Asymptotically Exact Conditional Sampling in Diffusion Models. NeurIPS 2023, §3, Appendix A.5, Theorem 2.(TDS 保留近似 proposals,以 SMC weights 修正;一致性對應模型的 conditional distribution。)
  10. Singhal, R. et al. A General Framework for Inference-time Scaling and Steering of Diffusion Models. ICML 2025, §3.3, Eq. (5), Algorithm 1.(FK steering 的總 potential 條件、proposal correction 與 reward-tilted model distribution。)
  11. Skreta, M. et al. Feynman-Kac Correctors in Diffusion: Annealing, Guidance, and Product of Experts. ICML 2025, §§2.2–3.2.(從 target density 的 PDE 導出加權 dynamics,修正直接混合 scores 所缺少的項。)
  12. Wu, Z. et al. Principled Probabilistic Imaging using Diffusion Models as Plug-and-Play Priors. NeurIPS 2024, §§2–3, Theorem 3.1.(PnP-DM 的 split Gibbs formulation、Gaussian denoising posterior step,以及 splitting/score/取樣誤差的區別。)
  13. Wu, L. et al. Reverse Diffusion Sequential Monte Carlo Samplers. NeurIPS 2025, §§2–3.(可評估未正規化 target density 的設定;與只有 pretrained score 的 reward guidance 不同。)