吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

從一個名為DDPM的模型說起

新機器視覺 ? 來源:Datawhale ? 2023-01-05 15:40 ? 次閱讀

最近爆火的AI繪圖,相信大家并不陌生了

從AI繪圖軟件生成的作品打敗一眾人類藝術家,斬獲數字藝術類冠軍,到如今DALL.E、Imagen、novelai等國內外平臺遍地開花。也許你也曾點開過相關網站,嘗試讓AI描繪你腦海中的風景,又或者上傳了一張自己帥氣/美美的照片,然后對著最后生成的糙漢哭笑不得。那么,在你感受AI繪圖魅力的同時,有沒有想過(不你肯定想過),它背后的奧妙究竟是什么?

e2e3dc1c-8cc9-11ed-bfe3-dac502259ad0.jpg

美國科羅拉多州技術博覽會中獲得數字藝術類冠軍的作品——《太空歌劇院》

一切,都要從一個名為DDPM的模型說起…

話說DDPM

DDPM模型,全稱Denoising Diffusion Probabilistic Model,可以說是現階段diffusion模型的開山鼻祖。不同于前輩GAN、VAE和flow等模型,diffusion模型的整體思路是通過一種偏向于優化的方式,逐步從一個純噪音的圖片中生成圖像。

e2f634de-8cc9-11ed-bfe3-dac502259ad0.png

現在已有生成圖像模型的對比

沒有相關機器學習背景的小伙伴可能會問了,什么是純噪音圖片?

很簡單,老式電視機沒信號時,伴隨著"刺啦刺啦"噪音出現的雪花圖片,就屬于純噪音圖片。而DDPM在生成階段所做的事情,就是把這些個"雪花"一點點移除,直到清晰的圖像露出它的廬山真面目,我們把這個階段稱之為"去噪"。

e34cf5c6-8cc9-11ed-bfe3-dac502259ad0.jpg

純噪音圖片:老電視的雪花屏

通過描述,大家可以感受到,去噪其實是個相當復雜的過程。沒有一定的去噪規律,可能你忙活了好半天,到最后還是對著奇形怪狀的圖片欲哭無淚。當然,不同類型的圖片也會有不同的去噪規律,至于怎么讓機器學會這種規律,有人靈機一動,想到了一種絕妙的方法。

"既然去噪規律不好學,那我為什么不先通過加噪的方式,先把一張圖片變成純噪音圖像,再把整個過程反著來一遍呢?"

這便奠定了diffusion模型整個訓練-推理的流程,先在前向過程(forward process)通過逐步加噪,將圖片轉換為一個近似可用高斯分布的純噪音圖像,緊接著在反向過程(reverse process)中逐步去噪,生成圖像,最后以增大原始圖像和生成圖像的相似度作為目標,優化模型,直至達到理想效果

e36d9bd2-8cc9-11ed-bfe3-dac502259ad0.png

DDPM的訓練-推理流程

到這里,不知道大家的接受度怎樣?如果感覺沒問題,輕輕松的話。準備好,我要開始上大招(深入理論)啦。

1.前向過程(forward process)

