Xlera8

مشین لرننگ کے لیے ڈفیوژن ماڈلز کا تعارف

یہ مضمون اصل میں شائع کیا گیا تھا اسمبلی اے آئی اور مصنف کی اجازت سے TOPBOTS پر دوبارہ شائع کیا گیا۔.

ڈفیوژن ماڈلز جنریٹیو ماڈل ہیں جو پچھلے کئی سالوں میں اور اچھی وجہ سے خاصی مقبولیت حاصل کر رہے ہیں۔ 2020 کی دہائی میں جاری ہونے والے مٹھی بھر سیمینل پیپرز اکیلے نے دنیا کو دکھایا ہے کہ ڈفیوژن ماڈل کیا قابل ہیں، جیسے کہ GAN کو مارنا[6] تصویر کی ترکیب پر. حال ہی میں، پریکٹیشنرز نے ڈفیوژن ماڈلز کو اس میں استعمال ہوتے دیکھا ہوگا۔ DALL-E2اوپن اے آئی کا امیج جنریشن ماڈل گزشتہ ماہ جاری ہوا۔

DALL-E 2 کے ذریعہ تیار کردہ مختلف تصاویر (ذرائع).

ڈفیوژن ماڈلز کی کامیابی کی حالیہ لہر کو دیکھتے ہوئے، بہت سے مشین لرننگ پریکٹیشنرز یقیناً اپنے اندرونی کاموں میں دلچسپی رکھتے ہیں۔ اس مضمون میں، ہم کی جانچ پڑتال کریں گے ڈفیوژن ماڈلز کی نظریاتی بنیادیں۔، اور پھر یہ ظاہر کریں کہ a کے ساتھ تصاویر کیسے تیار کی جائیں۔ PyTorch میں ڈفیوژن ماڈل. آئیے اندر غوطہ لگائیں!

اگر یہ گہرائی میں تعلیمی مواد آپ کے لیے مفید ہے، ہماری AI میلنگ لسٹ کو سبسکرائب کریں۔ جب ہم نیا مواد جاری کرتے ہیں تو متنبہ کیا جائے۔ 

ڈفیوژن ماڈلز - تعارف

ڈفیوژن ماڈلز ہیں۔ پیداواری ماڈلز، اس کا مطلب یہ ہے کہ وہ اس ڈیٹا کی طرح ڈیٹا تیار کرنے کے لیے استعمال ہوتے ہیں جس پر انہیں تربیت دی جاتی ہے۔ بنیادی طور پر، ڈفیوژن ماڈلز کام کرتے ہیں۔ تربیتی ڈیٹا کو تباہ کرنا گاوسی شور کے یکے بعد دیگرے اضافے کے ذریعے، اور پھر بازیافت کرنا سیکھنا کی طرف سے ڈیٹا تبدیل شور مچانے کا یہ عمل۔ تربیت کے بعد، ہم آسانی سے ڈیٹا تیار کرنے کے لیے ڈفیوژن ماڈل کا استعمال کر سکتے ہیں۔ سیکھے ہوئے denoising کے عمل کے ذریعے تصادفی نمونہ شور سے گزرنا۔

ڈفیوژن ماڈلز کو شور سے تصویریں بنانے کے لیے استعمال کیا جا سکتا ہے۔ ذرائع)

مزید خاص طور پر، ایک ڈفیوژن ماڈل ایک اویکت متغیر ماڈل ہے جو ایک مقررہ مارکوف چین کا استعمال کرتے ہوئے اویکت جگہ کا نقشہ بناتا ہے۔ یہ سلسلہ بتدریج اعداد و شمار میں شور کا اضافہ کرتا ہے تاکہ تخمینی پچھلے q(x) کو حاصل کیا جا سکے۔1: ٹی|x0)، جہاں x1،…،ایکسT ایک ہی جہت کے ساتھ اویکت متغیرات ہیں جیسے x0. نیچے دی گئی تصویر میں، ہم تصویر کے ڈیٹا کے لیے اس طرح کی مارکوف چین کو ظاہر کرتے ہوئے دیکھتے ہیں۔

بالآخر، تصویر غیر علامتی طور پر خالص گاوسی شور میں تبدیل ہو جاتی ہے۔ دی مقصد ایک بازی ماڈل کی تربیت کا مطلب سیکھنا ہے۔ ریورس عمل - یعنی تربیت pθ(xt−1|xt)۔ اس زنجیر کے ساتھ پیچھے کی طرف جانے سے، ہم نیا ڈیٹا بنا سکتے ہیں۔

ڈفیوژن ماڈلز کے فوائد

جیسا کہ اوپر بتایا گیا ہے، حالیہ برسوں میں ڈفیوژن ماڈلز کی تحقیق پھٹ گئی ہے۔ غیر متوازن تھرموڈینامکس سے متاثر[1]، بازی ماڈلز فی الحال پیدا کرتے ہیں۔ اسٹیٹ آف دی آرٹ تصویر کا معیارجس کی مثالیں ذیل میں دیکھی جا سکتی ہیں:

