פרנק רוזנבלט הציג ב־1958 את השאלה הבאה: כשאדם מזהה ספרה בכתב יד, האם הוא נזקק לזיכרון של ספרה כלשהי שראה אי פעם? התפיסה הישנה אמרה שכן: הזיכרון הוא ארכיון של עותקים, וזיהוי הוא השוואה של מה שרואים עכשיו לעותקים השמורים. בתפיסה של רוזנבלט, שכל רשת עצבית היום בנויה עליה, המוח אינו שומר שום תמונה; מה שמשתנה בלמידה הוא עוצמת החיבורים בין הנוירונים, והזיהוי נעשה בלי לשלוף דבר. זה ההמשך של "זיכרון מלא מול זיהוי דפוסים" מסוף יחידה 1. הפרספטרון שלו הוא מכונה שבנויה על התפיסה הזאת בצורתה הפשוטה ביותר: התמונה נכנסת, עוברת מבחנים פנימיים שנקבעו באקראי, ומסווגת לפי משקלים שמתוקנים אחרי כל טעות. הפרק מתאר את המכונה כלשונה, כי המוטיב שלה, ייצוג אקראי כנקודת התחלה, הוא השאלה של היחידות הבאות: האם אפשר לבחור ייצוג טוב יותר.
מבוסס על המאמר:
Rosenblatt, F. (1958). The perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review, 65(6), 386–408.
הסיפור הבסיסי
יש לנו אוסף של דוגמאות, תמונות של ספרות בכתב יד, ולכל תמונה תווית: הספרה שמופיעה בה (למידה מפוקחת). המאגר הוא MNIST: 70,000 תמונות של [math]\displaystyle{ 28\times28 }[/math] פיקסלים בגווני אפור, 60,000 מהן קבוצת האימון ו־10,000 קבוצת הבדיקה. הפרספטרון הוא מודל, מקבל תמונה ומחזיר ספרה, ויש בו פרמטרים שאינם קבועים מראש. הוא לומד אותם מדוגמאות האימון, ואחרי הלמידה הוא אמור לזהות לבד את הספרה בתמונה שלא ראה; כך בודקים אותו, על קבוצת הבדיקה.
הרעיון של רוזנבלט, בשלושה חלקים. התמונה עוברת דרך שכבה של "נוירונים" שכל אחד מהם בודק כמה פיקסלים שנבחרו באקראי, ונדלק או לא: ייצוג של התמונה בתכונות אקראיות, שאיש לא תכנן. רק המעבר מהשכבה הזאת אל עשר המחלקות, הספרות 0 עד 9, נלמד: מטריצה אחת של משקלים, ואלה כל הפרמטרים של המודל. והלמידה היא עדכון לפי שגיאה: הפרספטרון מנחש, ואם צדק לא משנה דבר; אם טעה, מחזק את הקשרים אל המחלקה הנכונה ומחליש אל זו שבחר. "בהשראת המוח" כי כך רוזנבלט חשב על זה: רשתית, תאי עצב שמחוברים אליה באקראי, וקשרים שמתחזקים ונחלשים לפי ההצלחה; המאמר שלו הופיע בכתב עת לפסיכולוגיה.
שכבת הקלט, הרשתית
מה עושים כאן. הופכים תמונה לווקטור של אפסים ואחדים, כמו בפרק הקודם, אלא שכאן כל פיקסל הוא סיבית אחת.
הגדרה 1שכבת הקלט (Retina)
כל תמונה היא בגודל [math]\displaystyle{ n\times k }[/math], וכל פיקסל בתמונה הוא ערך בינארי, ואנחנו הופכים אותה לוקטור
[math]\displaystyle{ S\in\{0,1\}^{N_S} }[/math]
כאשר שמים שורה אחרי שורה מהתמונה, ולכן [math]\displaystyle{ N_S=n\cdot k }[/math].
במילים: הרשתית היא רשימת הפיקסלים, דולק או כבוי; מכאן ואילך התמונה היא הרשימה הזאת ולא יותר.
תמונות MNIST הן בגווני אפור, ולכן בניסוי הקורס פיקסל נחשב דולק אם ערכו, מתוך 255, הוא 128 לפחות.
הרשתית של האיורים בסוף הפרק, [math]\displaystyle{ n=k=4 }[/math]: הספרה 7 דולקת בפיקסלים [math]\displaystyle{ S_1 }[/math] עד [math]\displaystyle{ S_4 }[/math], [math]\displaystyle{ S_8 }[/math], [math]\displaystyle{ S_{11} }[/math] ו־[math]\displaystyle{ S_{14} }[/math], והשורות נכתבות זו אחר זו לווקטור [math]\displaystyle{ S=(1,1,1,1,\,0,0,0,1,\,0,0,1,0,\,0,1,0,0)\in\{0,1\}^{16} }[/math].
שכבת האסוציאציה
מה עושים כאן. בונים את הייצוג האקראי: נוירונים שכל אחד מהם מחובר לכמה פיקסלים שנבחרו באקראי, בסימן חיובי או שלילי, ונדלק אם הסכום עובר סף. שום דבר כאן אינו נלמד.
הגדרה 2שכבת האסוציאציה (Association layer)
אנחנו מייצרים שכבת אסוציאציה, או שכבת נוירונים, [math]\displaystyle{ A\in\{0,1\}^{N_A} }[/math], באופן הבא:
(א) נבחר מספר קשרים [math]\displaystyle{ N_C\in\mathbb N }[/math], [math]\displaystyle{ N_C\le N_S }[/math], משותף לכל הנוירונים: כל נוירון יהיה מחובר ל־[math]\displaystyle{ N_C }[/math] פיקסלים.
(ב) לכל נוירון [math]\displaystyle{ 1\le a\le N_A }[/math] נבחרים באקראי [math]\displaystyle{ N_C }[/math] אינדקסים [math]\displaystyle{ i_1(a),\dots,i_{N_C}(a)\in\{1,\dots,N_S\} }[/math], כלומר [math]\displaystyle{ N_C }[/math] פיקסלים של הרשתית, ולכל [math]\displaystyle{ 1\le p\le N_C }[/math] נבחר סימן [math]\displaystyle{ \operatorname{sign}(i_p,a)\in\{-1,1\} }[/math].
(ג) נבחר קבוע סף [math]\displaystyle{ \theta }[/math]; נוירון שמגיע אליו נדלק.
(ד) בהנתן קלט [math]\displaystyle{ S }[/math] נחשב את [math]\displaystyle{ A }[/math]:
במילים: פיקסל דולק מחזק את הנוירונים שהוא מחובר אליהם בסימן חיובי ומחליש את אלה שהוא מחובר אליהם בסימן שלילי; פיקסל כבוי אינו משפיע על אף נוירון. כל נוירון סוכם את החיזוקים וההחלשות שקיבל, ונדלק אם הסכום הגיע לסף [math]\displaystyle{ \theta }[/math].
הרשתית רואה את הספרה 7: הפיקסלים [math]\displaystyle{ S_1 }[/math] עד [math]\displaystyle{ S_4 }[/math], [math]\displaystyle{ S_8 }[/math], [math]\displaystyle{ S_{11} }[/math] ו־[math]\displaystyle{ S_{14} }[/math] דולקים. מצוירים ארבעה משמונת הנוירונים של האיורים שבסוף הפרק, [math]\displaystyle{ A_1 }[/math], [math]\displaystyle{ A_2 }[/math], [math]\displaystyle{ A_6 }[/math] ו־[math]\displaystyle{ A_7 }[/math], כל אחד עם [math]\displaystyle{ N_C=6 }[/math] קשריו: חוט תכלת לסימן [math]\displaystyle{ +1 }[/math], ירוק כהה לסימן [math]\displaystyle{ -1 }[/math]. חוט שיוצא מפיקסל כבוי דהוי, כי אינו משפיע. ליד כל נוירון הסכום שלו: [math]\displaystyle{ A_1 }[/math] מקבל [math]\displaystyle{ +1 }[/math] מ־[math]\displaystyle{ S_2 }[/math] ומ־[math]\displaystyle{ S_8 }[/math], סך הכול [math]\displaystyle{ +2 }[/math]; [math]\displaystyle{ A_2 }[/math] מקבל [math]\displaystyle{ +1 }[/math] מ־[math]\displaystyle{ S_2 }[/math] ו־[math]\displaystyle{ -1 }[/math] מ־[math]\displaystyle{ S_1 }[/math], סך הכול [math]\displaystyle{ 0 }[/math]; [math]\displaystyle{ A_6 }[/math] מקבל [math]\displaystyle{ +1 }[/math] מ־[math]\displaystyle{ S_3 }[/math] ו־[math]\displaystyle{ -1 }[/math] מ־[math]\displaystyle{ S_{11} }[/math] ומ־[math]\displaystyle{ S_{14} }[/math], סך הכול [math]\displaystyle{ -1 }[/math]; [math]\displaystyle{ A_7 }[/math] מקבל [math]\displaystyle{ +1 }[/math] מ־[math]\displaystyle{ S_3 }[/math] ומ־[math]\displaystyle{ S_{14} }[/math] ו־[math]\displaystyle{ -1 }[/math] מ־[math]\displaystyle{ S_{11} }[/math], סך הכול [math]\displaystyle{ +1 }[/math]. עם [math]\displaystyle{ \theta=1 }[/math] נדלקים [math]\displaystyle{ A_1 }[/math] ו־[math]\displaystyle{ A_7 }[/math].
כמה נוירונים צריך. בפרספטרון שבאיורים בסוף הפרק, לרשתית של [math]\displaystyle{ 4\times4 }[/math] יש [math]\displaystyle{ 2^{16}=65{,}536 }[/math] תמונות, ולשמונה הנוירונים של [math]\displaystyle{ A }[/math] רק [math]\displaystyle{ 2^{8}=256 }[/math] מצבים. שכבה [math]\displaystyle{ A }[/math]מקבצת אפוא את התמונות: בממוצע [math]\displaystyle{ 256 }[/math] תמונות שונות מקבלות אותו וקטור [math]\displaystyle{ A }[/math]. קיבוץ כזה הוא בדיוק מה שמבקשים מייצוג, כל עוד הוא מקבץ יחד תמונות של אותה ספרה. אבל אם שתי תמונות של ספרות שונות קיבלו אותו וקטור [math]\displaystyle{ A }[/math], השכבה לא הבחינה ביניהן, ושום דבר שיחושב מ־[math]\displaystyle{ A }[/math] בהמשך לא יבחין: כל מה שהרשת תעשה מכאן הוא פונקציה של [math]\displaystyle{ A }[/math] בלבד. כדי שלכל תמונה יהיה וקטור [math]\displaystyle{ A }[/math] משלה צריך לפחות [math]\displaystyle{ 16 }[/math] נוירונים, ועם מבחנים אקראיים הרבה יותר; בניסוי הקורס, על תמונות של [math]\displaystyle{ 28\times28 }[/math], אלפים. זה הלקח של הפרק: מה ששכבה [math]\displaystyle{ A }[/math] לא הבחינה, שום למידה אחריה לא תבחין; הייצוג קודם ללמידה.
הערה: מעט מבחנים מבחינים בין הרבה מצבים
כל נוירון ב־[math]\displaystyle{ A }[/math] הוא מבחן בינארי על קבוצה של פיקסלים: סיבית אחת שאומרת משהו על כולם יחד. אותו רעיון הופיע ב־1943, בלי שום קשר למוח: דורפמן הציע לבדוק מתגייסים לעגבת במאגרים: ממזגים את דגימות הדם של [math]\displaystyle{ n }[/math] אנשים ובודקים פעם אחת; מאגר שלילי מנקה את כולם, ובמאגר חיובי בודקים כל אחד לחוד. בשכיחות של [math]\displaystyle{ 1\% }[/math] ובמאגרים של [math]\displaystyle{ 11 }[/math] אנשים, התוחלת היא כ־[math]\displaystyle{ 0.2 }[/math] בדיקה לאדם במקום בדיקה שלמה.
קאוץ וסינגלטון (1964) קבעו את כל המאגרים מראש, כמו החיבורים האקראיים של [math]\displaystyle{ A }[/math], ובנו [math]\displaystyle{ 49 }[/math] בדיקות על [math]\displaystyle{ 343 }[/math] פריטים שמזהות בוודאות כל קבוצה של עד שלושה פגומים. אלה [math]\displaystyle{ 1+343+\binom{343}{2}+\binom{343}{3}\approx6.7\cdot10^{6} }[/math] מצבים אפשריים, ו־[math]\displaystyle{ 49 }[/math] סיביות מבחינות בין כולם. פחות מ־[math]\displaystyle{ 23 }[/math] אי אפשר: [math]\displaystyle{ t }[/math] בדיקות נותנות לכל היותר [math]\displaystyle{ 2^{t} }[/math] תוצאות שונות, ו־[math]\displaystyle{ 2^{22}<6.7\cdot10^{6} }[/math]. אותו טיעון ספירה הוא שקובע כמה נוירונים צריך בשכבה [math]\displaystyle{ A }[/math].
ולמה בכלל שכבה A
הרשתית עצמה מבחינה בין כל שתי תמונות ואינה מאבדת דבר. למה לא לחבר משקלים ישר מהפיקסלים אל המחלקות, ולוותר על שכבה שרק מקבצת? אפשר, וכלל התיקון שיוגדר בסעיף הבא עובד בלי שינוי. בניסוי הקורס מכונה כזאת מגיעה ל־[math]\displaystyle{ 85.8\% }[/math] מתמונות הבדיקה אחרי מעבר אחד על האימון ול־[math]\displaystyle{ 87.1\% }[/math] אחרי חמישה, לעומת [math]\displaystyle{ 91.0\% }[/math] ו־[math]\displaystyle{ 92.3\% }[/math] עם [math]\displaystyle{ 3000 }[/math] נוירונים. ההבדל אינו גדול, אבל מאחוריו מגבלה עקרונית, ורואים אותה הכי ברור בדוגמה הקטנה ביותר שיש.
שני פיקסלים. רשתית של שני פיקסלים, [math]\displaystyle{ S=(S_1,S_2) }[/math], ולה ארבע תמונות בלבד: [math]\displaystyle{ (0,0) }[/math], [math]\displaystyle{ (1,0) }[/math], [math]\displaystyle{ (0,1) }[/math], [math]\displaystyle{ (1,1) }[/math]. שתי מחלקות: "שונים", כשבדיוק פיקסל אחד דולק, ו"שווים", כששניהם דולקים או שניהם כבויים. הבחנה שכל ילד עושה במבט.
בלי שכבה [math]\displaystyle{ \boldsymbol{A} }[/math]. לכל מחלקה משקל לכל פיקסל, הציון של מחלקה הוא סכום המשקלים של הפיקסלים הדולקים, והמכונה בוחרת את הציון הגבוה; בשוויון נסכים שהיא בוחרת "שווים". נסמן ב־[math]\displaystyle{ u_1 }[/math] את ההפרש בין המשקל של [math]\displaystyle{ S_1 }[/math] אצל "שונים" לבין המשקל שלו אצל "שווים", וכך [math]\displaystyle{ u_2 }[/math]. התמונה [math]\displaystyle{ (1,0) }[/math] צריכה להיות "שונים", כלומר [math]\displaystyle{ u_1>0 }[/math]; גם [math]\displaystyle{ (0,1) }[/math], כלומר [math]\displaystyle{ u_2>0 }[/math]. אבל אז בתמונה [math]\displaystyle{ (1,1) }[/math] ההפרש הוא [math]\displaystyle{ u_1+u_2>0 }[/math], ו"שונים" מנצחת שוב, בטעות. אין בחירת משקלים שמסווגת נכון את ארבע התמונות, ולכן שום למידה לא תמצא אותה: כלל התיקון יתקן בלי סוף. בלשון הקולות: קולו של פיקסל אינו תלוי בשאר הפיקסלים, ואם כל אחד מהשניים לבדו מטה את הכף לכיוון אחד, שניהם יחד מטים אותה לשם עוד יותר. באיור שלמטה, מימין, המשקלים הם [math]\displaystyle{ +1 }[/math] ל"שונים" ו־[math]\displaystyle{ -1 }[/math] ל"שווים": שלוש תמונות מסווגות נכון, והרביעית, [math]\displaystyle{ (1,1) }[/math], לא, ואי אפשר לתקן אותה בלי לקלקל אחרת.
עם שכבה [math]\displaystyle{ \boldsymbol{A} }[/math]. שלושה נוירונים: [math]\displaystyle{ A_1 }[/math] מחובר ל־[math]\displaystyle{ S_1 }[/math] בלבד, [math]\displaystyle{ A_2 }[/math] ל־[math]\displaystyle{ S_2 }[/math] בלבד, ו־[math]\displaystyle{ A_3 }[/math] לשניהם, בסימן [math]\displaystyle{ +1 }[/math] ועם סף [math]\displaystyle{ \theta=2 }[/math], כך שהוא נדלק רק כששני הפיקסלים דולקים יחד. [math]\displaystyle{ A_3 }[/math] הוא מכונה לזיהוי צירוף, והוא בדיוק מה שחסר. ל"שונים" ניתן את המשקלים [math]\displaystyle{ (1,1,-2) }[/math] ול"שווים" את [math]\displaystyle{ (-1,-1,3) }[/math]. בתמונה [math]\displaystyle{ (1,0) }[/math] דולק רק [math]\displaystyle{ A_1 }[/math], והציונים הם [math]\displaystyle{ 1 }[/math] מול [math]\displaystyle{ -1 }[/math]: "שונים". ב־[math]\displaystyle{ (0,1) }[/math] אותו דבר. ב־[math]\displaystyle{ (1,1) }[/math] דולקים שלושתם, והציונים [math]\displaystyle{ 1+1-2=0 }[/math] מול [math]\displaystyle{ -1-1+3=1 }[/math]: "שווים". ב־[math]\displaystyle{ (0,0) }[/math] לא דולק דבר, שני הציונים אפס, ובשוויון "שווים". ארבע מארבע (באיור, משמאל). בשלב האחרון לא השתנה דבר, הוא עדיין סכום של קולות; השתנה מי שמצביע: נוירון שרואה צירוף, במקום פיקסל שרואה רק את עצמו.
שני פיקסלים ושתי מחלקות, והתמונה שבה שניהם דולקים. מימין משקלים ישר מהפיקסלים: הציונים [math]\displaystyle{ 2 }[/math] ו־[math]\displaystyle{ -2 }[/math], והמכונה בוחרת "שונים", בטעות. משמאל שלושה נוירונים בין הרשתית למחלקות, והשלישי נדלק רק כששני הפיקסלים דולקים יחד: הציונים [math]\displaystyle{ 0 }[/math] ו־[math]\displaystyle{ 1 }[/math], והמכונה בוחרת "שווים". מתחת לכל צד ארבע התמונות והתוצאה לכל אחת.
ומה זה אומר על הפרספטרון. אצל רוזנבלט הנוירונים אינם מתוכננים ביד אלא נבחרים באקראי, ונוירון כמו [math]\displaystyle{ A_3 }[/math], שמחובר בדיוק לפיקסלים הנכונים ועם הסף הנכון, מופיע בשכבה רק במקרה. לכן צריך הרבה נוירונים: כשיש אלפים, כמעט לכל צירוף חשוב יש נוירון שנדלק עליו, ושלב הקולות שאחריהם יכול להשתמש בו. מחלקות שסכום קולות של פיקסלים מספיק להן נקראות ניתנות להפרדה לינארית; ספרות MNIST כמעט כאלה, ולכן הרווח משכבה [math]\displaystyle{ A }[/math] שם קטן, והוא גדל עם מספר הנוירונים, כפי שמראה תיבת קו הבסיס בסוף הפרק. על הטיעון של שני הפיקסלים בנו מינסקי ופייפרט (1969) ביקורת שעצרה את המחקר ברשתות לשנים; התשובה, לתת ללמידה לבנות בעצמה נוירונים כמו [math]\displaystyle{ A_3 }[/math] במקום לחכות שיופיעו במקרה, היא יחידה 5. וזה המחיר שבפסקה "כמה נוירונים צריך" והתמורה לו: הרשתית מבחינה בכול ואינה מקבצת דבר; [math]\displaystyle{ A }[/math] מקבצת, ובזכות זה השלב שאחריה יכול להצביע בעד צירופים.
שכבת הפלט ולמידת המשקלים
מה עושים כאן. מגדירים את החלק היחיד שנלמד, מטריצת המשקלים מהנוירונים אל המחלקות, ואת כלל הלמידה: לנחש, ולתקן רק אחרי טעות.
הגדרה 3שכבת הפלט (Response)
מוגדרות [math]\displaystyle{ N_R }[/math] מחלקות, כך שכל תמונה אמורה להיות מסווגת למחלקה אחת. הפרספטרון לומד מטריצת משקלים
במילים: לכל מחלקה שורה של משקלים, משקל לכל נוירון: כמה נוירון דולק מעיד בעד המחלקה (משקל חיובי) או נגדה (שלילי). אלה כל הפרמטרים שהפרספטרון לומד.
הגדרה 4argmax
לווקטור [math]\displaystyle{ R\in\mathbb R^{N_R} }[/math] שרכיביו [math]\displaystyle{ R(0),\dots,R(N_R-1) }[/math], [math]\displaystyle{ \operatorname{argmax}(R) }[/math] הוא האינדקס [math]\displaystyle{ c }[/math] של הרכיב הגדול ביותר: [math]\displaystyle{ R(c)\ge R(c') }[/math] לכל [math]\displaystyle{ c' }[/math]. אם כמה רכיבים שווים למקסימום, בוחרים את האינדקס הקטן מביניהם.
במילים:[math]\displaystyle{ \max }[/math] מחזיר את הציון הגבוה ביותר; [math]\displaystyle{ \operatorname{argmax} }[/math] מחזיר את מי שקיבל אותו. כאן הרכיבים הם המחלקות, ולכן [math]\displaystyle{ \operatorname{argmax}(R) }[/math] הוא המחלקה שהפרספטרון בוחר.
שיטה 5הלמידה
לכל קלט [math]\displaystyle{ S }[/math] בסדרת האימון:
מחשבים את שכבת הנוירונים [math]\displaystyle{ A }[/math];
מחשבים את וקטור המחלקות [math]\displaystyle{ R=V\cdot A\in\mathbb R^{N_R} }[/math];
בוחרים את האינדקס של הערך המקסימלי של הוקטור [math]\displaystyle{ R }[/math], [math]\displaystyle{ c=\operatorname{argmax}(R) }[/math];
האינדקס [math]\displaystyle{ c }[/math] הוא המחלקה שהפרספטרון סיווג את התמונה אליה;
אם מדובר במחלקה הנכונה, אנחנו לא עושים כלום ועוברים לקלט הבא;
אם מדובר בטעות בזיהוי, מבצעים תיקון של מטריצת המשקלים (שיטה 6).
במילים: הציון של מחלקה הוא סכום המשקלים של הנוירונים שנדלקו, והפרספטרון מנחש את המחלקה עם הציון הגבוה. ניחוש נכון אינו משנה דבר; רק טעות מלמדת.
שיטה 6תיקון מטריצת המשקלים
נתון קבוע למידה [math]\displaystyle{ \eta>0 }[/math]. נסמן ב־[math]\displaystyle{ d }[/math] את המחלקה הנכונה, וב־[math]\displaystyle{ c }[/math] כאמור את המחלקה שבחר הפרספטרון. לכל [math]\displaystyle{ a\le N_A }[/math], אם [math]\displaystyle{ A(a)=1 }[/math] אז מוסיפים ל־[math]\displaystyle{ V_{da} }[/math] את [math]\displaystyle{ \eta }[/math] ומחסרים מ־[math]\displaystyle{ V_{ca} }[/math] את [math]\displaystyle{ \eta }[/math].
במילים: רואים אילו נוירונים נדלקו מהתמונה, מעלים את המשקלים שלהם ביחס למחלקה הנכונה, ומורידים את המשקלים שמחברים אותם למחלקה שזוהתה בטעות.
צעד אחד של שיטה 6 מתוך האימון של אותה רשת, [math]\displaystyle{ \eta=1 }[/math]. בסבב השני התמונה של 0 מדליקה את [math]\displaystyle{ A(1),A(2),A(6),A(7) }[/math]; הציון של [math]\displaystyle{ c=8 }[/math] ([math]\displaystyle{ 3 }[/math]) גבוה משל [math]\displaystyle{ d=0 }[/math] ([math]\displaystyle{ 0 }[/math]), והפרספטרון טועה. משמאל [math]\displaystyle{ V }[/math] לפני התיקון ומימין אחריו: בשורה [math]\displaystyle{ d }[/math] נוסף [math]\displaystyle{ \eta }[/math] בארבע העמודות הדולקות, ובשורה [math]\displaystyle{ c }[/math] הופחת; הריבועים שהשתנו מודגשים. שטח כל ריבוע הוא [math]\displaystyle{ |V_{ca}| }[/math], וצבעו הוא סימנו, כבמקרא של איור השכבות שבסוף הפרק.
בסוף הריצה על כל הקלטים הנתונים, אנו נותרים עם מטריצת משקלים מעודכנת. מעבר אחד על קבוצת האימון הוא הגרסה הפשוטה; אפשר לחזור עליו כמה פעמים, עד שאין עוד טעויות או עד שנגמר הזמן שהוקצב. בניסוי הקורס מעבר אחד.
הסיווג
מה עושים כאן. מפעילים את הפרספטרון המאומן על תמונה חדשה.
תהליך הסיווג עצמו זהה ללמידה, פרט לכך שאין תיקון נוסף של המשקלים (הרי בזמן השימוש בפרספטרון הסיווג האמיתי של הקלט אינו ידוע).
שלוש השכבות. הרשתית [math]\displaystyle{ S }[/math] היא [math]\displaystyle{ 4\times4 }[/math] פיקסלים ([math]\displaystyle{ N_S=16 }[/math]). כל אחד משמונת הנוירונים של שכבת האסוציאציה [math]\displaystyle{ A }[/math] מחובר ל־[math]\displaystyle{ N_C=6 }[/math] פיקסלים שנבחרו באקראי: שלושה מעוררים ([math]\displaystyle{ \operatorname{sign}=+1 }[/math]) ושלושה מעכבים ([math]\displaystyle{ \operatorname{sign}=-1 }[/math]), בשני הצבעים של המקרא שבתחתית האיור, והסף הוא [math]\displaystyle{ \theta=1 }[/math]. בשכבת הפלט [math]\displaystyle{ R }[/math] כל נוירון מחובר לכל עשר המחלקות; עובי החבל הוא [math]\displaystyle{ |V_{ca}| }[/math] וצבעו הוא סימן המשקל, כבמקרא. המשקלים שבאיור לא נבחרו ביד אלא אומנו בשיטה 6 על עשר תבניות של הספרות.אותה רשת כאשר הרשתית רואה את הספרה 7 (הפיקסלים [math]\displaystyle{ S_1 }[/math] עד [math]\displaystyle{ S_4 }[/math], [math]\displaystyle{ S_8 }[/math], [math]\displaystyle{ S_{11} }[/math], [math]\displaystyle{ S_{14} }[/math] דולקים). קשרים שיוצאים מפיקסל כבוי אינם מעבירים דבר ומצוירים דהויים. נוירון נדלק כאשר סכום הסימנים של הפיקסלים הדולקים שלו מגיע ל־[math]\displaystyle{ \theta }[/math]: כאן [math]\displaystyle{ A_1 }[/math], [math]\displaystyle{ A_7 }[/math] ו־[math]\displaystyle{ A_8 }[/math], המודגשים. בשכבה [math]\displaystyle{ R }[/math] כהות האבן של כל מחלקה היא הערך [math]\displaystyle{ R(c)=\sum_a V_{ca}A(a) }[/math]; המקסימום הוא [math]\displaystyle{ R(7)=5 }[/math], אחריו [math]\displaystyle{ R(0)=3 }[/math], והפרספטרון עונה 7.הלמידה כתרשים זרימה, לכל קלט: התמונה על הרשתית, הנוירונים שנדלקים בשכבת האסוציאציה, הסיווג, ותיקון רק אחרי טעות. החבל שמתחת לשורה הוא התשובה "כן" לבדיקה, ישר אל הקלט הבא.
בדיקה מול קו הבסיס
קו הבסיס על MNIST: לנחש תמיד את הספרה השכיחה, 1, נכון ב־[math]\displaystyle{ 11\% }[/math] מתמונות הבדיקה; ניחוש אקראי, [math]\displaystyle{ 10\% }[/math]. הפרספטרון של ניסוי הקורס, [math]\displaystyle{ N_A=3000 }[/math] נוירונים עם [math]\displaystyle{ N_C=10 }[/math] חיבורים כל אחד ו־[math]\displaystyle{ \theta=2 }[/math], אחרי מעבר אחד על 60,000 תמונות: [math]\displaystyle{ 91.0\% }[/math] על 10,000 תמונות הבדיקה, ב־16 שניות. הייצוג האקראי הוא שעושה את ההבדל, וגודלו קובע: עם 100 נוירונים [math]\displaystyle{ 55.4\% }[/math], עם 1,000 [math]\displaystyle{ 88.3\% }[/math]. מה שנשאר לשפר הוא הייצוג עצמו: רשת שלומדת גם אותו (יחידה 5) מגיעה ל־[math]\displaystyle{ 95.2\% }[/math] באותו זמן. (ניסוי הפרספטרון.)
טביעת אצבע
מקור מרכזי.Rosenblatt (1958), The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain, כ־12,000 ציטוטים.
הבעיה. איך מכונה לומדת לזהות ספרות מתוך דוגמאות מתויגות, בלי שאיש כותב את כללי הזיהוי.
הרעיון המרכזי. נוירונים שמחוברים לפיקסלים באקראי, ומשקלים מהנוירונים אל המחלקות שמתוקנים רק אחרי טעות.
איך הרעיון פותר את הבעיה. הנוירונים האקראיים הופכים כל תמונה לווקטור בינארי קצר, והוא הייצוג; הלמידה נוגעת רק במשקלים שאחריו: כשהניחוש שגוי, מחזקים את המחלקה הנכונה ומחלישים את השגויה, ואחרת לא משנים דבר.
מה לזכור. גם ייצוג אקראי הוא בסיס ללמידה, אבל מה שהייצוג לא הבחין שום למידה אחריו לא תבחין; ומכאן השאלה של היחידות הבאות: האם אפשר לבחור ייצוג טוב יותר.
המונחים של הפרק
perceptron — פרספטרון; random features — תכונות אקראיות; weight — משקל; label — תווית; training set — קבוצת אימון; supervised learning — למידה מפוקחת; classification — סיווג; error-driven update — עדכון לפי שגיאה; test set — קבוצת בדיקה; retina — רשתית; association layer — שכבת האסוציאציה; threshold — סף.