ดาวน์โหลดโปรแกรมฟรี
       
   สมัครสมาชิก   เข้าสู่ระบบ
THAIWARE.COM | ทิปส์ไอที
 

Diffusion Model คืออะไร ? มารู้จักแบบจำลองในการสร้างข้อมูล Generative AI กัน

Diffusion Model คืออะไร ? มารู้จักแบบจำลองในการสร้างข้อมูล Generative AI กัน

เมื่อ :
|  ผู้เข้าชม : 782
เขียนโดย :
0 Diffusion+Model+%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3+%3F+%E0%B8%A1%E0%B8%B2%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B8%88%E0%B8%B3%E0%B8%A5%E0%B8%AD%E0%B8%87%E0%B9%83%E0%B8%99%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5+Generative+AI+%E0%B8%81%E0%B8%B1%E0%B8%99
A- A+
แชร์หน้าเว็บนี้ :

Diffusion Model  คืออะไร ?

ในยุคที่ ปัญญาประดิษฐ์ (AI) กำลังเข้ามามีบทบาทสำคัญในชีวิตประจำวันของเราเพิ่มมากขึ้นเรื่อย ๆ  การเข้าใจถึงกลไก และกระบวนการที่ช่วยให้ AI สามารถทำงานได้อย่างมีประสิทธิภาพนั้น ก็เป็นความรู้รอบตัวที่มีความสำคัญเป็นอย่างยิ่ง หนึ่งในกระบวนการที่น่าจับตามอง และถูกนำมาใช้ใน AI อย่างแพร่หลายคือ โมเดลที่ถูกเรียกว่า "Diffusion Model"

บทความเกี่ยวกับ Generative AI อื่นๆ

มันเป็นกระบวนการที่ AI ใช้ในการสร้างข้อมูลใหม่จากข้อมูลเดิมที่มีอยู่ บทความนี้จะพาคุณไปทำความเข้าใจกับเทคนิค Diffusion Model ที่ Generative AI ใช้ในการทำงานกัน ...

เนื้อหาภายในบทความ

Diffusion Model คืออะไร ? (What is Diffusion Model ?)

ก่อนอื่นต้องขออธิบายก่อนว่า อย่าสับสนระหว่าง "Diffusion Model" กับ "Diffusion Processing" (กระบวนการแพร่) ที่เป็นหลักการทางฟิสิกส์ว่า อนุภาคจะมีการเคลื่อนที่จากบริเวณที่มีความเข้มข้นสูง ไปยังบริเวณที่มีความเข้มข้นต่ำ ตัวอย่างง่าย ๆ ที่อยู่รอบตัวเราก็อย่างเช่น เมื่อคุณเปิดขวดน้ำมันหอมระเหย หรือเตาอโรม่า กลิ่นหอมของมันก็จะค่อย ๆ กระจายไปทั่วทั้งห้อง หรือหากเราหยดน้ำหมึกลงไปในน้ำ หมึกก็จะแพร่กระจายไปทั่วจนน้ำเปลี่ยนสี

ในการพัฒนา AI ที่เป็นแบบ Multimodal หรือ AI ที่สามารถประมวลผล และทำงานกับข้อมูลได้หลากหลายรูปแบบพร้อมกัน เช่น ข้อความ, ภาพ, เสียง, และวิดีโอ ได้ส่งผลให้เกิดแรงผลักดันในการพัฒนา การเรียนรู้ของเครื่องจักร (Machine Learning) จนนำไปสู่การพัฒนา Generative AI ขึ้นมา ที่ทำงานได้โดยมี Diffusion Model เป็นหนึ่งในหัวใจหลัก

Diffusion Model มีคุณสมบัติโดดเด่นในการช่วยให้ AI สามารถสร้างภาพคุณภาพสูง, วิดีโอ, เสียง ฯลฯ โดยที่มาของชื่อโมเดล ก็ถูกตั้งตามความคล้ายคลึงกับกระบวนการแพร่แบบธรรมชาติในกฏฟิสิกส์ ตัวอย่างของ Diffusion Model ที่มีชื่อเสียง ก็อย่างเช่น DALL-E, Midjourney, Stable Diffusion หรือแม้แต่ ChatGPT เป็นตัน

