مدل‌های سازنده مبتنی بر جریان

## تعریف
**مدل سازنده مبتنی بر جریان** نوعی مدل سازنده است که در یادگیری ماشین استفاده می‌شود که یک توزیع احتمال را با اعمال **جریان نرمال‌سازی** مدل می‌کند. این یک روش آماری با استفاده از قانون تغییر متغیر احتمالات برای تبدیل یک توزیع ساده به یک توزیع پیچیده‌است. مدل‌سازی مستقیم احتمال مزایای بسیاری دارد و نمونه‌های جدید را می‌توان با نمونه برداری از توزیع اولیه و اعمال تبدیل جریان تولید کرد. در مقابل مدل سازنده مبتنی بر جریان، بسیاری از روش‌های مدل‌سازی سازنده جایگزین مانند خودرمزگذار متغیر (VAE) و شبکه‌های سازنده تخاصمی تابع احتمال را نشان نمی‌دهند.

بی‌قاب|393x393پیکسل

## نحوه کارکرد
بندانگشتی|سه نوع مدل سازنده: خودرمزنگار متغیر، شبکه‌های مولد تخاصمی، مدل سازنده مبتنی بر جریان|373x373پیکسل
این روش شبیه به خودرمزگذار متغیر است با این تفاوت که به جای استفاده از رمزگذار و رمزگشا از یک جریان معکوس پذیر استفاده می‌شود. به این صورت که به جای رمزگذاری، جریان، ورودی را به فضای داده انتقال می‌دهد و سپس معکوس جریان، خروجی را تولید می‌کند. هدف این است که خروجی و ورودی کمترین تفاوت را با یکدیگر داشته باشند. پس از یادگیری به این روش، مدل باید قادر باشد تا با گرفتن یک بردار ویژگی از فضا و استفاده از معکوس جریان، خروجی معقولی تولید کند.

## انواع
انواع مختلفی از این مدل‌ها وجود دارد. در اینجا به توضیح دو مورد از مهم‌ترین نمونه‌ها می‌پردازیم.
* Real Non-Volume Preserving (Real NVP):

این مدل کلی‌شده نوع دیگری از مدل‌های مبتنی بر جریان به نام NICE است. روابط آن به صورت زیر می‌باشد:

x=\begin{bmatrix} x_{1} \\ x_{2} \end{bmatrix} = f_{\theta} (z) = \begin{bmatrix} z_{1} \\ e^{-s_{\theta}(z_{1})}\odot z_{2} \end{bmatrix} + \begin{bmatrix} 0 \\ m_{\theta}(z_{1}) \end{bmatrix}

معکوس آن 
z_1 = x_1, z_2 = e^{-s_\theta (x_1)}\odot (x_2 - m_\theta (x_1)) و ژاکوبین آن \prod^n_{i=1} e^{s_\theta(z_{1, })} است. که z در آن خروجی جریان و m_{\theta} هر شبکه عصبی با وزن‌های \theta است.

نقشه Real NVP نیمه اول و دوم بردار x را جدا نگه می‌دارد، معمولاً باید بعد از هر لایه Real NVP یک جایگشت به صورت (x_1, x_2) \mapsto (x_2, x_1) اضافه شود.
* Generative Flow (Glow) (جریان سازنده):

در این مدل، هر لایه ۳ قسمت دارد.
* تبدیل وابسته به کانال با فرمول y_{cij} = s_c(x_{cij} + b_c)

و ژاکوبین\prod_c s_c^{HW}
* کانولوشن 1x1 معکوس پذیر با فرمول

z_{cij} = \sum_{c'} K_{cc'} y_{cij}با ژاکوبین \det(K)^{HW} است که K هر ماتریس دلخواه معکوس پذیر است.
* Real NVP که بالاتر توضیح داده شد.

علت استفاده از لایه کانولوشن معکوس پذیر 1x1 استفاده از جایگشت همه لایه‌هاست. (برخلاف Real NVP که تنها از جایگشت نیمه‌های اول و دوم استفاده می‌کند)

## مشکلات و کمبودها
علی‌رغم اینکه نرمال سازی جریان‌ها در تخمین چگالی‌های ابعاد بالا موفق بوده‌است، برخی از جنبه‌های منفی هنوز در آنها وجود دارد. اول از همه، فضای پنهان آنها که در آن داده‌های ورودی بر روی آن پیش‌بینی می‌شود، فضایی با ابعاد پایین‌تر نیست و بنابراین، مدل‌های مبتنی بر جریان به‌طور پیش فرض اجازه فشرده سازی داده‌ها را نمی‌دهند و به محاسبات زیادی نیاز دارند. با این حال، هنوز امکان فشرده سازی تصویر با آنها وجود دارد. همچنین این مدل‌ها در تخمین احتمال نمونه‌های خارج از توزیع (نمونه‌هایی که از توزیع مشابه داده‌های یادگیری استخراج نشده‌اند) ناموفق هستند. برخی فرضیه‌ها به توضیح این پدیده می‌پردازند که از جمله آنها فرضیه مجموعه معمولی است.

یکی از جالب‌ترین ویژگی‌های نرمال‌سازی جریان‌ها، معکوس‌پذیری جریان آنهاست. این ویژگی توسط محدودیت‌هایی در طراحی مدل‌ها داده می‌شود که وارونگی نظری را تضمین می‌کنند. یکپارچگی معکوس به منظور اطمینان از کاربردی بودن قضیه تغییر متغیر، محاسبه ژاکوبین جریان و همچنین نمونه برداری با مدل مهم است. با این حال، در عمل این برگشت‌پذیری نقض می‌شود.

## کاربردها
مدل‌های مولد مبتنی بر جریان در کاربردهای مختلفی استفاده شده‌اند، از جمله:
* تولید صدا
* تولید تصویر
* تولید گراف مولکولی
* مدل‌سازی نقطه-ابر
* تولید ویدیو
* فشرده سازی تصویر

## جستارهای وابسته
* مدل سازنده
* یادگیری ماشین
* نرمال‌سازی
* خودرمزگذار متغیر
* شبکه‌های سازنده تخاصمی
* ژاکوبین

## منابع

__بافهرست__

رده:آمار توصیفی
رده:گردآوری داده‌ها
رده:هوش مصنوعی
رده:یادگیری ماشین
رده:مدل‌های احتمالات
رده:مدل‌های آماری