ماشین بولتسمان
==============

این یک مثال از ماشین بولتسمان است. این ماشین شامل ۳ واحد پنهان و ۴ واحد نمایان است.
ماشین بولتسمان(به انگلیسی: Boltzmann Machine) مدلی برای یادگیری خودران است. این مدل نوعی از شبکه عصبی با ارتباطات بدون جهت است. دلیل جذابیت ماشین‌ بولتسمان، محلی بودن الگوریتم آموزش آنها و نیز رایانش موازی و همچنین شباهت پویایی آن به فرایند‌های فیزیکی است.

ماشین‌های بولتسمان با ارتباطات‌های بدون محدودیت، معمولا برای حل مسائل عملی یادگیری ماشین مناسب نیستند، اما با محدود کردن صحیح ارتباطات در ماشین بولتسمان، می‌توان آن را برای حل مسئله های دنیای واقعی بهینه کرد. این ماشین به نام توزیع بولتسمان در مکانیک آماری نام‌گذاری شده است که در تابع نمونه‌گیری آنها استفاده می‌شود. نوع عمومی‌تر این مدل در یادگیری ماشین، مدل‌های مبتنی بر انرژی هستند.

ساختار
------

ماشین بولتسمان، شبکه‌ای از واحد‌های دودویی است که یک مقدار "انرژی" دارد. وزن های ماشین بولتسمان تصادفی‌اند و مقدار انرژی ماشین از رابطه‌ی زیر به دست می‌آید:

{\displaystyle E=-{\Biggl (}\sum \_{i<j}w\_{ij}s\_{i}s\_{j}+\sum \_{i}\theta \_{i}s\_{i}{\Biggr )}}

که:

* {\displaystyle w\_{ij}} وزن ارتباط بین واحد‌های i و j است.
* {\displaystyle s\_{i}} وضعیت واحد i است. {\displaystyle s\_{i}\in \{0,1\}}
* {\displaystyle \theta \_{i}} مقدار اریبی واحد i است.

وزن‌ها را می‌توان به صورت یک ماتریس {\displaystyle W=[w\_{ij}]} نشان داد که درایه‌های روی قطر اصلی آن صفر هستند.

احتمال وضعیت یک واحد
--------------------

تفاوت مقدار انرژی ماشین در دو حالت خاموش و روشن بودن یک واحد مشخص، که به صورت {\displaystyle \Delta E\_{i}} نوشته می‌شود از رابطه‌ی زیر به دست‌ آید:

{\displaystyle \Delta E\_{i}=\sum \_{i\neq j}w\_{ij}s\_{j}+\theta \_{i}}

که می‌توان آن را به صورت زیر نمایش داد:

{\displaystyle \Delta E\_{i}=E\_{i=off}-E\_{i=on}}

با توجه به این موضوع که انرژی یک وضعیت در توزیع بولتسمان متناسب با منفی لگاریتم احتمال آن وضعیت است، انرژی دو وضعیت را در فرمول بالا جایگزین می‌کنیم:

{\displaystyle \Delta E\_{i}=-k\_{B}Tln(p\_{i=off})-(-k\_{B}Tln(p\_{i=off}))}

که {\displaystyle k\_{B}} ثابت بولتسمان است و در دما که همان T است خلاصه‌ می‌شود:

{\displaystyle {\frac {\Delta E\_{i}}{T}}=ln(p\_{i=on})-ln(p\_{i=off})}

{\displaystyle {\frac {\Delta E\_{i}}{T}}=ln(p\_{i=on})-ln(1-p\_{i=on})}

{\displaystyle {\frac {\Delta E\_{i}}{T}}=ln({\frac {p\_{i=on}}{1-p\_{i=on}}})}

{\displaystyle -{\frac {\Delta E\_{i}}{T}}=ln({\frac {1-p\_{i=on}}{p\_{i=on}}})}

{\displaystyle -{\frac {\Delta E\_{i}}{T}}=ln({\frac {1}{p\_{i=on}}}-1)}

{\displaystyle exp(-{\frac {\Delta E\_{i}}{T}})={\frac {1}{p\_{i=on}}}-1}

در نهایت داریم:

{\displaystyle p\_{i=on}={\frac {1}{1+exp(-{\frac {\Delta E\_{i}}{T}})}}}

حالت تعادل
----------

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

برای آموزش شبکه طوری که به یه وضعیت در توزیعی بیرونی همگرا شود، وزن‌ها باید طوری تنظیم شوند که وضعیت‌هایی که بیشترین احتمال را دارند، کمترین انرژی را داشته باشند.

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

* یادگیری ماشین
* ماشین بولتسمان محدود‌شده
* توزیع بولتسمان

منابع
-----

1. ↑  Hinton, Geoffrey E. (2007-05-24). "Boltzmann machine". *Scholarpedia* (به انگلیسی). **2** (5): 1668. Bibcode:2007SchpJ...2.1668H. doi:10.4249/scholarpedia.1668. ISSN 1941-6016.
2. ↑  Osborn, Thomas R. (1 January 1990). "Fast Teaching of Boltzmann Machines with Local Inhibition". *International Neural Network Conference*. Springer Netherlands. pp. 785. doi:10.1007/978-94-009-0643-3\_76. ISBN 978-0-7923-0831-7.