Diffusion Model คืออะไร ?
ตัวอย่างภาพที่สร้างด้วย DALL-E
ภาพจาก : https://www.assemblyai.com/blog/diffusion-models-for-machine-learning-introduction/

ใน Machine Learning โมเดล Diffusion Model หรือที่รู้จักกันในอีกชื่อว่า "Diffusion Probabilistic Models" และ Score-Based Generative Models เป็นแบบจำลองการสร้างตัวแปรแฝง (Latent Variable Generative Models) โดยมันจะประกอบด้วยสามส่วนหลัก คือ กระบวนการไปข้างหน้า (Forward Process), กระบวนการย้อนกลับ (Reverse Process) และกระบวนการสุ่มตัวอย่าง (Sampling Procedure) เมื่อนำกระบวนการทั้งหมดนี้มาเรียนรู้ในชุดข้อมูลที่ถูกเตรียมไว้ มันจะสามารถสร้างองค์ประกอบใหม่ที่คล้ายกับชุดข้อมูลเดิมขึ้นมาได้

Diffusion Model คืออะไร ?
ภาพจาก : https://dsin.ai/news/article/EWCunQ/dreamdistribution_prompt_distribution_learning_for_text_to_image_diffusion_models

หลักการของ Diffusion Model (Key Concepts of Diffusion Model)

หลักการของ Diffusion Model มีแนวคิดในการทำงานดังต่อไปนี้

Noise

ค่า Noise ในที่นี้จะหมายถึงข้อมูลที่เป็นการสุ่ม หรือไม่ได้เป็นส่วนหนึ่งของรูปแบบข้อมูลที่ AI กำลังพยายามเรียนรู้ หรือวิเคราะห์ Noise เหล่านี้สามารถเกิดขึ้นได้จากหลายสาเหตุ เช่น ความผิดพลาดในการวิเคราะห์, ข้อมูลที่ไม่เกี่ยวข้อง หรือการแทรกแซงจากข้อมูลอื่น ๆ ซึ่งใน Diffusion Model จะมีการเพิ่ม Noise เข้าไปในข้อมูลด้วยความตั้งใจตามหลักการทางคณิตศาสตร์ มันมีความสำคัญต่อการช่วยให้แบบจำลองสามารถเรียนรู้วิธีการย้อนกลับกระบวนการของการทำลายข้อมูล

Diffusion Process

Diffusion Process เป็นกระบวนการแพร่กระจายที่เกี่ยวข้องกับการทำลายข้อมูลอย่างเป็นระบบจาก Noise และการสร้างข้อมูลขึ้นใหม่ โดยตัวโมเดลจะเรียนรู้วิธีการทำให้ข้อมูลกลับมาเป็นระเบียบจากข้อมูลที่ถูกทำลาย

Diffusion Model คืออะไร ?
ภาพจาก : https://learnopencv.com/denoising-diffusion-probabilistic-models/

Comparative Uniqueness

Diffusion Model เริ่มต้นสร้างข้อมูลโดยการลบ Noise ออกทีละน้อย จนได้ผลลัพธ์ที่มีคุณภาพสูง สร้างเป็นข้อมูลอันใหม่ขึ้นมา

Diffusion Model คืออะไร ?
ภาพจาก : https://developer.nvidia.com/blog/understanding-diffusion-models-an-essential-guide-for-aec-professionals/

Diffusion Model ทำงานอย่างไร ? (How does Diffusion Model work ?)

เบื้องหลังการทำงานของ Diffusion Model มีความซับซ้อน ประกอบด้วยหลายขั้นตอนที่ทำงานร่วมกันเพื่อให้ตัวโมเดลสามารถสร้างข้อมูลใหม่ที่มีคุณภาพสูงได้ ขั้นตอนพื้นฐานที่สำคัญ ประกอบไปด้วย

เตรียมข้อมูลเบื้องต้น (Data Preprocessing)

