تعریف
-----

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

نحوه کارکرد
-----------

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

انواع
-----

انواع مختلفی از این مدل‌ها وجود دارد. در اینجا به توضیح دو مورد از مهم‌ترین نمونه‌ها می‌پردازیم.

* Real Non-Volume Preserving (Real NVP):

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

{\displaystyle 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}}}

معکوس آن {\displaystyle z\_{1}=x\_{1},z\_{2}=e^{-s\_{\theta }(x\_{1})}\odot (x\_{2}-m\_{\theta }(x\_{1}))} و ژاکوبین آن {\displaystyle \prod \_{i=1}^{n}e^{s\_{\theta }(z\_{1,})}} است. که {\displaystyle z} در آن خروجی جریان و {\displaystyle m\_{\theta }} هر شبکه عصبی با وزن‌های {\displaystyle \theta } است.

نقشه Real NVP نیمه اول و دوم بردار {\displaystyle x} را جدا نگه می‌دارد، معمولاً باید بعد از هر لایه Real NVP یک جایگشت به صورت {\displaystyle (x\_{1},x\_{2})\mapsto (x\_{2},x\_{1})} اضافه شود.

* Generative Flow (Glow) (جریان سازنده):

در این مدل، هر لایه ۳ قسمت دارد.

* تبدیل وابسته به کانال با فرمول 

y

c
i
j

=

s

c

(

x

c
i
j

+

b

c

)

{\displaystyle y\_{cij}=s\_{c}(x\_{cij}+b\_{c})}

{\displaystyle y_{cij}=s_{c}(x_{cij}+b_{c})}

و ژاکوبین{\displaystyle \prod \_{c}s\_{c}^{HW}}

* کانولوشن 1x1 معکوس پذیر با فرمول


z

c
i
j

=

∑

c
′

K

c

c
′

y

c
i
j

{\displaystyle z\_{cij}=\sum \_{c'}K\_{cc'}y\_{cij}}

{\displaystyle z_{cij}=\sum _{c'}K_{cc'}y_{cij}}با ژاکوبین {\displaystyle \det(K)^{HW}} است که {\displaystyle K} هر ماتریس دلخواه معکوس پذیر است.

* Real NVP که بالاتر توضیح داده شد.

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

مشکلات و کمبودها
----------------

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

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

کاربردها
--------

مدل‌های مولد مبتنی بر جریان در کاربردهای مختلفی استفاده شده‌اند، از جمله:

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

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

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

منابع
-----

1. ↑  Levy، Shiran؛ Laloy، Eric؛ Linde، Niklas (۲۰۲۲-۰۳-۲۸). «Efficient inversion with complex geostatistical priors using normalizing flows and variational inference». *dx.doi.org*. دریافت‌شده در ۲۰۲۲-۱۲-۳۱.
2. ↑
3. 1 2  Kingma, Diederik P.; Dhariwal, Prafulla (2018-07-10). "Glow: Generative Flow with Invertible 1x1 Convolutions". *arXiv:1807.03039 [cs, stat]*.
4. ↑  Helminger, Leonhard; Djelouah, Abdelaziz; Gross, Markus; Schroers, Christopher (2020-08-24). "Lossy Image Compression with Normalizing Flows". *arXiv:2008.10486 [cs]*.
5. ↑  Nalisnick, Eric; Matsukawa, Akihiro; Teh, Yee Whye; Gorur, Dilan; Lakshminarayanan, Balaji (2019-02-24). "Do Deep Generative Models Know What They Don't Know?". *arXiv:1810.09136 [cs, stat]*.
6. ↑  Ping, Wei; Peng, Kainan; Zhao, Kexin; Song, Zhao (2020-06-24). "WaveFlow: A Compact Flow-based Model for Raw Audio". *arXiv:1912.01219 [cs, eess]*.
7. ↑  Shi, Chence; Xu, Minkai; Zhu, Zhaocheng; Zhang, Weinan; Zhang, Ming; Tang, Jian (2020-02-27). "GraphAF: a Flow-based Autoregressive Model for Molecular Graph Generation". *arXiv:2001.09382 [cs, stat]*.
8. ↑  Yang, Guandao; Huang, Xun; Hao, Zekun; Liu, Ming-Yu; Belongie, Serge; Hariharan, Bharath (2019-09-02). "PointFlow: 3D Point Cloud Generation with Continuous Normalizing Flows". *arXiv:1906.12320 [cs]*.
9. ↑  Kumar, Manoj; Babaeizadeh, Mohammad; Erhan, Dumitru; Finn, Chelsea; Levine, Sergey; Dinh, Laurent; Kingma, Durk (2020-02-12). "VideoFlow: A Conditional Flow-Based Model for Stochastic Video Generation". *arXiv:1903.01434 [cs]*.
10. ↑  Helminger, Leonhard; Djelouah, Abdelaziz; Gross, Markus; Schroers, Christopher (2020-08-24). "Lossy Image Compression with Normalizing Flows". *arXiv:2008.10486 [cs]*.