مدل‌‌های انتشاری

از testwiki
نسخهٔ تاریخ ۲۲ نوامبر ۲۰۲۳، ساعت ۱۳:۲۸ توسط imported>Mohammad nazem (growthexperiments-addlink-summary-summary:3|0|0)
(تفاوت) → نسخهٔ قدیمی‌تر | نمایش نسخهٔ فعلی (تفاوت) | نسخهٔ جدیدتر ← (تفاوت)
پرش به ناوبری پرش به جستجو

الگو:یادگیری ماشین مدل‌های انتشاری الگو:انگلیسی در یادگیری ماشینی، دسته‌ای از مدل‌های متغیر پنهان الگو:انگلیسی هستند. این مدل‌ها نوعی زنجیره مارکوف هستند که با استفاده از استنباط بیزی تغییراتی آموزش داده می‌شوند.[۱] هدف مدل‌های انتشاری، یادگیری ساختار پنهان یک مجموعه داده با مدل‌سازی روشی است که در آن نقاط داده در فضای پنهان الگو:انگلیسی منتشر می‌شوند. در بینایی ماشین، این یعنی یک شبکه عصبی آموزش داده می‌شود تا با یادگیری معکوس فرایند انتشاری، با شروع از نویز گاوسی به تصاویر اصلی برسد.[۲][۳]

تاریخچه

مدل‌های انتشاری در سال ۲۰۱۵ با ایده‌گرفتن از ترمودینامیک غیرتعادلی معرفی شدند.

ایده

مدل‌های انتشاری خانواده‌ای از مدل‌های مولد احتمالی هستند که به تدریج داده‌ها را با اضافه‌کردن نویز تخریب می‌کنند، سپس یادمی‌گیرند که این فرایند را برای تولید نمونه معکوس کنند. یک مدل انتشاری از دو زنجیره مارکوف استفاده می‌کند: یک زنجیره مستقیم که داده‌ها را به‌تدریج به نویز تبدیل می‌کند و یک زنجیره معکوس که نویز را به داده تبدیل می‌کند. اولی معمولاً با هدف تبدیل هر توزیع داده‌ای به یک توزیع پیشین ساده (مثلاً گاوسی استاندارد) به صورت دستی طراحی می‌شود، در حالی که زنجیره مارکوف دوم با یادگیری هسته‌های انتقال توسط شبکه‌های عصبی عمیق، اولی را معکوس می‌کند.[۴]

جزئیات

فرایند انتشار مستقیم

با داشتن یک نقطه داده نمونه‌برداری‌شده از یک توزیع داده واقعی 𝐱0q(𝐱)، فرایند انتشار مستقیم الگو:انگلیسی را این‌گونه تعریف می‌کنیم که در آن مقدار کمی نویز گاوسی را در T گام به نمونه ورودی اضافه می‌کنیم تا نمونه‌های نویزدار 𝐱1,,𝐱T تولید شود. اندازه گام‌ها توسط یک برنامه واریانس {βt(0,1)}t=1T کنترل می‌شود.

الگو:وسط چین q(𝐱t|𝐱t1)=𝒩(𝐱t;1βt𝐱t1,βt𝐈)q(𝐱1:T|𝐱0)=t=1Tq(𝐱t|𝐱t1) الگو:پایان وسط چین

نمونه داده به تدریج ویژگی‌های قابل مشاهده خود را با بزرگتر شدن گام t از دست می‌دهد. درنهایت وقتی T، 𝐱T معادل یک توزیع گاوسی همسان‌گرد خواهد شد.


یک ویژگی خوب فرایند فوق این است که می‌توانیم 𝐱t را در هر گام دلخواه t به صورت فرم بسته زیر با فرض αt=1βt و α¯t=i=1tαi محاسبه کنیم:[۵]

