פרמטרים היפר-מרחביים הם משתנים ששולטים בהיבטים שונים של האימון. שלושה היפר-פרמטרים נפוצים הם:
לעומת זאת, פרמטרים הם המשתנים, כמו המשקלים וההטיה, שהם חלק מהמודל עצמו. במילים אחרות, היפר-פרמטרים הם ערכים שאתם שולטים בהם, ופרמטרים הם ערכים שהמודל מחשב במהלך האימון.
קצב למידה
שיעור הלמידה הוא מספר עם נקודה צפה (float) שמגדירים, והוא משפיע על מהירות ההתכנסות של המודל. אם קצב הלמידה נמוך מדי, יכול להיות שיחלוף זמן רב עד שהמודל יגיע לנקודת הסכמה. עם זאת, אם קצב הלמידה גבוה מדי, המודל אף פעם לא מתכנס, אלא קופץ סביב המשקלים וההטיה שמצמצמים את האובדן. המטרה היא לבחור קצב למידה שלא גבוה מדי ולא נמוך מדי, כדי שהמודל יתכנס במהירות.
שיעור הלמידה קובע את עוצמת השינויים שצריך לבצע במשקלים ובשיפוע במהלך כל שלב בתהליך הירידה בגרדינט. המודל מכפיל את המדרון בשיעור הלמידה כדי לקבוע את הפרמטרים של המודל (ערכי המשקל וההטיה) לחזרה הבאה. בשלב השלישי של ירידה בגרדינט, 'הסכום הקטן' לתנועה בכיוון השיפוע השלילי מתייחס לשיעור הלמידה.
ההבדל בין הפרמטרים של המודל הישן לבין הפרמטרים של המודל החדש הוא יחסי לשיפוע של פונקציית האובדן. לדוגמה, אם השיפוע גדול, המודל יעשה צעד גדול. אם הוא קטן, הוא נע צעד קטן. לדוגמה, אם עוצמת המדרון היא 2.5 ושיעור הלמידה הוא 0.01, המודל ישנה את הפרמטר ב-0.025.
שיעור הלמידה האידיאלי עוזר למודל להגיע להסכמה במספר סבובים סביר. באיור 21, עקומת האובדן מראה שיפור משמעותי במודל במהלך 20 החזרות הראשונות, לפני שהיא מתחילה להתכנס:
איור 21. תרשים אובדן שבו מוצג מודל שהוכשר עם קצב למידה שמגיע להסכמה במהירות.
לעומת זאת, אם שיעור הלמידה קטן מדי, יכול להיות שיידרש מספר רב מדי של חזרות כדי להגיע להסכמה. באיור 22, עקומת האובדן מראה שהמודל משיג רק שיפורים קלים אחרי כל חזרה:
איור 22. תרשים אובדן שבו מוצג מודל שאומן בקצב למידה נמוך.
שיעור למידה גדול מדי אף פעם לא מתכנס, כי בכל חזרה (iteration) הערך של האובדן משתנה או עולה באופן קבוע. באיור 23, עקומת האובדן מראה שהאובדן של המודל יורד ואז עולה אחרי כל חזרה, ובאיור 24 האובדן עולה בחזרות מאוחרות יותר:
איור 23. תרשים אובדן שבו מוצג מודל שהוכשר עם קצב למידה גדול מדי, ועקומת האובדן משתנה באופן קיצוני, עולה ויורד ככל שמספר החזרות עולה.
איור 24. תרשים אובדן שמראה מודל שהוכשר עם קצב למידה גדול מדי, שבו עקומת האובדן עולה באופן דרסטי בחזרות הבאות.
תרגול: בדיקת ההבנה
גודל האצווה
Batch size הוא היפרפרמטר שמתייחס למספר הדוגמאות שהמודל מעבד לפני שהוא מעדכן את המשקלים וההטיה שלו. יכול להיות שתחשבו שהמודל צריך לחשב את האובדן עבור כל דוגמה במערך הנתונים לפני העדכון של המשקלים וההטיה. עם זאת, כשמערך נתונים מכיל מאות אלפי דוגמאות או אפילו מיליוני דוגמאות, לא מעשי להשתמש בקבוצה המלאה.
שתי שיטות נפוצות לקבלת השיפוע הנכון בממוצע בלי צורך לבדוק כל דוגמה במערך הנתונים לפני עדכון המשקלים וההטיה הן ירידה בגרדינט סטוכסטי וירידה בגרדינט סטוכסטי בקבוצות קטנות:
ירידה בגרדינט אקראי (SGD): בשיטה הזו נעשה שימוש רק בדוגמה אחת (קבוצה אחת) בכל חזרה. אחרי מספיק חזרות, SGD פועלת אבל יש בה הרבה רעש. 'רעש' מתייחס לשינויים במהלך האימון שגורמים לעלייה במקום לירידה באובדן במהלך מחזור. המונח 'סטוכסטי' מציין שהדוגמה אחת שמרכיבת כל קבוצה נבחרת באקראי.
בתמונה הבאה אפשר לראות שהאובדן משתנה מעט כשהמודל מעדכן את המשקלים וההטיה שלו באמצעות SGD, דבר שעלול להוביל לרעש בתרשים האובדן:
איור 25. מודל שאומן באמצעות ירידה סטוכסטית בגרדינט (SGD) שבו מוצג רעש בגרף האובדן.
חשוב לזכור שהשימוש ב-stochastic gradient descent יכול ליצור רעש לאורך כל עקומת ההפסד, ולא רק בסמוך לנקודת ההתכנסות.
ירידה בגרדינט סטוכסטי בקבוצות קטנות (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 פעמים. |
ירידה סטוכסטית בגרדינט של קבוצות קטנות (Mini-batch) | אחרי שהמודל בודק את הדוגמאות בכל קבוצה. לדוגמה, אם מערך נתונים מכיל 1,000 דוגמאות, גודל האצווה הוא 100 והמודל מתאמן במשך 20 מחזורי אימון, המודלים מעדכנים את המשקלים ואת הטיה 200 פעמים. |