جدید ترین تصویری معیار کے علاوہ، ڈفیوژن ماڈلز دیگر فوائد کے ساتھ آتے ہیں، بشمول مخالف تربیت کی ضرورت نہیں ہے. مخالف تربیت کی مشکلات اچھی طرح سے دستاویزی ہیں؛ اور، ان صورتوں میں جہاں موازنہ کارکردگی اور تربیت کی کارکردگی کے ساتھ غیر مخالف متبادل موجود ہوں، عام طور پر ان کا استعمال کرنا بہتر ہے۔ تربیت کی کارکردگی کے موضوع پر، ڈفیوژن ماڈلز کے اضافی فوائد بھی ہیں۔ توسیع پذیری اور متوازی قابلیت۔

جب کہ ڈفیوژن ماڈلز تقریباً پتلی ہوا سے نتائج پیدا کرتے نظر آتے ہیں، بہت سارے محتاط اور دلچسپ ریاضیاتی انتخاب اور تفصیلات موجود ہیں جو ان نتائج کی بنیاد فراہم کرتی ہیں، اور ادب میں بہترین طریق کار اب بھی تیار ہو رہے ہیں۔ آئیے اب مزید تفصیل سے ڈفیوژن ماڈلز کو زیر کرنے والے ریاضیاتی تھیوری پر ایک نظر ڈالتے ہیں۔

ڈفیوژن ماڈلز - ایک گہرا غوطہ

جیسا کہ اوپر ذکر کیا گیا ہے، ایک ڈفیوژن ماڈل پر مشتمل ہوتا ہے۔ آگے کا عمل (یا بازی کا عمل)، جس میں ایک ڈیٹم (عام طور پر ایک تصویر) آہستہ آہستہ شور کیا جاتا ہے، اور a ریورس عمل (یا ریورس بازی کا عمل)، جس میں شور کو ہدف کی تقسیم سے دوبارہ نمونے میں تبدیل کر دیا جاتا ہے۔

آگے بڑھنے کے عمل میں نمونے لینے کے سلسلے کی منتقلی کو مشروط گاؤسین پر سیٹ کیا جا سکتا ہے جب شور کی سطح کافی کم ہو۔ اس حقیقت کو مارکوف کے مفروضے کے ساتھ جوڑنا آگے بڑھنے کے عمل کی ایک سادہ پیرامیٹرائزیشن کا باعث بنتا ہے:

ریاضی کا نوٹ

ہم ڈیٹا کو کرپٹ کرنے کے بارے میں بات کر رہے ہیں۔ انہوں نے مزید کہا گاوسی شور، لیکن یہ پہلے تو واضح نہیں ہو سکتا ہے کہ ہم یہ اضافہ کہاں کر رہے ہیں۔ مندرجہ بالا مساوات کے مطابق، زنجیر کے ہر قدم پر ہم صرف ایک گاوسی تقسیم سے نمونہ لے رہے ہیں جس کا مطلب سلسلہ میں پچھلی قدر (یعنی تصویر) ہے۔

یہ دونوں بیانات برابر ہیں۔ یہ ہے کہ

یہ سمجھنے کے لیے کہ کیوں، ہم اصرار کرتے ہوئے اشارے کی ہلکی سی غلط استعمال کریں گے۔

جہاں حتمی مضمرات بے ترتیب متغیرات کے مجموعے اور ان کی تقسیم کے کنولیشن کے درمیان ریاضیاتی مساوات سے پیدا ہوتے ہیں - دیکھیں یہ ویکیپیڈیا صفحہ مزید معلومات کے لیے.

دوسرے لفظوں میں، ہم نے یہ ظاہر کیا ہے کہ گاوسی ڈسٹری بیوشن کے ذریعہ پچھلے ایک پر مشروط ٹائم اسٹیپ کی تقسیم پر زور دینا اس بات پر زور دینے کے مترادف ہے کہ کسی دیے گئے ٹائم سٹیپ کی تقسیم گاوسی شور کے اضافے کے ساتھ پچھلے والی کی ہے۔ ہم نے تغیراتی نظام الاوقات کے ذریعہ متعارف کرائے گئے اسکیلرز کو چھوڑ دیا اور اسے سادگی کے لیے ایک جہت کے لیے دکھایا، لیکن ملٹی ویریٹ گاوسیوں کے لیے اسی طرح کا ثبوت ہے۔

جہاں β1،…،βT ایک متغیر شیڈول ہے (یا تو سیکھا ہوا یا طے شدہ) جو، اگر اچھا برتاؤ کیا جائے، اس بات کو یقینی بناتا ہے xT کافی بڑے T کے لیے تقریباً ایک isotropic Gaussian ہے۔

