גישה מדעית לשיפור ביצועי המודל

לצורך המסמך הזה:

המטרה הסופית של פיתוח למידת מכונה היא למקסם את התועלת של המודל שנפרס.

בדרך כלל אפשר להשתמש באותם שלבים ועקרונות בסיסיים בקטע הזה לגבי כל בעיה בלמידת מכונה.

ההנחה הבאה בנוגע לקטע הזה:

  • כבר יש לכם צינור עיבוד נתונים לאימון, וגם הגדרות שמניבות תוצאה סבירה.
  • יש לכם מספיק משאבי חישוב כדי לבצע ניסויים משמעותיים של כוונון, ולהריץ לפחות כמה משימות הדרכה במקביל.

האסטרטגיה של כוונון מצטבר

המלצה: כדאי להתחיל בהגדרה פשוטה. לאחר מכן, טענו את השיפורים בהדרגה כדי לצבור תובנות לגבי הבעיה. הקפידו שכל שיפור יתבסס על ראיות חזקות.

אנחנו מניחים שהיעד שלכם הוא למצוא הגדרה שמגדילה את ביצועי המודל. לפעמים המטרה היא להגיע לשיפור מקסימלי במודל עד לתאריך יעד קבוע. במקרים אחרים תוכלו להמשיך לשפר את המודל ללא הגבלת זמן, לדוגמה, להמשיך לשפר את המודל המשמש לייצור.

באופן כללי, כדי למקסם את הביצועים, אפשר להשתמש באלגוריתם כדי לחפש באופן אוטומטי את כל השטח של אפשרויות אפשריות, אבל זו לא אפשרות מעשית. הגודל של ההגדרות האפשריות גדול מאוד, ואין עדיין אלגוריתמים מתוחכמים מספיק כדי לחפש את החלל הזה ביעילות, ללא הדרכה אנושית. רוב האלגוריתמים של החיפוש האוטומטי מסתמכים על מרחב חיפוש בעיצוב ידני שמגדיר את קבוצת התצורות שאפשר לחפש בהן, ומרחבי החיפוש האלה חשובים במידה מסוימת.

הדרך היעילה ביותר למקסם את הביצועים היא להתחיל בהגדרה פשוטה, להוסיף תכונות בהדרגה ולבצע שיפורים תוך כדי יצירת תובנה לגבי הבעיה.

אנחנו ממליצים להשתמש באלגוריתמים של חיפוש אוטומטי בכל סבב של כוונון, תוך עדכון מתמשך של מרחבי החיפוש ככל שההבנה מתפתחת. במהלך החקר תוכלו לגלות באופן טבעי הגדרות טובות ומשופרות, ולכן המודל "הטוב ביותר" ישתפר כל הזמן.

המונח 'השקה' מתייחס לעדכון לתצורה הטובה ביותר (שעשוי להתאים להשקה של מודל ייצור בפועל, או שלא). בכל השקה, צריך לוודא שהשינוי מבוסס על ראיות חזקות, ולא רק על סיכוי אקראי על סמך הגדרות מזל, כדי שלא תוסיפו מורכבות מיותרת לצינור האימון.

באופן כללי, האסטרטגיה שלנו לכוונון מצטבר כוללת חזרה על 4 השלבים הבאים:

  1. בוחרים יעד לסבב הניסויים הבא. חשוב לוודא שהיעד בהיקף המתאים.
  2. תכנון סבב הניסויים הבא. תכנון והפעלה של קבוצת ניסויים שיובילו להשגת היעד הזה.
  3. תוצאות מהניסוי. מבצעים הערכה של הניסוי לפי רשימת משימות.
  4. מחליטים אם ליישם את השינוי במועמד.

שאר הסעיף הזה מפרט את האסטרטגיה הזו.

בחירת יעד לסבב הניסויים הבא