เริ่มจากการเตรียมข้อมูลเบื้องต้น หรือ Data Preprocessing ก่อนที่ Diffusion Model จะเริ่มสร้างข้อมูลได้ มันจำเป็นต้องประมวลผลข้อมูลที่ถูกป้อนเข้ามาผ่านขั้นตอนการเตรียมข้อมูลเบื้องต้นหลายขั้นตอน ขั้นตอนเหล่านี้มีความสำคัญเนื่องจากช่วยให้ข้อมูลถูกจัดรูปแบบอย่างถูกต้อง และสามารถเปลี่ยนแปลงได้ในระหว่างกระบวนการ Diffusion Process การเตรียมข้อมูลเบื้องต้นมักประกอบด้วย

การทำให้เป็นมาตรฐาน (Normalization)

การปรับข้อมูลให้เป็นมาตรฐาน เพื่อเพิ่มประสิทธิภาพการทำงานของตัวโมเดล

วางแผนการเพิ่มสัญญาณรบกวน (Noise Scheduling)

วางแผนการเพิ่ม Noise หรือข้อมูลรบกวนในขั้นตอนต่าง ๆ เพื่อช่วยจัดการกระบวนการทำลายข้อมูลได้อย่างมีประสิทธิภาพ

การเพิ่มข้อมูล (Augmentation)

ใช้การเปลี่ยนแปลง เช่น การหมุน หรือการตัดข้อมูลทิ้งบางส่วน เพื่อเพิ่มความหลากหลายของข้อมูล และปรับปรุงการทำงานตัวโมเดล

กระบวนการแพร่กระจายแบบไปข้างหน้า (Forward Diffusion Process)

ในกระบวนการแพร่กระจายแบบไปข้างหน้า ตัวโมเดลจะค่อย ๆ เปลี่ยนแปลงข้อมูลทีละนิด โดยการเพิ่ม Gaussian Noise ที่แต่ละขั้นตอน โดยที่ผลลัพธ์ของแต่ละขั้นตอน ขึ้นอยู่กับสถานะ Noise ของขั้นตอนก่อนหน้า ตามหลักคณิตศาสตร์ที่เรียกว่า Markov Chain

การเพิ่ม Noiseทีละขั้น (Stepwise Noise Addition)

เริ่มต้นที่ข้อมูลที่ถูกใช้เป็นตัวอย่าง โมเดลจะเพิ่ม Noise เล็กน้อยทีละขั้น ระดับของ Noise จะเพิ่มขึ้นเมื่อเวลาผ่านไป และในแต่ละขั้น ตัวอย่างข้อมูลก็จะถูกทำลายมากขึ้น

โครงสร้าง Markov Chain (Markov Chain Framework)

การเปลี่ยนแปลงทีละขั้นนี้ จะเกิดขึ้นในโครงสร้างของ Markov Chain ซึ่งทำให้การเพิ่ม Noise ในแต่ละขั้นขึ้นอยู่กับสถานะก่อนหน้าโดยตรง ไม่ใช่ขึ้นอยู่กับลำดับทั้งหมด

Diffusion Model คืออะไร ?
Markov Chain
ภาพจาก https://ai.plainenglish.io/markov-chains-b84ec329a54c

เปลี่ยนเป็น Gaussian Noise (Transition to Gaussian Noise)

เมื่อสิ้นสุดกระบวนการแพร่กระจายแบบไปข้างหน้า (Forward Diffusion Process) ข้อมูลดั้งเดิมจะไม่สามารถแยกออกจากเสียง Gaussian ได้อีกต่อไป นี่เป็นการทำลายที่เจตนา เพื่อเตรียมโมเดลสำหรับกระบวนการย้อนกลับ ที่จะเรียนรู้การลบ Noise

กระบวนการแพร่กระจายแบบย้อนกลับ (Reverse Diffusion Process)

เป็นขั้นตอนที่โมเดลจะเริ่มแสดงประสิทธิภาพได้แล้ว โดยมันจะสร้างข้อมูลขึ้นใหม่โดยการลบ Noise ออกทีละขั้นตอน ผ่านการย้อนด้วยกระบวนการแบบ Markov Chain ทำให้แบบจำลองสามารถสร้างข้อมูลใหม่จาก Noise ที่ถูกสุ่มได้

