מכונת בולצמן

הצגה גרפית לדוגמה למכונת בולצמן. כל קודקוד בגרף מייצג נוירון וכל קשת מייצגת קשר. בדוגמה הספציפית הזו יש 4 נוירונים בשכבה הגלויה ו-3 נוירונים בשכבה הנסתרת. זו אינה רשת בולצמן מוגבלת.
מכונת בולצמן היא רשת נוירונים מבוססת הסתברות והיא גם שדה אקראי של מרקוב<ref></ref>. המודל של הרשת נלקח מהמכניקה הסטטיסטית, ובפרט הוא מבוסס על מודל הזכוכית-ספין. השימוש העיקרי ברשת הוא לצורך פיתוח אלגוריתמים ללמידת מכונה. מכונת בולצמן שייכת לסוג רשתות הנקראות "מבוססות אנרגיה", כלומר היא מבוססת על תיאור אנרגטי של מערכת פיזיקלית.

אופן פעולת הרשת מסקרן בעיקר בגלל הקשר שלהם לתהליכים פיזיקליים פשוטים, בעוד שמכונות בולצמן עם קישוריות בלתי מוגבלת לא הוכחה כיעילה מספיק לפתרון בעיות מעשיות. אולם, אם הקישוריות של הרשת מוגבלת בצורה בנכונה (כפי שיוסבר בהמשך), ניתן להפוך את הרשת ליעילה מספיק עבור פתרון של בעיות מעשיות של למידת מכונה והסקה.

שמה של הרשת נקרא על שם התפלגות בולצמן, אשר שימושית בבעיות רבות במכניקה סטטיסטית.

המודל של הרשת הומצא בשנת 1985, על ידי ג'פרי היינטון, שהיה אז פרופסור באוניברסיטת קרנגי מלון, וטרי סיינובסקי, אז פרופסור באוניברסיטת ג'ונס הופקינס.

== רשת הופ'פילד ומצב שיווי משקל ==

מכונת בולצמן היא מקרה פרטי של רשת הופ'פילד ובפרט של רשת הופ'פילד סטטיסטית. נזכיר בקצרה את התכונות של רשת הופ'פילד על מנת לתאר את מכונת בולצמן ואת הקשר שלה למושג האנרגיה.

רשת הופ'פילד בינארית, המבוססת על התיאור הפיזיקלי של ספין-זכוכית יכולה להיות מתוארת על ידי קודקודים (ספינים) אשר יש להם קשר אנרגטי זה עם זה, כאשר האנרגיה של כל המערכת נקבעת על פי ערכם של הנוירונים שבה.

נוכל לתאר זאת על ידי שדה שמרגיש הנוירון, שנקבע על פי מצבם של שאר הנוירונים במערכת, כאשר ערכו נקבע כך:

<math>y_i= \theta (\sum_{j \ne i} w_{ji} y_j+b_i)
</math>

כאשר <math>\theta</math> היא פשוט פונקציית הסימן, כלומר ערכה הוא 1 אם סימן הארגומנט שמוכנס אליה חיובי וערכה הוא <math>-1</math> אחרת.

ניתן לראות זאת מבחינה פיזיקלית כספין שמסתדר בהתאם לכיוון השדה שפועל עליו.

האנרגיה של המערכת תתואר כ:

<math>E=-\sum_{i,j<i}w_{ij}y_iy_j-\sum_i b_i y_i</math>

הרחבה לרשת הופ'פילד היא רשת הופ'פילד שאינה דטרמיניסית אלא סטטיסטית (כלומר ערכי הספיני שבה אינם נקבעים באופן חד ערכי בהתאם לכיוון השדה שפועל עליהם אלא באופן הסתברותי).

כעת נתאר זאת כך:

<math>z_i= { 1\over T }\sum_{j\ne i} w_{ji}y_j+b_i</math>

<math>P(y_i=1)=\sigma(z_i)</math>

<math>P(y_i=0)=1-\sigma(z_i)</math>

כאשר <math>\sigma</math> היא פונקציית הסיגמואיד המוגדרת כ: <math>\sigma(x)= { 1\over {1+e^{-x}} }</math>. T מתאר את "טמפרטורת המערכת" וקביעה שלו כערכים מסוימים שימושית לצורך נתינת תכונות מסוימות למערכת.

