<aside> ℹ️ מידע על העמוד
https://www.youtube.com/watch?v=PLryWeHPcBs
https://www.youtube.com/watch?v=0LixFSa7yts
דיברנו בשלב מוקדם יותר בקורס על קלסיפייר softmax , שמשייך תיוג y∈C בהתבסס על קלטים $x∈R^d$ תוך שימוש בהסתברות $p(y \mid x)=\frac{\exp \left(W_y \cdot x\right)}{\sum_{c=1}^C \exp \left(W_c \cdot x\right)}$. מודל שכזה מאומן באמצעות עדכון של מטריצת המשקולות $W \in \mathbb{R}^{C \times d}$ תוך נסיון למזער את ה-cross entropy loss המוגדר באופן הבא -$\sum_i-\log p\left(y_i \mid x_i\right)$.
העניין עם קלסיפייר softmax (בדומה לקלסיפיירי ML מסורתיים אחרים כמו naïve Bayes, SVM, רגרסיה לוגיסטית וכו') היא שמחלקת ההיפותזות שלהם מורכבת מקווי הכרעה לינאריים. ההגבלה הזו לסיווג באמצעות מפריד לינארי עשויה להיות די מגבילה, ואפילו לא שימושית כלל אם הבעיה אותה אנחנו מנסים לסווג מורכבת מכדי לפתור אותה באמצעות מפריד לינארי שכזה.
כאן נכנס לידי ביטוי היתרון של רשתות נוירונים – הן מסוגלות ללמוד פונקציות הרבה יותר מורכבות עם קווים מפרידים שאינם לינאריים. בתמונה משמאל ניתן לראות שתי תוצאות של מודלים – השמאלית מייצגת מפריד לינארי שנלמד באמצעות שיטת NL קלאסית, והימנית מייצגת מפריד לא לינארי שנלמד באמצעות רשת נוירונים (ומאפשר לייצג את המורכבות שבדאטא ולכן מתייג נכון את הנקודות הירוקות שהתפספסו ע"י המפריד הלינארי).
מה שרשת נוירונים פשוטה מסוג feed forward עושה הוא לקחת קלט, להעביר אותו דרך שכבת ביניים לא לינארית, ואז להעביר את התוצר שלה דרך שכבה שממירה אותו לוקטור התפלגות. כלומר, יש מספר שכבות –
לאחר ביצוע ה-feed forward שהוסבר מעלה, מחושב ה-Log loss (המכונה גם cross loss entropy) על וקטור הפלט, ועליו מבצעים back propagation עד ל-embeddings.
רוב פונקציות ה-loss מכילות גם פרמטר רגולריזציה על כל הפרמטרים θ. למשל, שיטת רגולריזציה נפוצה היא רגולריזצית L2 המוגדרת באופן הבא - $\lambda \sum_k \theta_k^2$ (ששווה לשים לב שהוא מחושב פעם אחת לכל פרמטר, מבלי שנהיה צריכים לחשב אותו שוב על כל דגימה בדאטא האימון). רגולריזציה מביאה איתה עוד היפר-פרמטר שצריך לקחת בחשבון, והוא פרמטר הרגולריזציה המסומן בדרך כלל בתור λ (ככל שהוא יותר גדול, יש יותר רגולריזציה).
התפיסה הקלאסית היא שמטרתה של רגולריזציה היא למנוע overfitting (מצב בו הטעות על דאטא האימון קטנה אבל הטעות על דאטא ה-test גדלה – כלומר המודל נצמד מידי לדאטא האימון ומתקשה להכליל את הידע שלמד באופן שיאפשר לתייג כראוי דוגמאות חדשות) במצב בו יש לנו הרבה מאוד פיצ'רים או כשהמודל שלנו מאוד מורכב או עמוק.
כיום, רגולריזציה מפיקה מודלים שמאפשרים להכליל בצורה טובה (כלומר – אנחנו מצפים שה-test error יהיה יותר גבוה מה-training error, אבל לא היינו רוצים לראות עלייה ב-test error אלא ירידה עד התאזנות בשלב מסוים) כאשר מדוברים במודלים "גדולים", ופחות מתמקדת במניעת overfit (שכן מודלים גדולים מאוד בהגדרה יצרו overfit מאוד משמעותי על ה-training data – באיזה שהוא שלב, עם מספיק אימון, הם יוכלו להגיע גם ל-training error של 0).