الگو:وسط چین 𝐱t=αt𝐱t1+1αtϵt1ϵt1,ϵt2,𝒩(𝟎,𝐈)=αtαt1𝐱t2+1αtαt1ϵ¯t2ϵ¯t2 merges two Gaussians==α¯t𝐱0+1α¯tϵq(𝐱t|𝐱0)=𝒩(𝐱t;α¯t𝐱0,(1α¯t)𝐈) الگو:پایان وسط چین

توجه کنید که وقتی دو توزیع نرمال با واریانس‌های مختلف، 𝒩(𝟎,σ12𝐈) و 𝒩(𝟎,σ22𝐈) ادغام می‌کنیم، توزیع جدید 𝒩(𝟎,(σ12+σ22)𝐈) خواهد بود. در رابطه بالا انحراف معیار برابر خواهد بود با: (1αt)+αt(1αt1)=1αtαt1

فرایند انتشار معکوس

اگر بتوانیم فرایند بالا را معکوس کنیم و از q(𝐱t1|𝐱t) نمونه‌برداری کنیم، می‌توانیم نمونه واقعی را از ورودی نویز گاوسی 𝐱T𝒩(𝟎,𝐈) دوباره ایجاد کنیم. توجه کنید که اگر βt به اندازه کافی کوچک باشد، q(𝐱t1|𝐱t) نیز گوسی خواهد بود. متأسفانه، ما نمی‌توانیم q(𝐱t1|𝐱t) را به راحتی تخمین بزنیم زیرا برای این کار باید از کل مجموعه‌داده استفاده کنیم، بنابراین باید مدلِ pθ را برای تقریب این احتمالات شرطی به منظور اجرای فرایند انتشار معکوس یاد بگیریم.

الگو:وسط چین pθ(𝐱0:T)=p(𝐱T)t=1Tpθ(𝐱t1|𝐱t)pθ(𝐱t1|𝐱t)=𝒩(𝐱t1;μθ(𝐱t,t),Σθ(𝐱t,t)) الگو:پایان وسط چین

احتمال شرطی معکوس زمانی قابل حل است که روی 𝐱0 شرط شود:

الگو:وسط چین q(𝐱t1|𝐱t,𝐱0)=𝒩(𝐱t1;μ~(𝐱t,𝐱0),β~t𝐈) الگو:پایان وسط چین

با اعمال قاعده بیز داریم:

الگو:وسط چین q(𝐱t1|𝐱t,𝐱0)=q(𝐱t|𝐱t1,𝐱0)q(𝐱t1|𝐱0)q(𝐱t|𝐱0)exp(12((𝐱tαt𝐱t1)2βt+(𝐱t1α¯t1𝐱0)21α¯t1(𝐱tα¯t𝐱0)21α¯t))=exp(12(𝐱t22αt𝐱t𝐱t1+αt𝐱t12βt+𝐱t122α¯t1𝐱0𝐱t1+α¯t1𝐱021α¯t1(𝐱tα¯t𝐱0)21α¯t))=exp(12((αtβt+11α¯t1)𝐱t12(2αtβt𝐱t+2α¯t11α¯t1𝐱0)𝐱t1+C(𝐱t,𝐱0))) الگو:پایان وسط چین

با توجه به تابع چگالی توزیع گاوسی، میانگین و واریانس را می‌توان به صورت زیر به‌دست‌آورد:

الگو:وسط چین β~t=1/(αtβt+11α¯t1)=1/(αtα¯t+βtβt(1α¯t1))=1α¯t11α¯tβtμ~t(𝐱t,𝐱0)=(αtβt𝐱t+α¯t11α¯t1𝐱0)/(αtβt+11α¯t1)=(αtβt𝐱t+α¯t11α¯t1𝐱0)1α¯t11α¯tβt=αt(1α¯t1)1α¯t𝐱t+α¯t1βt1α¯t𝐱0 الگو:پایان وسط چین

می‌دانیم که 𝐱0=1α¯t(𝐱t1α¯tϵt) و با جایگذاری در عبارات بالا خواهیم داشت:

الگو:وسط چین μ~t=αt(1α¯t1)1α¯t𝐱t+α¯t1βt1α¯t1α¯t(𝐱t1α¯tϵt)=1αt(𝐱t1αt1α¯tϵt) الگو:پایان وسط چین

