คุณอยู่ตรงไหนในเส้นทางนี้
PATH 17 · Diffusion Model · หัวข้อแรกจาก 50 หัวข้อ
ภาพหนึ่งภาพเริ่มจากจุดสีที่กระจายไร้รูปทรง คล้ายสัญญาณรบกวนบนจอที่รับสัญญาณไม่ได้ จากนั้นโครงร่างหยาบค่อย ๆ ปรากฏ สีเริ่มรวมตัว และรายละเอียดเล็ก ๆ กลับเข้าที่ จนกลายเป็นภาพที่ไม่เคยมีอยู่มาก่อน
สิ่งที่ดูเหมือนการเสกภาพจากความว่างเปล่า แท้จริงคือกระบวนการทางความน่าจะเป็นสองทิศทาง ทิศแรกค่อย ๆ ทำลายโครงสร้างของข้อมูลจริงด้วย Gaussian Noise ส่วนอีกทิศหนึ่งใช้ Neural Network เรียนรู้วิธีย้อนจากข้อมูลที่มี Noise กลับไปหาตัวอย่างที่มีโครงสร้าง
นี่คือแก่นของ Diffusion Probabilistic Model หรือแบบจำลองการแพร่เชิงความน่าจะเป็น:
เราสร้างกระบวนการเติม Noise ที่คำนวณได้แน่นอน แล้วฝึกโมเดลให้ประมาณกระบวนการย้อนกลับทีละขั้น
บทเรียนนี้จะไม่หยุดอยู่ที่คำเปรียบเทียบว่า “ค่อย ๆ ลบ Noise” แต่จะเปิดสมการตั้งแต่ \(x_0\) ถึง \(x_T\) อธิบายว่าทำไมเราจึงสุ่ม \(x_t\) ได้โดยไม่ต้องเดินครบทุกขั้น แสดงที่มาของ Loss ที่ใช้ทำนาย Noise และไล่ Sampling Equation ที่เปลี่ยน Gaussian Noise ให้กลับเป็นข้อมูลหนึ่งตัวอย่าง
บริบทการเรียนรู้
| รายการ | รายละเอียด |
|---|---|
| หัวข้อ | 801 — แนวคิด Diffusion Probabilistic Model |
| เส้นทาง | PATH 17 — Diffusion, Score-based Model และ Generative Model สมัยใหม่ |
| ระดับ | ระดับสูง |
| พื้นฐานที่ควรมี | ความน่าจะเป็นเบื้องต้น, Gaussian Distribution, เวกเตอร์และเมทริกซ์, Neural Network, Gradient Descent |
| หัวข้อถัดไป | 802 — Forward Diffusion Process |
สิ่งที่ผู้อ่านจะทำได้
เมื่ออ่านจบ คุณควรทำได้ห้าสิ่ง:
- แยกบทบาทของ Forward Process \(q\) และ Reverse Process \(p_\theta\)
- อธิบายความหมายของ \(\beta_t\), \(\alpha_t\) และ \(\bar{\alpha}_t\)
- สุ่ม \(x_t\) จาก \(x_0\) ได้โดยใช้สมการแบบปิด
- เชื่อม Variational Objective เข้ากับ Mean Squared Error ของการทำนาย Noise
- ไล่ Sampling Step จาก \(x_t\) ไป \(x_{t-1}\) และระบุข้อจำกัดของระบบจริงได้
Diffusion Model คืออะไรในความหมายที่แม่นยำ
Diffusion Model คือ Generative Model ที่เรียนรู้การสร้างตัวอย่างจากการแจกแจงข้อมูล โดยกำหนดกระบวนการเดินหน้าให้ค่อย ๆ เติม Noise จนข้อมูลเข้าใกล้การแจกแจงง่าย แล้วฝึกกระบวนการย้อนกลับให้ค่อย ๆ กู้โครงสร้างของข้อมูลกลับมา
คำว่า Generative Model ไม่ได้หมายถึงโมเดลที่ “วาดภาพ” เท่านั้น เป้าหมายทั่วไปกว่าคือการเรียนรู้การแจกแจง \(p_{\text{data}}(x)\) ซึ่งเป็นกฎทางสถิติที่ทำให้ตัวอย่างจริงเกิดขึ้น หากโมเดลประมาณการแจกแจงนี้ได้ดี เราสามารถสุ่มตัวอย่างใหม่ที่มีลักษณะคล้ายข้อมูลฝึกโดยไม่จำเป็นต้องคัดลอกตัวอย่างเดิมตรง ๆ
ปัญหาคือการแจกแจงของภาพ เสียง หรือโมเลกุลมีมิติสูงและรูปร่างซับซ้อน การเขียน \(p_{\text{data}}(x)\) โดยตรงจึงยากมาก แนวคิด Diffusion เปลี่ยนโจทย์ใหญ่ให้เป็นโจทย์ย่อยจำนวนมาก:
- ทำให้ข้อมูลซับซ้อนกลายเป็น Noise ด้วยการเปลี่ยนแปลงเล็ก ๆ ที่รู้สูตร
- เรียนรู้การย้อนการเปลี่ยนแปลงเล็ก ๆ นั้นทีละขั้น
หากแต่ละก้าวเล็กพอ การแจกแจงย้อนกลับในหนึ่งก้าวสามารถประมาณด้วย Gaussian Distribution ได้ง่ายกว่าการสร้างภาพสมบูรณ์ในครั้งเดียว
Mental Model: บันไดสองทิศทาง
ให้ \(x_0\) เป็นข้อมูลจริง เช่น ภาพหนึ่งภาพ และ \(x_T\) เป็น Noise เกือบบริสุทธิ์:
ลูกศรไปขวาคือ Forward Diffusion Process เรากำหนดสูตรไว้ล่วงหน้าและไม่ต้องเรียนรู้ ส่วนลูกศรย้อนกลับคือ Reverse Denoising Process:
โมเดลไม่ได้ท่องจำคำตอบของทุกขั้น แต่มองข้อมูลที่มี Noise \(x_t\) พร้อมตำแหน่งเวลา \(t\) แล้วประมาณว่าควรถอยกลับอย่างไร
ความละเอียดสำคัญคือ Reverse Process เป็นการ สุ่มตามการแจกแจงที่เรียนรู้ ไม่ใช่การใช้ยางลบลบจุดรบกวนแบบตายตัว ตัวอย่างเดียวกันอาจนำไปสู่ผลลัพธ์ต่างกันเมื่อใช้ Random Seed ต่างกัน