การประเมิน Noise (Noise Estimation)

โมเดลจะคาดการณ์ปริมาณ Noise ที่ถูกเพิ่มเข้ามาในแต่ละขั้นตอน และใช้ข้อมูลนี้ในการเริ่มลบ Noise ออกทีละเล็กทีละน้อย

การลบเสียงทีละขั้น (Iterative Denoising)

ในแต่ละขั้นตอน โมเดลจะลบเสียงออกจากตัวอย่างข้อมูลทีละน้อย ทำให้มันกลับมาเป็นตัวอย่างข้อมูลที่สอดคล้องกันได้ กระบวนการนี้ดำเนินต่อไปจนกว่า โมลจะสร้างข้อมูลขึ้นใหม่ทั้งหมดได้สำเร็จ

Diffusion Model คืออะไร ?
ภาพจาก : https://www.researchgate.net/figure/terative-denoising-over-30-iterations-0-4-8-12-16-20-24-30-are-shown-by-a_fig1_381016894

การสร้างผลลัพธ์ (Output Generation)

ขั้นตอนสุดท้ายจะได้ผลลัพธ์เป็นตัวอย่างข้อมูลใหม่ที่คล้ายคลึงกับข้อมูลเดิม ด้วยวิธีการลบ Noise นี้ ช่วยให้ Diffusion Model สามารถสร้างผลลัพธ์ที่มีคุณภาพ ตามโครงสร้าง และลักษณะเด่นของ Prompt ที่ผู้ใช้งานป้อนให้มัน

ปฏิสัมพันธ์ระหว่าง Noise และข้อมูล (Interaction of Noise and Data)

การปฏิสัมพันธ์ระหว่าง Noise และข้อมูล ใน Diffusion Model มีความสำคัญต่อคุณภาพของผลลัพธ์เป็นอย่างมาก Noise ทำหน้าที่ทั้งเป็นการเป็น "ผู้ทำลาย" และ "ผู้สอน" ที่ทำให้ตัวโมเดลสามารถเรียนรู้วิธีการสร้างข้อมูลผ่านกระบวนการทำลายที่ควบคุมได้ ซึ่งมีส่วนประกอบที่สำคัญดังนี้

การเพิ่ม Noise ที่ควบคุมได้ (Controlled Noise Addition)

นี่เป็นสิ่งสำคัญสำหรับการฝึกฝน AI เพราะช่วยให้โมเดลเรียนรู้ว่าระดับ Noise ที่ต่างกันมีผลต่อข้อมูลอย่างไรบ้าง ?

ย้อนกระบวนการสร้างข้อมูล (Reverse Engineering the Data)

ด้วยการเรียนรู้วิธีลบ Noise ตัวโมเดลจะสามารถย้อนกระบวนการสร้างข้อมูลเดิมได้ เพื่อนำมาใช้สร้างตัวอย่างใหม่ที่ใกล้เคียงของจริง และหลากหลาย

หาเหตุผลที่ข้อมูลมีความสำคัญ (Why Data Matters)

ความสำเร็จของโมเดลขึ้นอยู่กับคุณภาพของข้อมูล การวางแผนวิธีเพิ่ม Noise อย่างแม่นยำ และกระบวนการเตรียมข้อมูลที่มีประสิทธิภาพเป็นสิ่งสำคัญเพื่อให้ Diffusion Model ทำงานได้ดี

Diffusion Model คืออะไร ?
ภาพจาก : https://lilianweng.github.io/posts/2021-07-11-diffusion-models/

การปรับจูนไฮเปอร์พารามิเตอร์ในแบบจำลองการแพร่กระจาย (Hyperparameter Tuning in Diffusion Model)

การปรับจูน Hyperparameter ซึ่งเป็นพารามิเตอร์ที่ใช้ควบคุมกระบวนการเรียนรู้ของโมเดล แต่ไม่ได้ถูกเรียนรู้จากข้อมูลโดยตรง เป็นสิ่งสำคัญในการทำงานของ Diffusion Model เนื่องจากมีผลโดยตรงต่อประสิทธิภาพของโมเดล Hyperparameter หลักประกอบไปด้วย

