แบบจำลองแบบแพร่ (diffusion model) หรือ แบบจำลองความน่าจะเป็นแบบแพร่ (diffusion probability model) ในสาขาการเรียนรู้ของเครื่อง คือแบบจำลองตัวแปรแฝงประเภทหนึ่ง เป็นลูกโซ่มาร์คอฟที่ได้รับการฝึกโดยใช้วิธีแบบเบส์แบบแปรผัน[1] เป้าหมายของแบบจำลองแบบแพร่คือการเรียนรู้โครงสร้างแฝงของชุดข้อมูลโดยการสร้างแบบจำลองพฤติกรรมของจุดข้อมูลแต่ละจุดที่แจกแจงในปริภูมิแฝง ในสาขาคอมพิวเตอร์วิทัศน์ ได้มีการใช้แบบจำลองแบบแพร่สร้างโครงข่ายประสาทเทียม ซึ่งฝึกให้เรียนรู้ที่จะย้อนกลับกระบวนการการแพร่เพื่อการลดสัญญาณรบกวนออกจากภาพที่ถูกทำให้เบลอด้วยสัญญาณรบกวนแบบเกาส์[2][3]
แบบจำลองแบบแพร่ได้รับการคิดค้นขึ้นมาในปี 2015 โดยได้รับแรงบันดาลใจจากอุณหพลศาสตร์แบบไม่สมดุล[4][5]
แบบจำลองแบบแพร่สามารถนำไปใช้กับการดำเนินการต่าง ๆ เช่น การลดสัญญาณรบกวนของภาพ, การซ่อมแซมภาพ, การเพิ่มความละเอียดภาพ การสร้างภาพ และการบีบอัดข้อมูล ตัวอย่างเช่น แบบจำลองการสร้างภาพสามารถสร้างภาพที่ดูเป็นธรรมชาติขึ้นมาใหม่ได้จากการใช้ภาพสัญญาณรบกวนแบบสุ่มเป็นค่าเริ่มต้น แล้วเรียนรู้กระบวนที่ตรงกันข้ามกับการแพร่ของภาพธรรมชาติ
ตัวอย่างการประยุกต์ใช้แบบจำลองแบบแพร่ที่มีชื่อเสียง ได้แก่ ตัวแบบสำหรับสร้างภาพจากข้อความ เช่น DALL-E 2 ของโอเพนเอไอ และ สเตเบิลดิฟฟิวชัน เป็นต้น DALL-E 2 ใช้แบบจำลองแบบแพร่สำหรับทั้งการแจกแจงก่อนของแบบจำลองสร้างภาพ และตัวถอดรหัสสำหรับการสร้างภาพขั้นสุดท้าย[6][7] การบีบอัดข้อมูลโดยใช้แบบจำลองแบบแพร่มีข้อดีตรงที่ไม่ต้องเข้ารหัส และมีประสิทธิภาพสูงกว่าวิธีการบีบอัดประสิทธิภาพสูงสุดแบบดั้งเดิม[7]
พิจารณาปัญหาการสร้างภาพ โดยให้ x {\displaystyle x} เป็นรูปภาพ และฟังก์ชันความหนาแน่นความน่าจะเป็นบนปริภูมิรูปภาพคือ p ( x ) {\displaystyle p(x)} ถ้ารู้ p ( x ) {\displaystyle p(x)} ก็จะสามารถระบุความน่าจะเป็นที่ภาพแต่ละชนิดจะถูกสร้างขึ้นได้ แต่โดยทั่วไปแล้ว เป็นการยากที่จะทราบความน่าจะเป็นนั้น
ในกรณีส่วนใหญ่ เราไม่สนใจความน่าจะเป็นเฉพาะที่ภาพหนึ่ง ๆ จะถูกสร้างขึ้น แต่ที่สนใจกว่าก็คือว่า ภาพนั้นมีแนวโน้มที่จะถูกสร้างขึ้นมากเพียงใดเมื่อเทียบกับภาพใกล้เคียง ตัวอย่างเช่น หากมีรูปภาพแมวที่มีหนวด 2 หนวด ปัญหาคือภาพนั้นมีแนวโน้มที่จะถูกสร้างขึ้นแค่ไหนเมื่อเทียบกับภาพที่คล้ายกัน เช่น รูปภาพแมวที่มีหนวด 3 หนวด หรือรูปภาพที่ถูกเติมสัญญาณรบกวนแบบเกาส์เข้าไป
ดังนั้นเป้าหมายที่สนใจไม่ใช่ตัว p ( x ) {\displaystyle p(x)} นั้นเอง แต่เป็น ∇ x ln p ( x ) {\displaystyle \nabla _{x}\ln p(x)} การพิจารณาแบบนี้มีข้อดีคือ
ให้ฟังก์ชันคะแนนเป็น s ( x ) := ∇ x ln p ( x ) {\displaystyle s(x):=\nabla _{x}\ln p(x)} แล้ว s ( x ) {\displaystyle s(x)} จะสามารถสุ่มตัวอย่างจาก p ( x ) {\displaystyle p(x)} โดยใช้พลศาสตร์อนุญาตให้สุ่มตัวอย่างโดยใช้พลศาสตร์ล็องฌ์แว็งความชันแบบเฟ้นสุ่ม (stochastic gradient Langevin dynamics) นี่เป็นรูปแบบที่เล็กที่สุดของวิธีมอนเตการ์โลลูกโซ่มาร์คอฟ[2]
แทนที่จะสุ่มตัวอย่างจากกลุ่มของรูปภาพทั้งหมด เราสามารถพิจารณาสุ่มเอาตัวอย่างแค่จากช่วงขอบเขตที่กำหนดโดยคำอธิบายภาพ เช่น แทนที่จะดึงออกมาจากกลุ่มรูปภาพทั่วไป ให้ดึงมาเฉพาะภาพที่สอดคล้องกับคำอธิบายว่า "แมวสีดำตาสีแดง" เป็นต้น โดยทั่วไปแล้วนี่จะเป็นการสุ่มตัวอย่างบนการแจกแจง p ( x | y ) {\displaystyle p(x|y)} ในที่นี้รูปภาพ x {\displaystyle x} จะได้มาจากช่วงของภาพทั้งหมด ในขณะที่ขอบเขตของรูปภาพ y {\displaystyle y} จะถูกจำกัดอยู่ที่รูปภาพจำเพาะประเภท
จากมุมมองของแบบจำลองช่องสัญญาณที่มีสัญญาณรบกวน กระบวนการนี้สามารถเข้าใจได้ดังนี้ เมื่อต้องการจะสร้างภาพ x {\displaystyle x} ภายใต้เงื่อนไขตามคำอธิบาย y {\displaystyle y} ผู้ที่ต้องการสร้างภาพจะสร้างภาพขึ้นมานั้น จริง ๆ แล้วกำลังวาดภาพ x {\displaystyle x} อยู่ แต่เนื่องจากว่าภาพนั้นผ่านช่องสัญญาณที่มีสัญญาณรบกวน จึงเกิดการผิดเพี้ยนของตัวอักษร จนจินตนาการไปว่าได้รับสัญญาณเป็นคำอธิบาย y {\displaystyle y} ในกรณีนี้ การสร้างภาพในที่นี้เป็นแค่การทำนายภาพ x {\displaystyle x} ที่ถูกจินตนาการไว้แต่แรกโดยบุคคลที่ต้องการสร้างภาพนั้น
กล่าวอีกนัยหนึ่ง การสร้างภาพแบบมีเงื่อนไขนั้นเป็นเพียงการแปลภาษาที่อธิบายด้วยข้อความให้กลายเป็นภาษาที่อธิบายด้วยภาพ ดังนั้น เช่นเดียวกับแบบจำลองช่องสัญญาณที่มีสัญญาณรบกวน เราสามารถใช้ทฤษฎีบทของเบส์ได้ว่า
p ( x | y ) ∝ p ( y | x ) p ( x ) {\displaystyle p(x|y)\propto p(y|x)p(x)}
นั่นคือหากมีแบบจำลองที่ดีสำหรับปริภูมิรูปภาพทั้งหมด ( p ( x ) {\displaystyle p(x)} ) และตัวแปลคุณภาพสูงสำหรับแปลง "รูปภาพ → ประเภท" ( p ( y | x ) {\displaystyle p(y|x)} ) นั่นหมายความว่าเราสามารถจะได้ตัวแปล "ประเภท → รูปภาพ" ได้โดยไม่ต้องลำบากนัก
พลศาสตร์ล็องฌ์แว็งความชันแบบเฟ้นสุ่มใช้สมการต่อไปนี้
∇ x ln p ( x | y ) = ∇ x ln p ( y | x ) + ∇ x ln p ( x ) {\displaystyle \nabla _{x}\ln p(x|y)=\nabla _{x}\ln p(y|x)+\nabla _{x}\ln p(x)}
ในที่นี้ ∇ x ln p ( x ) {\displaystyle \nabla _{x}\ln p(x)} คือฟังก์ชันคะแนนที่เรียนรู้ตามที่อธิบายไว้ข้างต้น โดย ∇ x ln p ( y | x ) {\displaystyle \nabla _{x}\ln p(y|x)} ได้มาจากการใช้ตัวจำแนกรูปภาพที่หาอนุพันธ์ได้
แม้ในกรณีที่ไม่มีตัวจำแนก p ( y | x ) {\displaystyle p(y|x)} ก็สามารถสกัดเอาตัวจำแนกจากตัวแบบจำลองรูปภาพเองได้ดังนี้[8]
∇ x ln p β ( x | y ) = ( 1 − β ) ∇ x ln p ( x ) + β ∇ x ln p ( x | y ) {\displaystyle \nabla _{x}\ln p_{\beta }(x|y)=(1-\beta )\nabla _{x}\ln p(x)+\beta \nabla _{x}\ln p(x|y)}
แบบจำลองดังกล่าวนั้นมักจะฝึกสอนโดยป้อนให้ทั้ง ( x , y ) {\displaystyle (x,y)} และ ( x , N o n e ) {\displaystyle (x,None)} แล้วสร้างแบบจำลอง ∇ x ln p ( x | y ) {\displaystyle \nabla _{x}\ln p(x|y)} และ ∇ x ln p ( x ) {\displaystyle \nabla _{x}\ln p(x)} ขึ้นพร้อมกัน
CFG ได้กลายเป็นส่วนสำคัญที่ขาดไม่ได้สำหรับแบบจำลองต่าง ๆ เช่น GLIDE[9], DALL-E[10] และ Google Imagen[11]
{{cite journal}}
|journal=