Backpropagation הוא האלגוריתם הנפוץ ביותר לאימון רשתות נוירונים. היא מאפשרת להשתמש בשיטת גרדיאנט הירידה ברשתות נוירונים מרובות שכבות. ספריות קוד רבות של למידת מכונה (כמו Keras) מטפלות ב-backpropagation באופן אוטומטי, כך שלא צריך לבצע את החישובים הבסיסיים בעצמכם. בסרטון הבא מוצגת סקירה כללית של אופן הפעולה של backpropagation:
שיטות מומלצות לאימון רשתות נוירונים
בקטע הזה מוסבר על מקרים שבהם אלגוריתם backpropagation נכשל, ועל הדרך הנפוצה ביותר לבצע רגולריזציה של רשת נוירונים.
Vanishing Gradients
הגרדיאנטים בשכבות הנמוכות יותר של הרשת העצבית (אלה שקרובות יותר לשכבת הקלט) יכולים להיות קטנים מאוד. ברשתות עמוקות (רשתות עם יותר משכבה נסתרת אחת), חישוב הגרדיאנטים האלה עשוי לכלול את מכפלתם של הרבה מונחים קטנים.
כשערכי הגרדיאנט מתקרבים ל-0 בשכבות התחתונות, אומרים שהגרדיאנטים 'נעלמים'. שכבות עם מעברי צבע נעלמים מתאמנות לאט מאוד, או לא מתאמנות בכלל.
פונקציית ההפעלה ReLU יכולה לעזור למנוע מצב של גרדיאנטים נעלמים.
מעברי צבע מתפוצצים
אם המשקלים ברשת גדולים מאוד, הגרדיאנטים בשכבות התחתונות כוללים מכפלות של הרבה איברים גדולים. במקרה כזה, יכול להיות שיהיו לכם גרדיאנטים מתרחבים: גרדיאנטים שגדלים יותר מדי ולא מתכנסים.
נרמול באצ' יכול לעזור למנוע גרדיאנטים מתפוצצים, וכך גם הפחתה של קצב הלמידה.
יחידות ReLU ריקות
אם הסכום המשוקלל של יחידת ReLU יורד מתחת ל-0, היחידה יכולה להיתקע. הפלט שלה הוא 0, ולכן היא לא תורמת לפלט של הרשת, והגרדיאנטים לא יכולים יותר לעבור דרכה במהלך הפצת השגיאה לאחור. אם מקור הגרדיאנטים נקטע, יכול להיות שהקלט ל-ReLU לא ישתנה מספיק כדי שהסכום המשוקלל יהיה שוב מעל 0.
הורדת קצב הלמידה יכולה לעזור למנוע את התופעה של יחידות ReLU שלא פועלות.
Dropout Regularization
סוג נוסף של רגולריזציה, שנקרא רגולריזציה של dropout, שימושי לרשתות נוירונים. היא פועלת על ידי 'השמטה' אקראית של הפעלות של יחידות ברשת עבור שלב אחד של שיפוע. ככל ששיעור הנשירה גבוה יותר, כך הרגולריזציה חזקה יותר:
- 0.0 = אין רגולריזציה של dropout.
- 1.0 = השמטה של כל הצמתים. המודל לא לומד כלום.
- ערכים בין 0.0 ל-1.0 = יותר שימושיים.