רשת קוהונן

רשת קוהונן הידועה גם כ-Self Organizing Map, או בקיצור SOM, היא מודל של רשת עצבית מלאכותית שנסמך על למידה בלתי מונחית (unsupervised learning) כדי ליצור מיפוי ממימד גבוה של קלטים רציפים למימד פלט נמוך ובדיד. את המודל ניסח הפרופסור הפיני טאובו קוהונן. הטופולוגיה של רשת קוהונן בנויה כמפה דו-ממדית או גריד של נוירונים. כל נוירון במפה מיוצג על ידי וקטור של ערכים שמימדו זהה למימד הקלט. קלטים קרובים מבחינה מטרית מותאמים לנוירונים שכנים בגריד. המיפוי מתבצע לרוב באמצעות מדידת המרחק האוקלידי של הקלט מכל נוירון במפה. הנוירון הקרוב ביותר לדוגמת הקלט נבחר. בשלב האימון של רשת קוהונן מבוצע בנוירון המתאים ביותר לקלט שינוי בערכיו כך שיתקרב לקלט המוצג. השינויים בשלב האימון מבוצעים גם בנוירון הנבחר וגם בשכניו במפה לפי פונקציית שכנות שקובעת את מידת ההשפעה של השינוי לגביהם. המטרה היא, שלאחר מס' רב של איטרציות, בהן הנוירון הנבחר (BMU - Best Matching Unit) ושכניו, יתכנסו למצב בו הם מייצגים וקטורים קרובים יחסית מהמימד המקורי. כך, מסייע האלגוריתם להורדת מימד, בכך שהוא משמר גם במימד הנמוך את הקרבה בין הווקטורים במימד המקורי. ניתן להשתמש גם בגריד תלת-ממדי. זה נעשה באמצעות מטריצת משקלים (נקרא גם מטריצת שכנויות) המוגדרת על ידי המשתמש, בה בדרך כלל נותנים משקל מרבי לאיבר המרכזי במטריצה, וככל שמתרחקים מהמרכז, המשקלים פוחתים (כמו למשל במסיכה גאוסיאנית). במהלך האימון, כל דגימה במימד n מחפשת את הנוירון בגריד שהכי קרוב אליו במרחק אוקלידי. לאחר שנוירון זה נבחר (לנוירון כזה קוראים BMU), מטריצת השכנויות תמוקם כך שנוירון זה יהיה במרכזה, ואז יתבצע האימון על כל הנוירונים שבסביבה (כמובן כולל את נוירון ה-BMU עצמו), ע"פ המשקלים של המטריצה. כך, בעזרת מטריצת השכנויות, נוצר מצב בו "שכנים" בגריד "מתקרבים" אחד לשני במרחק האוקלידי שלהם. האלגוריתם מתאים גם ל-ניתוח אשכולות (clustering) כאשר כל אחד מאיברי הגריד הוא קלאסטר. במקרים בהם אין מבחינת המשתמש חשיבות רבה להורדת המימד, אלא רק ל-clustering, ניתן אף להשתמש בגריד של מימד אחד (במילים אחרות - וקטור אחד של נוירונים). גם שימוש בגריד של מימד אחד צפוי למקם באינדקסים צמודים קלאסטרים קרובים מהמימד המקורי, דבר שנותן ערך מוסף על אלגוריתם clustering רגיל שאין בו סדר. השימוש לטובת clustering הוא מקרה פרטי של השימוש באלגוריתם זה. צור רשת של נוירונים המאותחלים לערכים אקראיים. לכל וקטור D ( t ) {\displaystyle D(t)} מתוך דוגמאות הלמידה בצע: מצא את B M U ( t ) {\displaystyle BMU(t)} , הווקטור הכי קרוב ל D ( t ) {\displaystyle D(t)} במפה (לרוב על פי מרחק אוקלידי). לכל נוירון ברשת, עדכן: w ( t + 1 ) = w ( t ) + F ( w ( t ) , B M U ( t ) ) ∗ a ( t ) ∗ ( D ( t ) − w ( t ) ) {\displaystyle w(t+1)=w(t)+F(w(t),BMU(t))*a(t)*(D(t)-w(t))} הקטן את a ( t ) {\displaystyle a(t)} חזור לשלב 2 (החיצוני) כל עוד a ( t ) > 0 {\displaystyle a(t)>0} כאשר w ( t ) {\displaystyle w(t)} הוא הערך של נוירון w בזמן t ברשת B M U ( t ) {\displaystyle BMU(t)} הוא הערך של הנוירון ברשת שנמצא כקרוב ביותר לקלט הנתון D בזמן t F ( w ( t ) , B M U ( t ) ) ∈ [ 0 , 1 ] {\displaystyle F(w(t),BMU(t))\in [0,1]} היא פונקציית השכנות של הרשת, כך שככל ש w קרוב יותר טופולוגית ל BMU, הערך של F מתקרב ל 1 וככל שהם רחוקים יותר זה מזה הערך של F מתקרב יותר ל 0 בהתאם. a ( t ) ∈ [ 0 , 1 ] {\displaystyle a(t)\in [0,1]} הוא קצב הלמידה של הרשת שדועך ככל שתהליך הלמידה מתקדם. D ( t ) − w ( t ) {\displaystyle D(t)-w(t)} הוא ההפרש בין הערך של הקלט D לנוירון w בזמן t. http://davis.wpi.edu/~matt/courses/soms/ מדיה וקבצים בנושא רשת קוהונן בוויקישיתוף