又稱為擴散過程(diffusion process),整體是一個參數化的馬爾可夫鏈(Markov chain。從初始數據分布 出發,每步在數據分布中添加高斯噪音,持續T次。其中從第t-1步到第t步的過程可以用高斯分布表示為:

e37db4fe-8cc9-11ed-bfe3-dac502259ad0.png

通過合適的設置,隨著t不斷增大,原始數據會逐漸失去他的特征。我們可以理解為,在進行了無限次的加噪步驟后,最終的數據會變成沒有任何特征,完全是隨機噪音的圖片,也就是我們最開始說的"雪花屏"。

在這個過程中,每一步的變化是可以通過設置超參來控制,在我們知曉最開始的圖片是什么的前提下,前向加噪的整個過程可以說是已知且可控的,我們完全能知道每一步的生成數據是什么樣子。

但問題在于,每次的計算都需要從起始點出發,結合每一步的過程,慢慢推導至你想要的某步數據,過于麻煩。好在因為高斯分布的一些特性,我們可以一步到位,直接從得到。

e3926778-8cc9-11ed-bfe3-dac502259ad0.png

(這里的為組合系數,本質上是超參的表達式)

2.反向過程(reverse process)

和前向過程同理,反向過程也是一個馬爾可夫鏈(Markov chain)只不過這里用到的參數不同,至于具體參數是什么,這個就是我們需要機器來學習的部分啦。

在了解機器如何學習前,我們首先思考,基于某一個原始數據,從第t步,精準反推回第t-1步的過程應該是怎樣的?

答案是,這個仍可以用高斯分布表示:

e39e7bbc-8cc9-11ed-bfe3-dac502259ad0.png

注意這里必須要考慮,意思是反向過程最后生成圖像還是要與原始數據有關。輸入貓的圖片,模型生成的圖像應該是貓,輸入狗的圖片,生成的圖像也應該和狗相關。若是去除掉,則會導致無論輸入哪種類型的圖片訓練,最后diffusion生成的圖像都一樣,"貓狗不分"。

經過一系列的推導,我們發現,反向過程中的參數和,竟然還是可以用,,以及參數表示出來的,是不是很神奇~

e3bbf110-8cc9-11ed-bfe3-dac502259ad0.png

當然,機器事先并不知道這個真實的反推過程,它能做到的,只是用一個大概近似的估計分布去模擬,表示為

3.優化目標

在最開始我們提到,需要通過增大原始數據和反向過程最終生成數據的相似度來優化模型。在機器學習中,我們計算該相似度參考的是交叉熵(cross entropy )

關于交叉熵,學術上給出的定義是"用于度量兩個概率分布間的差異性信息"。換句話講,交叉熵越小,模型生成的圖片就越和原始圖片接近。但是,在大多數情況下,交叉熵是很難或者無法通過計算得出的,所以我們一般會通過優化一個更簡單的表達式,達到同樣的效果。

Diffusion模型借鑒了VAE模型的優化思路,將variational lower boundVLB,又稱ELBO)替代cross entropy來作為最大優化目標。通過無數步的分解,我們最終得到:

e3d3aca6-8cc9-11ed-bfe3-dac502259ad0.png

看到這么復雜的公式,好多小伙伴肯定頭都大了。但不慌,這里需要關注的,只是中間的罷了,它表示的是和之間估計分布和真實分布的差距。差距越小,模型最后生成圖片的效果就越好。

4.上代碼

在了解完DDPM背后的原理,接下來就讓我們看看DDPM模型究竟是如何實現…

才怪啦。相信看到這里的你,肯定也不想遭受成百上千行代碼的洗禮。好在MindSpore已經為大家提供了開發完備的DDPM模型,訓練推理兩手抓,操作簡單,單卡即可運行,想要體驗效果的小伙伴,可以先pip install denoising-diffusion-mindspore后,參考如下代碼配置參數:

e3e7f706-8cc9-11ed-bfe3-dac502259ad0.png

對重要的參數進行一些解析:

  • GaussianDiffusion
    • image_size: 圖片大小
    • timesteps: 加噪步數
    • sampling_timesteps: 采樣步數,為提升推理性能,需小于加噪步數
  • Trainer
    • folder_or_dataset: 對應圖片中的path, 可以是已下載數據集的路徑(str),也可以是已做好數據處理的VisionBaseDataset, GeneratorDataset 或 MindDataset
    • train_batch_size:batch大小
    • train_lr: 學習率
    • train_num_steps: 訓練步數

話說MindDiffusion

DDPM只是Diffusion這個故事的開篇。目前,已有無數的研究人員被其背后瑰麗的世界所吸引,紛紛投身其中。在不斷優化模型的同時,也逐漸開發了Diffusion在各個領域的應用。

其中,包括了計算機視覺領域的圖像優化、inpainting、3D視覺,自然語言處理中的text-to-speech,AI for Science領域的分子構象生成、材料設計等,更有來自斯坦福大學計算機科學系的博士生Eric Zelikman大開腦洞,嘗試將DALLE-2與最近另一個大火的對話模型ChatGPT相結合,制作出了溫馨的繪本故事。

e42450ac-8cc9-11ed-bfe3-dac502259ad0.jpg

DALLE-2 + ChatGPT合力完成的,關于一個名叫"羅比"的小機器人的故事

不過最廣為大眾所知的,應該還是它在文生圖(text-to-image)方面的應用。輸入幾個關鍵詞或者一段簡短的描述,模型便可以為你生成相對應的圖畫。

比如,輸入"城市夜景 賽博朋克 格雷格.路特科夫斯基",最后生成的便是一張色彩鮮明,頗具未來科幻風格的作品。

e4489138-8cc9-11ed-bfe3-dac502259ad0.png

再比如,輸入"莫奈 撐陽傘的女人 月亮 夢幻",生成的便是一張極具有朦朧感的女人畫像,色彩搭配的風格有木有讓你想起莫奈的《睡蓮》?