ภาษาคณิตศาสตร์ที่ต้องรู้ก่อนเปิดกล่องดำ
เพื่อให้สมการต่อจากนี้อ่านได้เหมือนแผนที่ เราจะใช้สัญลักษณ์ชุดเดียวตลอดบท:
| สัญลักษณ์ | ความหมาย |
|---|---|
| \(x_0\) | ตัวอย่างจริงจากข้อมูล เช่น ภาพที่ Normalize แล้ว |
| \(x_t\) | ตัวอย่างหลังผ่าน Noise ถึง Time Step \(t\) |
| \(x_T\) | ตัวอย่างปลายทางซึ่งเข้าใกล้ Gaussian Noise |
| \(q\) | Forward Process ที่กำหนดไว้และใช้สร้างข้อมูลฝึก |
| \(p_\theta\) | Reverse Process ที่มีพารามิเตอร์ \(\theta\) และต้องเรียนรู้ |
| \(\beta_t\) | ปริมาณ Variance ของ Noise ที่เติมในขั้น \(t\) |
| \(\alpha_t\) | ปริมาณสัญญาณที่เก็บไว้ โดย \(\alpha_t = 1-\beta_t\) |
| \(\bar{\alpha}_t\) | ผลคูณสะสม \(\prod_{s=1}^{t}\alpha_s\) |
| \(\epsilon\) | Gaussian Noise ที่สุ่มจาก \(\mathcal{N}(0,I)\) |
| \(\epsilon_\theta(x_t,t)\) | Noise ที่ Neural Network ทำนายจาก \(x_t\) และ \(t\) |
สัญลักษณ์ \(\mathcal{N}(\mu,\Sigma)\) หมายถึง Gaussian Distribution ที่มีค่าเฉลี่ย \(\mu\) และ Covariance \(\Sigma\) ส่วน \(I\) คือ Identity Matrix ซึ่งในบริบทนี้ทำให้ Noise แต่ละมิติมี Variance ตามที่กำหนดและไม่มี Covariance ระหว่างมิติใน Kernel พื้นฐาน
Forward Diffusion: ทำลายโครงสร้างอย่างควบคุมได้
Forward Process เป็น Markov Chain หมายความว่า \(x_t\) ขึ้นกับสถานะก่อนหน้า \(x_{t-1}\) โดยตรง ไม่จำเป็นต้องมองย้อนหลังไปทุกสถานะ:
ใน DDPM แบบพื้นฐาน การเปลี่ยนผ่านหนึ่งขั้นกำหนดเป็น:
เมื่อกำหนด \(\alpha_t=1-\beta_t\) เราเขียนสั้นลงได้ว่า:
สมการนี้ทำสองอย่างพร้อมกัน:
- คูณข้อมูลเดิมด้วย \(\sqrt{\alpha_t}\) เพื่อให้สัญญาณเดิมอ่อนลงเล็กน้อย
- เติม Gaussian Noise ที่มีส่วนเบี่ยงเบนมาตรฐาน \(\sqrt{1-\alpha_t}\)
เขียนเป็น Reparameterization ได้ว่า:
การใช้รากที่สองไม่ได้เป็นรายละเอียดตกแต่ง เพราะ Variance เปลี่ยนตามกำลังสองของตัวคูณ หากต้องการให้ส่วน Noise มี Variance เท่ากับ \(1-\alpha_t\) ตัวคูณของ \(\epsilon_t\) จึงต้องเป็น \(\sqrt{1-\alpha_t}\)
Noise Schedule คือการกำหนดจังหวะทำลายข้อมูล
ลำดับ \(\beta_1,\beta_2,\ldots,\beta_T\) เรียกว่า Noise Schedule หาก \(\beta_t\) เล็ก ข้อมูลจะเปลี่ยนทีละน้อย หากใหญ่เกินไป โครงสร้างอาจหายเร็วและทำให้การย้อนกลับยาก
งาน DDPM ปี 2020 ใช้ Linear Schedule ในการทดลองหลักบางส่วน ขณะที่งานรุ่นต่อมาพัฒนา Schedule รูปแบบอื่น เช่น Cosine Schedule ประเด็นสำคัญไม่ใช่ว่า Schedule ใดดีที่สุดเสมอ แต่คือมันกำหนด Signal-to-Noise Ratio ที่โมเดลพบในแต่ละช่วงเวลา
Forward Process ไม่ได้ “เรียนรู้วิธีทำลายภาพ” เราเป็นผู้กำหนดกฎการเติม Noise ส่วนสิ่งที่เรียนรู้คือวิธีย้อนกฎนั้นภายใต้การแจกแจงของข้อมูลจริง
ทางลัดสำคัญ: สุ่ม Noise ระดับใดก็ได้ในหนึ่งสมการ
หากการฝึกต้องเดินจาก \(x_0\) ผ่าน \(x_1,x_2,\ldots,x_t\) ทุกครั้ง ต้นทุนจะสูงโดยไม่จำเป็น คุณสมบัติของ Gaussian ทำให้เรารวม Noise หลายขั้นเป็นสมการเดียวได้
กำหนด:
แล้วจะได้:
หรือในรูปที่ใช้สุ่มโดยตรง:
สมการกรอบนี้เป็นหนึ่งในสมการที่ใช้บ่อยที่สุดของ DDPM เพราะทำให้การสร้าง Training Pair ง่ายมาก:
- สุ่มข้อมูลจริง \(x_0\)
- สุ่ม Time Step \(t\)
- สุ่ม Noise \(\epsilon\)
- คำนวณ \(x_t\) ในครั้งเดียว
- ให้โมเดลทำนาย Noise ที่ถูกเติม
เหตุใดผลคูณสะสมจึงปรากฏ
ลองขยายเพียงสองขั้น:
แทน \(x_1\) ลงในสมการที่สอง:
Gaussian สองส่วนที่เป็นอิสระต่อกันรวมกลับเป็น Gaussian เดียวได้ ส่วนสัญญาณเดิมถูกคูณด้วย \(\sqrt{\alpha_1\alpha_2}\) เมื่อทำซ้ำถึงขั้น \(t\) จึงได้ \(\sqrt{\bar{\alpha}_t}\)
ในช่วงต้น \(\bar{\alpha}_t\) ยังใกล้ 1 ทำให้ \(x_t\) คล้ายข้อมูลจริง แต่เมื่อ \(t\) เพิ่ม ผลคูณสะสมลดลง ส่วน \(\sqrt{1-\bar{\alpha}_t}\epsilon\) มีอิทธิพลมากขึ้น จน \(x_T\) เข้าใกล้ \(\mathcal{N}(0,I)\)
Reverse Process: ปัญหาที่โมเดลต้องเรียนรู้
Forward Process ง่ายเพราะเรารู้ \(x_0\) และเลือกวิธีเติม Noise เอง แต่ตอนสร้างข้อมูล เรามีเพียง \(x_T\sim\mathcal{N}(0,I)\) และต้องหาทางย้อนกลับ
แบบจำลองกำหนด Joint Distribution ของเส้นทางย้อนกลับเป็น:
โดยทั่วไปกำหนดการเปลี่ยนผ่านย้อนกลับหนึ่งขั้นเป็น Gaussian:
Neural Network จึงต้องประมาณค่าเฉลี่ย \(\mu_\theta\) และอาจประมาณหรือกำหนด Covariance \(\Sigma_\theta\) ตาม Parameterization ที่เลือก
Posterior ที่รู้ \(x_0\) มีสูตรปิด
ระหว่างการฝึก เรารู้ตัวอย่างจริง \(x_0\) จึงคำนวณ Posterior ของ Forward Process ได้:
โดย:
และ:
สูตรนี้บอกตำแหน่งที่เหมาะสมของ \(x_{t-1}\) หากเรารู้ทั้ง \(x_t\) และต้นฉบับ \(x_0\) แต่ใน Sampling จริง เราไม่รู้ \(x_0\) เพราะนั่นคือสิ่งที่กำลังสร้าง โมเดลจึงต้องใช้ \(x_t\) และ \(t\) เพื่อประมาณข้อมูลที่ขาดหายไป
นี่คือหัวใจของการเรียนรู้: ทำให้ Reverse Transition ที่โมเดลทำนายใกล้กับ Posterior ที่คำนวณได้ในช่วงฝึก
จาก Maximum Likelihood สู่ ELBO
เป้าหมายเชิงความน่าจะเป็นคือเพิ่ม Log-likelihood ของข้อมูล:
แต่ \(p_\theta(x_0)\) ต้องรวมเส้นทางแฝง \(x_1,\ldots,x_T\) ทั้งหมด:
อินทิกรัลนี้คำนวณตรง ๆ ได้ยาก เราจึงใช้ Forward Process \(q(x_{1:T}\mid x_0)\) เป็น Variational Distribution และสร้างขอบเขตล่างของ Log-likelihood ที่เรียกว่า Evidence Lower Bound หรือ ELBO
รูปที่เขียนกระชับได้คือ:
ดังนั้นการลด Negative ELBO เขียนได้เป็น:
เมื่อตัดแยกตาม Time Step Loss จะประกอบด้วย:
- Term ที่ทำให้ Prior ปลายทาง \(q(x_T\mid x_0)\) ใกล้ \(p(x_T)\)
- ผลรวมของ KL Divergence ระหว่าง Posterior จริง \(q(x_{t-1}\mid x_t,x_0)\) กับ Reverse Transition \(p_\theta(x_{t-1}\mid x_t)\)
- Reconstruction Term ที่ขั้นสุดท้ายสำหรับ \(x_0\)
เขียนโครงสร้างได้ว่า:
โดย Term กลางแต่ละขั้นมีรูป:
ELBO จึงไม่ได้เป็นสูตรลอย ๆ แต่เปลี่ยนโจทย์ “สร้างข้อมูลทั้งชิ้นให้เหมือนจริง” ให้เป็นการทำให้การย้อนกลับแต่ละขั้นใกล้กับ Posterior ที่เราคำนวณได้ระหว่างฝึก
ทำไมการฝึกจึงกลายเป็นโจทย์ทำนาย Noise
แม้เราจะให้ Neural Network ทำนาย \(\mu_\theta\) โดยตรงได้ งาน DDPM พบ Parameterization ที่สะดวกและมีประสิทธิภาพ: ให้โมเดลทำนาย Gaussian Noise \(\epsilon\) ที่ถูกเติมลงใน \(x_0\)
จากสมการ:
เราจัดรูปเพื่อประมาณ \(x_0\) ได้ว่า:
เมื่อแทนการทำนาย Noise ลงใน Reverse Mean จะได้:
งาน DDPM ใช้ Training Objective แบบง่าย:
อ่านสมการจากด้านในออกมาเป็นขั้นตอนได้ดังนี้:
- สุ่มตัวอย่างจริง \(x_0\)
- สุ่ม Time Step \(t\)
- สุ่ม Gaussian Noise \(\epsilon\)
- สร้าง \(x_t\) ด้วยสมการแบบปิด
- ให้โมเดลทำนาย \(\epsilon_\theta(x_t,t)\)
- วัด Mean Squared Error ระหว่าง Noise จริงกับ Noise ที่ทำนาย
ความเรียบง่ายของ Loss อาจทำให้เข้าใจผิดว่าโมเดลเพียงเรียนรู้ตัวกรองลด Noise แต่โจทย์จริงยากกว่านั้น เพราะเมื่อ Noise สูง รายละเอียดเฉพาะจุดแทบหายไป โมเดลต้องใช้สถิติของข้อมูลฝึกเพื่อประมาณว่าโครงสร้างชนิดใดมีความเป็นไปได้ภายใต้ \(x_t\)
Pseudocode สำหรับหนึ่ง Training Step
# x0: batch of normalized training samples
t = sample_uniform_time_steps(batch_size)
eps = randn_like(x0)
alpha_bar_t = gather(alpha_bar, t)
xt = sqrt(alpha_bar_t) * x0 + sqrt(1 - alpha_bar_t) * eps
eps_pred = model(xt, t)
loss = mean((eps - eps_pred) ** 2)
loss.backward()
optimizer.step()
โค้ดสั้นนี้ซ่อนรายละเอียดของสถาปัตยกรรม การ Conditioning การกระจายน้ำหนักระหว่าง Time Step และ Numerical Precision แต่แสดงแกนของการฝึก DDPM ได้ครบ
Sampling: เปลี่ยน Gaussian Noise ให้เป็นข้อมูล
หลังฝึกเสร็จ เราไม่ต้องมี \(x_0\) จริง เริ่มจาก:
แล้วเดินย้อนจาก \(t=T\) ถึง \(1\) หากใช้ Parameterization แบบทำนาย Noise ขั้นพื้นฐาน:
โดย:
และที่ขั้นสุดท้ายมักตั้ง \(z=0\) เพื่อไม่เติม Noise หลังได้ \(x_0\) แล้ว ส่วน \(\sigma_t\) ขึ้นกับวิธีเลือก Variance ของ Reverse Process
ตีความทีละส่วน:
- \(x_t\) คือสถานะปัจจุบัน
- \(\epsilon_\theta(x_t,t)\) คือ Noise ที่โมเดลเชื่อว่าปะปนอยู่
- พจน์ในวงเล็บคำนวณ Reverse Mean
- \(\sigma_t z\) รักษาความเป็น Stochastic และเปิดทางให้เกิดตัวอย่างหลากหลาย
Sampling แบบดั้งเดิมต้องเรียก Neural Network หลายครั้งตามจำนวน Time Step จึงช้ากว่าโมเดลที่สร้างผลลัพธ์ใน Forward Pass เดียว งานรุ่นต่อมาจึงพัฒนา DDIM, Solver และ Distillation เพื่อลดจำนวนก้าว ซึ่งจะเป็นหัวข้อถัดไปใน PATH นี้
ตัวอย่างตัวเลข: หนึ่งมิติ หนึ่ง Time Step
เพื่อให้สมการไม่ลอยอยู่เหนือพื้น ลองลดภาพหลายล้านมิติให้เหลือข้อมูลหนึ่งมิติ
กำหนด:
Forward Sampling ให้:
สมมติ Neural Network ทำนาย Noise ได้:
เราประมาณข้อมูลต้นฉบับได้ว่า:
ค่าที่กู้ได้ \(0.767\) ยังไม่เท่ากับ \(0.8\) เพราะโมเดลทำนาย Noise ไม่สมบูรณ์ แต่ใกล้กว่าสถานะที่มี Noise \(0.3954\) อย่างชัดเจน ในระบบจริง กระบวนการนี้เกิดกับ Tensor หลายมิติและทำซ้ำหลาย Time Step
ตัวอย่างนี้ยังเผยข้อเท็จจริงสำคัญ: ความคลาดเคลื่อนของการทำนาย Noise สามารถสะสมผ่าน Sampling Chain ได้ คุณภาพจึงขึ้นกับทั้งโมเดล Schedule จำนวนก้าว และ Numerical Method ไม่ใช่ Loss ขั้นเดียวเท่านั้น
Diffusion Model เรียนรู้อะไรจริง ๆ
คำอธิบายว่า “โมเดลเรียนรู้ Noise” ถูก แต่ยังไม่ครบ สิ่งที่โมเดลต้องใช้เพื่อทำนาย Noise คือโครงสร้างทางสถิติของข้อมูล
ลองนึกถึงภาพใบหน้าที่ถูกเติม Noise เล็กน้อย การแยก Noise ออกจากสัญญาณต้องรู้ว่าขอบตา ผิว และเส้นผมมักมีรูปแบบอย่างไร เมื่อ Noise สูงขึ้น หลักฐานจากภาพปัจจุบันยิ่งน้อย โมเดลยิ่งต้องพึ่ง Prior ที่เรียนจากชุดข้อมูลว่า “ข้อมูลที่เป็นไปได้” มีหน้าตาอย่างไร
ความเชื่อมโยงกับ Score Function
Score ของการแจกแจงที่เวลา \(t\) คือ Gradient ของ Log-density:
มันชี้ทิศทางในพื้นที่ข้อมูลที่ทำให้ Log-probability เพิ่มขึ้น สำหรับ Gaussian Perturbation การทำนาย Noise เชื่อมกับ Score โดยสัดส่วน:
ดังนั้นโมเดลที่ทำนาย Noise กำลังเรียน Vector Field ที่ช่วยชี้กลับไปยังบริเวณซึ่งข้อมูลจริงมีความหนาแน่นสูงกว่า ความเชื่อมโยงนี้เป็นสะพานระหว่าง DDPM กับ Score-based Generative Modeling
แต่ไม่ควรตีความว่าโมเดลค้นพบ “ความจริง” เพียงหนึ่งเดียว Score และ Reverse Distribution สะท้อนข้อมูลฝึก การออกแบบโมเดล และ Objective หากข้อมูลฝึกมีช่องว่างหรืออคติ ทิศทางที่โมเดลเรียนรู้ก็รับข้อจำกัดนั้นมาด้วย
จาก Unconditional สู่ Text-to-Image
สมการพื้นฐานที่อธิบายมาจนถึงตอนนี้เป็น Unconditional Diffusion Model ซึ่งสร้างตัวอย่างจากการแจกแจงโดยไม่มีคำสั่งกำกับ
หากต้องการควบคุมผลลัพธ์ เราเพิ่มเงื่อนไข \(c\) เช่น Class Label ข้อความ ภาพอ้างอิง หรือข้อมูลโครงสร้าง:
Neural Network จึงทำนาย Noise โดยพิจารณาทั้งสถานะปัจจุบัน เวลา และเงื่อนไข ระบบ Text-to-Image สมัยใหม่มักใช้ Text Encoder แปลง Prompt เป็น Representation แล้วส่งเข้า Denoising Network ผ่านกลไกอย่าง Cross-attention
Latent Diffusion ลดต้นทุนเพิ่มเติมด้วยการทำ Diffusion ใน Latent Space ของ Autoencoder แทน Pixel Space โดยตรง งานของ Rombach และคณะชี้ให้เห็นว่าการลดมิติในลักษณะนี้ช่วยลดต้นทุนการคำนวณ พร้อมรักษาความสามารถในการสร้างภาพความละเอียดสูง
อย่างไรก็ตาม Prompt ไม่ได้เขียนพิกเซลลงภาพโดยตรง มันเปลี่ยน Conditional Distribution ที่กระบวนการ Sampling ใช้เลือกเส้นทาง ผลลัพธ์จึงขึ้นกับ Training Data, Text Encoder, Guidance, Sampler, Seed และการตั้งค่าอื่นร่วมกัน
จุดแข็ง ข้อจำกัด และความเสี่ยง
ทำไม Diffusion Model จึงได้รับความสนใจ
การฝึกมี Objective ที่ตรงไปตรงมา
Loss แบบทำนาย Noise เป็น Regression Objective ไม่ต้องฝึก Generator และ Discriminator แข่งขันกันแบบ GAN จึงหลีกเลี่ยงความไม่เสถียรบางชนิดของ Adversarial Training
กระจายโจทย์ยากเป็นหลายโจทย์ย่อย
โมเดลเรียน Denoising หลายระดับ ตั้งแต่ Noise ต่ำที่เน้นรายละเอียด ไปจนถึง Noise สูงที่ต้องจัดโครงสร้างใหญ่
รองรับ Conditioning ได้ยืดหยุ่น
Class, Text, Image, Mask และสัญญาณควบคุมอื่นสามารถใช้กำกับ Reverse Process ได้
เชื่อมกับกรอบความน่าจะเป็นชัดเจน
Forward Kernel, Reverse Model, Variational Bound และ Score มีความสัมพันธ์ทางคณิตศาสตร์ที่ตรวจสอบได้
แต่ข้อดีไม่ได้ทำให้ต้นทุนหายไป
Sampling แบบต่อเนื่องช้า
การเรียก Neural Network หลายสิบถึงหลายพันครั้งต่อหนึ่งตัวอย่างมีต้นทุนสูง แม้ Sampler รุ่นใหม่จะลดจำนวนก้าวได้มากแล้ว
การฝึกใช้ข้อมูลและพลังประมวลผลสูง
โมเดลขนาดใหญ่ต้องพบข้อมูลจำนวนมากใน Noise หลายระดับ และการสร้างภาพความละเอียดสูงเพิ่มภาระหน่วยความจำกับการคำนวณ
Metric ไม่ครอบคลุมคุณภาพทั้งหมด
FID หรือ CLIP-based Metric สะท้อนคุณภาพบางด้าน แต่ไม่แทนการประเมินความถูกต้องของรายละเอียด ความเหมาะสมตามบริบท ความหลากหลาย หรือผลกระทบต่อผู้ใช้
Sampling มี Trade-off ระหว่างความตรงเงื่อนไขกับความหลากหลาย
Guidance ที่แรงขึ้นอาจทำให้ผลลัพธ์ตรง Prompt มากขึ้น แต่ลดความหลากหลายหรือสร้าง Artifact ได้
โมเดลสะท้อนข้อมูลฝึก
อคติ การเหมารวม ช่องว่างด้านวัฒนธรรม ตลอดจนเนื้อหาที่มีสิทธิ์หรือข้อมูลส่วนบุคคลในชุดฝึก สามารถส่งผลต่อสิ่งที่โมเดลสร้าง
ความน่าจะเป็นไม่เท่ากับความจริง
ภาพที่ดูสมจริงอาจแสดงเหตุการณ์ วัตถุ ตัวอักษร หรือรายละเอียดเชิงวิชาการที่ไม่ถูกต้อง โมเดลสร้างตัวอย่างที่สอดคล้องกับรูปแบบทางสถิติ ไม่ได้ตรวจสอบข้อเท็จจริงแทนมนุษย์
ความเสี่ยงในการนำไปใช้
- ตรวจสิทธิ์ของข้อมูลฝึก ข้อมูลอ้างอิง และผลลัพธ์ก่อนใช้งานเชิงพาณิชย์
- หลีกเลี่ยงการสร้างหรือเผยแพร่ภาพบุคคลจริงในบริบทที่ทำให้เข้าใจผิด
- ระบุเมื่อสื่อถูกสร้างหรือดัดแปลงด้วย AI ตามบริบทและกฎที่เกี่ยวข้อง
- ทดสอบ Prompt และผลลัพธ์ในหลายกลุ่มผู้ใช้ ไม่ประเมินเฉพาะตัวอย่างที่ดูดีที่สุด
- เก็บ Seed, Model Version, Sampler และค่าตั้งสำคัญเมื่อการทำซ้ำมีความหมาย
- ให้มนุษย์ตรวจผลลัพธ์ก่อนใช้ในงานสุขภาพ กฎหมาย การเงิน ความปลอดภัย หรือการสื่อสารสาธารณะที่มีผลกระทบสูง
Checklist สำหรับอ่านงานหรือออกแบบระบบ Diffusion
เมื่อพบระบบที่เรียกว่า Diffusion Model ให้ถามอย่างน้อยสิบข้อ:
- ข้อมูล \(x_0\) อยู่ใน Space ใด — Pixel, Latent, Audio Waveform หรือ Representation แบบอื่น
- Forward Process คืออะไร — Gaussian, Discrete หรือกระบวนการชนิดอื่น
- Noise Schedule กำหนดอย่างไร — \(\beta_t\) หรือ Signal-to-Noise Ratio เปลี่ยนตามเวลาแบบใด
- โมเดลทำนายอะไร — Noise \(\epsilon\), ข้อมูลต้นฉบับ \(x_0\), Velocity \(v\) หรือ Score
- Reverse Variance จัดการอย่างไร — กำหนดคงที่ เรียนรู้ หรือผูกกับ Schedule
- Conditioning เข้าสู่โมเดลตรงไหน — Concatenation, Cross-attention หรือ Guidance
- Sampler และจำนวนก้าวคืออะไร — DDPM, DDIM, Euler, Heun, DPM-Solver หรือวิธีอื่น
- ประเมินด้วยอะไร — Likelihood, FID, CLIPScore, Task Metric และ Human Evaluation ครบหรือไม่
- มีการทดสอบความครอบคลุมและความเสี่ยงหรือไม่ — Bias, Memorization, Privacy, Copyright และ Safety
- ทำซ้ำได้หรือไม่ — ระบุ Seed, Model Checkpoint, Scheduler, Precision และ Software Version หรือยัง
Checklist นี้ช่วยป้องกันการเปรียบเทียบแบบผิดฐาน เช่น บอกว่าโมเดล A “ดีกว่า” โมเดล B ทั้งที่ใช้ Sampler จำนวนก้าว ความละเอียด และชุดประเมินคนละแบบ
แบบฝึกคิดและคำถามที่พบบ่อย
แบบฝึกคิด: สร้าง Forward Sample ด้วยมือ
กำหนดข้อมูลหนึ่งมิติ:
- คำนวณ \(x_t\) จากสมการแบบปิด
- สมมติว่าโมเดลทำนาย \(\epsilon_\theta=-0.20\) แล้วคำนวณ \(\hat{x}_0\)
- เปรียบเทียบ \(|x_0-\hat{x}_0|\)
- อธิบายว่าจะเกิดอะไรขึ้นหาก \(\bar{\alpha}_t\) ลดลงใกล้ศูนย์
แนวตรวจคำตอบ
ดังนั้น Absolute Error เท่ากับ \(0.0375\) เมื่อ \(\bar{\alpha}_t\) เข้าใกล้ศูนย์ ข้อมูลเดิมใน \(x_t\) จะเหลือน้อยลง การประมาณ \(x_0\) จึงพึ่งความแม่นของโมเดลและ Prior จากข้อมูลฝึกมากขึ้น
Diffusion Model เป็น Markov Chain เสมอหรือไม่
DDPM พื้นฐานกำหนด Forward และ Reverse Process แบบ Markovian แต่กรอบและ Sampler รุ่นต่อมาสามารถสร้างเส้นทางที่ไม่เหมือน DDPM ดั้งเดิม เช่น DDIM ใช้ Non-Markovian Forward Process ในการสร้าง Sampling Process ที่สามารถกำหนดให้เป็น Deterministic ได้ภายใต้เงื่อนไขบางแบบ
ทำไมใช้ Gaussian Noise
Gaussian มีคุณสมบัติทางคณิตศาสตร์ที่ทำให้การรวมหลายขั้น การสุ่มแบบ Reparameterization และการคำนวณ Posterior ทำได้สะดวก มันไม่ใช่ Noise ชนิดเดียวที่เป็นไปได้ แต่เป็นฐานที่ทำให้กรอบ DDPM พื้นฐานวิเคราะห์และฝึกได้ง่าย
โมเดลทำนาย Noise แล้วสร้างรายละเอียดใหม่ได้อย่างไร
เมื่อข้อมูลมี Noise สูง โมเดลไม่สามารถรู้รายละเอียดต้นฉบับเฉพาะภาพได้ทั้งหมด มันใช้รูปแบบที่เรียนจากการแจกแจงข้อมูลเพื่อสุ่มเส้นทางที่เป็นไปได้ รายละเอียดใหม่จึงเกิดจาก Conditional Distribution และ Randomness ไม่ใช่การค้นภาพต้นฉบับที่ซ่อนอยู่ใน Noise
Diffusion Model จำภาพฝึกหรือไม่
โมเดลมีเป้าหมายเรียนการแจกแจง แต่โมเดลขนาดใหญ่สามารถจดจำหรือสร้างผลลัพธ์ใกล้ข้อมูลฝึกบางรายการได้ โดยเฉพาะข้อมูลที่ซ้ำหรือโดดเด่น การประเมิน Memorization และ Data Governance จึงยังจำเป็น ไม่ควรสรุปจากหลักการของ Objective เพียงอย่างเดียวว่าไม่มีการจำ
จำนวน Sampling Step มากกว่าดีกว่าเสมอหรือไม่
ไม่เสมอ คุณภาพขึ้นกับโมเดล Schedule และ Numerical Solver ร่วมกัน Sampler ที่ออกแบบดีอาจใช้ก้าวน้อยกว่าแต่ได้ผลใกล้เคียงหรือดีกว่า การเพิ่มก้าวเกินช่วงที่เหมาะสมอาจเพิ่มเวลาโดยแทบไม่เพิ่มคุณภาพ
Diffusion Model เข้าใจ Prompt หรือไม่
โมเดลตอบสนองต่อ Representation ของข้อความและความสัมพันธ์ที่เรียนจากข้อมูล การทำตาม Prompt ได้ไม่เท่ากับความเข้าใจภาษา โลก หรือเจตนาของผู้ใช้แบบมนุษย์ จึงยังผิดจำนวนวัตถุ ความสัมพันธ์เชิงพื้นที่ ตัวอักษร หรือข้อเท็จจริงได้
แบบทดสอบความเข้าใจ 5 ข้อ
ลองตรวจว่าคุณแยก Forward Process, Reverse Process, Training Objective และข้อจำกัดของระบบได้หรือไม่ ระบบจะแสดงเหตุผลของคำตอบพร้อมคะแนนรวม
บทเรียนสำคัญ
Diffusion Model ไม่ได้เริ่มจากคำถามว่า “จะวาดภาพอย่างไร” แต่เริ่มจากการออกแบบเส้นทางระหว่างการแจกแจงซับซ้อนกับการแจกแจงง่าย
Forward Process ทำให้เรารู้วิธีสร้าง \(x_t\) และ Posterior ที่ใช้เป็นครูระหว่างฝึก Reverse Process ใช้ Neural Network ประมาณการย้อนกลับ ส่วน Variational Bound เชื่อมการฝึกแต่ละขั้นกับเป้าหมาย Maximum Likelihood เมื่อเลือก Parameterization แบบทำนาย Noise โจทย์ที่ดูซับซ้อนจึงยุบลงเป็น Mean Squared Error ที่สุ่มได้ทุก Time Step
แต่ความเรียบง่ายของ Loss ไม่ควรบดบังต้นทุนจริง คุณภาพของระบบยังขึ้นกับข้อมูล สถาปัตยกรรม Schedule Sampler Conditioning การประเมิน และการควบคุมความเสี่ยง
บทสรุป: ภาพไม่ได้โผล่ออกจากความว่างเปล่า
กลับไปยังภาพที่ค่อย ๆ ปรากฏจาก Noise ในช่วงเปิดเรื่อง ตอนนี้เรามองเห็นสิ่งที่ซ่อนอยู่หลังภาพนั้นแล้ว
มันเริ่มจาก \(x_T\sim\mathcal{N}(0,I)\) เดินย้อนผ่านการแจกแจง \(p_\theta(x_{t-1}\mid x_t)\) และใช้ Neural Network ประมาณ Noise หรือ Score ในแต่ละขั้น จน Sampling Chain เดินกลับเข้าสู่บริเวณที่โมเดลเชื่อว่าข้อมูลจริงมีความน่าจะเป็นสูง
ดังนั้นคำถามที่ดีไม่ใช่เพียง “ภาพสวยหรือไม่” แต่รวมถึง:
- Forward Process และ Prediction Target ถูกกำหนดอย่างไร
- Reverse Process ใช้ Sampler และจำนวนก้าวเท่าใด
- โมเดลเรียนจากข้อมูลอะไรและมีช่องว่างแบบใด
- Metric ที่รายงานวัดคุณภาพด้านไหน และด้านใดที่ยังต้องให้มนุษย์ตรวจ
เมื่อถามได้ครบ เราจะไม่เห็น Diffusion Model เป็นกล่องวิเศษ แต่เป็นระบบความน่าจะเป็นที่มีสมมติฐาน สมการ จุดแข็ง และข้อจำกัดให้ตรวจสอบได้

