大模型圖像處理技術(shù)之擴散模型——Diffusion Model 原創(chuàng)
?“ 大模型的原理就是通過編程實現(xiàn)的某種數(shù)學算法模型,把輸入數(shù)據(jù)進行處理,最后再輸出的一個過程 ”
這段時間的文章中,一直都是在說大模型的應用,也就是怎么基于大模型開發(fā)上層應用,以及在開發(fā)過程中遇到的一些問題;但同樣在文章中也說過從應用入手,然后再了解其實現(xiàn)原理,這就是知其然,再知其所以然。
最近一直在搞圖片生成和視頻生成方面的應用,但使用的不是第三方的接口,就是現(xiàn)有的開源模型,雖然知道它們能做些什么,但卻不知道到底怎么做到的,因此今天就來了解一下圖像處理中一個很經(jīng)典模型——擴散模型。
擴散模型
下面我將從幾個方面簡單描述一下擴散模型,可能不一定對,就當作是自己的學習筆記了。
首先,我們先從概念的方面了解一下什么是擴散模型;擴散模型是圖像生成模型的一種,有別于此前AI領(lǐng)域大名鼎鼎的GAN,VAE等算法,擴散模型另辟蹊徑,其主要思想是一種先對圖像增加噪聲,再逐步去噪的過程,其中如何去噪還原圖像是算法的核心部分;而它的最終算法能夠從一張隨機的噪聲圖像中生成圖像。
上面這段話來源于網(wǎng)絡,也不知道對不對,準不準確;但這個并不重要,首先從表面上看起來好像還是很高大上的。

為什么說擴散模型的概念不重要?
其實這是一個個人的學習方法,在學生時代老師講到一個新的知識點,第一件事就是介紹定義或者說概念,但說實話記不住,也聽不懂,基本上沒啥用。
隨著自己學習的深入,以及對其本身對理解,自己慢慢就可以下一個定義了;還有一部分原因就是,有些人看概念會鉆牛角尖;比如說為什么是增加噪聲,是不是還有其它的方式,其它的方式又是什么等等。
而且,從網(wǎng)絡上的資料來看,擴散模型最主要的一點就是噪聲,不論是去噪聲還是加噪聲;只不過怎么去噪聲加噪聲,就有不同的實現(xiàn)方式及算法;而說的最多的就是基于概率學,對圖像噪聲進行處理。
特別喜歡之前在網(wǎng)上看的技術(shù)學習視頻,其中有一個培訓機構(gòu)的某位老師的口頭禪就是——任何天上飛的理念都會有落地的實現(xiàn)。
擴散模型是一種圖像處理的思想,而噪聲是其主要的表現(xiàn)形式,也是圖像處理領(lǐng)域中的一個重要節(jié)點;而關(guān)于怎么處理噪聲就有多種不同的實現(xiàn)方式, 比如說過濾。
擴散模型的組成
擴散模型由正向過程——擴散過程和反向過程——逆擴散過程組成,其中輸入數(shù)據(jù)逐漸被噪聲化,然后噪聲被轉(zhuǎn)換回源目標分布的樣本。
可能有些人看到上面這段話又有點懵逼了,既然擴散了為什么又要逆擴散,數(shù)據(jù)噪聲化又是什么意思?
首先我們來了解一下什么是圖像的噪聲?
了解過成像原理的人應該都知道,所謂的圖像其實就是無數(shù)個點組成,這個點就是像素點,圖像不同的位置點的密集度不一樣,因此就呈現(xiàn)了圖像。
而圖像噪聲就是圖片中一些干擾信息,比如說有的手機拍攝的照片不清晰,就是像素點不夠密集,還有些照片特別模糊就是因為圖片噪聲太多,影響到了原有圖片的效果。

而擴散模型的原理就是,使用大量的訓練數(shù)據(jù),通過去噪聲和增加噪聲的方式,讓模型學習去噪和增加噪聲的方式方法。
然后訓練完成之后,就可以根據(jù)“經(jīng)驗”,去對未知的圖像進行增加噪聲和去噪處理,然后生成一個新的圖像。
因此,擴散模型的本質(zhì)就是,通過連續(xù)添加高斯噪聲來破壞訓練數(shù)據(jù),然后通過反轉(zhuǎn)這個噪聲的過程來恢復數(shù)據(jù)。
訓練結(jié)束后,可以使用擴散模型將隨機采樣的噪聲傳入模型中,通過學習去噪過程來生成數(shù)據(jù)。
而在具體到算法實現(xiàn),就是通過馬爾可夫鏈等基于概率與統(tǒng)計模型,實現(xiàn)了解過去,明白現(xiàn)在,預測未來的過程。
馬爾可夫鏈是一種狀態(tài)空間中經(jīng)過從一個狀態(tài)到另一個狀態(tài)到隨機過程。
事實上前面說了這么多,也僅僅只是了解擴散模型的基本實現(xiàn)原理,但具體應該怎么實現(xiàn),馬爾可夫鏈的實現(xiàn)過程,比如狀態(tài)轉(zhuǎn)移是怎么實現(xiàn)的,其數(shù)學模型是什么樣的,以及基于編程實現(xiàn)的概率統(tǒng)計等。

在此之前,一直不明白大模型算法的原理,到今天才明白,所謂的大模型算法,其實就是使用數(shù)學理論,通過編程的手段來實現(xiàn),然后來計算或描述一個具體的任務過程。
現(xiàn)在如果再讓我講大模型的原理,所謂的大模型就是通過讀取某種數(shù)據(jù)集,通過某種算法進行處理——模型架構(gòu)(比如機器學習算法,Transformer架構(gòu)等),得到數(shù)據(jù)集之間的某種數(shù)學關(guān)系,并記錄下來——訓練之后的模型參數(shù),然后大模型以后就可以根據(jù)這種關(guān)系,去分析和處理新的未知數(shù)據(jù)。
?
本文轉(zhuǎn)載自公眾號AI探索時代 作者:DFires

















