ฟุ้งซ่านเกี่ยวกับแบบจำลองการแพร่กระจาย?
เพิ่มขึ้นในแบบจำลองการสร้างภาพแบบกระจาย
ฉันเป็น 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 ช่วยให้เข้าใจหน่วยพื้นฐานของกระบวนการแพร่และคณิตศาสตร์ที่อยู่เบื้องหลัง
- บทช่วย สอน : ความรู้เบื้องต้นเกี่ยวกับตัวเข้ารหัสอัตโนมัติแบบแปรผัน บท ช่วยสอนเกี่ยวกับตัวเข้ารหัสอัตโนมัติแบบแปรผัน
- เอกสาร : Bayes Variational Bayes เข้ารหัสอัตโนมัติ
- Code : Variational Autoencoder with Pytorch , LATENT SPACES (ตอนที่ 2): คำแนะนำง่ายๆ สำหรับ Variational Autoencoder
ขั้นตอนที่ 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 อย่างจริงใจที่ ช่วยฉันในการสำรวจครั้งนี้และชี้ให้ฉันเห็นทิศทางที่ถูกต้องเป็นครั้งคราว
หมายเหตุสุดท้าย : ฉันได้สร้างความรู้นี้ในระยะเวลาอันสั้น ดังนั้นอาจมีข้อผิดพลาดในความเข้าใจของฉัน โปรดแจ้งให้เราทราบหากสิ่งที่ฉันพูดในที่นี้ไม่ถูกต้อง