נשים לב כי פונקציית הסיגמואיד מחזירה ערכים שבין 0 ל-1 כמצופה מפונקציית הסתברות.

נדגיש כי גם ברשת הסטטיסטית מדובר על רשת בינארית, כלומר כל נוירון יכול לקבל ערך של 0 או 1, אבל הערך לא נקבע באופן חד ערכי על פי ערכי הנוירונים האחרים אלא יש לו הסתברות להיות בכל אחד מהמצבים.

כעת נכנס לתמונה מושג שיווי המשקל. אם נאתחל את המערכת עם ערכים כלשהם וניתן לה להשתנות במשך מספיק זמן, כלומר ניתן לערכי הנוירונים שבה להשתנות בהתאם לשדה שהם מרגישים, בסופו של דבר המערכת תגיע למצב שיווי משקל, כלומר למצב שבו ערך האנרגיה שהגדרנו הוא מינימלי, זאת בדומה למערכות פיזיקליות השואפות להגיע למצב שבו האנרגיה הפוטנציאלית שלהם מינימלית.

נשים לב כי לפונקציית האנרגיה שהגדרנו יכולים להיות נקודות מינימום מקומי שאינן מינימום גלובלי של פונקציית האנרגיה. המטרה שלנו היא לגרום למערכת להגיע אל אחת מנקודות המינימום של האנרגיה בתהליך שמכונה "אימון" של הרשת ועל כך יורחב בהמשך.

== מבנה ==
הצגה גרפית של מכונת בולצמן. כל קשת בגרף מציינת קשר בין קודקודים כאשר w הוא המשקל המקשר בין הקודקודים הנ"ל. זוהי מכונת בולצמן לא מוגבלת.
בדומה לרשת הופפילד, מכונת בולצמן היא רשת של מצבים (ניתנים לייצוג על ידי קודקודים בגרף) שמיוצגים על ידי ערכים בינאריים, שאת המצב שלה אפשר להגדיר על ידי "אנרגיה". האנרגיה נתונה על ידי הנוסחא הבאה:

<math>E=-(\sum_{i<j}w_{i,j}s_is_j+\sum_i\theta_is_i)</math>

כאשר:

<math>w_{i,j}</math> הוא הקשר בין המצב הi למצב הj (בצורה אינטואיטיבית, אם נייצג את הרשת כגרף, אז w יהיה הערך של הקשת בין קודקוד i לקודקוד j, או "עוצמת הקשר" ביניהם).

<math>s_i</math> הוא המצב הi, שיכול לקבל את הערך 1 או 0.

<math>\theta_i</math> הוא ערך ההטיה של האנרגיה.

נשים לב כי הסכימה היא על <math>i<j</math> על מנת למנוע כפילות באנרגיה. כלומר, עבור כל קודקודים i,j יש לסכום רק פעם אחת.

ההסתברות למצב יחיד

נראה את הפיתוח של הנוסחא להסתברות של מצב יחיד שמבוססת על התפלגות בולצמן:

נניח שאנו לוקחים את המערכת כאשר היא נתונה עם אנרגיה ספציפית, ומשנים את ערכו של אחד המצבים ("מכבים" אותו). על סמך הנוסחא שכתבנו לאנרגיה של המערכת נוכל לכתוב את הפרש האנרגיה כתוצאה מהשינוי:

<math>\Delta E_i=E_{i=off}-E_{i=on}=\sum_{j<i}w_{ij}s_j+\theta_i</math>

אנו יודעים מהתפלגות בולצמן כי הסיכוי כי מערכת תסתדר בקונפיגורציה מסוימת פרופוריונצלי ל<math>e^{- {\epsilon_i \over kT}}</math>

כאשר <math>\epsilon_i</math> היא האנרגיה של הקונפיגורציה. לכן נוכל להסיק כי:

<math>\Delta E_i=-k_BTln(P_{i=off})-(-k_BTln(P_{i=on}))</math>

כאשר <math>k_B</math> הוא קבוע בוצלמן וT היא ה"טמפרטורה" של המערכת.

מכיוון שאנו יודעים כיסכום הסתברויות חייב להסתכם ל-1 נקבל:

<math>