פרמטרים היפר-מופשטים הם משתנים ששולטים בהיבטים שונים של האימון. קיימים שלושה היפר-פרמטרים נפוצים:
לעומת זאת, פרמטרים הם המשתנים, כמו המשקולות וההטיה, שהם חלק מהמודל עצמו. במילים אחרות, היפר-פרמטרים הם ערכים שנמצאים בשליטתך, ופרמטרים הם ערכים שהמודל מחשב במהלך האימון.
קצב למידה
קצב הלמידה הוא מספר נקודה צפה (floating-point) שמגדירים, שמשפיע על מהירות ההתכנסות של המודל. אם קצב הלמידה נמוך מדי, יכול להיות שיחלוף זמן רב עד שהמודל יגיע לפתרון. עם זאת, אם קצב הלמידה גבוה מדי, המודל אף פעם לא מתכנס, אלא קופץ סביב המשקלים וההטיה שממזערים את האובדן. המטרה היא לבחור קצב למידה שלא גבוה מדי ולא נמוך מדי, כדי שהמודל יתכנס במהירות.
שיעור הלמידה קובע את עוצמת השינויים שצריך לבצע במשקלים ובשיפוע במהלך כל שלב בתהליך הירידה בגרדינט. המודל מכפיל את המדרון בשיעור הלמידה כדי לקבוע את הפרמטרים של המודל (ערכי המשקל וההטיה) לחזרה הבאה. בשלב השלישי של ירידה הדרגתית, הערך הקטן שצריך לנוע בכיוון של השיפוע השלילי מתייחס לקצב הלמידה.
ההבדל בין הפרמטרים של המודל הישן לפרמטרים החדשים של המודל הוא יחסי לשיפוע של פונקציית האובדן. לדוגמה, אם השיפוע גדול, המודל יעשה צעד גדול. אם הוא קטן, הוא נע צעד קטן. לדוגמה, אם עוצמת המדרון היא 2.5 ושיעור הלמידה הוא 0.01, המודל ישנה את הפרמטר ב-0.025.
שיעור הלמידה האידיאלי עוזר למודל להגיע להסכמה במספר סבובים סביר. באיור 21, עקומת ההפסד מראה שהמודל השתפר משמעותית במהלך 20 האיטרציות הראשונות לפני תחילת ההתכנסות:
איור 21. תרשים אובדן שמציג מודל שאומן לפי קצב למידה שמשתנה במהירות.
לעומת זאת, אם שיעור הלמידה קטן מדי, יכול להיות שיידרש מספר רב מדי של חזרות כדי להגיע להסכמה. באיור 22, עקומת האובדן מראה שהמודל משיג רק שיפורים קלים אחרי כל חזרה:
איור 22. תרשים הפסד שמציג מודל שאומן עם קצב למידה קטן.
שיעור למידה גדול מדי אף פעם לא מתכנס, כי בכל חזרה (iteration) הערך של האובדן משתנה או עולה באופן קבוע. באיור 23, עקומת האובדן מראה שהאובדן של המודל יורד ואז עולה אחרי כל חזרה, ובאיור 24 האובדן עולה בחזרות מאוחרות יותר:
איור 23. תרשים אובדן שבו מוצג מודל שהוכשר עם קצב למידה גדול מדי, ועקומת האובדן משתנה באופן קיצוני, עולה ויורד ככל שמספר החזרות עולה.
איור 24. תרשים אובדן שמראה מודל שהוכשר עם קצב למידה גדול מדי, שבו עקומת האובדן עולה באופן דרסטי בחזרות הבאות.
תרגול: בדיקת ההבנה
גודל האצווה
Batch size הוא היפרפרמטר שמתייחס למספר הדוגמאות שהמודל מעבד לפני שהוא מעדכן את המשקלים וההטיה שלו. יכול להיות שתחשבו שהמודל צריך לחשב את האובדן עבור כל דוגמה במערך הנתונים לפני העדכון של המשקלים וההטיה. עם זאת, כשמערך נתונים מכיל מאות אלפי דוגמאות או אפילו מיליוני דוגמאות, לא מעשי להשתמש בקבוצה המלאה.
שתי שיטות נפוצות לקבלת השיפוע הנכון בממוצע בלי צורך לבדוק כל דוגמה במערך הנתונים לפני עדכון המשקלים וההטיה הן ירידה סטוכסטית בגרדינט וירידה סטוכסטית בגרדינט בקבוצות קטנות:
ירידה סטוכסטית הדרגתית (SGD): בירידה הדרגתית סטוכסטית משתמשת רק בדוגמה אחת (גודל של אצווה אחת) לכל איטרציה. אחרי מספיק חזרות, SGD פועלת אבל יש בה הרבה רעש. 'רעש' מתייחס לשינויים במהלך האימון שגורמים לעלייה במקום לירידה באובדן במהלך מחזור. המונח 'סטוכסטי' מציין שהדוגמה היחידה שמרכיבת כל קבוצה נבחרת באקראי.
שימו לב בתמונה הבאה איך האובדן משתנה מעט בזמן שהמודל מעדכן את המשקולות ואת ההטיות שלו באמצעות SGD, מה שעלול להוביל לרעש בתרשים ההפסד:
איור 25. המודל אומן לפי ירידה הדרגתית סטוכסטית (SGD) שמציג רעש בעקומת האובדן.
שימו לב ששימוש בירידה הדרגתית אקראית עשוי לגרום לרעש לאורך עקומת האובדן כולה, ולא רק קרוב להסתעפויות.
ירידה הדרגתית סטוכסטית בסגנון מיני (Mini-batch SGD): ירידה הדרגתית אקראית בסגנון מיני-אצווה יוצרת התפשרות בין אצווה מלאה לבין SGD. למספר הנקודות בנתונים, גודל האצווה יכול להיות כל מספר גדול מ-1 וקטן מ-N. המודל בוחר את הדוגמאות שכלולות בכל אצווה באופן אקראי, מחשב את הממוצע של הנגזרות שלהן ולאחר מכן מעדכן את המשקלים וההטיה פעם אחת בכל חזרה.
מספר הדוגמאות בכל קבוצה תלוי במערך הנתונים ובמשאבי המחשוב הזמינים. באופן כללי, כאשר גודל הקבוצה קטן, ההתנהגות דומה ל-SGD, וכאשר גודל הקבוצה גדול, ההתנהגות דומה לירידה בגרדינט של קבוצה מלאה.
איור 26. מודל שאומן באמצעות SGD של קבוצות קטנות.
כשמאמנים מודל, יכול להיות שתחשבו שרעש הוא מאפיין לא רצוי שצריך להסיר. עם זאת, כמות מסוימת של רעש יכולה להיות דבר טוב. במודולים הבאים תלמדו איך רעש יכול לעזור למודל להכליל טוב יותר ולמצוא את המשקלים וההטיה האופטימליים ברשת עצבית.
תקופות
במהלך האימון, עידן הוא חלוקה שבה המודל מעבד כל דוגמה בקבוצת האימון פעם אחת. לדוגמה, אם יש קבוצת אימון עם 1,000 דוגמאות וגודל קבוצת משנה של 100 דוגמאות, המודל יצטרך לבצע 10 iterations כדי להשלים מחזור אחד.
בדרך כלל, תהליך האימון דורש הרבה תקופות אימון. כלומר, המערכת צריכה לעבד כל דוגמה בקבוצת האימון כמה פעמים.
מספר האפוקים הוא היפרפרמטר שמגדירים לפני שהמודל מתחיל להתאמן. במקרים רבים, תצטרכו להתנסות במספר ה-epochs שנדרשים כדי שהמודל יגיע להסכמה. באופן כללי, ככל שיש יותר תקופות, המודל שנוצר טוב יותר, אבל גם זמן האימון ארוך יותר.
איור 27. אצווה מלאה לעומת אצווה קטנה.
הטבלה הבאה מתארת את הקשר בין גודל אצווה לבין תקופות של זמן מערכת ביחס למספר הפעמים שבהן מודל מעדכן את הפרמטרים שלו.
סוג אצווה | מתי מתרחשים עדכונים של משקלים ושל הטיה |
---|---|
קבוצה מלאה | אחרי שהמודל בודק את כל הדוגמאות במערך הנתונים. לדוגמה, אם מערך נתונים מכיל 1,000 דוגמאות והמודל מתאמן במשך 20 מחזורי אימון, הוא מעדכן את המשקלים וההטיה 20 פעמים, פעם אחת בכל מחזור אימון. |
ירידה סטוכסטית בגרדינט | אחרי שהמודל בוחן דוגמה אחת ממערך הנתונים. לדוגמה, אם מערך נתונים מכיל 1,000 דוגמאות והוא מתאמן במשך 20 מחזורי אימון, המודל מעדכן את המשקלים וההטיה 20,000 פעמים. |
ירידה סטוכסטית בגרדינט של מקבצים קטנים | אחרי שהמודל בודק את הדוגמאות בכל קבוצה. לדוגמה, אם מערך נתונים מכיל 1,000 דוגמאות, וגודל אצווה הוא 100, והמודל עבר אימון במשך 20 תקופות של זמן מערכת, המודל מעדכן את המשקולות ואת ההטיות 200 פעמים. |