مارکوف کے مفروضے کو دیکھتے ہوئے، اویکت متغیرات کی مشترکہ تقسیم گاوسی کنڈیشنل چین ٹرانزیشنز کی پیداوار ہے (جس سے ترمیم شدہ ذرائع).

جیسا کہ پہلے ذکر کیا گیا ہے، بازی ماڈلز کا "جادو" میں آتا ہے۔ ریورس عمل. تربیت کے دوران، ماڈل نیا ڈیٹا تیار کرنے کے لیے اس بازی کے عمل کو ریورس کرنا سیکھتا ہے۔ خالص گاوسی شور کے ساتھ شروع کرنا p(xT:=N(xT,0,I) ماڈل مشترکہ تقسیم p سیکھتا ہے۔θ(x0: ٹی) کے طور پر

جہاں گاوسی ٹرانزیشن کے وقت پر منحصر پیرامیٹرز سیکھے جاتے ہیں۔ خاص طور پر نوٹ کریں کہ مارکوف فارمولیشن اس بات پر زور دیتی ہے کہ دی گئی ریورس ڈفیوژن ٹرانزیشن ڈسٹری بیوشن کا انحصار صرف پچھلے ٹائم سٹیپ پر ہوتا ہے (یا اس کے بعد کے ٹائم سٹیپ، اس پر منحصر ہے کہ آپ اسے کیسے دیکھتے ہیں):

ٹریننگ

ایک ڈفیوژن ماڈل کی طرف سے تربیت دی جاتی ہے۔ معکوس مارکوف ٹرانزیشنز کو تلاش کرنا جو ٹریننگ ڈیٹا کے امکان کو زیادہ سے زیادہ بناتے ہیں۔ عملی طور پر، تربیت برابر طور پر منفی لاگ کے امکان پر متغیر بالائی حد کو کم سے کم کرنے پر مشتمل ہوتی ہے۔

اشارے کی تفصیل

نوٹ کریں کہ ایلوی ایل بی تکنیکی طور پر ایک ہے اپر پابند (ELBO کا منفی) جسے ہم کم کرنے کی کوشش کر رہے ہیں، لیکن ہم اسے L کہتے ہیں۔وی ایل بی ادب کے ساتھ مطابقت کے لیے۔

ہم L کو دوبارہ لکھنا چاہتے ہیں۔وی ایل بی کے لحاظ سے Kullback-Leibler (KL) Divergences. KL Divergence ایک غیر متناسب شماریاتی فاصلے کا پیمانہ ہے کہ ایک امکانی تقسیم کتنی ہے P حوالہ تقسیم سے مختلف ہے۔ Q. ہم ایل بنانے میں دلچسپی رکھتے ہیں۔وی ایل بی KL کے انحراف کے لحاظ سے کیونکہ ہمارے مارکوف چین میں منتقلی کی تقسیم گاوسی ہیں، اور گاوسیوں کے درمیان KL کا فرق ایک بند شکل رکھتا ہے۔

KL Divergence کیا ہے؟

مسلسل تقسیم کے لیے KL ڈائیورجن کی ریاضیاتی شکل ہے۔

ڈبل بار اس بات کی نشاندہی کرتے ہیں کہ فنکشن اس کے دلائل کے حوالے سے ہم آہنگ نہیں ہے۔

ذیل میں آپ مختلف تقسیم کا KL انحراف دیکھ سکتے ہیں۔ P (نیلا) حوالہ تقسیم سے Q (سرخ) سبز وکر مندرجہ بالا کے ایل ڈائیورجن کی تعریف میں انٹیگرل کے اندر فنکشن کی نشاندہی کرتا ہے، اور وکر کے نیچے کل رقبہ KL ڈائیورجن کی قدر کی نمائندگی کرتا ہے۔ P سے Q کسی بھی لمحے، ایک قدر جو عددی طور پر بھی ظاہر ہوتی ہے۔

کاسٹنگ ایل وی ایل بی KL Divergences کی شرائط میں

جیسا کہ پہلے ذکر کیا گیا ہے، یہ ممکن ہے [1L کو دوبارہ لکھناوی ایل بی تقریباً مکمل طور پر KL انحراف کے لحاظ سے:

کہاں

اخذ کی تفصیلات

تغیراتی حد کے برابر ہے۔

ہمارے مارکوف کے مفروضے کے پیش نظر تقسیم کو ان کی تعریفوں سے بدلنا، ہمیں ملتا ہے۔

ہم اظہار کو لاگ کے مجموعے میں تبدیل کرنے کے لیے لاگ رولز کا استعمال کرتے ہیں، اور پھر ہم پہلی اصطلاح کو نکالتے ہیں۔

Bayes کے تھیورم اور ہمارے مارکوف کے مفروضے کا استعمال کرتے ہوئے، یہ اظہار بن جاتا ہے۔

اس کے بعد ہم لاگ رولز کا استعمال کرتے ہوئے درمیانی مدت کو الگ کرتے ہیں۔

دوسری اصطلاح کو الگ کرنا، ہم دیکھتے ہیں۔

اسے L کے لیے ہماری مساوات میں واپس پلگ کرناوی ایل بیہمارے پاس ہے

لاگ قوانین کا استعمال کرتے ہوئے، ہم دوبارہ ترتیب دیتے ہیں۔

d8

اگلا، ہم کسی بھی دو تقسیم کے لیے KL ڈائیورجن کے لیے درج ذیل مساوات کو نوٹ کرتے ہیں:

آخر میں، اس مساوات کو پچھلے اظہار پر لاگو کرتے ہوئے، ہم پہنچ جاتے ہیں۔

ایکس پر آگے بڑھنے کے عمل کو کنڈیشنگ کرنا0 ایل میںt−1 ایک قابل عمل شکل میں نتیجہ جس کی طرف جاتا ہے۔ تمام KL اختلاف گاوسیوں کے درمیان موازنہ ہیں۔ اس کا مطلب یہ ہے کہ مونٹی کارلو کے تخمینے کے بجائے بند شکل کے اظہار کے ساتھ انحراف کا درست اندازہ لگایا جا سکتا ہے۔[3].

ماڈل چوائسز

ہمارے معروضی فنکشن کے لیے ریاضیاتی بنیاد قائم ہونے کے ساتھ، اب ہمیں اس حوالے سے کئی انتخاب کرنے کی ضرورت ہے کہ ہمارے ڈفیوژن ماڈل کو کیسے لاگو کیا جائے گا۔ آگے بڑھنے کے عمل کے لیے، واحد انتخاب کی ضرورت ہے متغیر شیڈول کی وضاحت، جس کی قدریں عام طور پر آگے بڑھنے کے عمل کے دوران بڑھتی رہتی ہیں۔

معکوس عمل کے لیے، ہم زیادہ تر گاوسی ڈسٹری بیوشن پیرامیٹرائزیشن/ماڈل آرکیٹیکچر کا انتخاب کرتے ہیں۔ نوٹ کریں۔ لچک کی اعلی ڈگری ڈفیوژن ماڈلز کے متحمل ہیں - صرف ہمارے فن تعمیر کی ضرورت یہ ہے کہ اس کے ان پٹ اور آؤٹ پٹ میں ایک ہی جہت ہو۔

ہم ذیل میں مزید تفصیل سے ان انتخابوں کی تفصیلات دریافت کریں گے۔

فارورڈ پروسیس اور ایلT

جیسا کہ اوپر بیان کیا گیا ہے، آگے بڑھنے کے عمل کے حوالے سے، ہمیں متغیر شیڈول کی وضاحت کرنی چاہیے۔ خاص طور پر، ہم نے انہیں مقرر کیا وقت پر منحصر مستقلاس حقیقت کو نظر انداز کرتے ہوئے کہ وہ سیکھ سکتے ہیں۔ مثال کے طور پر[3]، β سے ایک لکیری شیڈول110 =4- β کوT=0.2 استعمال کیا جا سکتا ہے، یا شاید ایک ہندسی سلسلہ۔

منتخب کردہ مخصوص اقدار سے قطع نظر، حقیقت یہ ہے کہ تغیر کا شیڈول طے شدہ ہے LT ہمارے سیکھنے کے قابل پیرامیٹرز کے سیٹ کے سلسلے میں ایک مستقل بننا، جہاں تک تربیت کا تعلق ہے ہمیں اسے نظر انداز کرنے کی اجازت دیتا ہے۔

ریورس عمل اور ایل1:T−1

اب ہم معکوس عمل کی وضاحت میں درکار انتخاب پر تبادلہ خیال کرتے ہیں۔ اوپر سے یاد کریں ہم نے معکوس مارکوف ٹرانزیشن کو گاوسی کے طور پر بیان کیا:

ہمیں اب μ کی فنکشنل شکلوں کی وضاحت کرنی چاہیے۔θ یا Σθ. جبکہ Σ کو پیرامیٹرائز کرنے کے مزید پیچیدہ طریقے ہیں۔θ[5]، ہم صرف سیٹ کرتے ہیں۔

یعنی، ہم فرض کرتے ہیں کہ ملٹی ویریٹ Gaussian یکساں تغیر کے ساتھ آزاد Gaussian کی پیداوار ہے، ایک متغیر قدر جو وقت کے ساتھ بدل سکتی ہے۔ ہم ان تغیرات کو ہمارے فارورڈ پروسیس ویریئنس شیڈول کے مساوی بنائیں۔

Σ کی اس نئی تشکیل کو دیکھتے ہوئےθہمارے پاس ہے

جو ہمیں تبدیل کرنے کی اجازت دیتا ہے

کرنے کے لئے

جہاں فرق میں پہلی اصطلاح x کا ایک لکیری مجموعہ ہے۔t اور x0 جو کہ تغیر کے شیڈول β پر منحصر ہے۔t. اس فنکشن کی صحیح شکل ہمارے مقاصد سے متعلق نہیں ہے، لیکن یہ اس میں پایا جا سکتا ہے [3].

مذکورہ بالا تناسب کی اہمیت یہ ہے۔ μ کی سب سے سیدھی پیرامیٹرائزیشنθ بس پھیلاؤ کے بعد کے وسط کی پیش گوئی کرتا ہے۔ اہم بات یہ ہے کہ مصنفین [3] نے اصل میں وہ ٹریننگ μθ کی پیشن گوئی کرنے کے لئے شور کسی بھی مقررہ وقت پر جزو بہتر نتائج دیتا ہے۔ خاص طور پر، دو

کہاں

یہ مندرجہ ذیل متبادل نقصان کی تقریب کی طرف جاتا ہےجس کے مصنفین [3] مزید مستحکم تربیت اور بہتر نتائج کی طرف لے جانے والے پایا:

کے مصنفین [3] ڈفیوژن ماڈلز کے اس فارمولیشن کے کنکشن کو بھی نوٹ کرتے ہیں جو لینگوِن ڈائنامکس پر مبنی اسکور سے مماثل جنریٹو ماڈلز کے ساتھ ہیں۔ درحقیقت، ایسا معلوم ہوتا ہے کہ ڈفیوژن ماڈلز اور سکور پر مبنی ماڈلز ایک ہی سکے کے دو رخ ہو سکتے ہیں، جو لہر پر مبنی کوانٹم میکانکس اور میٹرکس پر مبنی کوانٹم میکانکس کی آزاد اور ہم آہنگ ترقی کے مترادف ہیں جو ایک ہی مظاہر کے دو مساوی فارمولیشنوں کو ظاہر کرتے ہیں۔[2].

نیٹ ورک فن تعمیر

جبکہ ہمارا آسان نقصان کا فنکشن ماڈل ϵ کو تربیت دینے کی کوشش کرتا ہے۔θ، ہم نے ابھی تک اس ماڈل کے فن تعمیر کی وضاحت نہیں کی ہے۔ نوٹ کریں کہ صرف ماڈل کی ضرورت یہ ہے کہ اس کا ان پٹ اور آؤٹ پٹ جہت ایک جیسی ہو۔

اس پابندی کو دیکھتے ہوئے، یہ شاید حیرت کی بات نہیں ہے کہ امیج ڈفیوژن ماڈلز کو عام طور پر U-Net جیسے فن تعمیر کے ساتھ لاگو کیا جاتا ہے۔

ریورس پروسیس ڈیکوڈر اور ایل0

معکوس عمل کے ساتھ راستہ مسلسل مشروط گاوسی تقسیم کے تحت بہت سی تبدیلیوں پر مشتمل ہوتا ہے۔ معکوس عمل کے اختتام پر، یاد کریں کہ ہم ایک پیدا کرنے کی کوشش کر رہے ہیں۔ تصویر، جو عددی پکسل اقدار پر مشتمل ہے۔ لہذا، ہمیں حاصل کرنے کے لئے ایک طریقہ وضع کرنا ہوگا مجرد (لاگ) امکانات تمام پکسلز میں ہر ممکنہ پکسل ویلیو کے لیے۔

ایسا کرنے کا طریقہ یہ ہے کہ ریورس ڈفیوژن چین میں آخری منتقلی کو ایک پر سیٹ کر کے آزاد مجرد ڈیکوڈر. دی گئی تصویر x کے امکان کا تعین کرنے کے لیے0 دیا x1، ہم سب سے پہلے ڈیٹا کے طول و عرض کے درمیان آزادی نافذ کرتے ہیں:

جہاں D ڈیٹا اور سپر اسکرپٹ کی جہت ہے۔ i ایک کوآرڈینیٹ نکالنے کی نشاندہی کرتا ہے۔ اب مقصد یہ طے کرنا ہے کہ دیے گئے پکسل کے لیے ہر ایک عدد عدد کی قدر کتنی ہے۔ دی وقت t=1 پر قدرے شور والی تصویر میں متعلقہ پکسل کے لیے ممکنہ قدروں میں تقسیم:

جہاں t=1 کے لیے پکسل کی تقسیم درج ذیل ملٹی ویریٹ گاوسین سے اخذ کی گئی ہے جس کا اخترن کوویریئنس میٹرکس ہمیں تقسیم کو غیر متغیر گاوسیوں کی پیداوار میں تقسیم کرنے کی اجازت دیتا ہے، ڈیٹا کی ہر ایک جہت کے لیے:

ہم فرض کرتے ہیں کہ امیجز 0,1,…,255 میں عدد پر مشتمل ہیں (جیسا کہ معیاری RGB امیجز کرتی ہیں) جنہیں خطی طور پر [−1,1] تک پیمانہ کیا گیا ہے۔ اس کے بعد ہم اصلی لائن کو چھوٹی "بالٹیوں" میں توڑ دیتے ہیں، جہاں، دی گئی سکیلڈ پکسل ویلیو کے لیے xاس حد کے لیے بالٹی ہے [x−1/255, x+1/255]۔ پکسل قدر کا امکان x, x میں متعلقہ پکسل کی غیر متغیر گاوسی تقسیم کو دیکھتے ہوئے1، ہے بالٹی کے اندر اس غیر متغیر گاوسی تقسیم کے تحت کا علاقہ جس میں مرکز ہے۔ x.

ذیل میں آپ ان میں سے ہر ایک بالٹی کا رقبہ ان کے امکانات کے ساتھ اوسط-0 گاوسی کے لیے دیکھ سکتے ہیں جو کہ اس تناظر میں، 255/2 (آدھی چمک) کی اوسط پکسل ویلیو کے ساتھ تقسیم کے مساوی ہے۔ سرخ وکر میں ایک مخصوص پکسل کی تقسیم کی نمائندگی کرتا ہے۔ t = 1 تصویر، اور علاقے اس میں متعلقہ پکسل ویلیو کا امکان دیتے ہیں۔ t = 0 تصویر.

تکنیکی نوٹ

پہلی اور آخری بالٹیاں کل امکان کو محفوظ رکھنے کے لیے -inf اور +inf تک پھیلی ہوئی ہیں۔

دیا ہوا a t = 0 ہر پکسل کے لیے پکسل ویلیو، p کی قدرθ(x0|x1) صرف ان کی مصنوعات ہے۔ اس عمل کو مختصراً درج ذیل مساوات کے ذریعے سمیٹ لیا گیا ہے۔

کہاں

اور

پی کے لیے اس مساوات کو دیکھتے ہوئےθ(x0|x1)، ہم L کی آخری اصطلاح کا حساب لگا سکتے ہیں۔وی ایل بی جس کو KL Divergence کے طور پر وضع نہیں کیا گیا ہے:

حتمی مقصد

جیسا کہ پچھلے حصے میں ذکر کیا گیا ہے، کے مصنفین [3] نے پایا کہ کسی تصویر کے شور والے جز کی پیشین گوئی کسی مقررہ وقت پر بہترین نتائج دیتی ہے۔ بالآخر، وہ مندرجہ ذیل مقصد کا استعمال کرتے ہیں:

ہمارے ڈفیوژن ماڈل کے لیے تربیت اور نمونے لینے والے الگورتھم کو ذیل کے اعداد و شمار میں مختصراً لیا جا سکتا ہے۔

ڈفیوژن ماڈل تھیوری کا خلاصہ

اس حصے میں ہم نے ڈفیوژن ماڈلز کے نظریہ میں تفصیلی غوطہ لگایا۔ ریاضی کی تفصیلات میں پھنس جانا آسان ہو سکتا ہے، اس لیے ہم ذیل میں اس سیکشن میں سب سے اہم نکات کو نوٹ کرتے ہیں تاکہ خود کو پرندوں کی آنکھوں کے نقطہ نظر سے پرکھا جا سکے۔

  1. ہمارے ڈفیوژن ماڈل کو بطور پیرامیٹرائز کیا گیا ہے۔ مارکوف چین، یعنی ہمارے اویکت متغیرات x1،…،ایکسT صرف پچھلے (یا مندرجہ ذیل) ٹائم سٹیپ پر منحصر ہے۔
  2. ۔ منتقلی کی تقسیم مارکوف چین میں ہیں گیوسو، جہاں آگے کے عمل کے لیے تغیر کا شیڈول درکار ہوتا ہے، اور الٹ عمل کے پیرامیٹرز سیکھے جاتے ہیں۔
  3. بازی کا عمل یقینی بناتا ہے کہ xT is asymptotically ایک isotropic Gaussian کے طور پر تقسیم کیا گیا۔ کافی بڑے ٹی کے لیے۔
  4. ہمارے معاملے میں، تغیر کا شیڈول طے کیا گیا تھا۔، لیکن یہ بھی سیکھا جا سکتا ہے۔ مقررہ نظام الاوقات کے لیے، ہندسی ترقی کی پیروی ایک لکیری ترقی سے بہتر نتائج کا متحمل ہو سکتی ہے۔ دونوں صورتوں میں، فرق عام طور پر سیریز میں وقت کے ساتھ بڑھ رہے ہیں (یعنی βij میں کے لیے
  5. ڈفیوژن ماڈلز ہیں۔ انتہائی لچکدار اور اجازت دیں کوئی بھی فن تعمیر جس کا ان پٹ اور آؤٹ پٹ جہت استعمال کرنے کے لیے یکساں ہے۔ بہت سے نفاذ کا استعمال کرتے ہیں یو نیٹ کی طرح فن تعمیرات
  6. ۔ تربیت کا مقصد تربیت کے اعداد و شمار کے امکانات کو زیادہ سے زیادہ کرنا ہے۔ یہ ماڈل پیرامیٹرز کو ٹیون کرنے کے طور پر ظاہر ہوتا ہے۔ ڈیٹا کے منفی لاگ امکانات کے تغیراتی اوپری باؤنڈ کو کم سے کم کریں۔.
  7. مقصدی فنکشن میں تقریباً تمام اصطلاحات بطور کاسٹ کی جا سکتی ہیں۔ KL Divergences ہمارے مارکوف کے مفروضے کے نتیجے میں۔ یہ اقدار حساب کرنے کے قابل ہو یہ دیکھتے ہوئے کہ ہم گاوسی استعمال کر رہے ہیں، اس لیے مونٹی کارلو کے قریب ہونے کی ضرورت کو چھوڑ رہے ہیں۔
  8. بالآخر، استعمال کرتے ہوئے a آسان تربیت کا مقصد ایک ایسے فنکشن کو تربیت دینے کے لیے جو کسی دیے گئے اویکت متغیر کے شور کے جز کی پیش گوئی کرتا ہے بہترین اور سب سے زیادہ مستحکم نتائج دیتا ہے۔
  9. مجرد ڈیکوڈر ریورس ڈفیوژن کے عمل کے آخری مرحلے کے طور پر پکسل ویلیو میں لاگ امکانات حاصل کرنے کے لیے استعمال کیا جاتا ہے۔

ہمارے ذہنوں میں ڈفیوژن ماڈلز کے اس اعلیٰ سطحی جائزہ کے ساتھ، آئیے یہ دیکھتے ہیں کہ PyTorch میں ڈفیوژن ماڈلز کو کیسے استعمال کیا جائے۔

PyTorch میں پھیلاؤ کے ماڈل

جب کہ ڈفیوژن ماڈلز کو ابھی تک اسی حد تک ڈیموکریٹائز نہیں کیا گیا ہے جیسا کہ مشین لرننگ میں دیگر پرانے فن تعمیرات/طریقہ کاروں کو، استعمال کے لیے ابھی بھی نفاذ دستیاب ہیں۔ PyTorch میں ڈفیوژن ماڈل استعمال کرنے کا سب سے آسان طریقہ استعمال کرنا ہے۔ denoising-diffusion-pytorch پیکیج، جو اس مضمون میں زیر بحث کی طرح ایک تصویری بازی ماڈل کو نافذ کرتا ہے۔ پیکیج کو انسٹال کرنے کے لیے، ٹرمینل میں صرف درج ذیل کمانڈ کو ٹائپ کریں:

pip install denoising_diffusion_pytorch

کم سے کم مثال

ماڈل کو تربیت دینے اور تصاویر بنانے کے لیے، ہم پہلے ضروری پیکجز درآمد کرتے ہیں:

import torch
from denoising_diffusion_pytorch import Unet, GaussianDiffusion

اگلا، ہم اپنے نیٹ ورک کے فن تعمیر کی وضاحت کرتے ہیں، اس معاملے میں U-Net۔ دی dim پیرامیٹر پہلے ڈاؤن سیمپلنگ سے پہلے فیچر میپس کی تعداد بتاتا ہے، اور dim_mults پیرامیٹر اس قدر اور پے در پے ڈاون سیمپلنگ کے لیے ضرب فراہم کرتا ہے:

model = Unet(
 dim = 64,
 dim_mults = (1, 2, 4, 8)
)

اب جب کہ ہمارے نیٹ ورک کے فن تعمیر کی تعریف کی گئی ہے، ہمیں ڈفیوژن ماڈل کی وضاحت کرنے کی ضرورت ہے۔ ہم U-Net ماڈل میں پاس کرتے ہیں جس کی ہم نے ابھی کئی پیرامیٹرز کے ساتھ وضاحت کی ہے – جنریٹ کرنے کے لیے تصاویر کا سائز، بازی کے عمل میں ٹائم سٹیپس کی تعداد، اور L1 اور L2 معیارات کے درمیان انتخاب۔

diffusion = GaussianDiffusion(
 model,
 image_size = 128,
 timesteps = 1000, # number of steps
 loss_type = 'l1' # L1 or L2
)

اب جب کہ ڈفیوژن ماڈل کی تعریف کی گئی ہے، یہ تربیت کا وقت ہے۔ ہم تربیت کے لیے بے ترتیب ڈیٹا تیار کرتے ہیں، اور پھر ڈفیوژن ماڈل کو معمول کے مطابق تربیت دیتے ہیں:

training_images = torch.randn(8, 3, 128, 128)
loss = diffusion(training_images)
loss.backward()

ایک بار ماڈل کو تربیت دینے کے بعد، ہم آخر کار استعمال کرکے تصاویر تیار کر سکتے ہیں۔ sample() کا طریقہ diffusion چیز. یہاں ہم 4 امیجز تیار کرتے ہیں، جو کہ صرف شور ہے کہ ہمارا ٹریننگ ڈیٹا بے ترتیب تھا:

sampled_images = diffusion.sample(batch_size = 4)

کسٹم ڈیٹا پر تربیت

۔ denoising-diffusion-pytorch پیکیج آپ کو ایک مخصوص ڈیٹاسیٹ پر پھیلاؤ ماڈل کی تربیت دینے کی بھی اجازت دیتا ہے۔ بس کو تبدیل کریں۔ 'path/to/your/images' میں ڈیٹاسیٹ ڈائرکٹری پاتھ کے ساتھ سٹرنگ Trainer() ذیل میں اعتراض، اور تبدیل کریں image_size مناسب قیمت پر۔ اس کے بعد، ماڈل کو تربیت دینے کے لیے صرف کوڈ چلائیں، اور پھر پہلے کی طرح نمونہ لیں۔ نوٹ کریں کہ PyTorch کو استعمال کرنے کے لیے CUDA فعال کے ساتھ مرتب کیا جانا چاہیے۔ Trainer کلاس:

from denoising_diffusion_pytorch import Unet, GaussianDiffusion, Trainer
model = Unet(
 dim = 64,
 dim_mults = (1, 2, 4, 8)
).cuda()
diffusion = GaussianDiffusion(
 model,
 image_size = 128,
 timesteps = 1000, # number of steps
 loss_type = 'l1' # L1 or L2
).cuda()
trainer = Trainer(
 diffusion,
 'path/to/your/images',
 train_batch_size = 32,
 train_lr = 2e-5,
 train_num_steps = 700000, # total training steps
 gradient_accumulate_every = 2, # gradient accumulation steps
 ema_decay = 0.995, # exponential moving average decay
 amp = True # turn on mixed precision
)
trainer.train()

ذیل میں آپ ملٹی ویریٹ گاوسی شور سے لے کر MNIST ہندسوں تک ترقی پسندی کو معکوس بازی کے مترادف دیکھ سکتے ہیں:

حتمی الفاظ

ڈفیوژن ماڈلز ڈیٹا پیدا کرنے کے مسئلے کے لیے تصوراتی طور پر ایک سادہ اور خوبصورت نقطہ نظر ہیں۔ غیر مخالف تربیت کے ساتھ مل کر ان کے جدید ترین نتائج نے انہیں بلندیوں تک پہنچا دیا ہے، اور ان کی ابتدائی حیثیت کے پیش نظر آنے والے سالوں میں مزید بہتری کی توقع کی جا سکتی ہے۔ خاص طور پر، ڈفیوژن ماڈلز جیسے جدید ماڈلز کی کارکردگی کے لیے ضروری پائے گئے ہیں۔ DALL-E2.

حوالہ جات

ہے [1] Nonequilibrium Thermodynamics کا استعمال کرتے ہوئے گہری غیر زیر نگرانی سیکھنا

ہے [2] ڈیٹا کی تقسیم کے گریڈیئنٹس کا تخمینہ لگا کر جنریٹو ماڈلنگ

ہے [3] ڈینوائزنگ ڈفیوژن پروبیبلسٹک ماڈلز

ہے [4] اسکور پر مبنی جنریٹو ماڈلز کی تربیت کے لیے بہتر تکنیک

ہے [5] بہتر ڈینوائزنگ ڈفیوژن پروبیبلسٹک ماڈلز

ہے [6] ڈفیوژن ماڈلز نے تصویری ترکیب پر GAN کو شکست دی۔

ہے [7] گلائیڈ: فوٹو ریئلسٹک امیج جنریشن اور ٹیکسٹ گائیڈڈ ڈفیوژن ماڈلز کے ساتھ ایڈیٹنگ کی طرف

ہے [8] CLIP لیٹینٹس کے ساتھ درجہ بندی کے متن سے مشروط تصویری جنریشن

اس مضمون کا لطف اٹھائیں؟ مزید AI ریسرچ اپ ڈیٹس کے لیے سائن اپ کریں۔

جب ہم اس جیسے مزید خلاصہ مضامین جاری کریں گے تو ہم آپ کو بتائیں گے۔

ہمارے ساتھ بات چیت

ہیلو وہاں! میں آپ کی کیسے مدد کر سکتا ہوں؟