تابع هزینه برای آموزش فرایند انتشاری

برای تقریب توزیع احتمال شرطی در فرایند انتشار معکوس pθ(𝐱t1|𝐱t)=𝒩(𝐱t1;μθ(𝐱t,t),Σθ(𝐱t,t)) نیاز به یادگیری یک شبکه عصبی داریم. درواقع می‌خواهیم μθ را آموزش دهیم که μ~t=1αt(𝐱t1αt1α¯tϵt) را پیش‌بینی کند. از آن‌جایی که 𝐱t به‌عنوان ورودی مدل هنگام آموزش داده می‌شود، می‌توانیم با تغییر عبارت نویز گاوسی ϵt را از ورودی در گام t پیش‌بینی کنیم:

الگو:وسط چین μθ(𝐱t,t)=1αt(𝐱t1αt1α¯tϵθ(𝐱t,t)) 𝐱t1=𝒩(𝐱t1;1αt(𝐱t1αt1α¯tϵθ(𝐱t,t)),Σθ(𝐱t,t)) الگو:پایان وسط چین

پس تابع هزینه برای کمینه کردن اختلاف از μ~ به صورت زیر خواهد بود:

الگو:وسط چین Lt=𝔼𝐱0,ϵ[12Σθ(𝐱t,t)22μ~t(𝐱t,𝐱0)μθ(𝐱t,t)2]=𝔼𝐱0,ϵ[12Σθ221αt(𝐱t1αt1α¯tϵt)1αt(𝐱t1αt1α¯tϵθ(𝐱t,t))2]=𝔼𝐱0,ϵ[(1αt)22αt(1α¯t)Σθ22ϵtϵθ(𝐱t,t)2]=𝔼𝐱0,ϵ[(1αt)22αt(1α¯t)Σθ22ϵtϵθ(α¯t𝐱0+1α¯tϵt,t)2] الگو:پایان وسط چین

در مقاله[۱] نشان داده شده‌است که آموزش مدل انتشاری با تابع هزینه زیر بهتر انجام می‌شود:

الگو:وسط چین Ltsimple=𝔼t[1,T],𝐱0,ϵt[ϵtϵθ(𝐱t,t)2]=𝔼t[1,T],𝐱0,ϵt[ϵtϵθ(α¯t𝐱0+1α¯tϵt,t)2] الگو:پایان وسط چین

و تابع هزینه نهایی به صورت Lsimple=Ltsimple+C خواهد بود (C یک مقدار ثابت مستقل از θ است).

محدودیت‌ها

فرایند نمونه‌گیری از DDPM با دنبال‌کردن زنجیره مارکوف فرایند انتشار معکوس بسیار کند است، زیرا تعداد گام‌ها T می‌تواند تا یک یا چند هزار مرحله باشد. در[۶] گفته شده «به عنوان مثال، نمونه‌گیری ۵۰ هزار عکس با اندازه ۳۲ × ۳۲ از یک DDPM حدود ۲۰ ساعت طول می‌کشد، اما انجام این کار با یک GAN روی یک پردازنده گرافیکی Nvidia 2080 Ti کمتر از یک دقیقه زمان می‌برد.»

کاربرد

مدل‌هایی انتشاری برای تولید[۶][۷][۸]، بخش‌بندی[۹][۱۰]، فراتفکیک‌پذیری[۱۱]، تغییر[۱۲][۱۳][۱۴][۱۵] و تعمیر[۱۲][۱۶] الگو:انگلیسی تصاویر به کار می‌روند. همچنین در تولید ویدئو[۱۷]، تشخیص ناهنجاری[۱۸]، تحلیل تصاویر پزشکی[۱۹] و بینایی سه‌بعدی[۲۰] کاربرد دارد.

مدل‌های انتشاری همچنین برای تولید و ترجمه متن[۲۱][۲۲] استفاده می‌شوند.

جستارهای وابسته

منابع

الگو:پانویس