e4c6864c-8cc9-11ed-bfe3-dac502259ad0.png

想要寫實風格的風景照作為屏保?沒問題!

e5035c16-8cc9-11ed-bfe3-dac502259ad0.png

鄉村 田野 屏保

想要二次元濃度多一點的?也可以!

e514cc12-8cc9-11ed-bfe3-dac502259ad0.png

來自深淵 風景 繪畫 寫實風格

以上這些圖片,均是由MindDiffusion平臺的下的悟空畫畫制作而成的哦,悟空畫畫是基于擴散模型的中文文生圖大模型,由華為諾亞團隊攜手中軟分布式并行實驗室昇騰計算產品部聯合開發。模型基于Wukong dataset訓練,并使用昇思框架(MindSpore)+昇騰(Ascend)軟硬件解決方案實現。

躍躍欲試的小伙伴先別著急,為了讓大家擁有更好的體驗,更多自行開發的空間,我們打算讓MindDiffusion中的模型同樣也具備可訓練、可推理的特性,預計在明年就要和大家見面啦,敬請期待,歡迎大家頭腦風暴,生成各種別具風格的作品哦~

(據去內部打探情報的同事說,有人已經開始嘗試"張飛繡花"、"劉華強砍瓜"、"古希臘神大戰哥斯拉"了。ummmm,怎么辦,突然就很期待成品了呢(?ω?))

一個突然正經的結語

最后的最后,在Diffusion爆火的如今,有人也曾發出過疑問,它為什么可以做到如此的大紅大紫,甚至風頭開始超過GAN網絡?Diffusion的優勢突出,劣勢也很明顯;它的諸多領域仍是空白,它的前方還是一片未知。為什么卻有那么多的人在孜孜不倦地對它進行研究呢?

興許,馬毅教授的一番話,可以給我們提供一種解答。

"但diffusion process的有效性以及很快取代GAN也充分說明了一個簡單道理:

幾行簡單正確的數學推導,可以比近十年的大規模調試超參調試網絡結構有效得多。"

或許,這就是Diffusion模型的魅力吧。


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 圖像
    +關注

    關注

    2

    文章

    1089

    瀏覽量

    40574
  • AI
    AI
    +關注

    關注

    87

    文章

    31536

    瀏覽量

    270344
  • 機器學習
    +關注

    關注

    66

    文章

    8441

    瀏覽量

    133087

