散橋模型RDBM:圖像恢復(fù)算法選型的新思路)
做圖像恢復(fù)算法選型那段時(shí)間我手頭有兩條管線要交差一批老照片修復(fù)一批顯微鏡熒光圖像去噪。老辦法里CNN回歸速度最快但細(xì)節(jié)像是用磨皮濾鏡磨出來(lái)的邊緣該利落的、紋理該有顆粒的都變成一坨GAN倒是銳利可它也“聰明”得過(guò)了頭放大后甚至能給已經(jīng)模糊的原圖平白加上不存在的織物經(jīng)緯線。后來(lái)我把RDBM殘差擴(kuò)散橋模型放進(jìn)候選池這些問(wèn)題才逐漸有了解法。RDBM這名字初看像又一個(gè)擴(kuò)散模型變體真正用下來(lái)你會(huì)發(fā)現(xiàn)它的設(shè)計(jì)思路跟普通擴(kuò)散恢復(fù)完全不是一個(gè)路子它不是從純?cè)肼暲铩澳X補(bǔ)”出高清圖而是把低質(zhì)量觀測(cè)圖當(dāng)作隨機(jī)橋的起點(diǎn)讓模型只需要沿著一條受控的擴(kuò)散路徑把殘差細(xì)節(jié)補(bǔ)齊。這篇文章會(huì)把原理拆開(kāi)講透同時(shí)按我復(fù)現(xiàn)和部署的經(jīng)驗(yàn)把數(shù)據(jù)怎么配、網(wǎng)絡(luò)怎么接、訓(xùn)練怎么穩(wěn)、推理怎么快一條龍說(shuō)完。適合正在為圖像恢復(fù)項(xiàng)目做算法選型的研究生、算法工程師以及想從傳統(tǒng)生成模型遷移到擴(kuò)散橋方向的開(kāi)發(fā)者。1. 圖像恢復(fù)的真正瓶頸多解博弈與“先驗(yàn)主導(dǎo)型生成”1.1 圖像恢復(fù)本質(zhì)是病態(tài)反問(wèn)題不是“磨皮”圖像恢復(fù)領(lǐng)域的任務(wù)——去噪、去模糊、超分辨率、去雨、去霧、老照片修復(fù)——在數(shù)學(xué)上可以統(tǒng)一寫成y H(x) n給定觀測(cè)到的退化圖y目標(biāo)是恢復(fù)原始清晰圖x。這是一道典型的反問(wèn)題inverse problem關(guān)鍵詞是“病態(tài)”退化算子H在很多情況下是降秩的模糊核丟掉了高頻信息下采樣直接舍棄了像素隨機(jī)噪聲不可逆。滿足觀測(cè)約束的候選x有無(wú)數(shù)多個(gè)算法本質(zhì)上是在“符合觀測(cè)的候選解集合”里挑一個(gè)答案。這個(gè)“挑一個(gè)”的過(guò)程決定了三類主流方法的氣質(zhì)差異。CNN回歸類方法從SRCNN到EDSR、SwinIR學(xué)一個(gè)從y到x的確定性映射等于對(duì)無(wú)數(shù)合法解取平均取平均的副作用就是把紋理磨平、把邊緣糊化GAN類方法從隨機(jī)噪聲z里采樣一個(gè)近似解不受平均懲罰但它在病態(tài)分量上擁有過(guò)大的自由度容易編造觀測(cè)完全不支持的細(xì)節(jié)傳統(tǒng)擴(kuò)散類方法本來(lái)是為圖像生成設(shè)計(jì)的遷移到恢復(fù)任務(wù)時(shí)起點(diǎn)是純?cè)肼暷P驮谠缙趲撞綆缀跬耆孔约旱南闰?yàn)“畫”圖觀測(cè)信息要到后半程才滲透進(jìn)來(lái)。RDBM的站位非常清晰它讓退化觀測(cè)圖y直接成為擴(kuò)散過(guò)程的初始狀態(tài)而不是讓模型從一張純?cè)肼晥D開(kāi)始推理。擴(kuò)散橋模型把起點(diǎn)從“無(wú)信息的噪聲”換成“有信息的退化圖”等于把病態(tài)反問(wèn)題的解空間從一開(kāi)始就壓縮到觀測(cè)附近模型只需要在局部自由度上做文章。1.2 傳統(tǒng)擴(kuò)散模型做恢復(fù)為什么“先驗(yàn)主導(dǎo)、路徑太長(zhǎng)”以DDPM為代表的生成式擴(kuò)散模型被遷移到恢復(fù)任務(wù)后SR3、DiffIR、Palette這類工作標(biāo)準(zhǔn)做法是訓(xùn)練階段對(duì)高質(zhì)量清晰圖逐步加噪到近似標(biāo)準(zhǔn)高斯分布推理階段從一個(gè)純?cè)肼晱埩砍霭l(fā)在去噪網(wǎng)絡(luò)的引導(dǎo)下一遍遍迭代最后得到恢復(fù)圖。這個(gè)路線有兩個(gè)先天問(wèn)題在恢復(fù)場(chǎng)景里被放得很大。先驗(yàn)主導(dǎo)。起點(diǎn)是純?cè)肼曇馕吨P驮谧畛醯膸资嚼餂](méi)有任何觀測(cè)錨點(diǎn)它只能依賴訓(xùn)練數(shù)據(jù)里學(xué)到的分布先驗(yàn)來(lái)“生成”內(nèi)容。前幾十步恰好決定圖像的全局結(jié)構(gòu)——物體形狀、紋理走向、材質(zhì)類別。等觀測(cè)信息通過(guò)conditioning慢慢生效時(shí)全局結(jié)構(gòu)已經(jīng)定下來(lái)了后面只能做局部修正。所以傳統(tǒng)條件擴(kuò)散模型做恢復(fù)結(jié)果常常是“整體像、局部瞎編”某些細(xì)節(jié)一眼看去合理放大比對(duì)照原圖會(huì)發(fā)現(xiàn)材質(zhì)和結(jié)構(gòu)對(duì)不上。采樣開(kāi)銷大。DDPM類模型一次完整推理動(dòng)輒幾百上千步而恢復(fù)任務(wù)往往要處理2K甚至4K大圖UNet在千步尺度上反復(fù)前向傳播工程上很難接受。DiffIR這類工作為了解決速度問(wèn)題加了很多工程技巧但本質(zhì)上的長(zhǎng)鏈開(kāi)銷沒(méi)有消除。還有一個(gè)隱蔽問(wèn)題對(duì)退化方式的分布非常敏感。合成退化與真實(shí)退化差異一大模型先驗(yàn)會(huì)被錯(cuò)誤激活尤其是強(qiáng)噪聲場(chǎng)景甚至出現(xiàn)“越恢復(fù)越走樣”的情況。1.3 殘差橋模型如何把多解性收斂到觀測(cè)附近RDBM的解法是把隨機(jī)過(guò)程的兩端都定義在圖像分布上起點(diǎn)是退化圖分布終點(diǎn)是清晰圖分布中間是一條可學(xué)習(xí)的隨機(jī)橋。推理時(shí)模型不需要構(gòu)造全局結(jié)構(gòu)只需要把觀測(cè)圖上的殘差區(qū)域沿著橋路徑推到高質(zhì)量一側(cè)。這個(gè)“從接近解答的地方出發(fā)”的設(shè)計(jì)帶來(lái)三個(gè)非常實(shí)際的效果。路徑短擴(kuò)散鏈不需要從純?cè)肼曌咄耆滩綌?shù)可以大幅縮減。條件強(qiáng)每一步的狀態(tài)都是“介于退化圖和清晰圖之間的圖像”觀測(cè)信息始終在數(shù)值上參與運(yùn)算而不是只靠特征層的conditioning提醒。保底機(jī)制模型預(yù)測(cè)的是殘差如果殘差接近0輸出就退化為輸入本身——這意味著即使在訓(xùn)練域之外RDBM也不會(huì)像GAN那樣毫無(wú)顧忌地改頭換面它更傾向于保守處理。提示理解RDBM建議先把思維從“生成式擴(kuò)散”切換到“受約束的隨機(jī)過(guò)渡”。它不是一個(gè)圖像生成器而是一個(gè)“圖像到圖像”的受控推演器。這個(gè)認(rèn)知對(duì)后續(xù)調(diào)參和選型比記住任何公式都重要。2. 擴(kuò)散橋與殘差機(jī)制RDBM憑何做到短鏈高保真2.1 擴(kuò)散橋不是“噪聲到圖像”而是“退化圖到清晰圖”先快速回顧普通擴(kuò)散模型的結(jié)構(gòu)否則橋的概念不好講。DDPM把數(shù)據(jù)分布和標(biāo)準(zhǔn)高斯分布用一個(gè)馬爾可夫加噪過(guò)程連接起來(lái)前向過(guò)程可以寫成x_t √(α?_t)·x? √(1-α?_t)·εε服從標(biāo)準(zhǔn)正態(tài)分布訓(xùn)練時(shí)讓UNet預(yù)測(cè)每個(gè)時(shí)間步t混入的噪聲ε或者預(yù)測(cè)x?本身推理時(shí)從純?cè)肼晉_T開(kāi)始逐步去噪最終得到一張新圖像。這個(gè)框架在生成任務(wù)里很漂亮因?yàn)樗馨褟?fù)雜的分布學(xué)習(xí)拆成一系列簡(jiǎn)單的高斯去噪任務(wù)。擴(kuò)散橋的關(guān)鍵變化是前向過(guò)程不再以“最終等于純?cè)肼暋睘槟繕?biāo)而是讓x_T趨近某個(gè)指定的目標(biāo)圖像分布起點(diǎn)和終點(diǎn)都是具體的圖像分布。放到圖像恢復(fù)里起點(diǎn)是退化圖y終點(diǎn)是清晰圖x中間過(guò)程可以理解為一條從y向x逐步插值的隨機(jī)路徑x_t (1 - t/T)·y (t/T)·x? σ_t·ε這條路徑上t越接近0狀態(tài)越像退化圖t越接近T狀態(tài)越像清晰圖帶一定噪聲擾動(dòng)。訓(xùn)練時(shí)網(wǎng)絡(luò)看到的是“退化圖與清晰圖以不同比例混合、再疊加不同強(qiáng)度噪聲”的一系列中間狀態(tài)它要學(xué)會(huì)的是給定當(dāng)前混合位置、終點(diǎn)目標(biāo)把當(dāng)前位置的殘差區(qū)域修正到更接近清晰側(cè)。用人話翻譯一下這個(gè)區(qū)別普通擴(kuò)散讓一個(gè)沒(méi)見(jiàn)過(guò)原稿的作家憑記憶寫小說(shuō)擴(kuò)散橋則是給作家一份草稿他只需要把草稿里不滿意的地方改清楚。后者的工作量和出錯(cuò)概率都小得多。2.2 殘差參數(shù)化的數(shù)學(xué)直覺(jué)與工程收益橋模型把起點(diǎn)換成退化圖網(wǎng)絡(luò)仍然需要直接估計(jì)完整恢復(fù)結(jié)果嗎RDBM在這里做了一個(gè)關(guān)鍵動(dòng)作把恢復(fù)目標(biāo)重新參數(shù)化為殘差形式。一種很直接、實(shí)踐中最常見(jiàn)的參數(shù)化方式是x_pred y R_θ(y, t)其中R_θ是網(wǎng)絡(luò)預(yù)測(cè)的殘差項(xiàng)。模型不直接輸出整張恢復(fù)圖而是輸出“退化圖與清晰圖之間的差”再把退化圖原樣加回去。這個(gè)技巧在ResNet時(shí)代就被驗(yàn)證過(guò)難的是把它跟擴(kuò)散時(shí)間步t融為一體網(wǎng)絡(luò)在每一步看到的輸入不是退化圖本身而是“帶噪聲的中間橋狀態(tài)”它預(yù)測(cè)的殘差也相應(yīng)地表示“從當(dāng)前狀態(tài)到目標(biāo)清晰圖需要補(bǔ)充的高頻信息”。這個(gè)設(shè)計(jì)帶來(lái)幾個(gè)容易被忽略的工程收益。訓(xùn)練信號(hào)更集中。退化圖和清晰圖共享的結(jié)構(gòu)、輪廓、低頻信息完全不需要模型費(fèi)勁生成有效學(xué)習(xí)信號(hào)集中在高頻細(xì)節(jié)和真實(shí)結(jié)構(gòu)上。我在訓(xùn)練時(shí)觀察到RDBM的loss在很早期就明顯低于同配置的條件擴(kuò)散模型因?yàn)槟P筒恍枰汛罅咳萘炕ㄔ凇盁o(wú)中生有”上。收斂速度更快。同樣迭代次數(shù)下殘差分支輸出的圖像質(zhì)量提升更明顯尤其在紋理密集區(qū)域毛發(fā)、織物、植被RDBM比直接預(yù)測(cè)整圖的擴(kuò)散模型更快進(jìn)入穩(wěn)定狀態(tài)。數(shù)值穩(wěn)定性更好。殘差分支天然讓輸出保持在“輸入附近”相當(dāng)于給恢復(fù)結(jié)果加了隱式約束。網(wǎng)絡(luò)出現(xiàn)奇怪的預(yù)測(cè)時(shí)退化圖作為主干仍然能兜住輸出的基本盤。2.3 為什么普通條件擴(kuò)散替代不了殘差橋有人會(huì)問(wèn)我把退化圖y作為條件輸入給普通條件擴(kuò)散模型再用殘差學(xué)習(xí)是不是就能達(dá)到一樣的效果我之前也是這么想的做了三組對(duì)照實(shí)驗(yàn)后發(fā)現(xiàn)幾個(gè)機(jī)制層面的差距很難靠調(diào)參抹平。初始化位置不同。條件擴(kuò)散仍然從純?cè)肼暢跏蓟P驮谠缙谝琅f需要先構(gòu)造全局結(jié)構(gòu)y只是作為特征層的提示信息殘差橋模型的初始化就是y本身全局結(jié)構(gòu)從一開(kāi)始就在數(shù)值上存在。這個(gè)差距在強(qiáng)退化場(chǎng)景下尤其明顯——純?cè)肼暺瘘c(diǎn)的模型會(huì)在前幾十步產(chǎn)生大量與觀測(cè)不一致的結(jié)構(gòu)后面對(duì)齊要浪費(fèi)很多步數(shù)。信息融合強(qiáng)度不同。條件擴(kuò)散把y拼在UNet輸入或者特征層里本質(zhì)是“讓網(wǎng)絡(luò)看到y(tǒng)的信息”橋模型則是讓“y的信息”直接成為每一步圖像狀態(tài)的組成部分網(wǎng)絡(luò)輸出的是狀態(tài)之間的差異。后者對(duì)觀測(cè)信息的利用強(qiáng)度高一個(gè)量級(jí)抗干擾能力也更強(qiáng)。失敗模式不同。條件擴(kuò)散在分布外退化數(shù)據(jù)上可能產(chǎn)生與輸入完全無(wú)關(guān)的結(jié)構(gòu)因?yàn)橄闰?yàn)占了主導(dǎo)殘差橋模型在極端情況下退化為“直接放大輸入”的保守結(jié)果這在專業(yè)場(chǎng)景里價(jià)值極大——寧可恢復(fù)不到位也不能編造不存在的病灶、筆畫或者人臉特征。3. 復(fù)現(xiàn)RDBM的完整路徑數(shù)據(jù)、網(wǎng)絡(luò)、訓(xùn)練與采樣3.1 配對(duì)數(shù)據(jù)的兩級(jí)構(gòu)造策略RDBM和監(jiān)督式恢復(fù)模型一樣訓(xùn)練時(shí)最關(guān)鍵的其實(shí)是配對(duì)數(shù)據(jù)。論文和開(kāi)源實(shí)現(xiàn)通常用合成退化但工業(yè)落地時(shí)建議分級(jí)構(gòu)造。第一級(jí)用于驗(yàn)證算法正確性用經(jīng)典退化合成。去噪任務(wù)加高斯噪聲強(qiáng)度按0-255域換算σ選在10、25、50三檔去模糊用高斯核核大小7到21、標(biāo)準(zhǔn)差1.5到4.0隨機(jī)采樣超分用雙三次下采樣倍率2/4/8混著來(lái)去雨去霧可以用現(xiàn)成渲染工具或大氣散射模型合成。這一級(jí)的數(shù)據(jù)干凈、可控適合先驗(yàn)證網(wǎng)絡(luò)實(shí)現(xiàn)和訓(xùn)練流程有沒(méi)有bug。第二級(jí)用于貼近真實(shí)場(chǎng)景用組合退化管線。我的做法參考Real-ESRGAN的思路模糊、下采樣、噪點(diǎn)、JPEG壓縮按隨機(jī)順序和隨機(jī)強(qiáng)度疊加。還有幾個(gè)我實(shí)測(cè)很有效的增廣隨機(jī)色偏、隨機(jī)對(duì)比度變化、隨機(jī)Gamma校正、隨機(jī)劃痕和粉塵顆粒疊加。這些“臟數(shù)據(jù)”大大提升了模型在真實(shí)場(chǎng)景的泛化能力。訓(xùn)練集如果只有純凈的高斯噪聲推到手機(jī)HDR照片、掃描儀輸出、老膠卷翻拍上會(huì)掉點(diǎn)明顯。補(bǔ)充一個(gè)細(xì)節(jié)配對(duì)GT不一定要從無(wú)到有做。真實(shí)場(chǎng)景下可以用高噪聲小圖連續(xù)幀時(shí)域平均生成偽GT或者用多尺度對(duì)齊后的多張短曝光合成一張低噪聲圖。偽GT有誤差但橋模型對(duì)訓(xùn)練標(biāo)簽的噪聲容忍度比回歸模型高一些因?yàn)殡S機(jī)橋過(guò)程本身就會(huì)引入噪聲擾動(dòng)。3.2 UNet骨干與殘差橋的接入點(diǎn)網(wǎng)絡(luò)主干建議直接沿用UNet編碼器4到5層下采樣通道數(shù)按64、128、256、512、512這個(gè)量級(jí)遞增瓶頸部分加Transformer block解碼器對(duì)稱。時(shí)間步t用Sinusoidal位置編碼再經(jīng)過(guò)一個(gè)小MLP投射到各層特征上。這個(gè)結(jié)構(gòu)在擴(kuò)散模型里被反復(fù)驗(yàn)證過(guò)穩(wěn)定好用。殘差橋的接入方式有兩種需要按工程復(fù)雜度權(quán)衡。方式A輸入層直接concat退化圖和當(dāng)前橋狀態(tài)網(wǎng)絡(luò)輸出直接加回退化圖方式B單獨(dú)建立一條殘差分支編碼器每一層解碼時(shí)都把對(duì)應(yīng)分辨率的y編碼特征疊加進(jìn)去。方式A實(shí)現(xiàn)簡(jiǎn)單、訓(xùn)練穩(wěn)定我在大部分任務(wù)上用的都是它方式B更強(qiáng)但調(diào)試成本高適合追求極致的恢復(fù)質(zhì)量時(shí)再上。幾個(gè)我踩過(guò)且不建議省掉的配置UNet里的GroupNorm數(shù)量不要省它對(duì)恢復(fù)質(zhì)量影響很大瓶頸處的Transformer block在256分辨率以下收益有限但超過(guò)512分辨率時(shí)對(duì)長(zhǎng)程結(jié)構(gòu)恢復(fù)幫助明顯殘差輸出層的初始權(quán)重建議置零或者用一個(gè)小的縮放因子0.1到0.5控制殘差幅度不然訓(xùn)練初期輸出會(huì)劇烈震蕩。3.3 損失配置、EMA與學(xué)習(xí)率調(diào)度細(xì)節(jié)RDBM的核心損失是橋目標(biāo)的加權(quán)L2殘差匹配項(xiàng)實(shí)踐中有幾個(gè)訓(xùn)練超參作為穩(wěn)定起點(diǎn)很值得抄作業(yè)。優(yōu)化器用AdamW初始學(xué)習(xí)率1e-4前2000步warm up然后cosine退火降到1e-6。批次大小8輸入分辨率256大圖用隨機(jī)裁剪的patch訓(xùn)練顯存不夠就配合gradient accumulation累計(jì)到等效batch32。訓(xùn)練迭代40萬(wàn)到60萬(wàn)步在2張A100上大約3到4天。EMA這一項(xiàng)單獨(dú)拿出來(lái)說(shuō)因?yàn)樗苯記Q定最終采樣質(zhì)量。我在實(shí)驗(yàn)里EMA權(quán)重從0.9999起步推理時(shí)只用EMA權(quán)重打樣不做任何額外過(guò)濾PSNR比不啟用EMA高0.8dB左右。EMA快照要單獨(dú)保存和主權(quán)重分開(kāi)管理否則恢復(fù)訓(xùn)練checkpoint時(shí)非常容易出錯(cuò)后面第5節(jié)詳細(xì)說(shuō)。學(xué)習(xí)率熱身期很重要。RDBM訓(xùn)練初期模型對(duì)殘差輸出的幅度非常敏感如果直接從大學(xué)習(xí)率開(kāi)始前幾千步會(huì)把殘差分支的權(quán)重推到一個(gè)很差的區(qū)域后期要花大量迭代拉回來(lái)。2000步warm up看起來(lái)很浪費(fèi)實(shí)際上換來(lái)的是整個(gè)訓(xùn)練過(guò)程的穩(wěn)定性。3.4 推理加速短鏈采樣與部署優(yōu)化RDBM訓(xùn)練時(shí)用的擴(kuò)散schedule可以設(shè)定為1000步但推理根本不需要走滿。常規(guī)做法是均勻取25到100步做反向采樣質(zhì)量下降很小。我自己在4倍超分任務(wù)上實(shí)測(cè)50步RDBM和普通條件擴(kuò)散200步的恢復(fù)質(zhì)量基本打平PSNR差距在0.3dB以內(nèi)。想進(jìn)一步加速可以試試把橋模型里的采樣子序列換成DDIM式的確定性迭代。因?yàn)闃虻臓顟B(tài)序列本身是相對(duì)連續(xù)的插值路徑確定性采樣的誤差累積比純?cè)肼旸DPM小得多。我實(shí)踐時(shí)從均勻50步跳到稀疏25步主觀視覺(jué)幾乎沒(méi)有差異只有高紋理區(qū)域的細(xì)節(jié)銳度略降。部署端如果跑不動(dòng)大模型兩條路比較實(shí)際。一是砍網(wǎng)絡(luò)UNet深度從5層降到4層、通道數(shù)減半、推理步數(shù)壓到30接受0.7dB左右的指標(biāo)損失二是轉(zhuǎn)ONNX/TensorRT做fp16推理。擴(kuò)散網(wǎng)絡(luò)的卷積層在fp16下基本不掉點(diǎn)但GroupNorm層在fp16下容易數(shù)值溢出輸出會(huì)出現(xiàn)顆粒狀彩噪。穩(wěn)妥做法是把GroupNorm算子保留為fp32或者整體換成bf16。4. 同臺(tái)橫向?qū)Ρ萊DBM在超分、去噪、修復(fù)上的真實(shí)表現(xiàn)4.1 同一測(cè)試集下的定量與效率對(duì)比復(fù)現(xiàn)時(shí)我固定了一批公開(kāi)測(cè)試圖Set5、Set14、Urban100做超分評(píng)估BSD68做去噪評(píng)估再加上自己拍攝的幾十張真實(shí)低光照照片。把RDBM和幾條主流路線放在同一個(gè)環(huán)境里跑完經(jīng)驗(yàn)數(shù)據(jù)如下方法4倍超分PSNR去噪PSNR主觀視覺(jué)1024x1024推理延遲(A100)訓(xùn)練難度EDSR/SwinIRCNN回歸較高高紋理偏糊、邊緣軟毫秒級(jí)低SRGAN類GAN一般配合感知損失中等銳利但幻覺(jué)明顯10到50ms中SR3條件擴(kuò)散高高自然偶發(fā)漂移3到8s中高DiffIR擴(kuò)散恢復(fù)高高自然鏈長(zhǎng)導(dǎo)致慢10s以上中高RDBM殘差擴(kuò)散橋與SR3相當(dāng)與SR3相當(dāng)細(xì)節(jié)更穩(wěn)、偽影更少1到3s50步中高注意這是同一環(huán)境下、特定退化參數(shù)的經(jīng)驗(yàn)值不同數(shù)據(jù)集會(huì)有波動(dòng)。趨勢(shì)是清楚的RDBM在定量指標(biāo)不輸條件擴(kuò)散的前提下把推理延遲降了一個(gè)量級(jí)并且視覺(jué)上更少出現(xiàn)“整塊織物紋理被腦補(bǔ)成別的材質(zhì)”的幻覺(jué)。4.2 RDBM真正發(fā)揮威力的任務(wù)場(chǎng)景三個(gè)任務(wù)我建議優(yōu)先試RDBM。強(qiáng)混合退化。老照片修復(fù)那種劃痕、噪點(diǎn)、模糊、色偏疊加在一起的情況CNN單一映射函數(shù)不夠用GAN又瘋狂偽造皺紋和墻皮紋理。橋模型因?yàn)槁窂蕉?、條件強(qiáng)對(duì)多種退化共存的處理更穩(wěn)輸出不會(huì)走樣。文檔掃描增強(qiáng)和醫(yī)學(xué)圖像去噪。這類場(chǎng)景對(duì)“不要捏造內(nèi)容”有極高要求——筆畫、病灶區(qū)域都承擔(dān)著信息功能。RDBM的低幻覺(jué)特性比單純的PSNR指標(biāo)更有價(jià)值殘差分支讓它在不確定時(shí)會(huì)偏向保守而不是編造結(jié)構(gòu)。視頻幀序列恢復(fù)。當(dāng)幀間一致性比單張銳度更重要時(shí)RDBM對(duì)輸入擾動(dòng)的敏感度更低連續(xù)幀之間的恢復(fù)結(jié)果更穩(wěn)定不會(huì)出現(xiàn)單幀突然“變臉”的情況。4.3 三次翻車記錄真實(shí)退化、低信噪比與色彩不一致翻車案例一去雨任務(wù)。訓(xùn)練集只用了線性雨紋渲染合成把RDBM直接推到真實(shí)雨圖上雨滴殘影被當(dāng)成紋理保留下來(lái)恢復(fù)結(jié)果近似“打磨過(guò)的模糊”。原因很典型訓(xùn)練退化模式與現(xiàn)實(shí)差距過(guò)大橋模型把不確定性錯(cuò)誤地按訓(xùn)練先驗(yàn)解析了。翻車案例二極低照度監(jiān)控畫面。信噪比低到一定程度退化圖里的噪聲和真實(shí)高頻信號(hào)在橋路徑上難以區(qū)分模型會(huì)把一塊純?cè)肼晠^(qū)恢復(fù)成有紋理感的細(xì)節(jié)放大后內(nèi)容不連貫。這不是RDBM獨(dú)有所有生成式方法都有但橋模型的這個(gè)現(xiàn)象需要警惕因?yàn)楸J貦C(jī)制在這里沒(méi)有完全兜底。翻車案例三色彩空間沒(méi)有統(tǒng)一。訓(xùn)練數(shù)據(jù)是sRGB推流域是P3或AdobeRGB模型出現(xiàn)了明顯的青藍(lán)偏色。橋模型對(duì)色偏格外敏感因?yàn)樯市畔⑹菍儆凇暗皖l、難以通過(guò)殘差修正”的部分一旦偏差殘差分支很難糾正。解決很簡(jiǎn)單訓(xùn)練時(shí)做隨機(jī)色彩空間抖動(dòng)推流前做一次顏色校準(zhǔn)完全不用改模型。5. 復(fù)現(xiàn)經(jīng)驗(yàn)與選型判斷三個(gè)坑位、三個(gè)建議5.1 坑一EMA快照與checkpoint恢復(fù)導(dǎo)致采樣質(zhì)量崩壞我有一次訓(xùn)練RDBM前面15萬(wàn)步loss下降很漂亮之后采樣的圖卻越來(lái)越灰、越來(lái)越糊PSNR斷崖式下跌。排查了很久最后發(fā)現(xiàn)問(wèn)題出在EMA快照沒(méi)有與主權(quán)重同步保存。中途恢復(fù)訓(xùn)練時(shí)優(yōu)化器狀態(tài)加載了EMA權(quán)重卻還停留在舊版本等于用一套過(guò)期的“平均權(quán)重”在推理輸出當(dāng)然崩。建議EMA快照單獨(dú)存成一個(gè)文件和模型主權(quán)重分開(kāi)管理。每次resume訓(xùn)練時(shí)寫一段自檢邏輯打印EMA權(quán)重與主權(quán)重在時(shí)間步上的對(duì)應(yīng)關(guān)系確認(rèn)兩者都更新到同一個(gè)訓(xùn)練進(jìn)度再繼續(xù)。別低估這個(gè)細(xì)節(jié)它在擴(kuò)散類模型的長(zhǎng)期訓(xùn)練中很常見(jiàn)。5.2 坑二GroupNorm在fp16推理下輸出彩斑擴(kuò)散類網(wǎng)絡(luò)幾乎清一色用GroupNorm類歸一化層fp16下GroupNorm計(jì)算均值方差時(shí)容易溢出輸出呈現(xiàn)顆粒狀彩色噪點(diǎn)。這個(gè)坑在訓(xùn)練階段不明顯AMP訓(xùn)練有l(wèi)oss scaling兜底部署轉(zhuǎn)fp16推理時(shí)才會(huì)集中爆發(fā)。解決方式如果轉(zhuǎn)fp16把GroupNorm算子顯式保留成fp32如果部署框架支持bf16優(yōu)先用bf16動(dòng)態(tài)范圍大很多。我建議在選型的早期就把這條寫進(jìn)部署方案別等上線前再去排查亂碼圖。5.3 坑三小batch訓(xùn)練導(dǎo)致條件統(tǒng)計(jì)漂移CNN回歸模型用小batch訓(xùn)練一般沒(méi)事RDBM這類帶隨機(jī)過(guò)程的模型對(duì)batch size更敏感。每個(gè)batch里退化圖的分布形態(tài)差異大歸一化層容易產(chǎn)生條件統(tǒng)計(jì)漂移。我在256分辨率下batch4訓(xùn)練PSNR明顯低于batch8把batch4配合gradient accumulation模擬到等效32步情況才穩(wěn)定下來(lái)。顯存有限時(shí)優(yōu)先用gradient accumulation模擬大batch而不是直接降低真實(shí)batch size。這不是玄學(xué)橋模型每一步的訓(xùn)練信號(hào)依賴于當(dāng)前batch里不同退化路徑的統(tǒng)計(jì)多樣性batch太小多樣性不足模型學(xué)到的殘差分布就會(huì)有偏。5.4 三個(gè)工程建議與“什么時(shí)候別用RDBM”選型的第一步是先判斷任務(wù)屬性。如果恢復(fù)結(jié)果會(huì)被放大當(dāng)成證據(jù)、素材或醫(yī)學(xué)判讀依據(jù)RDBM這類低幻覺(jué)模型值得優(yōu)先考慮如果只是生成社交媒體配圖、營(yíng)銷素材GAN可能更快更直接沒(méi)必要為一個(gè)“保守”的特性付出訓(xùn)練成本。跑通全流程時(shí)先在小圖、短鏈配置下驗(yàn)證再擴(kuò)展到大圖和更多步數(shù)。RDBM的優(yōu)勢(shì)是路徑短但仍然有大量數(shù)值細(xì)節(jié)schedule、殘差縮放系數(shù)、EMA權(quán)重需要在小規(guī)模上確定直接上大圖只會(huì)把問(wèn)題放大。推理服務(wù)化時(shí)把不同退化類型的請(qǐng)求分開(kāi)batch統(tǒng)一輸入尺寸減少padding對(duì)邊緣恢復(fù)的影響。否則你會(huì)經(jīng)??吹健斑吘変J利、中間偏軟”的恢復(fù)不一致現(xiàn)象這是padding導(dǎo)致的不是模型本身的問(wèn)題。什么時(shí)候別用RDBM延遲要求到幾十毫秒以內(nèi)的實(shí)時(shí)視頻處理場(chǎng)景目前擴(kuò)散類方法都還難勝任老老實(shí)實(shí)上輕量CNN或蒸餾過(guò)的GAN更合適訓(xùn)練數(shù)據(jù)極度匱乏且無(wú)法構(gòu)造合理配對(duì)的場(chǎng)景監(jiān)督式訓(xùn)練的優(yōu)勢(shì)發(fā)揮不出來(lái)這時(shí)可能需要轉(zhuǎn)無(wú)監(jiān)督或自監(jiān)督路線。我在實(shí)際復(fù)現(xiàn)過(guò)程中最深的感受是RDBM最讓我信服的并不是那零點(diǎn)幾個(gè)百分點(diǎn)的PSNR優(yōu)勢(shì)而是它在分布外退化輸入下的“保守傾向”——它不會(huì)為了好看而去編造不存在的結(jié)構(gòu)。這對(duì)把恢復(fù)結(jié)果用于專業(yè)判斷的項(xiàng)目來(lái)說(shuō)價(jià)值遠(yuǎn)大于一個(gè)指標(biāo)數(shù)字。如果你正準(zhǔn)備做恢復(fù)算法的選型我的建議是不要急著跟風(fēng)換新模型先把自己手上的退化數(shù)據(jù)分布摸清楚再?zèng)Q定用純回歸、GAN還是RDBM。擴(kuò)散橋這條路本身還遠(yuǎn)沒(méi)到天花板殘差設(shè)計(jì)和采樣加速的組合后面大概率還會(huì)有更有意思的變體出來(lái)。