אם תנסו להוסיף כמה תכונות או לענות על כמה שאלות בבת אחת, ייתכן שלא תוכלו להבדיל בין ההשפעות השונות על התוצאות. יעדים לדוגמה:

  • כדאי לנסות לשפר את עיבוד הנתונים (למשל, קבוע חדש, אפשרות לעיבוד מראש וכו').
  • הבנת ההשפעה של היפר-פרמטר של מודל מסוים (לדוגמה, פונקציית ההפעלה)
  • מזעור שגיאת האימות.

הגדרת עדיפות לטווח ארוך על פני שיפורי שגיאות באימות לטווח קצר

סיכום: ברוב המקרים, המטרה העיקרית היא לקבל תובנות לגבי בעיית הכוונון.

מומלץ להקדיש את רוב הזמן לקבלת תובנות על הבעיה, וזמן קצר יחסית כדי להתמקד במקסימום הביצועים של קבוצת האימות. במילים אחרות, רוב הזמן שאתם מקדישים ל "ניתוח" ורק סכום קטן ל "ניצול". הבנת הבעיה היא חיונית כדי למקסם את הביצועים הסופיים. תעדוף לפי תובנות על רווחים לטווח קצר עוזר:

  • הימנעו מהשקה של שינויים לא נחוצים שהתרחשו בהרצות עם ביצועים טובים רק עקב תאונה היסטורית.
  • מזהים אילו היפר-פרמטרים היא השגיאה הרגישה ביותר, אילו היפר-פרמטרים הם החשובים ביותר, ולכן צריך לשפר אותם יחד ואילו היפר-פרמטרים הם פחות רגישים לשינויים אחרים, ולכן ניתן לתקן אותם בניסויים עתידיים.
  • הציעו תכונות חדשות שכדאי לנסות, כמו תוכנות קבועות חדשות כשקיימת התאמה.
  • נסו לזהות תכונות שלא עוזרות לכם ולכן אפשר להסיר אותן, מה שיפחית את המורכבות של ניסויים עתידיים.
  • זיהוי מתי יש רוויה בשיפור הכוונון של היפר-פרמטרים.
  • צמצום אזורי החיפוש סביב הערך האופטימלי כדי לשפר את יעילות הכוונון.

בסופו של דבר, תוכלו להבין את הבעיה. לאחר מכן תוכלו להתמקד אך ורק בשגיאת האימות, גם אם הניסויים לא כוללים מידע מקסימלי על המבנה של בעיית הכוונון.

תכנון מחזור הניסויים הבא

סיכום: זהו את הפרמטרים הספציפיים של היפר-פרמטרים עבור המדע, הניואנסים וההיפר-פרמטרים של היעד הניסיוני. יצירת רצף של מחקרים כדי להשוות בין ערכים שונים של ההיפר-פרמטרים המדעיים, תוך ביצוע אופטימיזציה של ההיפר-פרמטרים הדחופים. בחרו את מרחב החיפוש של היפר-פרמטרים מטרידים, כדי לאזן בין עלויות המשאבים לבין ערך מדעי.

זיהוי היפר-פרמטרים מדעיים, ניואנסים והיפר-פרמטרים קבועים

עבור כל מטרה עסקית, כל היפר-פרמטרים משתייכים לאחת מהקטגוריות הבאות:

  • היפר-פרמטרים מדעיים הם אלה שההשפעה שלהם על ביצועי המודל היא מה שאתם מנסים למדוד.
  • היפר-פרמטרים מיותרים הם פרמטרים שצריך לבצע להם אופטימיזציה כדי להשוות בצורה הוגנת בין ערכים שונים של ההיפר-פרמטרים המדעיים. היפר-פרמטרים של הטרדה דומים לפרמטרים של הטרדה.
  • להיפר-פרמטרים קבועים יש ערכים קבועים בסבב הניסויים הנוכחי. הערכים של היפר-פרמטרים קבועים לא אמורים להשתנות כשמשווים ערכים שונים של היפר-פרמטרים מדעיים. על ידי תיקון היפר-פרמטרים מסוימים בקבוצת ניסויים, עליכם לאשר שמסקנות שנובעות מהניסויים עשויות לא להיות חוקיות בהגדרות אחרות של ההיפר-פרמטרים הקבועים. במילים אחרות, היפר-פרמטרים קבועים יוצרים אזהרות לגבי מסקנות שמתקבלות מהניסויים.

לדוגמה, נניח שהיעד שלכם הוא:

יש לקבוע אם במודל עם שכבות נסתרות יותר יש שגיאת אימות נמוכה יותר.

במקרה זה:

  • קצב הלמידה הוא היפר-פרמטר מטריד, כי אפשר להשוות באופן הוגן בין מודלים למספרים שונים של שכבות נסתרות רק אם קצב הלמידה מותאם בנפרד לכל מספר של שכבות מוסתרות. (קצב הלמידה האופטימלי בדרך כלל תלוי בארכיטקטורת המודל).
  • פונקציית ההפעלה יכולה להיות היפר-פרמטר קבוע, אם החלטתם בניסויים קודמים שפונקציית ההפעלה הטובה ביותר לא רגישה לעומק המודל. לחלופין, תוכלו להגביל את המסקנות לגבי מספר השכבות המוסתרות כך שיכסו את פונקציית ההפעלה הזו. לחלופין, זה יכול להיות היפר-פרמטר של הטרדה, אם אתם מוכנים להתאים אותו בנפרד לכל מספר של שכבות מוסתרות.

היפר-פרמטר מסוים יכול להיות היפר-פרמטר מדעי, היפר-פרמטר נורמלי או היפר-פרמטר קבוע. אופן המיון של ההיפר-פרמטר משתנה בהתאם ליעד הניסיוני. לדוגמה, פונקציית ההפעלה יכולה להיות כל אחת מהאפשרויות הבאות:

  • היפר-פרמטר מדעי: האם הבחירה שלנו היא ReLU או Tan?
  • היפר-פרמטר של שווא: האם המודל הטוב ביותר בן 5 השכבות מתאים יותר ממודל 6 השכבות הטוב ביותר, אם אתם מאפשרים מספר פונקציות הפעלה שונות?
  • היפר-פרמטר קבוע: לגבי רשתות ReLU, האם הוספת נורמליזציה של אצווה במיקום מסוים עוזרת?

כשמתכננים סבב חדש של ניסויים:

  1. זיהוי ההיפר-פרמטרים המדעיים של היעד הניסיוני. (בשלב הזה, כל הפרמטרים האחרים של היפר-פרמטרים יכולים להיחשב כהטרדה מכוונת.)
  2. ממירים חלק מההיפר-פרמטרים המוקצים להיפר-פרמטרים קבועים.

אם יש לכם משאבים בלתי מוגבלים, תוכלו להשאיר את כל הפרמטרים של היפר-פרמטרים לא מדעיים בתור היפר-פרמטרים מיותרים, כך שהמסקנות מהניסויים שלכם יהיו נטולות לחלוטין מאזהרות לגבי ערכי היפר-פרמטרים קבועים. עם זאת, ככל שתנסו להשתמש בפרמטרים היפר-פרמטרים מסובכים יותר, כך סיכון גדול יותר לוודא שלא כוונון אותם מספיק בשביל כל הגדרה של ההיפר-פרמטרים המדעיים, ובסופו של דבר תגיעו למסקנות שגויות מהניסויים שלכם. כפי שמתואר בסעיף מאוחר יותר, תוכלו להקטין את הסיכון על ידי הגדלת תקציב החישוב. עם זאת, לעיתים קרובות תקציב המשאבים המקסימלי נמוך מהנדרש כדי לכוונן את כל ההיפר-פרמטרים הלא מדעיים.

מומלץ להמיר היפר-פרמטר מטריד בגלל היפר-פרמטר קבוע, כשהאזהרות שמוצגות על ידי תיקון הבעיה הן פחות כבדות מהעלות של הוספת היפר-פרמטר מיותר. ככל שהיפר-פרמטר מפריע יותר לאינטראקציה עם ההיפר-פרמטרים מדעיים, כך גוברת ההשפעה שלו על תיקון הערך. לדוגמה, הערך הטוב ביותר של חוזק הדעיכה במשקל תלוי בדרך כלל בגודל המודל, ולכן השוואה של גודלי דגמים שונים בהנחה שהערך הספציפי של דעיכה במשקל לא יהיה משמעותי מאוד.

פרמטרים מסוימים של כלי אופטימיזציית האתרים

ככלל אצבע, חלק מההיפר-פרמטרים של כלי האופטימיזציה (למשל קצב הלמידה, המומנטום, הפרמטרים של לוח הזמנים של קצב הלמידה, גרסאות הבטא של אדם וכו') הם היפר-פרמטרים מיותרים, כי הם נוטים ליצור אינטראקציה בתדירות גבוהה יותר עם שינויים אחרים. אלה היפר-פרמטרים טכניים של כלי אופטימיזציית האתרים, כי יעד כמו "מהו קצב הלמידה הטוב ביותר לצינור עיבוד הנתונים הנוכחי?" לא מספק הרבה תובנות. בסופו של דבר, ההגדרה הטובה ביותר עשויה להשתנות גם בעקבות השינוי הבא בצינור עיבוד הנתונים.

מדי פעם תוכלו לתקן פרמטרים של היפר-פרמטרים של כלי האופטימיזציה, בגלל אילוצים של המשאבים או אם יש ראיות חזקות במיוחד לכך שאין להם אינטראקציה עם הפרמטרים המדעיים. עם זאת, בדרך כלל צריך להניח שאתם צריכים להתאים את ההיפר-פרמטרים של כלי אופטימיזציית ההמרות בנפרד, כדי לבצע השוואות הוגנות בין ההגדרות השונות של ההיפר-פרמטרים המדעיים. לכן, אין צורך לתקן אותם. בנוסף, אין סיבה להעדיף ערך מסוים של היפר-פרמטר של כלי אופטימיזציית האתרים על פני ערך אחר. לדוגמה, ערכי היפר-פרמטר של כלי אופטימיזציית האתרים לא משפיעים בדרך כלל על עלות החישוב של מעברים הדרגתיים או הדרגתיים.

בחירת הכלי לאופטימיזציית אתרים

האפשרויות של כלי האופטימיזציה הן בדרך כלל:

  • היפר-פרמטר מדעי
  • היפר-פרמטר קבוע

כלי אופטימיזציה הוא היפר-פרמטר מדעי, אם היעד הניסיוני כולל ביצוע השוואות הוגנות בין שני כלי אופטימיזציה שונים או יותר. לדוגמה:

בודקים איזה כלי אופטימיזציה יוצר את שגיאת האימות הנמוכה ביותר במספר נתון של שלבים.

לחלופין, אפשר להגדיר את ה-Optimize כ-היפר-פרמטר קבוע ממגוון סיבות, כולל:

  • ניסויים קודמים ציינו שהכלי הטוב ביותר לכוונון של הכוונון שלך לא רגיש להיפר-פרמטרים מדעיים נוכחיים.
  • אתם מעדיפים להשוות את הערכים של ההיפר-פרמטרים המדעיים באמצעות כלי האופטימיזציה הזה, כי קל יותר להבין את עקומות האימון שלו.
  • עדיף להשתמש בכלי האופטימיזציה הזה כי הוא צורך פחות זיכרון מהחלופות.

היפר-פרמטרים של ארגון קבוע

בדרך כלל, היפר-פרמטרים שמשמשים בטכניקת התאמה הם הטרדה. עם זאת, אם לכלול את טכניקת ההתאמה או לא, צריך לבחור בהיפר-נתונים מדעיים או קבועים.

לדוגמה, הסדירות של התנתקות מוסיפה מורכבות של קוד. לכן, כאשר מחליטים אם לכלול קבוע של נשירה מתהליך ההמרה, אפשר להגדיר "היפר-נתונים" לעומת "היפר-נתונים מדעיים", אך היפר-פרמטר של הטרדה. אם תחליטו להוסיף צינור עיבוד נתונים לצינור המבוסס על הניסוי הזה, שיעור הנשירה יהיה היפר-פרמטר של הטרדה בניסויים עתידיים.

היפר-פרמטרים אדריכליים

פעמים רבות, היפר-פרמטרים אדריכליים הם מדעיים או קבועים, כי שינויים בארכיטקטורה יכולים להשפיע על העלויות של הצגת מודעות והדרכה, על זמן האחזור ועל דרישות הזיכרון. לדוגמה, מספר השכבות הוא בדרך כלל היפר-פרמטר מדעי או קבוע, כי בדרך כלל יש לכך השלכות דרמטיות על מהירות האימון ועל השימוש בזיכרון.

תלות בהיפר-פרמטרים מדעיים

במקרים מסוימים, הסטים של הטרדה והיפר-פרמטרים קבועים תלויים בערכי ההיפר-פרמטרים המדעיים. לדוגמה, נניח שאתם מנסים לקבוע איזה כלי אופטימיזציה במומנטום של Nesterov ומשתמש יוצר את שגיאת האימות הנמוכה ביותר. במקרה זה:

  • ההיפר-פרמטר המדעי הוא כלי האופטימיזציה, שלוקח ערכים {"Nesterov_momentum", "Adam"}
  • הערך optimizer="Nesterov_momentum" מציג את ההיפר-פרמטרים {learning_rate, momentum}, שיכולים להיות הטרדה או היפר-פרמטרים קבועים.
  • הערך optimizer="Adam" כולל את ההיפר-פרמטרים {learning_rate, beta1, beta2, epsilon}, שיכולים להיות הטרדה או היפר-פרמטרים קבועים.

היפר-פרמטרים הקיימים רק עבור ערכים מסוימים של היפר-פרמטרים מדעיים נקראים היפר-פרמטרים מותנים. אל תניחו ששני היפר-פרמטרים מותנים הם זהים, כי יש להם אותו שם! בדוגמה הקודמת, ההיפר-פרמטר המותנה שנקרא learning_rate הוא היפר-פרמטר שונה עבור optimizer="Nesterov_momentum" מאשר optimizer="Adam". התפקיד שלו דומה (אם כי לא זהה) בשני האלגוריתמים, אבל בדרך כלל טווח הערכים שעובד היטב בכל אחד מכלי אופטימיזציית הנתונים שונה בכמה עוצמה.

יצירת קבוצת מחקרים

אחרי שזיהית את ההיפר-פרמטרים המדעיים והטרנדים, עליך לתכנן מחקר או רצף מחקרים כדי להתקדם לעבר היעד הניסיוני. study מציין קבוצה של תצורות היפר-פרמטרים להפעלה עבור ניתוח נוסף. כל הגדרה נקראת תקופת ניסיון. לרוב, כדי ליצור מחקר, צריך לבחור את האפשרויות הבאות:

  • היפר-פרמטרים שמשתנים בין תקופות ניסיון.
  • הערכים שאפשר להשתמש בהם בהיפר-פרמטרים (מרחב החיפוש).
  • מספר תקופות הניסיון.
  • אלגוריתם חיפוש אוטומטי לדגימה של מספר תקופות הניסיון ממרחב החיפוש.

לחלופין, אפשר ליצור מחקר על ידי הגדרה ידנית של קבוצת ההגדרות של היפר-פרמטרים.

מטרת המחקרים היא במקביל:

  • הרצה של צינור עיבוד נתונים עם ערכים שונים של ההיפר-פרמטרים המדעיים.
  • "ביצוע אופטימיזציה" (או "ביצוע אופטימיזציה") על סמך ערכי ההיפר-פרמטרים המטרידים, כדי שהשוואה בין ערכים שונים של ההיפר-פרמטרים המדעיים תהיה הוגנת ככל האפשר.

במקרה הפשוט ביותר, צריך לבצע מחקר נפרד לכל הגדרה של הפרמטרים המדעיים, כך שכל מחקר מכוון על הפרמטרים ההיפר- בשימושיים הבעייתיים. לדוגמה, אם היעד שלכם הוא לבחור בכלי אופטימיזציית האופטימיזציה הטוב ביותר מתוך מומנטום של Nestrum, תוכלו ליצור שני מחקרים:

  • מחקר אחד שבו optimizer="Nesterov_momentum" וההיפר-פרמטרים המטרידים הם {learning_rate, momentum}
  • מחקר נוסף שבו optimizer="Adam" וההיפר-פרמטרים המטרפים הם {learning_rate, beta1, beta2, epsilon}.

תשוו בין שני כלי האופטימיזציה על ידי בחירת תקופת הניסיון עם הביצועים הטובים ביותר בכל מחקר.

תוכלו להשתמש בכל אלגוריתם של אופטימיזציה ללא שיפוע, כולל שיטות כמו אופטימיזציה של בייס או אלגוריתמים אבולוציוניים, כדי לבצע אופטימיזציה של ההיפר-פרמטרים הדחופים. עם זאת, אנחנו מעדיפים להשתמש בחיפוש מזדמן בשלב הניתוח, בגלל מגוון יתרונות שיש להם בהגדרה הזו. אחרי שהניתוח יסתיים, מומלץ להשתמש בתוכנה מתקדמת לאופטימיזציה של בייס (אם היא זמינה).

כדאי להביא בחשבון מקרה מורכב יותר שבו רוצים להשוות בין מספר גדול של ערכים של היפר-פרמטרים מדעיים, אבל לא כדאי לבצע כמה מחקרים עצמאיים. במקרה כזה, אפשר לבצע את הפעולות הבאות:

  • כוללים את הפרמטרים המדעיים באותו מרחב חיפוש כמו ההיפר-פרמטרים המטרידים.
  • השתמשו באלגוריתם חיפוש כדי לדגום ערכים גם של היפר-פרמטרים מדעיים וגם של הטרדה, במחקר יחיד.

כשנוקטים גישה כזו, היפר-פרמטרים מותנים עלולים לגרום לבעיות. אחרי הכול, קשה לציין מרחב חיפוש, אלא אם קבוצת ההיפר-פרמטרים המנוגדים זהה לכל הערכים של ההיפר-פרמטרים המדעיים. במקרה הזה, ההעדפה שלנו לשימוש בחיפוש מעין-אקראי על פני כלי אופטימיזציה של קופסה שחורה היא חזקה יותר, כי השימוש בשיטה הזאת מבטיח שערכים שונים של ההיפר-פרמטרים המדעיים יידגמו בצורה אחידה. ללא קשר לאלגוריתם החיפוש, הקפידו לחפש בצורה אחידה את הפרמטרים המדעיים.

לאיזון בין ניסויים אינפורמטיביים לבין ניסויים במחירים נוחים

כשמתכננים מחקר או רצף מחקרים, מקצים תקציב מוגבל כדי להשיג את שלושת היעדים הבאים בצורה הולמת:

  • השוואת מספיק ערכים שונים של ההיפר-פרמטרים המדעיים.
  • כוונון של ההיפר-פרמטרים המנוגדים למרחב משותף גדול מספיק.
  • דגימה של מרחב החיפוש של היפר-פרמטרים מטרידים מספיק.

ככל שתוכלו להשיג את שלושת היעדים האלה טוב יותר, כך תוכלו להפיק תובנות נוספות מהניסוי. השוואת ערכים רבים ככל האפשר של ההיפר-פרמטרים המדעיים מרחיבה את היקף התובנות שמתקבלות מהניסוי.

הכללת היפר-פרמטרים רבים ככל האפשר של הטרדה, ככל שאפשר, ורמת היפר-פרמטר של הטרדה נעה בטווח רחב ככל האפשר, הגברת הוודאות שיש ערך "טוב" של היפר-פרמטרים מטרידים במרחב החיפוש לכל הגדרה של היפר-פרמטרים מדעיים. אחרת, תוכלו לבצע השוואות לא הוגנות בין ערכים של ההיפר-פרמטרים המדעיים באמצעות חיפוש אזורים אפשריים של ההיפר-פרמטר של הטריקים, בעוד שערכים טובים יותר עשויים לנבוע מערכים מסוימים של הפרמטרים המדעיים.

כדאי לדגום את מרחב החיפוש של היפר-פרמטרים מטרידים ככל האפשר. כך תגדילו את הביטחון שהליך החיפוש ימצא הגדרות טובות להיפר-פרמטרים המופרעים של פרצות, שמתרחשים במרחב החיפוש. אחרת, תוכלו לבצע השוואות לא הוגנות בין ערכים של פרמטרים מדעיים כתוצאה מחוסר מזל בערכים מסוימים עם הדגימה של ההיפר-פרמטרים המוטרדים.

לצערנו, השיפורים בכל אחד משלושת המאפיינים האלה מחייבים:

  • הגדלת מספר תקופות הניסיון, ולכן הגדלת עלות המשאב.
  • מחפשים דרך לחסוך משאבים באחד מהמאפיינים האחרים.

לכל בעיה יש נקודות חולשה ומגבלות חישוב משלה, כך שהקצאת משאבים בשלושת היעדים האלה דורשת רמה מסוימת של ידע בתחום. לאחר ביצוע מחקר, נסו תמיד לבדוק אם המחקר מכוון במידה מסוימת את ההיפר-פרמטרים המטרידים. כלומר, המחקר חיפש מרחב גדול מספיק מספיק כדי להשוות בצורה הוגנת את ההיפר-פרמטרים המדעיים (כפי שמתואר בפירוט בקטע הבא).

לומדים מהתוצאות הניסיוניות

המלצה: בנוסף לנסות להשיג את היעד המדעי המקורי של כל קבוצת ניסויים, כדאי לעיין ברשימת משימות עם שאלות נוספות. אם מגלים בעיות, מתקנים אותן ומבצעים אותן מחדש.

בסופו של דבר, לכל קבוצת ניסויים יש יעד ספציפי. צריך להעריך את ההוכחות שהניסויים סיפקו ליעד הזה. עם זאת, אם תשאלו את השאלות הנכונות, לעיתים קרובות תוכלו למצוא בעיות שצריך לתקן לפני שקבוצת ניסויים נתונה יכולה להתקדם אל היעד המקורי שלה. אם לא תשאלו את השאלות האלה, אתם יכולים להסיק מסקנות שגויות.

מכיוון שביצוע ניסויים יכול להיות יקר, עליכם גם להפיק תובנות מועילות אחרות מכל קבוצת ניסויים, גם אם התובנות האלה לא רלוונטיות מיידית ליעד הנוכחי.

לפני שמנתחים קבוצה מסוימת של ניסויים כדי להתקדם לעבר היעד המקורי, כדאי לשאול את עצמכם את השאלות הנוספות הבאות:

  • האם מרחב החיפוש גדול מספיק? אם הנקודה האופטימלית במחקר נמצאת בקרבת הגבול של מרחב החיפוש במאפיין אחד או יותר, סביר להניח שהחיפוש לא רחב מספיק. במקרה כזה, מריצים מחקר נוסף עם מרחב חיפוש מורחב.
  • האם דגמתם מספיק נקודות ממרחב החיפוש? אם לא, כדאי להריץ יותר נקודות או לשאוף פחות ליעדי הכוונון.
  • איזה חלק מתקופות הניסיון בכל מחקר אינו בר-ביצוע? כלומר, אילו תקופות ניסיון מבטלות, מאבדות ערכי אובדן חמורים או לא פועלות בכלל, כי הן מפרות אילוצים משתמעים? כשאין אפשרות לחלק גדול של נקודות במחקר, שנו את מרחב החיפוש כדי להימנע מדגימה של נקודות כאלה, מה שלפעמים מחייב שינוי פרמטרים של מרחב החיפוש. במקרים מסוימים, מספר רב של נקודות לא מעשיות יכול להצביע על באג בקוד האימון.
  • האם המודל מציג בעיות באופטימיזציה?
  • מה אפשר ללמוד מעקומות האימון של תקופות הניסיון הטובות ביותר? לדוגמה, האם לתקופות הניסיון הטובות ביותר יש עקומות אימונים שתואמות להתאמה בעייתית?

במידת הצורך, על סמך התשובות לשאלות הקודמות תוכלו לצמצם את המחקר או את קבוצת המחקר האחרונים כדי לשפר את מרחב החיפוש ו/או לדגום עוד ניסויים, או לבצע פעולה מתקנת אחרת.

אחרי שמשיבים על השאלות שלמעלה, אפשר להעריך את ההוכחות בניסויים ביחס ליעד המקורי, למשל הערכה אם שינוי מסוים שימושי.

מרחב חיפוש הוא חשוד אם הנקודה שנדגמת ממנו היא קרובה לגבולותיו. אם תרחיבו את טווח החיפוש בכיוון הזה, אולי תמצאו נקודה טובה יותר.

כדי לבדוק גבולות של מרחב חיפוש, מומלץ להציב תקופות ניסיון מלאות למה שאנחנו מכנים מזנונים בסיסיים של ציר היפר-פרמטר. באופן זה, אנו מציגים את ערך יעד האימות לעומת אחד מההיפר-פרמטרים (לדוגמה, שיעור למידה). כל נקודה בתרשים תואמת לתקופת ניסיון אחת.

הערך של יעד האימות בכל תקופת ניסיון צריך בדרך כלל להיות הערך הטוב ביותר שהיא השיגה במהלך האימון.

תרשים של שיעור השגיאות בקבוצת האימות (ציר y) לעומת
          שיעור הלמידה הגבוה ביותר (ציר x) שמראה גבולות שגויים
          של מרחב החיפוש. בתרשים הזה, תקופות הניסיון הטובות ביותר (השיעורים הנמוכים ביותר של שגיאות)
          ממוקמות בסמוך לקצה מרחב החיפוש, שבו
          שיעור הלמידה הגבוה ביותר. תרשים של שיעור השגיאות בקבוצת האימות (ציר ה-y) לעומת
          שיעור הלמידה הגבוה ביותר (ציר X) שמדגים גבולות
          טובים של מרחב החיפוש. בתרשים, תקופות הניסיון הטובות ביותר (השיעורים הנמוכים ביותר של שגיאות)
          נמצאות באמצע אזור החיפוש, כאשר
          שיעור הלמידה המרבי הוא 0.001, ולא כאשר שיעור הלמידה
          השיא הוא 0.00001 או 0.1.

איור 1: דוגמאות לגבולות שגויים של מרחב חיפוש וגבולות מקובלים של מרחב החיפוש.

התרשימים בתרשים 1 מראים את שיעור השגיאות (מומלץ להקטין) לעומת שיעור הלמידה הראשונית. אם הנקודות הטובות ביותר מקובצות לקצה של מרחב חיפוש (במימד מסוים), יכול להיות שתצטרכו להרחיב את הגבולות של מרחב החיפוש עד שהנקודה הגלויה ביותר לא תהיה קרובה יותר לגבול.

לעיתים קרובות מחקר כולל תקופות "לא מעשיות" שגורמות או מקבלות תוצאות גרועות מאוד (מסומנות ב-X אדום באיור 1). אם כל תקופות הניסיון לא מעשיות בזכות שיעורי למידה שגבוהים מערך סף מסוים, ואם לניסויים שמניבים את הביצועים הטובים ביותר יש שיעורי למידה בקצה האזור הזה, המודל עשוי להיתקל בבעיות יציבות שמונעות את הגישה לשיעורי למידה גבוהים יותר.

לא דגימת מספיק נקודות במרחב החיפוש

באופן כללי, יכול להיות קשה מאוד לדעת אם מרחב החיפוש נדגם במידה מספקת. 🤖 כדאי להפעיל יותר תקופות ניסיון מאשר להריץ פחות תקופות ניסיון, אבל יותר תקופות ניסיון עולות הרבה יותר.

מאחר שקשה מאוד לדעת מתי דגמת מספיק, אנחנו ממליצים:

  • כדאי לדגום את האפשרויות הרווחיות.
  • כיול הביטחון האינטואיטיבי שלכם מתוך בחינה חוזרת של חלקות ציר היפר-פרמטרים, בניסיון להבין כמה נקודות נמצאות באזור ה'טוב' של מרחב החיפוש.

בדיקה של עקומות האימון

סיכום: בדיקה של עקומות האבדן היא דרך קלה לזיהוי מצבים נפוצים של כישלון, והיא יכולה לעזור לכם לתעדף פעולות אפשריות נוספות.

במקרים רבים, המטרה העיקרית של הניסויים היא רק לבחון את שגיאת האימות של כל ניסוי. עם זאת, כדאי להיזהר כשלהפחית כל ניסוי למספר אחד, כי המיקוד הזה יכול להסתיר פרטים חשובים לגבי מה שקורה מתחת לפני השטח. לכל מחקר מומלץ מאוד לבדוק את הקידומות 'ההפסדים' של לפחות תקופות הניסיון הטובות ביותר. גם אם אין צורך במאמץ לטפל במשימה הניסיונית העיקרית, בדיקה של עקומת ההפסדים (כולל אובדן הפסד ואובדן אימות) היא דרך טובה לזיהוי מצבים נפוצים של כישלון, ובעזרתה תוכלו לתעדף מהן הפעולות הבאות שעליכם לבצע.

כשבודקים את עקומות ההפסדים, יש להתמקד בשאלות הבאות:

  • האם בתקופות ניסיון מסוימות נמצאה התאמה יתר? התאמת יתר בעייתית מתרחשת כששגיאות האימות מתחילות לגדול במהלך האימון. בהגדרות הניסיוניות שבהן מתבצעת אופטימיזציה להיפר-פרמטרים מטרידים, על ידי בחירת הניסוי "הטוב ביותר" לכל הגדרה של ההיפר-פרמטרים המדעיים, כדאי לחפש לפחות את כל הניסיונות התקינים התואמים להגדרות של היפר-פרמטרים מדעיים שאתם משווים. אם אחת מגרסאות הניסיון הטובות ביותר מציגה התאמה עודפת בעייתית, תוכלו לבצע אחת מהפעולות הבאות או את שתיהן:

    • הרצה מחדש של הניסוי עם טכניקות רגולציה נוספות
    • כוונון מחדש של פרמטרי התקינה הקיימים לפני השוואת הערכים של ההיפר-פרמטרים המדעיים. יכול להיות שהסיבה לכך היא שההיפר-פרמטרים המדעיים כוללים פרמטרים של התאמה, ולכן לא מפתיע שהגדרות החוזק הנמוך של הפרמטרים האלה לא מאפשרות זאת.

    לרוב, כדי להקל על התאמת יתר, כדאי להשתמש בשיטות סטנדרטיות נפוצות שמוסיפות מורכבות קוד מינימלית או חישוב נוסף (למשל, שחרור שגרתי, הוספת החלקה לתוויות, דעיכה במשקל). לכן, בדרך כלל טריוויאלי להוסיף אחד או יותר לסבב הניסויים הבא. לדוגמה: אם ההיפר-פרמטר המדעי הוא "מספר השכבות המוסתרות" ותקופת הניסיון הטובה ביותר שמשתמשת במספר הגדול ביותר של שכבות נסתרות מציגה התאמה מוגזמת, מומלץ לנסות שוב על סידור מחדש במקום לבחור מיד את המספר הקטן יותר של שכבות נסתרות.

    גם אם אף אחת מתקופות הניסיון ה'טובות ביותר' לא יוצרת התאמה יתר, יכול להיות שתופיע בעיה אם תתרחש אחת מהניסויים. הבחירה בתצורות הטובות ביותר להסתרת הניסוי תבטל את ההגדרה הבעייתית, ותעדיף את אלו שלא. במילים אחרות, בחירה בהגדרות הטובות ביותר של הניסוי נותנת עדיפות להגדרות סדירות יותר. עם זאת, כל דבר שגורם לאימון להיות גרוע יותר יכול לשמש קבוע, גם אם הוא לא היה מתוכנן כך. לדוגמה, אם בוחרים בשיעור למידה קטן יותר, יכול להיות שהלמידה תותאם לצורה של התהליך הזה, אבל בדרך כלל לא כדאי לבחור את קצב הלמידה הזה. שימו לב שתקופת הניסיון "הטובה ביותר" בכל הגדרה של ההיפר-פרמטרים המדעיים עשויה להיבחר באופן שיעדיף ערכים "גרועים" בחלק מההיפר-פרמטרים המדעיים או המטרדיים.

  • האם יש שוני משמעותי בשלבים באימון או בשגיאת האימות בהכשרה? אם כן, הדבר עלול להפריע לשני הדברים הבאים:

    • היכולת שלכם להשוות ערכים שונים של היפר-פרמטרים מדעיים. הסיבה לכך היא שכל תקופת ניסיון מסתיימת באופן אקראי בשלב "מזל" או "לא מזל".
    • היכולת שלנו לשחזר את התוצאה של תקופת הניסיון הטובה ביותר בסביבת הייצור. הסיבה לכך היא שהמודל הפעיל לא בהכרח מסתיים באותו שלב של "מזל" כמו במחקר.

    הסיבות הנפוצות ביותר להבדלים בין שלבים הם:

    • שונות בכמות גדולה עקב דגימות אקראיות מתוך קבוצת האימון שהוגדרה לכל קבוצה.
    • קבוצות אימות קטנות
    • שימוש בשיעור למידה גבוה מדי לקראת האימון.

    פתרונות אפשריים כוללים:

    • הגדלת התצוגה בכמות גדולה.
    • קבלת נתוני אימות נוספים.
    • שימוש במודל דעיכה בשיעור הלמידה.
    • נעשה שימוש בממוצע ל-Polyak.
  • האם תקופות הניסיון ממשיכות להשתפר גם אחרי האימון? אם כן, אתם נמצאים במצב של 'מחולית בתוך קבוצה', ואתם יכולים להגדיל את מספר שלבי האימון או לשנות את לוח הזמנים של קצב הלמידה.

  • האם הביצועים של קבוצות ההכשרה והאימות היו מלאים הרבה לפני שלב האימון הסופי? אם כן, הדבר מעיד על כך שאתם נמצאים במערכות 'שלא קשורות למחשוב', ושיכול להיות שתוכלו להפחית את מספר שלבי האימון.

מעבר לרשימה הזו, הרבה התנהגויות נוספות יכולות להיראות בבירור כשבודקים את עקומות ההפסדים. לדוגמה, אובדן האימון במהלך האימון מצביע בדרך כלל על באג בצינור האימון.

בדיקה אם שינוי שימושי בשילוב עם חלקות בידוד

חלקת בידוד שחוקרת את הערך הגבוה ביותר של דעיכה במשקל עבור ResNet-50, שעבר הכשרה ב-ImageNet. במקרה הזה, שיעור השגיאות הנמוך ביותר לאימות הוא מתי הדעיכה במשקל היא בערך 0.00005.

איור 2: תרשים בידוד שחוקר את הערך הכי גבוה של דעיכה במשקל של ResNet-50, שנוצר ב-ImageNet.

 

לעתים קרובות, המטרה של קבוצת ניסויים היא להשוות ערכים שונים של היפר-פרמטר מדעי. לדוגמה, נניח שאתם רוצים לקבוע את הערך של דעיכה במשקל שמוביל לשגיאת האימות הטובה ביותר. עלילת בידוד היא מקרה מיוחד של עלילת ציר ההיפר-פרמטר הבסיסי. כל נקודה בגרף הבידוד תואמת לביצועים של תקופת הניסוי הטובה ביותר בחלק מההיפר-פרמטרים הגורפים (של הפרעה). במילים אחרות, שרטטו את ביצועי המודל לאחר "אופטימיזציה".

תרשים בידוד מפשט את ביצוע ההשוואה בין תפוחים לתפוחים בין ערכים שונים של ההיפר-פרמטר המדעי. לדוגמה, עלילת הבידוד באיור 2 חושפת את ערך הדעיכה שמייצר את ביצועי האימות הטובים ביותר להגדרה מסוימת של ResNet-50, שהוכשרו ב-ImageNet.

אם היעד הוא להחליט אם לכלול בכלל את הדעיכה במשקל, צריך להשוות בין הנקודה הטובה ביותר בגרף הזה לבין הבסיס להשוואה של דעיכה ללא משקל. כדי לבצע השוואה הוגנת, גם הבסיס של שיעור הבסיס צריך להיות זהה.

אם יש לכם נתונים שנוצרו על ידי חיפוש (אקראי) אקראי ואתם שוקלים היפר-פרמטר רציף עבור חלקת בידוד, תוכלו להעריך את חלקה של הבידוד על ידי חלוקת הערכים של ציר ה-X של ציר ה-hyperparameter הבסיסי, ולצאת מתקופת הניסיון הטובה ביותר בכל פרוסה אנכית המוגדרת בקטגוריות.

אוטומציה של תרשימים מועילים באופן כללי

ככל שיהיה יותר מאמץ ליצור חלקות, כך יש סיכוי נמוך יותר לבדוק אותן כפי שצריך. לכן מומלץ להגדיר את התשתית כך שתפיק באופן אוטומטי את העליות הגבוהות ביותר שאפשר. אנו ממליצים לכל הפחות ליצור באופן אוטומטי חלקי ציר היפר-פרמטרים בסיסיים לכל ההיפר-פרמטרים שאתם משתנים בניסוי.

בנוסף, מומלץ ליצור באופן אוטומטי עקומות הפסד לכל הניסויים. בנוסף, אנחנו ממליצים להקל ככל האפשר למצוא את תקופות הניסיון הטובות ביותר בכל מחקר, ולבדוק את עקומות ההפסדים שלהן.

אפשר להוסיף עוד הרבה תרשימי תצוגה שימושיים. כדי לנסח מחדש את Geoffrey Hinton:

בכל פעם שתכננת משהו חדש, אפשר ללמוד משהו חדש.

איך מחליטים אם ליישם את השינוי של המועמדים

סיכום: כשמחליטים אם לבצע שינוי במודל או בהכשרה, או לאמץ הגדרה חדשה של היפר-פרמטר, חשוב לשים לב למקורות השונים של התוצאות בתוצאות.

כשמנסים לשפר מודל מסוים, שינוי ספציפי של מועמד עשוי להניב בהתחלה שגיאת אימות טובה יותר בהשוואה להגדרה הקיימת. עם זאת, אם חוזרים על הניסוי אין יתרון עקבי. לא רשמי, ניתן לקבץ את המקורות החשובים ביותר של תוצאות לא עקביות לקטגוריות הכלליות הבאות:

  • וריאציות של אימוני כושר, שונות לאימון מחדש או וריאציות שונות של ניסויים: הווריאציות של אימוני הכושר עם אותם היפר-פרמטרים, אבל גם זרעים אקראיים שונים. לדוגמה, פעולות אתחול אקראיות, התערבבות נתונים, אימון מסכות, דפוסי פעולות להרחבת נתונים וסדרים של פעולות חשבון מקבילות הן מקורות שונים להבדלים בניסויים.
  • וריאציית חיפוש של היפר-פרמטר או שונות של המחקר: הווריאציה של התוצאות שנגרמו עקב ההליך שלנו לבחירת ההיפר-פרמטרים. לדוגמה, נניח שאתם מפעילים את אותו הניסוי במרחב חיפוש מסוים, אבל עם שני זרעים שונים לחיפוש מעין אקראי ובסופו של דבר בוחרים ערכי היפר-פרמטר שונים.
  • הבדלים ואיסוף נתונים ודגימה: השונות מכל סוג של אקראיות המתפצלת לאימון, לאימות ולבדיקת מידע או שונות, כתוצאה מתהליך יצירת נתוני האימון באופן כללי יותר.

True, תוכלו להשוות בין שיעורי השגיאות של האימות המשוער לקבוצת אימותים סופית באמצעות בדיקות סטטיסטיות קפדניות. עם זאת, במקרים רבים הבדלים בניסוי יכולים לגרום להבדלים בעלי מובהקות סטטיסטית בין שני מודלים מאומנים שונים שמשתמשים באותן הגדרות של היפר-פרמטרים.

אנחנו חוששים בעיקר מהו מגוון המחקרים, כשאנחנו מנסים להסיק מסקנות שמעבר לרמת של נקודה מסוימת בהיפר-פרמטרים. שונות המחקר תלויה במספר תקופות הניסיון ובמרחב החיפוש. ראינו מקרים שבהם השונות למחקר גדולה יותר מההבדלים בניסוי, ובמקרים שבהם היא קטנה בהרבה. לכן, לפני אימוץ שינוי של מועמד, כדאי לשקול להפעיל את N הפעמים הטובות ביותר כדי לאפיין את השונות בניסוי ריצה. בדרך כלל, אפשר להימנע מהפעלה מחדש של שונות הניסוי לאחר שינויים משמעותיים בצינור עיבוד הנתונים, אבל במקרים מסוימים ייתכן שתצטרכו לבצע הערכות עדכניות יותר. באפליקציות אחרות, אפיון העלויות של גרסאות הניסוי יקר מדי.

למרות שאתם רוצים לאמץ רק שינויים (כולל הגדרות חדשות של היפר-פרמטרים) שמניבות שיפורים ממשיים, גם דרישה שלמה ודאית ששינוי נתון לא עונה על הצרכים הנכונים. לכן, אם נקודה חדשה של היפר-פרמטר (או שינוי אחר) מקבלת תוצאה טובה יותר מרמת הבסיס (תוך התחשבות בהבדלים של האילוצים גם של הנקודה החדשה וגם של הבסיס), תוכלו ככל הנראה לאמץ אותה כנקודת ההשוואה החדשה. עם זאת, מומלץ לאמץ רק שינויים שמפיקים שיפורים שעולים על המורכבות שהם מוסיפים.

אחרי שהניתוח יסתיים

סיכום: כלי האופטימיזציה של בייס הם אפשרות מעניינת ברגע שאתם מחפשים אזורי חיפוש טובים והחלטתם אילו היפר-פרמטרים כדאי לשפר.

בסופו של דבר, העדיפויות שלכם יעברו מלמידה על הבעיה בכוונון ועד ליצירת הגדרה אחת טובה ביותר להשקה או לשימוש אחר. בשלב הזה צריך להיות מרחב חיפוש אלגנטי שמכיל בנוחות את האזור המקומי סביב תקופת הניסיון שנצפתה הכי טוב, ודגמנו אותו כראוי. במהלך העבודה על הניתוח, הייתם צריכים לחשוף את ההיפר-פרמטרים החיוניים ביותר לכוונון, ואת הטווחים ההגיוניים שלהם, שאתם יכולים להשתמש בהם כדי לבנות מרחב חיפוש למחקר אוטומטי של כוונון אוטומטי, על ידי הגדרת תקציב גדול ככל האפשר.

מכיוון שכבר לא חשוב לכם למקסם את התובנה לגבי הבעיה של הכוונון, רבים מהיתרונות של חיפוש מעין אקראי כבר לא רלוונטיים. לכן כדאי להשתמש בכלי האופטימיזציה של בייסיאני כדי למצוא באופן אוטומטי את הגדרת ההיפר-פרמטר הטובה ביותר. Open-Code Vizier מיישם מגוון של אלגוריתמים מתוחכמים לכוונון של מודלים ללמידת מכונה, כולל אלגוריתמי אופטימיזציה של Bayesian.

נניח שמרחב החיפוש מכיל נפח לא שלם של נקודות חריגות, כלומר נקודות שמאבדות את האימון של NaN או אפילו שאימון ההפסדים מתרבים כתוצאה מהממוצע. במקרה כזה, מומלץ להשתמש בכלים לאופטימיזציה של תיבות שחורות שמטפלים כראוי בתקופות ניסיון שונות. (אפשר למצוא פתרון מצוין לבעיה הזו במאמר אופטימיזציה של Bayesian עם אילוצים לא ידועים.) בקוד הפתוח Vizier יש תמיכה בסימון נקודות שונות על ידי סימון תקופות של ניסיון ללא אפשרות, על אף שהן לא משתמשות בגישה המועדפת שלנו מ-Gelbart ואחרים, בהתאם להגדרה שלה.

בסיום הניתוח, כדאי לבדוק את הביצועים בקבוצת הבדיקה. בעיקרון, אפשר אפילו לקפל את קבוצת האימות למערך האימון ולהכשיר מחדש את ההגדרות הטובות ביותר שנמצאו עם האופטימיזציה של בייס. עם זאת, הדבר מתאים רק אם לא יושקו בעתיד עומסי עבודה ספציפיים (למשל, תחרות חד-פעמית ב-Kaggle).