ฟุ้งซ่านเกี่ยวกับแบบจำลองการแพร่กระจาย?

Nov 26 2022
เพิ่มขึ้นในโมเดลการสร้างภาพแบบ Diffusion ฉันเคยเป็นนักแพร่ภาพเมื่อสามสัปดาห์ก่อน แต่เมื่อได้รับกระแสตอบรับ ฉันอยากจะกระโดดขึ้นไปบนขบวนรถไฟแบบกระจาย (ซึ่งฉันรู้สึกว่าฉันสามารถทำได้) ก้าวที่การพัฒนาใหม่กำลังเกิดขึ้นในพื้นที่การสร้างภาพแบบกระจาย (DbIG) นั้นเหลือเชื่อ

เพิ่มขึ้นในแบบจำลองการสร้างภาพแบบกระจาย

ภาพที่สร้างโดย Dall-E 2 พร้อมข้อความ "Diffused about Diffusion Models art"

ฉันเป็น diffusion noob เมื่อสามสัปดาห์ก่อน แต่ด้วยกระแสนี้ ฉันอยากจะกระโดดขึ้นรถไฟ diffusion (ซึ่งฉันรู้สึกว่าฉันทำได้) ก้าวที่การพัฒนาใหม่กำลังเกิดขึ้นในพื้นที่การสร้างภาพแบบกระจาย (DbIG) นั้นเหลือเชื่อ เป็นการยากที่จะเข้าใจว่าจะเริ่มต้นการเดินทางที่ใด ในโพสต์นี้ ฉันแบ่งปันการเดินทางของฉันซึ่งอาจเป็นประโยชน์กับผู้อื่นที่ต้องการสร้างฐานพื้นฐานที่แข็งแกร่งเพื่อทำความเข้าใจโลกแห่งแบบจำลองการแพร่กระจาย (DM) รวมถึงการทำความเข้าใจคณิตศาสตร์

หมายเหตุ 1 : ฉันจะไม่พูดถึงเทคนิคใด ๆ ในรายละเอียด แต่จะอธิบายเส้นทางจากกระดาษหนึ่งไปยังอีกกระดาษหนึ่ง ฉันเชื่อว่ามีบล็อก/วิดีโอ/เอกสารจำนวนมากที่พูดถึงเทคนิคต่างๆ ในทางกลับกัน ฉันไม่พบบล็อกใด ๆ ที่จะช่วยแนะนำวิธีสร้างรากฐานที่แข็งแกร่งใน DbIG

Note2 : ฉันใช้เวลาประมาณ 3 สัปดาห์ในการทุ่มเทเพื่อเริ่มต้นจากพื้นฐานและต่อยอด หากคุณต้องการสร้างความเข้าใจอย่างลึกซึ้ง ให้สละเวลาประมาณ 2 สัปดาห์ โดยเฉพาะอย่างยิ่งหากคุณไม่คุ้นเคยกับคณิตศาสตร์ของ Variational Auto Encoders และต้องการรับความรู้สึกที่เป็นธรรมชาติของคณิตศาสตร์ DM

เอาล่ะ.

ขั้นตอนที่ 1: แบบจำลองการแพร่กระจายในช่วงต้น

Deep Unsupervised Learning using Nonequilibrium Thermodynamics [2015] — นี่เป็นบทความแรกที่นำเสนอแนวคิดเกี่ยวกับการใช้ 'แบบจำลองความน่าจะเป็นแบบกระจาย' แม้ว่ากระดาษจะพร้อมได้ง่ายหากคุณมองข้ามคณิตศาสตร์ไป แต่การจะเข้าใจคณิตศาสตร์ได้นั้นต้องอาศัยความคุ้นเคยกับการอนุมานแบบผันแปร ฉันขอแนะนำให้ทำความคุ้นเคยกับ Variational Auto Encoders (VAE) เพื่อติดตามคณิตศาสตร์

ตัวเข้ารหัสอัตโนมัติแบบแปรผัน [ไม่บังคับ] : แม้ว่าจะไม่ใช่ข้อกำหนดในการทำความเข้าใจโมเดลการแพร่กระจาย แต่ความเข้าใจที่ดีเกี่ยวกับ VAE ช่วยให้เข้าใจหน่วยพื้นฐานของกระบวนการแพร่และคณิตศาสตร์ที่อยู่เบื้องหลัง

ขั้นตอนที่ 2: DDPM

DDPM: Denoising Diffusion Probabilistic Models [2020] — นี่คือสิ่งที่ทำให้เกิดความคลั่งไคล้เกี่ยวกับ DM สำหรับการสร้างภาพ

เจาะลึกลงไปใน DDPM:

  • คำอธิบายของกระดาษ DDPM — แบบจำลองการแพร่กระจายคืออะไร? [บล็อก], ความรู้เบื้องต้นเกี่ยวกับโมเดลการแพร่กระจายสำหรับการเรียนรู้ของเครื่อง [บล็อก]
  • คณิตศาสตร์ — โมเดลการแพร่กระจาย | คำอธิบายกระดาษ | วิดีโอ อธิบายคณิตศาสตร์ [YouTube] ที่ครอบคลุมคณิตศาสตร์โดยละเอียด มีประโยชน์มากในการรับข้อมูลเชิงลึกทีละขั้นตอนเกี่ยวกับคณิตศาสตร์ [แนะนำเป็นอย่างยิ่ง]
  • รหัส — ฉันยังคงมีความสับสนอยู่บ้างซึ่งถูกลบออกโดยทำตามโค้ด/re-coding DM โดยใช้Diffusion Models | การใช้งาน PyTorch [YouTube], Diffusion-Models-pytorch [Github], โมเดลการแพร่กระจายตั้งแต่เริ่มต้นใน PyTorch [YouTube]
  • การ ทำความเข้าใจความเท่าเทียมกันของ DDPM และการสร้างตามคะแนน — การสร้างแบบจำลองเชิงกำเนิดโดยการประมาณการไล่ระดับสีของการกระจายข้อมูล [บล็อก]
  • เทคนิคที่ได้รับการปรับปรุงสำหรับการฝึกแบบจำลองเชิงกำเนิดตามคะแนน [2020]
  • การสร้างแบบจำลองเชิงกำเนิดโดยใช้คะแนนผ่านสมการเชิงอนุพันธ์สุ่ม [2020]

U-Net : DDPM ใช้สถาปัตยกรรม U-Net สำหรับ DM เป็นครั้งแรก ซึ่งฉันคิดว่ามีความสำคัญพอๆ กับกระบวนการกระจายตัวในการช่วยสร้างภาพคุณภาพสูง แม้ว่าการทำความเข้าใจ U-Net จะไม่จำเป็นสำหรับการทำความเข้าใจกระบวนการ แต่ถ้าคุณต้องการติดตามผลงานขั้นสูงเพิ่มเติม (การเข้ารหัสไทม์สเต็ป การปรับสภาพข้อความ) สิ่งสำคัญคือต้องรู้ว่า U-Net ทำงานอย่างไร

  • U-Net: Convolutional Networks สำหรับการแบ่งส่วนภาพทางชีวการแพทย์ [2015] — The U-Net Paper
  • Fully Convolutional Networks for Semantic Segmentation [2014] — กระดาษ FCN ซึ่งเป็นแรงบันดาลใจสำหรับ U-Net
  • ทำความเข้าใจ U-Net โดยละเอียด — ทำความเข้าใจสถาปัตยกรรม U-Net และสร้างมันขึ้นมาใหม่ตั้งแต่ต้น [Youtube]
  • De-convolutions — คำแนะนำเกี่ยวกับการคำนวณเชิงลึกสำหรับการเรียนรู้เชิงลึก , Up-sampling ด้วย Transposed Convolution , Deconvolution และ Checkerboard Artifacts

DDIM : Denoising diffusion implicit models [ต.ค. 2020] — กลยุทธ์การสุ่มตัวอย่างทางเลือกยอดนิยมจาก DM จากวรรณกรรมอิงคะแนน

ขั้นตอนที่ 4: DM ถูกสร้างขึ้นเป็นตัวเลือกเริ่มต้นสำหรับการสร้างรูปภาพ

  • แบบจำลองความน่าจะเป็นการแพร่กระจายของ Denoising ที่ปรับปรุงแล้ว [ก.พ. 2021] — การปรับปรุง DDPM
  • โมเดลการแพร่กระจายเอาชนะ GAN ในการสังเคราะห์รูปภาพ [พฤษภาคม 2021] — การปรับปรุงเพิ่มเติมสำหรับ IDDPM บทความนี้ยังแนะนำแนวคิดของ 'คำแนะนำตัวแยกประเภท' เพื่อปรับปรุงคุณภาพการสร้างและเป็นแนวทางในการควบคุมเอาต์พุตการสร้าง ผมเชื่อว่านี่คือสิ่งที่กำหนดพื้นฐานสำหรับการติดตามงานใน DbIG
  • คำแนะนำการแพร่กระจายแบบไม่ใช้ตัวแยกประเภท [กรกฎาคม 2022] — ปรับปรุงผลลัพธ์โดยการปรับสภาพโมเดล U-Net และทำตามการฝึกอบรมสไตล์ 'ออกกลางคัน' นี่เป็นอีกทางเลือกหนึ่งสำหรับคำแนะนำเกี่ยวกับลักษณนามซึ่งต้องมีการฝึกอบรมเกี่ยวกับลักษณนามรูปภาพทางเลือก
  • วิธีเชิงตัวเลขหลอกสำหรับแบบจำลองการแพร่กระจายบนท่อร่วม [ก.ย. 2021] — การปรับปรุงความเร็วในการสุ่มตัวอย่าง
  • Image Super-Resolution ผ่าน Iterative Refinement [เม.ย. 2021] — ไม่ใช่สำหรับการสร้างภาพ แต่เป็นกุญแจสำคัญในการทำความเข้าใจ DM ที่ปรับสภาพภาพในอนาคตและการเรียงซ้อนเพื่อปรับปรุงความละเอียดของภาพ

เอกสารสามฉบับสร้างเนื้อหาหน้าแรกของโมเดลการแพร่กระจาย

การแพร่กระจายที่เสถียร : การสังเคราะห์ภาพความละเอียดสูงด้วยโมเดลการแพร่กระจายแฝง [ธ.ค. 2021] — สร้างโค้ดแบบโอเพนซอร์สซึ่งช่วยให้ DM เป็นประชาธิปไตย ช่วยปรับปรุงความซับซ้อนในการคำนวณ การปรับสภาพโดยข้ามความสนใจ ฯลฯ ทำความเข้าใจการแพร่ที่เสถียรโดยละเอียด — The Illustrated Stable Diffusion

Dall-E 2 : การสร้างรูปภาพแบบมีเงื่อนไขข้อความแบบลำดับชั้นพร้อม CLIP Latents [เม.ย. 2022] — ไม่ใช่โอเพนซอร์ส แต่เป็นการสาธิตออนไลน์ เพิ่มขั้นตอนเพิ่มเติมของการใช้การฝังรูปภาพ CLIP ลงในเงื่อนไข และขั้นตอนก่อนหน้าที่จะแปลงข้อความการฝัง CLIP เป็นการฝังรูปภาพ

Imagen : โมเดลการแพร่กระจายข้อความสู่รูปภาพเสมือนจริงด้วยความเข้าใจภาษาเชิงลึก [พฤษภาคม 2022] — จัดทำโดย Google พร้อมการแก้ไขดังต่อไปนี้ — การใช้การฝังข้อความเท่านั้น (T5), คำแนะนำตามเกณฑ์, โมเดลแบบเรียงซ้อน

ขั้นตอนที่ 7: เอกสารการแพร่กระจายยอดนิยมอื่น ๆ สำหรับการสร้างภาพจนถึงประมาณเดือนตุลาคม 2565 [ไม่บังคับ]

  • SDEdit: การสังเคราะห์รูปภาพที่แนะนำและการแก้ไขด้วยสมการเชิงอนุพันธ์สุ่ม [ส.ค. 2021]
  • จานสี: โมเดลการแพร่กระจายแบบภาพต่อภาพ [พ.ย. 2021]
  • GLIDE: สู่การสร้างและแก้ไขภาพเหมือนจริงด้วย Text-Guided Diffusion Models [ธ.ค. 2021]
  • การสังเคราะห์รูปภาพเชิงความหมายผ่านโมเดลการแพร่กระจาย [มิถุนายน 2022]
  • รูปภาพมีค่าหนึ่งคำ: การปรับแต่งการสร้างข้อความเป็นรูปภาพโดยใช้ Textual Inversion [ส.ค. 2022][Text Inversion]
  • DreamBooth: การปรับแต่งโมเดลการกระจายข้อความเป็นรูปภาพอย่างละเอียดสำหรับการสร้างวัตถุที่ขับเคลื่อนด้วย [ส.ค. 2022]
  • การแก้ไขรูปภาพแบบพรอมต์ต่อพรอมต์ด้วย Cross Attention Control [ส.ค. 2022]
  • Imagic: การแก้ไขรูปภาพจริงตามข้อความด้วยโมเดลการแพร่กระจาย [ต.ค. 2022]
  • MagicMix: การผสมความหมายด้วยโมเดลการแพร่กระจาย [ต.ค. 2022]

นั่นมันคน มีความสุขกระจาย

ฉันสนุกกับการเดินทางที่น่าอัศจรรย์นี้ในการสร้างภาพจากการแผ่รังสีของบิ๊กแบง หากคุณรู้สึกว่ามีกระดาษ/บล็อก/วิดีโอที่ช่วยให้คุณเข้าร่วมขบวนรถไฟแพร่ โปรดแชร์กับฉัน

กิตติกรรมประกาศ : ฉันขอขอบคุณSen He , Jerry WuและTao Xiang อย่างจริงใจที่ ช่วยฉันในการสำรวจครั้งนี้และชี้ให้ฉันเห็นทิศทางที่ถูกต้องเป็นครั้งคราว

หมายเหตุสุดท้าย : ฉันได้สร้างความรู้นี้ในระยะเวลาอันสั้น ดังนั้นอาจมีข้อผิดพลาดในความเข้าใจของฉัน โปรดแจ้งให้เราทราบหากสิ่งที่ฉันพูดในที่นี้ไม่ถูกต้อง