การวางแผนการเพิ่ม Noise (Noise Schedule)

กำหนดอัตราการเพิ่ม Noise ในข้อมูล แผนการเพิ่ม Noise ที่ออกแบบมาอย่างดี มีความสำคัญต่อการสร้างสมดุลระหว่างการทำลาย และการกู้คืนอย่างมาก

อัตราการเรียนรู้ (Learning Rate)

ควบคุมความเร็วที่โมเดลใช้ในการปรับตัวเข้ากับข้อมูล อัตราการเรียนรู้ที่สูงอาจทำให้การฝึกอบรมเร็วขึ้น แต่ทำให้เกิดความไม่เสถียร ในขณะที่อัตราที่ต่ำจะให้ความเสถียรแต่ทำให้การฝึกอบรมช้าลง

ขนาดกลุ่มตัวอย่าง (Batch Size)

กำหนดจำนวนตัวอย่างที่ประมวลผลในแต่ละขั้นตอนการฝึกอบรม ขนาดกลุ่มตัวอย่างที่ใหญ่ขึ้นสามารถเร่งการฝึกอบรมได้ ในขณะที่กลุ่มตัวอย่างที่เล็กลงอาจทำให้การเรียนรู้มีความแข็งแกร่งมากขึ้น

สถาปัตยกรรมของ Diffusion Model (Architecture of Diffusion Model)

มีตัวเลือกสถาปัตยกรรมพื้นฐานอยู่ 2 แบบที่เป็นที่นิยมสำหรับ Diffusion Model คือ U-Net และ Transformer

U-Net

Diffusion Model คืออะไร ?
ภาพจาก : https://lilianweng.github.io/posts/2021-07-11-diffusion-models/

ประกอบไปด้วยการ "ซ้อนลดขนาด" (Downsampling Stack) และ "การซ้อนขยายขนาด" (Upsampling Stack)

การลดขนาด (Downsampling)

แต่ละขั้นตอนประกอบด้วยการใช้ Convolutions (แบบ Unpadded convolutions) การดำเนินการทางคณิตศาสตร์ที่ใช้ในการตรวจจับคุณสมบัติของภาพ เช่น ขอบ, ลวดลาย หรือวัตถุ ขนาด 3x3 ซ้ำสองครั้ง โดยแต่ละครั้งตามด้วย Rectified Linear Unit (ReLU สมการของ ReLU(X) = max(0,X)) หมายความว่าหาก x เป็นค่าบวก ค่าของ ReLU ก็จะเท่ากับ x แต่หาก x เป็นค่าลบ ค่าของ ReLU จะเท่ากับ 0 

การขยายขนาด (Upsampling)

แต่ละขั้นตอนประกอบด้วยการขยายขนาดแผนที่คุณลักษณะตามด้วย Convolutions ขนาด 2x2 ซึ่งแต่ละครั้งจะลดจำนวนช่องคุณลักษณะลงครึ่งหนึ่ง

ทางลัด (Shortcuts)

การเชื่อมต่อทางลัดส่งผลให้เกิดการรวมกับเลเยอร์ (Layer) ที่สอดคล้องกันของการซ้อนลดขนาด และให้คุณลักษณะความละเอียดสูงที่จำเป็นต่อกระบวนการขยายขนาด

Diffusion Transformer (DiT)

Diffusion Model คืออะไร ?
ภาพจาก : https://lilianweng.github.io/posts/2021-07-11-diffusion-models/

ทำงานบน Latent Patches ชิ้นส่วนย่อยของพื้นที่แฝง (Latent Space) ซึ่งถูกแบ่งออกมา เพื่อทำการประมวลผลแต่ละชิ้นส่วนอย่างมีประสิทธิภาพ DiT 

สถาปัตยกรรม Transformer สามารถขยายขนาดได้อย่างง่ายดาย ซึ่งเป็นคุณสมบัติหนึ่งที่มีชื่อเสียงที่สุดของ DiT เนื่องจากประสิทธิภาพของมันเพิ่มขึ้น เมื่อมีพลังการประมวลผลที่มากขึ้น 

ความเป็นมาของ Diffusion Model (History of Diffusion Model)

