רשת קוהונן

מתוך ויקיפדיה, האנציקלופדיה החופשית
קפיצה אל: ניווט, חיפוש

רשת קוהונן הידועה גם כ-Self Organizing Map, או בקיצור SOM, היא מודל של רשת עצבית מלאכותית שנסמך על למידה בלתי-מונחית (unsupervised learning) כדי ליצור מיפוי ממימד גבוה של קלטים רציפים למימד פלט נמוך ובדיד. את המודל ניסח הפרופסור הפיני טאובו קוהונן.

תיאור כללי[עריכת קוד מקור | עריכה]

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

המטרה היא, שלאחר מס' רב של איטרציות, בהן הניורון הנבחר (BMU - Best Matching Unit) ושכניו, יתכנסו למצב בו הם מייצגים וקטורים קרובים יחסית מהמימד המקורי. כך, מסייע האלגוריתם להורדת מימד, בכך שהוא משמר גם במימד הנמוך את הקירבה בין הווקטורים במימד המקורי. ניתן להשתמש גם בגריד תלת-ממדי. זה נעשה באמצעות מטריצת משקלים (נקרא גם מטריצת שכנויות) המוגדרת על ידי המשתמש, בה בדרך כלל נותנים משקל מרבי לאיבר המרכזי במטריצה, וככל שמתרחקים מהמרכז, המשקלים פוחתים (כמו למשל במסיכה גיאוסיאנית). במהלך האימון, כל דגימה במימד n מחפשת את הניורון בגריד שהכי קרוב אליו במרחק אוקלידי. לאחר שניורון זה נבחר (לניורון כזה קוראים BMU), מטריצת השכנויות תמוקם כך שניורון זה יהיה במרכזה, ואז יתבצע האימון על כל הניורונים שבסביבה (כמובן כולל את ניורון ה-BMU עצמו), ע"פ המשקלים של המטריצה. כך, בעזרת מטריצת השכנויות, נוצר מצב בו "שכנים" בגריד "מתקרבים" אחד לשני במרחק האוקלידי שלהם.

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

אלגוריתם הלמידה[עריכת קוד מקור | עריכה]

  1. צור רשת של נוירונים המאותחלים לערכים אקראיים.
  2. לכל וקטור D(t) מתוך דוגמאות הלמידה בצע:
    1. מצא את BMU(t), הווקטור הכי קרוב ל D(t) במפה (לרוב על פי מרחק אוקלידי).
    2. לכל נוירון ברשת, עדכן:
      1. w(t+1)=w(t)+F(w(t),BMU(t))*a(t)*(D(t)-w(t))
  3. הקטן את a(t)
  4. חזור לשלב 2 (החיצוני) כל עוד a(t) > 0

כאשר

  • w(t) הוא הערך של נוירון w בזמן t ברשת
  • BMU(t) הוא הערך של הנוירון ברשת שנמצא כקרוב ביותר לקלט הנתון D בזמן t
  • F(w(t),BMU(t))  \in [0,1] היא פונקציית השכנות של הרשת, כך שככל ש w קרוב יותר טופולוגית ל BMU, הערך של F מתקרב ל 1 וככל שהם רחוקים יותר זה מזה הערך של F מתקרב יותר ל 0 בהתאם.
  • a(t) \in [0,1] הוא קצב הלמידה של הרשת שדועך ככל שתהליך הלמידה מתקדם.
  • D(t)-w(t) הוא ההפרש בין הערך של הקלט D לנוירון w בזמן t.

לקריאה נוספת[עריכת קוד מקור | עריכה]