เรียนต่อในเส้นทาง Diffusion Model
บทเรียนนี้วางภาพรวมและภาษาคณิตศาสตร์ของทั้งระบบ หัวข้อถัดไปจะขยาย Forward Diffusion Process อย่างละเอียด ตั้งแต่ Markov Property, Noise Schedule, Signal-to-Noise Ratio ไปจนถึงการพิสูจน์สมการ \(q(x_t\mid x_0)\)
เปิด Learning Pack ของ PATH 17 และดูหัวข้อ 802: Forward Diffusion Process
แหล่งอ้างอิงและหมายเหตุบรรณาธิการ
- Sohl-Dickstein, Weiss, Maheswaranathan & Ganguli — Deep Unsupervised Learning using Nonequilibrium Thermodynamics (ICML/PMLR, 2015)
- Ho, Jain & Abbeel — Denoising Diffusion Probabilistic Models (NeurIPS, 2020)
- Nichol & Dhariwal — Improved Denoising Diffusion Probabilistic Models (ICLR, 2021)
- Song et al. — Score-Based Generative Modeling through Stochastic Differential Equations (ICLR, 2021)
- Rombach et al. — High-Resolution Image Synthesis with Latent Diffusion Models (CVPR, 2022)
ตรวจสอบข้อเท็จจริงและสมการล่าสุด: 2 สิงหาคม 2026
บทเรียนนี้อธิบาย DDPM แบบ Gaussian Discrete-time เป็นแกนหลัก โมเดล Diffusion ชนิด Discrete, Continuous-time, Flow-based หรือ Domain-specific อาจใช้สมมติฐานและสมการต่างออกไป