Diffusion Model ตัวแรกถูกคิดค้นขึ้นที่มหาวิทยาลัยสแตนฟอร์ดในปี ค.ศ. 2015 (พ.ศ. 2558) โดย Jascha Sohl-Dickstein ซึ่งปัจจุบันเป็นนักวิทยาศาสตร์ และนักวิจัยใน Brain Group ที่ Google ในขณะที่ Sohl-Dickstein ทำงานเป็น Postdoctoral Researcher นักวิจัยที่สำเร็จการศึกษาระดับปริญญาเอกแล้ว และทำงานในห้องปฏิบัติการ หรือสถาบันวิจัยต่างๆ  เพื่อศึกษา และวิจัยเพิ่มเติมในสาขาที่ตนเชี่ยวชาญ

Jascha Sohl-Dickstein และ Surya Ganguli ศาสตราจารย์ที่เชี่ยวชาญด้านโครงข่ายประสาทเทียม (Neural Network) กำลังหาแนวคิดใหม่ ๆ เกี่ยวกับหลักอุณหพลศาสตร์ที่ไม่สมดุล (Non-equilibrium Thermodynamics) ซึ่งเป็นสาขาหนึ่งของวิชาฟิสิกส์ ที่ศึกษาการไหลของพลังงาน และเรื่องราวในระบบที่ไม่อยู่ในสมดุล งานนั้นได้นำไปสู่กระบวนความคิดที่ว่า "ข้อมูลสามารถเปลี่ยนเป็น Noise และด้วยการฝึกฝน Neural Network เราจะสามารถทำให้ Noise เปลี่ยนกลับเป็นข้อมูลได้"

ในท้ายที่สุดแล้วแนวคิดดังกล่าวนำไปสู่งานวิจัยจนออกมาเป็น Diffusion Model

ข้อดี และข้อสังเกตของ Diffusion Model (Pros and Cons of Diffusion Model)

ข้อดี

  • มันสามารถปรับปรุงเสถียรภาพ และคุณภาพของผลลัพธ์ให้ดีกว่าเทคนิคดั้งเดิม
  • สามารถสร้างผลลัพธ์คุณภาพสูงแม้ข้อมูลเดิมจะมีคุณภาพต่ำก็ตาม
  • สามารถประยุกต์ใช้กับข้อมูลได้หลายประเภท

ข้อสังเกต

  • ใช้ทรัพยากรในการคำนวณสูง และใช้เวลาในการทำงานนาน
  • ผลลัพธ์อาจไม่เหมาะกับงานบางประเภท
  • อาจต้องการฮาร์ดแวร์ และซอฟต์แวร์ ที่มีความเจาะจงเป็นพิเศษ ทำให้ต้นทุนสูง

 


ที่มา : en.wikipedia.org , en-m-wikipedia-org.translate.goog , en.wikipedia.org , www.assemblyai.com , lilianweng.github.io , www.superannotate.com , medium.com , www.superannotate.com , www.sapien.io , lilianweng.github.io , hai.stanford.edu , neuroflash.com

0 Diffusion+Model+%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3+%3F+%E0%B8%A1%E0%B8%B2%E0%B8%A3%E0%B8%B9%E0%B9%89%E0%B8%88%E0%B8%B1%E0%B8%81%E0%B9%81%E0%B8%9A%E0%B8%9A%E0%B8%88%E0%B8%B3%E0%B8%A5%E0%B8%AD%E0%B8%87%E0%B9%83%E0%B8%99%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AA%E0%B8%A3%E0%B9%89%E0%B8%B2%E0%B8%87%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5+Generative+AI+%E0%B8%81%E0%B8%B1%E0%B8%99
แชร์หน้าเว็บนี้ :
Keyword คำสำคัญ »
เขียนโดย
ระดับผู้ใช้ : Admin    Thaiware
แอดมินสายเปื่อย ชอบลองอะไรใหม่ไปเรื่อยๆ รักแมว และเสียงเพลงเป็นพิเศษ
 
 
 

ทิปส์ไอทีที่เกี่ยวข้อง

 


 

แสดงความคิดเห็น