原文標題:Reference

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ADS1256從一通道到另一個通道的切換時間是多少?

    各位工程師,你們好。我想問ADS1256從一通道到另一個通道的切換時間是多少?急,謝謝
    發表于 01-06 08:08

    從零開始訓練大語言模型需要投資多少錢?

    ,前言 ? 在AI領域,訓練大型語言模型(LLM)是耗時且復雜的過程。幾乎每個做大型語
    的頭像 發表于 11-08 14:15 ?333次閱讀
    從零開始訓練<b class='flag-5'>一</b><b class='flag-5'>個</b>大語言<b class='flag-5'>模型</b>需要投資多少錢?

    為THS3001構建簡單的SPICE模型

    電子發燒友網站提供《為THS3001構建簡單的SPICE模型.pdf》資料免費下載
    發表于 10-29 10:11 ?1次下載
    為THS3001構建<b class='flag-5'>一</b><b class='flag-5'>個</b>簡單的SPICE<b class='flag-5'>模型</b>

    ZX-D37 BLE主從一體藍牙模塊技術手冊

    電子發燒友網站提供《ZX-D37 BLE主從一體藍牙模塊技術手冊.pdf》資料免費下載
    發表于 10-23 10:36 ?1次下載

    ZX-D36 BLE主從一體藍牙模塊技術手冊

    ZX-D36是款5.2 ble的主從一體的模塊,超低功耗,支持模塊之間數據互傳
    發表于 09-27 11:30 ?32次下載

    晶體管的spice模型,可以導入TINA嗎?

    晶體管的spice模型,可以導入TINA嗎?謝謝
    發表于 08-26 06:30

    如何訓練有效的eIQ基本分類模型

    在 MCX CPU和eIQ Neutron NPU上。 eIQPortal它是直觀的圖形用戶界面(GUI),簡化了ML開發。開發人員可以創建、優化、調試和導出ML模型,以及導入數據集和模型
    的頭像 發表于 08-01 09:29 ?2019次閱讀
    如何訓練<b class='flag-5'>一</b><b class='flag-5'>個</b>有效的eIQ基本分類<b class='flag-5'>模型</b>

    在PyTorch中搭建最簡單的模型

    在PyTorch中搭建最簡單的模型通常涉及幾個關鍵步驟:定義模型結構、加載數據、設置損失函數和優化器,以及進行模型訓練和評估。
    的頭像 發表于 07-16 18:09 ?2193次閱讀

    國產藍牙模組 | 藍牙主從一體功能應用

    隨著科技快速發展,藍牙技術在各個行業應用中變得非常廣泛。今天,我們來分享種非常熱門的主從一體藍牙模塊。我們將對它的模式、概念、應用、選購等進行探討,讓讀者深入了解這種藍牙模塊。藍牙的工作模式藍牙
    的頭像 發表于 06-21 08:25 ?605次閱讀
    國產藍牙模組 | 藍牙主<b class='flag-5'>從一</b>體功能應用

    GRU模型實戰訓練 智能決策更精準

    期文章帶大家認識了名為GRU的新朋友, GRU本身自帶處理時序數據的屬性,特別擅長對于時間序列的識別和檢測(例如音頻、傳感器信號等)。GRU其實是RNN
    的頭像 發表于 06-13 09:22 ?1446次閱讀
    GRU<b class='flag-5'>模型</b>實戰訓練 智能決策更精準

    微軟準備推出新的AI模型與谷歌及OpenAI競爭

    據報道,微軟在向OpenAI投資超過100億美元后,首次成功訓練了名為“MAI-1”的內部人工智能模型。這
    的頭像 發表于 05-08 10:45 ?602次閱讀

    【大語言模型:原理與工程實踐】大語言模型的基礎技術

    概率推斷,利用共現矩陣學習每個詞的主題分布,進而將其作為詞的表示向量。在大規模語料庫中進行模型訓練,使語義相似的詞具有相似的主題分布。然而,這類方法存在問題,即模型
    發表于 05-05 12:17

    工業大模型的五基本問題

    工業業大模型是大模型為賦能工業應用所產生的產業新形態,是制造業數字化轉型3.0的重要載體,是新質體。
    發表于 04-23 16:04 ?786次閱讀
    工業大<b class='flag-5'>模型</b>的五<b class='flag-5'>個</b>基本問題

    隨機抽取SV數組中的元素方法實現

    如果想從一關聯數組中隨機選取元素,需要逐個訪問它之前的元素,原因是沒辦法能夠直接訪問到第N元素。上面的程序示范了如何
    的頭像 發表于 03-21 10:11 ?1118次閱讀
    隨機抽取SV數組中的<b class='flag-5'>一</b><b class='flag-5'>個</b>元素方法實現

    KT6368A藍牙主從一體芯片_功能簡要說明

    新增KT1328A芯片方案的藍牙主從一體版本,實現的是主從一體相互切換,也就是說可以設置為主機【類似于手機的角色】,也可以設置為從機角色,通過AT指令 此版本的型號命名為:KT1328A-SOP8
    的頭像 發表于 03-18 18:42 ?642次閱讀
    KT6368A藍牙主<b class='flag-5'>從一</b>體芯片_功能簡要說明
    威尼斯人娱乐城网址多少| OG百家乐大转轮| 百家乐的珠盘| 大发888赌场| 上饶市| 百家乐官网电脑游戏机投注法实例| 海港城百家乐官网的玩法技巧和规则| 澳门百家乐介绍| 大发888娱乐城菲律宾| 博赢国际娱乐城| 百家乐官网官网游戏| 百家乐游戏下载| 久盛国际娱乐场| 百家乐官网服务区| 百家乐小钱赢钱| 明升开户 | 百家乐官网高手技巧| 真人百家乐官网免费送钱| 百家乐微笑玩法| 赌博堕天录 和也篇| 利都百家乐官网国际娱乐场开户注册 | 太阳城巧克力| 百家乐官网太阳城开户| 百家乐网络公式| 大发888游戏平台黄埔| 百家乐官网长龙如何判断| 百家乐官网技巧玩法技巧| 大发888大发888娱乐城| 百家乐官网最好打法与投注| 云赢百家乐分析| 朝阳市| 网上百家乐投注技巧| bet365娱乐场下载| 香港百家乐官网的玩法技巧和规则 | 大发888官网df888esbgfwz| 澳门百家乐官网网上直赌| 百家乐娱乐城有几家| 皇冠在线赌场| 百家乐在线怎么玩| 明升网址| 百家乐有没有稳赢|