เราได้คิดค้นโมเดลเชิงกำเนิดแบบใหม่ที่ได้รับการตอบรับใน ICLR
(discrete-distribution-networks.github.io)- Discrete Distribution Networks (DDN) เป็น โมเดลเชิงกำเนิดแบบใหม่ที่ล้ำสมัย ซึ่งมีหลักการและคุณลักษณะใหม่
- DDN มีผลการทดลองที่โดดเด่นและความสามารถด้าน การแทนค่าแบบไม่ต่อเนื่อง 1D ผ่านอัลกอริทึม Split-and-Prune optimization
- อาศัยโครงสร้างแบบลำดับชั้นในการประมาณการแจกแจงต่อเนื่อง และยืนยันคุณสมบัติที่น่าสนใจ เช่น Zero-Shot conditional generation
- DDN แสดงให้เห็นถึงศักยภาพในการประยุกต์ใช้กับงานจริงที่หลากหลาย เช่น การสร้างภาพและการแปลงสไตล์
- DDN มี จุดแตกต่างจากโมเดลเชิงกำเนิดเดิม ในด้านความสามารถในการขยายระบบ ประสิทธิภาพ และการปรับตัวอย่างเป็นธรรมชาติ
ภาพรวมของ DDN: Discrete Distribution Networks
ทำไมจึงสำคัญ?
DDN (Discrete Distribution Networks) คือแนวทางใหม่ที่แตกต่างจากโมเดลเชิงกำเนิดแบบเดิมโดยสิ้นเชิง โดยมีหลักการที่เรียบง่าย โครงสร้างแบบลำดับชั้นที่เป็นเอกลักษณ์ และคุณสมบัติอย่าง Zero-Shot conditional generation จึงเปิดโอกาสอย่างมากทั้งในเชิงวิจัยและการประยุกต์ใช้จริง เพราะใช้วิธีการที่ต่างจาก GAN และ Diffusion
สรุปประเด็นสำคัญ
- DDN เป็น โมเดลเชิงกำเนิด แบบใหม่ที่ประมาณการแจกแจงของข้อมูลด้วยโครงสร้างการแจกแจงแบบไม่ต่อเนื่องเชิงลำดับชั้น
- มีการเสนอเทคนิคการปรับให้เหมาะสมแบบ Split-and-Prune และทดลองคุณสมบัติที่แตกต่าง เช่น Zero-Shot Conditional Generation และ การแทนค่าแฝงแบบไม่ต่อเนื่อง 1D ซึ่งทำได้ยากในโมเดลเชิงกำเนิดเดิม
- DDN สร้างตัวอย่างหลายแบบพร้อมกันในแต่ละเลเยอร์ แล้วเลือกตัวอย่างที่ใกล้กับเป้าหมายที่สุดเพื่อใช้เป็นเงื่อนไขของเลเยอร์ถัดไป
- เมื่อจำนวนเลเยอร์เพิ่มขึ้น พื้นที่การแทนค่าของผลลัพธ์จะขยายแบบเอ็กซ์โปเนนเชียล และท้ายที่สุดจะสร้างตัวอย่างที่คล้ายกับเป้าหมาย
- จากการทดลองหลากหลายรูปแบบ (CIFAR-10, FFHQ, การแปลงสไตล์, super-resolution ฯลฯ) พบว่ามีจุดแข็งด้านความเรียบง่าย ความสามารถในการทั่วไป และศักยภาพในการใช้งานจริงเมื่อเทียบกับวิธีเดิม
การทดลองประมาณความหนาแน่นของ DDN
- การสาธิตกระบวนการประมาณความหนาแน่นความน่าจะเป็นแบบ 2D
- ซ้าย: ตัวอย่างทั้งหมดที่ DDN สามารถสร้างได้ในขณะนั้น
- ขวา: แผนที่ความหนาแน่นความน่าจะเป็นเป้าหมาย
- ใช้การแจกแจงเป้าหมายหลายแบบต่อเนื่องกัน (blur_circles, QR_code, spiral ฯลฯ) พร้อมการปรับให้เหมาะสมอย่างต่อเนื่อง
- Optimizer: ใช้ Gradient Descent และ Split-and-Prune พร้อมกัน
- เมื่อนำ Split-and-Prune มาใช้ ค่า KL divergence จะต่ำกว่าตัวอย่างจริงเสียอีก
ผลงานหลักของบทความวิจัย
- เสนอ โมเดลเชิงกำเนิดแบบใหม่—DDN ที่เรียบง่ายและมีประสิทธิภาพมากขึ้น
- เสนออัลกอริทึม Split-and-Prune และเทคนิคเชิงปฏิบัติสำหรับการใช้งานจริง
- ยืนยันคุณสมบัติอย่าง Zero-Shot conditional generation ที่ไม่ต้องใช้ gradient และ การแทนค่าแบบไม่ต่อเนื่อง 1D ที่เป็นเอกลักษณ์
- ได้รับการประเมินในรีวิว ICLR ว่า “แตกต่างจากโมเดลเชิงกำเนิดเดิมอย่างมาก และช่วยขยายทิศทางการวิจัย”
- หลักการของ DDN: ในแต่ละเลเยอร์จะสร้างตัวอย่างแบบไม่ต่อเนื่องจำนวนมาก คัดเลือกเฉพาะผลลัพธ์ที่ใกล้เป้าหมายที่สุด แล้วค่อยๆ ปรับให้ละเอียดขึ้นตามลำดับชั้น
โครงสร้างและกลไกการทำงาน
โครงสร้างการแจกแจงแบบไม่ต่อเนื่องเชิงลำดับชั้น
- แต่ละเลเยอร์รับตัวอย่างที่ถูกเลือกจากเลเยอร์ก่อนหน้าเป็นอินพุต แล้วสร้างตัวอย่างหลายแบบ
- จากนั้นส่งต่อเฉพาะผลลัพธ์ที่ใกล้กับตัวอย่างฝึกสอนปัจจุบัน (คำตอบจริง) มากที่สุดไปยังเลเยอร์ถัดไป
- เมื่อทำซ้ำไปเรื่อยๆ ผลลัพธ์จะละเอียดขึ้นและเข้าใกล้การแจกแจงเป้าหมาย
- เมื่อเพิ่มจำนวนเลเยอร์ พื้นที่การแทนค่าของเอาต์พุตที่สร้างได้จะเติบโตแบบเอ็กซ์โปเนนเชียล
- ตัวเครือข่ายสามารถแทนการแจกแจงได้โดยตรงด้วยการสร้างตัวอย่างหลายแบบพร้อมกัน
การสร้างภาพกลับคืนและการแทนค่าแฝง
- เอาต์พุตของแต่ละเลเยอร์สามารถให้ภาพที่แตกต่างกัน และจะส่งต่อเฉพาะผลลัพธ์ที่คล้ายกับเป้าหมายสุดท้ายที่สุดไปยังเลเยอร์ถัดไป
- บทบาทของตัวสุ่มตัวอย่าง: เลือกภาพที่คล้ายกับเป้าหมายมากที่สุด
- ในงานสร้างข้อมูล จะใช้การสุ่มตัวอย่างแบบสุ่มเพื่อเพิ่มความหลากหลายให้สูงสุด
- ตัวแปรแฝงของ DDN สามารถตีความเป็นโครงสร้างแบบต้นไม้ได้ โดยแต่ละตัวอย่างจะถูกแมปไปยังปลายต้นไม้ (leaf node)
ตัวอย่างผลการทดลอง
- ประมาณการแจกแจงแบบ 2D ได้หลากหลาย (spiral, QR_code ฯลฯ)
- ใช้ Split-and-Prune เพื่อลด KL divergence และบรรเทาปัญหา dead nodes หรือ density shift
- บน CIFAR-10, FFHQ ฯลฯ ยืนยันรูปแบบการสร้างที่เป็นเอกลักษณ์และประสิทธิภาพเมื่อเทียบกับโมเดลที่ใช้ GAN และ Diffusion
รองรับ Zero-Shot conditional generation
- DDN รองรับ Zero-Shot conditional generation โดยไม่ต้องใช้กราเดียนต์
- ตัวอย่าง: การสร้างภาพจากข้อความโดยใช้ CLIP black-box
- สามารถจัดการเงื่อนไขที่หลากหลายซึ่งไม่จำกัดเฉพาะพิกเซลได้อย่างมีประสิทธิภาพ เช่น การแปลงสไตล์และ super-resolution
การฝึกและแนวทางของโมเดลสองแบบ
- ระหว่างการฝึก จะทำ sample selection ในแต่ละ Discrete Distribution Layer (DDL) แล้วปรับให้เหมาะสมด้วย Adam+Split-and-Prune
- Single Shot Generator: แต่ละเลเยอร์มีน้ำหนักของตนเองแยกกัน
- Recurrence Iteration: ทุกเลเยอร์ใช้ชุดน้ำหนักร่วมกัน
ตัวอย่างการประยุกต์ใช้ที่หลากหลาย
การสร้างภาพใบหน้าแบบสุ่ม
- ผลลัพธ์การสร้างภาพใบหน้าด้วย DDN ที่ผ่านการฝึก แสดงให้เห็นทั้งความหลากหลายและคุณภาพของภาพที่ได้
การลงสีภาพแบบมีเงื่อนไข / การแปลง edge-to-color
- อาศัยภาพเฉพาะเป็นฐานเพื่อให้ได้สไตล์ที่ใกล้เคียงที่สุด พร้อมทั้งตรงตามเงื่อนไขที่กำหนด
- ความละเอียดของภาพที่สร้างคือ 256x256
การแสดงภาพการสร้างแบบลำดับชั้น (MNIST เป็นต้น)
- แสดงภาพผลลัพธ์ระหว่างทางและผลลัพธ์สุดท้ายในแต่ละขั้นตอนการสร้าง
- ภาพขนาดใหญ่เป็นภาพร่าง ส่วนภาพขนาดเล็กเป็นผลลัพธ์สุดท้ายที่ผ่านการปรับละเอียดแล้ว
ทิศทางการวิจัยในอนาคตและความเป็นไปได้ในการประยุกต์ใช้
- มีโอกาสปรับปรุงประสิทธิภาพของ DDN ได้ผ่านการจูนไฮเปอร์พารามิเตอร์ การทดลองเชิงสำรวจ และการวิเคราะห์เชิงทฤษฎี
- ขยายไปสู่ปัญหาที่มีความซับซ้อนระดับ ImageNet และสร้างโมเดลที่พร้อมใช้งานจริงในบริการต่างๆ
- นำไปใช้กับงานหลากหลาย เช่น super-resolution, image coloring, depth estimation, pose estimation และ robotics
- เมื่อเทียบกับโมเดลแบบ Diffusion สามารถให้เอาต์พุตหลายตัวอย่างได้ในการทำ forward-pass เพียงครั้งเดียว
- มีประสิทธิภาพและนำข้อจำกัดไปใช้ได้ง่ายในงานอย่างการประเมินความไม่แน่นอน
- ความสามารถในการทำ end-to-end differentiation ช่วยให้ผสานกับการเรียนรู้แบบ discriminator/reward เดิมได้อย่างมีประสิทธิภาพ
- นำไปใช้กับงานที่ไม่ใช่เชิงกำเนิดได้ด้วย เช่น unsupervised clustering และ data compression
- งานวิจัยต่อยอดที่นำแนวคิดการออกแบบของ DDN ไปใช้กับโมเดลเชิงกำเนิดเดิม (เช่น การผสาน Diffusion กับ latent space แบบไม่ต่อเนื่อง 1D)
- เสนอแนวทางใหม่ใน language modeling เช่น การสร้างแบบจำลองสตริงไบนารีโดยตรงโดยไม่ต้องมี tokenizer
คำถามที่พบบ่อย
Q1: ต้องใช้หน่วยความจำ GPU เพิ่มขึ้นหรือไม่?
- เพิ่มขึ้นเล็กน้อยเมื่อเทียบกับ GAN Generator เดิม แต่ไม่แตกต่างมาก
- ระหว่างการฝึก จะเก็บ gradient เฉพาะตัวอย่างที่ถูกเลือก ส่วนที่เหลือจะถูกทิ้งทันที จึงยังมีพื้นที่หน่วยความจำเพียงพอ
- ในขั้นตอนการสร้าง จะสุ่มสร้างเพียงหนึ่งตัวอย่าง จึงไม่จำเป็นต้องสร้างตัวอย่างทั้งหมด และแทบไม่เพิ่มการใช้ทรัพยากร
Q2: มีปัญหา mode collapse หรือไม่?
- ไม่มี เพราะจะคำนวณ loss กับผลลัพธ์ที่คล้ายเป้าหมายที่สุดเสมอ จึงช่วยคงความหลากหลายไว้
- จากการทดลองยังพบว่าประสิทธิภาพในการสร้างชุดทดสอบกลับคืน (reconstruction) ดีมาก
- อย่างไรก็ตาม หากเป็นข้อมูลมิติสูงที่เกินกว่าความซับซ้อนของ DDN จะรองรับได้ อาจเกิดการสร้างตัวอย่างที่เบลอได้
1 ความคิดเห็น
ความเห็นจาก Hacker News
ผู้เขียนแสดงความยินดีที่พบว่ารีวิวของ ICLR มีประโยชน์ โดยมองว่ากรณีนี้เป็นตัวอย่างที่แสดงให้นโยบายเปิดเผยรีวิวบทความทั้งหมดของ ICLR ทำงานได้สำเร็จอย่างไร
ผู้รีวิวทำหน้าที่เสมือนเป็น "รายงานประเมิน" ให้ผู้เขียนเห็นว่าบทความถูกตีความอย่างไรภายใต้การไม่เปิดเผยตัวตน และคนที่อยู่นอกวงวิชาการแบบดั้งเดิมก็สามารถเห็นการถกเถียงที่ซ่อนอยู่เบื้องหลังการรับหรือปฏิเสธบทความได้
ลิงก์รีวิวของบทความนี้อยู่ที่นี่
ดูรายการบทความที่ถูกปฏิเสธทั้งหมดได้ที่นี่
ใน Fig.18 ของบทความมีการกล่าวว่า Taiji-DDN คล้ายกับไท่จี๋ในปรัชญาจีนโบราณ
รู้สึกว่าส่วนนี้ค่อนข้างฝืนอยู่เล็กน้อย
เพราะโครงสร้างแบบแตกกิ่งเป็นแนวคิดที่พบได้ทั่วไปอยู่แล้ว การโยงเข้ากับสำนวนหรือแนวคิดคลาสสิกโดยเฉพาะจึงดูชวนงงอยู่บ้าง
ไม่คิดว่ามันจะเป็นเรื่องงมงายหรือแปลกประหลาดอะไร
พอเห็นว่าบทความผู้เขียนเดี่ยวได้รับการตีพิมพ์ใน ICLR ก็ยิ่งรู้สึกประทับใจ โดยเฉพาะเมื่อเป็นงานที่เสนอวิธีการใหม่อย่างชัดเจน
โครงสร้างดูน่าสนใจมาก
แม้จะมีข้อดีตรงที่ดีบักง่าย แต่เพราะใช้ sampler และไม่ใช่เราเตอร์สไตล์ Mixture-of-Experts (MoE) จึงมีข้อเสียคือการคำนวณ K-1 ครั้งในแต่ละเลเยอร์ถูกทิ้งไปอย่างมีผล
สำหรับผม คำเปรียบเทียบที่ใกล้ที่สุดคือการผสมระหว่าง MoE กับโมเดล latent diffusion แบบ
x0-targetและจุดนวัตกรรมหลักอยู่ที่ guided sampler กับ split-and-prune optimizer มากกว่าเราเตอร์คิดว่านี่เป็นสิ่งที่ทำให้การเทรนง่ายขึ้น
เนื่องจากความน่าจะเป็นในการสุ่มตัวอย่างเป็น 1/K โดยไม่ขึ้นกับอินพุต ตอนอนุมานจึงไม่จำเป็นต้องคำนวณค่ากลางทั้ง K ตัวในแต่ละเลเยอร์ล่วงหน้า แค่ตัดสินใจว่าจะใช้ตัวไหนแล้วคำนวณเฉพาะตัวนั้นก็พอ
เรื่องนี้มีอธิบายไว้ในส่วน "Common Questions About DDN" ข้อ Q1 ตอนท้ายบทความ
ดูเหมือนคุณจะเข้าใจบทความคลาดเคลื่อนไป
ไม่มี "experts" อยู่ในนั้น และเอาต์พุตมีหน้าที่เพียงประมาณการการสุ่มตัวอย่างจากการแจกแจงเท่านั้น
ไม่มี latent diffusion และใช้ convolution ที่คล้ายกับ GAN
จุดสำคัญคือในช่วงอนุมานสามารถเลือกดัชนีของตัวอย่างไว้ล่วงหน้าได้ จึงไม่มีการคำนวณที่สูญเปล่า
เป็นคอนเซปต์ที่เจ๋งมาก
ดูจากตัวอย่างใต้บทคัดย่อของบทความแล้ว น่าทึ่งที่โมเดลให้ผลลัพธ์ได้ค่อนข้างแม่นในหลายจุด
เช่น แนวไรผมในแถว 2 คอลัมน์ 3 สีเสื้อในแถว 2 คอลัมน์ 7/8/9/11 ลิปสติกทั้งแถว 4/6 และตำแหน่งหรือรูปทรงของใบหน้าและเส้นผมในแถว 6 คอลัมน์ 4
โดยเฉพาะบริเวณสีแดงที่มุมล่างซ้ายของแถว 6 คอลัมน์ 4 นั้นน่าทึ่งมาก เหมือนโมเดลจับได้ว่ามีอะไรสีแดงอยู่และวางก้อนสีแดงไว้ในตำแหน่งที่ถูกต้องพอดี
อาจเป็นอคติของชุดข้อมูล เช่น ลิปสติก หรืออาจเป็นการสังเกตแบบเลือกเฉพาะสิ่งที่เด่น แต่สำหรับสายเสื้อสีแดงก็อดสงสัยไม่ได้ว่าเป็น data leakage, overfitting หรือแค่ความบังเอิญ
ผมเองก็เคยทำอะไรคล้ายกันในเชิงสถาปัตยกรรม แม้วิธีจะต่างกัน โดยสร้างลำดับชั้นของ cross-attention กับ learned queries และเพิ่มความ sparse ให้ attention matrix ด้วย L1
representations แบบลำดับชั้นเชิงไม่ต่อเนื่องนั้นน่าสนใจมากจริง ๆ
รูปแบบการกระตุ้นในแต่ละเลเยอร์ทำหน้าที่เหมือน "parse tree" สำหรับแต่ละอินพุต ทำให้บีบอัดภาพเป็นลำดับจำนวนเต็มสั้น ๆ ได้อย่างมีประสิทธิภาพ
ขอถามในจุดที่ผมอาจยังไม่เข้าใจ: ถ้าเครือข่ายประกอบด้วย 1x1 convolution อย่างเดียว มันไม่ได้แปลว่าไม่มีการแลกเปลี่ยนข้อมูลระหว่างพิกเซลเลยหรือ
ถ้าอย่างนั้นก็หมายความว่าแต่ละพิกเซลเป็นอิสระจากกันโดยสมบูรณ์ แล้วผลลัพธ์จะไม่ขาดความสอดคล้องหรือ
แม้จะไม่ใช่กรณีนี้ แต่ในความเป็นจริงก็มีสถาปัตยกรรมที่สร้างพิกเซลอย่างเป็นอิสระต่อกันอยู่จริง
พวกมันสามารถสร้างพิกเซลหรือองค์ประกอบใด ๆ ของภาพแบบสุ่มขึ้นมาได้โดยไม่ต้องสร้างส่วนที่เหลือก่อน และเป็นสิ่งที่อยู่ภายในตัวแบบอยู่แล้ว
ตัวอย่างเช่น NeRF, "single-pixel GAN" และ MAE โดยมีลิงก์บทความคือบทความนี้, บทความนี้, บทความนี้
ที่ทำได้แบบนี้เพราะอาจมองได้ว่าโมเดลมีความสามารถในการ "จดจำ" ข้อมูลที่เป็นไปได้ทั้งหมดอยู่แล้ว ดังนั้นการสร้างแบบเป็นอิสระก็เหมือนแค่ดึงส่วนหนึ่งของ "ความทรงจำ" นั้นออกมา
latent space เป็นวัตถุเชิงแพลโทนิกที่ไม่เปลี่ยนแปลง จึงไม่แปลกที่แต่ละจุดจะถูกสร้างขึ้นแยกกันได้ในเชิงกายภาพ
เหมือนกับที่ arbitrary points สามารถสร้างได้ด้วยฟังก์ชันอย่าง
y=mx+bการสร้างภาพก็เป็นเพียงอินพุตของฟังก์ชันที่ซับซ้อนกว่าเท่านั้นแนวคิดนี้ไม่ได้จำกัดอยู่แค่ภาพ และภาษาธรรมชาติก็สามารถสร้างแบบค่อนข้างอิสระได้เช่นกัน โดยขยายต่อได้จากโค้ดนี้และข้อเสนอของผมที่นี่
สำหรับ DDN นั้น 1x1 convolution ถูกใช้เฉพาะในเอาต์พุตเลเยอร์ของ Discrete Distribution Layer (DDL) เท่านั้น
ส่วน neural blocks ระหว่าง DDL เป็นแหล่งหลักของการคำนวณและพารามิเตอร์ และใช้ 3x3 convolution แบบมาตรฐาน
น่าสนใจมาก
เมื่อไม่กี่วันก่อนผมเพิ่งทำงานวิจัย diffusion ที่ใช้ symbolic transform matrix เพื่อทำให้ deep graph reaction system รันขนานได้ และดูเหมือนว่าหลายคนกำลังมุ่งหน้าไปในทิศทางกว้าง ๆ แบบนี้
ผมเริ่มคิดว่าในอีก 1-2 ปีข้างหน้า โมเดลที่อิง diffusion จะเข้ามานำการสร้างโค้ด
สุดยอดมาก ผมเคยทุ่มเวลาไปกับ representation learning อยู่พอสมควร และกริดตัวเลข MNIST ก็ทำให้หวนคิดถึงวันเก่า ๆ
คิดว่านี่เป็นแนวทางที่น่าสนใจและใหม่จริง ๆ และอยากรู้ว่าถ้าขยายไปใช้กับโดเมนที่ไม่ใช่ภาพจะทำได้ดีแค่ไหน
อยากรู้ว่าจะติดตามงานต่อจากนี้ได้ที่ไหน
ผลการวิจัยต่อจากนี้จะโพสต์ไว้ทั้งบน GitHub และ Twitter(X)
ดูเป็นงานวิจัยที่ดีมากจริง ๆ เลยเพิ่มเข้าไปในรายการอ่านแล้ว
ขอบคุณที่นำมาแชร์บน Hacker News