בתשובה לעומר, 30/03/18 16:28
רשתות נוירונים - AMA 698404
אתה יכול להסביר קצת יותר בעניין ה-xor? מהן אותן "רשתות של נוירונים לינארים" ומה הבדל ביניהן לבין הרשתות המודרניות?

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

פונקציית ה-xor היא פונקציה בוליאנית פשוטה שאת טבלת-האמת שלה אפשר לראות כאן XOR_gate [Wikipedia]. נגיד שרוצים ללמוד אותה: הקלט יהיה טבלת האמת שמופיעה בערך (בסה"כ 4 דגימות), ואחרי האימון - אם הוא נעשה בהצלחה - תוכל להציג לרשת זוג של ערכים בוליאנים, היא תחזיר את התוצאה של הפעלת xor עליהם (למשל עבור הקלט (0,0) היא תחזיר 0, ועבור הקלט (0,1) היא תחזיר 1).

אפשר לחשוב על הבעיה כבעיית קלאסיפיקציה, בה על הרשת להתאים לזוג-סדור של ערכים בוליאניים את התווית "0" או את התווית "1". מודל קלאסיפקציה לינארי, הוא כזה שינסה לפתור את הבעיה על ידי מציאת "מישור מפריד" במרחב הקלט שמצד אחד שלו מצויים כל הקלטים להם מתאימה התווית "0" ומצידו אחר מצויים כל הקלטים להם מתאימה התווית "1". פונקציות בוליאניות כמו and או or אפשר ללמוד באופן הזה, אבל את הפונקציה xor אי אפשר (המחשה).

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

הנושא והמציאות ההיסטורית קצת מורכבים יותר: פרספטרונים - גם בשנות השישים - הם לא "נוירונים לינארים", למרות שבפני עצמם הם כן "מודלים לינארים". אז רשת של פרספטרונים בעלת-שכבה אחת לא יכולה ללמוד את פונקציית xor, אבל רשת בעלת שתי שכבות של פרספטרונים כן יכולה - ולמעשה יש "משפט אוניברסליות" שאומר שרשת כזו יכולה ללמוד כל פונקציה סבירה.
רשתות נוירונים - AMA 698415
שוב, תודה רבה.

חזרה לעמוד הראשי המאמר המלא

מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים