ماشین بولتزمن محدود شده

پیوند=//upload.wikimedia.org/wikipedia/commons/thumb/e/e8/Restricted_Boltzmann_machine.svg/220px-Restricted_Boltzmann_machine.svg.png|بندانگشتی| نمودار یک ماشین بولتزمن محدود با سه واحد مرئی و چهار واحد پنهان (بدون واحد بایاس).
یک **ماشین بولتزمن محدود** (**RBM**) یک شبکه عصبی مصنوعی تصادفی مولد است که می‌تواند توزیع احتمال از مجموعه ورودی‌های بیاموزد.

RBMها ابتدا با نام **هارمونیوم** توسط پل اسمولنسکی در سال ۱۹۸۶ اختراع شدند، و در اواسط سال ۲۰۰۰، پس از آنکه جفری هینتون و همکارانش که الگوریتم‌های یادگیری سریع را برایش اختراع کردند، به شهرت رسیدند. RBMها کاربردهایی در کاهش ابعاد، طبقه‌بندی، پالایش گروهی، یادگیری ویژگی، مدل عناوین و حتی سیستم چندپیکره کوانتومی پیدا کرده‌اند. بسته کاربرد، آنها را می‌توان به دو روش تحت نظارت یا بدون نظارت آموزش داد.

همان‌طور که از نام آنها پیداست، RBMها گونه ای از ماشین‌های بولتزمن هستند، با این محدودیت که نورون‌های آنها باید یک نمودار دوبخشی تشکیل دهند به این معنا که یک جفت نورون از هر دو بخش (که معمولاً به عنوان واحد «مرئی» و واحد «پنهان» نامیده می‌شود) ممکن است یک ارتباط متقارن داشته باشد. ولی هیچ ارتباطی بین واحدهای درون یک بخش وجود ندارد.

در مقابل، ماشین‌های بولتزمن «نامحدود» می‌توانند اتصالاتی بین واحدهای پنهان داشته باشند. این محدودیت باعث کارآمدتر شدن الگوریتم‌های آموزشی (نسبت به کلاس عمومی ماشین‌های بولتزمن) می‌شود؛ این امر به ویژه برای الگوریتم **واگرایی متضاد**

گرادیان کاهشی، صادق است.

ماشین‌های محدود بولتزمن را می‌توان در شبکه‌های یادگیری عمیق نیز استفاده کرد. به‌ویژه، شبکه‌های باور عمیق را می‌توان با «انباشته کردن» RBMها ایجاد کرد و با تنظیم دقیق شبکه عمیق (با نزول گرادیان و انتشار پس‌انداز) می‌توان آن را بهبود داد.

## ساختار
نوع استاندارد RBM دارای واحدهای پنهان و مرئی با ارزش دودویی (بولی) است. این ماشین شامل ماتریسی از وزن‌ها، W از اندازه m\times n، می‌باشد. هر عنصر ماتریس وزن (w_{i,j}) نماینده یک یال بین یک واحد مرئی (ورودی) v_i و یک واحد پنهان h_j می‌باشد. علاوه بر این، وزن‌های بایاس a_i برای v_i و b_j برای h_j وجود دارند.

با توجه به وزن‌ها و بایاس‌ها، "*انرژی"* یک پیکربندی (جفت بردار بولی)  به صورت زیر تعریف می‌شود.

: E(v,h) = -\sum_i a_i v_i - \sum_j b_j h_j -\sum_i \sum_j v_i w_{i,j} h_j

یا در به صورت ماتریسی،

: E(v,h) = -a^{\mathrm{T}} v - b^{\mathrm{T}} h -v^{\mathrm{T}} W h.

این تابع انرژی مشابه تابع شبکه هاپفیلد است. همانند ماشین‌های بولتزمن عمومی، توزیع احتمال توأم برای بردارهای مرئی و پنهان بر حسب تابع انرژی به صورت زیر تعریف می‌شود،

: P(v,h) = \frac{1}{Z} e^{-E(v,h)}

که در آن Z یک تابع پارتیشن می‌باشد که به عنوان مجموع e^{-E(v,h)} برای تمام پیکربندی تعریف می‌شود. این تعریف را می‌تواند به عنوان یک ثابت بهنجارسازی کننده تفسیر کرد تا اطمینان حاصل شود که مجموع احتمالات برابر با ۱ است. توزیع حاشیه ای یک بردار مرئی مجموع P(v,h) بر روی تمام پیکربندی‌های لایه پنهان ممکن می‌باشد.

: P(v) = \frac{1}{Z} \sum_{\{h\}} e^{-E(v,h)} ،

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

یعنی برای *m* واحد مرئی و *n* واحد پنهان، احتمال شرطی پیکربندی واحدهای مرئی ، با توجه به پیکربندی واحدهای پنهان ، برابر است با

: P(v|h) = \prod_{i=1}^m P(v_i|h) .

برعکس، احتمال شرطی  با فرض  برابر هست با

: P(h|v) = \prod_{j=1}^n P(h_j|v) .

احتمال فعال سازی فردی برابر است با

: P(h_j=1|v) = \sigma \left(b_j + \sum_{i=1}^m w_{i,j} v_i \right)
: و
: \,P(v_i=1|h) = \sigma \left(a_i + \sum_{j=1}^n w_{i,j} h_j \right)

جایی که \sigma نشان دهنده تابع سیگموئید لجستیک می‌باشد.

واحدهای مرئی ماشین محدود شده بولتزمن می‌توانند توزیع چندجمله‌ای داشته باشند، اگرچه واحدهای پنهان برنولی هستند. در این مورد، تابع لجستیک برای واحدهای مرئی با تابع softmax جایگزین می‌شود.

: P(v_i^k = 1|h) = \frac{\exp(a_i^k + \Sigma_j W_{ij}^k h_j)} {\Sigma_{k'=1}^K \exp(a_i^{k'} + \Sigma_j W_{ij}^{k'} h_j)}

که در آن *K* تعداد مقادیر گسسته‌ای است که مقادیر مرئی دارند. آنها در مدل‌سازی موضوع، و سامانه توصیه‌گر به کار می‌روند.

### ارتباط با مدل‌های دیگر
ماشین‌های بولتزمن محدود شده مورد خاصی از ماشین‌های بولتزمن و میدان تصادفی مارکوفی می‌باشد. مدل گرافیکی آن‌ها با مدل تحلیل عاملی مطابقت دارد.

## الگوریتم یادگیری
ماشین‌های محدود بولتزمن آموزش داده می‌شوند که حاصل ضرب احتمال‌های اختصاص داده شده به مجموعه به حداکثر برسانند.

یک راهنمای عملی برای آموزش RBMها توسط هینتون نوشته شده‌است که آن را می‌توان در صفحه اصلی وی یافت.

## ادبیات
* 

## جستارهای وابسته
* رمزگذار خودکار
* دستگاه هلمهولتز

## منابع


## پیوند به بیرون
* Introduction to Restricted Boltzmann Machines. Edwin Chen's blog, July 18, 2011.
* . Deeplearning4j Documentation
* . Deeplearning4j Documentation
* Python implementation of Bernoulli RBM and tutorial
* SimpleRBM is a very small RBM code (24kB) useful for you to learn about how RBMs learn and work.
* Julia implementation of Restricted Boltzmann machines: https://github.com/cossio/RestrictedBoltzmannMachines.jl

رده:معماری شبکه‌های عصبی
رده:یادگیری بی‌نظارت
رده:یادگیری نظارت‌شده