סקירה כללית על כוונון היפר-פרמטרים
בלמידת מכונה, כוונון היפר-פרמטרים מזהה קבוצה של היפר-פרמטרים אופטימליים לאלגוריתם למידה. היפרפרמטר הוא ארגומנט של מודל שהערך שלו מוגדר לפני תחילת תהליך הלמידה. לעומת זאת, הערכים של פרמטרים אחרים, כמו מקדמים של מודל לינארי, נלמדים.
אופטימיזציה של היפרפרמטרים מאפשרת לכם להקדיש פחות זמן לחזרה ידנית על היפרפרמטרים, ויותר זמן להתמקדות בתובנות מנתונים.
אפשר לציין אפשרויות לכוונון היפר-פרמטרים לסוגי המודלים הבאים:
- רגרסיה לינארית ולוגיסטית
- K-means
- פירוק מטריצות
- Autoencoder
- Boosted trees
- יער אקראי
- רשת נוירונים עמוקה (DNN)
- רשת רחבה ועמוקה
במודלים מהסוגים האלה, כוונון היפרפרמטרים מופעל כשמציינים ערך לאפשרות NUM_TRIALS בהצהרת CREATE MODEL.
כדי לנסות להריץ כוונון היפר-פרמטרים במודל רגרסיה לינארית, אפשר לעיין במאמר בנושא שימוש בכוונון היפר-פרמטרים ב-BigQuery ML כדי לשפר את ביצועי המודל.
המודלים הבאים תומכים גם בכוונון היפר-פרמטרים, אבל לא מאפשרים לציין ערכים מסוימים:
- במודלים של AutoML Tables, כוונון אוטומטי של היפר-פרמטרים מוטמע באימון המודל כברירת מחדל.
- מודלים של ARIMA_PLUS
מאפשרים להגדיר את
הארגומנט
AUTO_ARIMAכדי לבצע אופטימיזציה של היפרפרמטרים באמצעות אלגוריתם auto.ARIMA. האלגוריתם הזה מבצע כוונון של היפר-פרמטרים במודול המגמה. אין תמיכה באופטימיזציה של היפרפרמטרים עבור צינור המודלים כולו.
מיקומים
מידע על המיקומים שבהם אפשר לבצע כוונון היפר-פרמטרים זמין במאמר מיקומים ב-BigQuery ML.
הגדרת היפר-פרמטרים
כדי לכוונן היפר-פרמטר, צריך לציין טווח ערכים להיפר-פרמטר הזה, שהמודל יכול להשתמש בו עבור קבוצה של ניסויים. כדי לעשות זאת, משתמשים באחת ממילות המפתח הבאות כשמגדירים את ההיפר-פרמטר בהצהרה CREATE MODEL, במקום לציין ערך יחיד:
HPARAM_RANGE: ערךARRAY(FLOAT64)עם שני רכיבים שמגדיר את הגבולות המינימליים והמקסימליים של מרחב החיפוש של ערכים רציפים עבור היפר-פרמטר. משתמשים באפשרות הזו כדי לציין טווח ערכים להיפר-פרמטר, למשלLEARN_RATE = HPARAM_RANGE(0.0001, 1.0).
HPARAM_CANDIDATES: ערךARRAY(STRUCT)שמציין את קבוצת הערכים הנפרדים של ההיפרפרמטר. משתמשים באפשרות הזו כדי לציין קבוצה של ערכים להיפרפרמטר, לדוגמהOPTIMIZER = HPARAM_CANDIDATES(['ADAGRAD', 'SGD', 'FTRL']).
היפרפרמטרים ומטרות
בטבלה הבאה מפורטים ההיפרפרמטרים והיעדים הנתמכים לכל סוג מודל שתומך בכוונון היפרפרמטרים:
| סוג המודל | יעדים של היפר-פרמטרים | היפר-פרמטר | טווח תקין | טווח ברירת מחדל | סוג המידה |
|---|---|---|---|---|---|
LINEAR_REG
|
MEAN_ABSOLUTE_ERROR
MEAN_SQUARED_ERROR
MEAN_SQUARED_LOG_ERROR
MEDIAN_ABSOLUTE_ERROR
R2_SCORE (ברירת מחדל)
EXPLAINED_VARIANCE
|
L1_REG
L2_REG
|
(0, ∞]
(0, ∞]
|
(0, 10]
(0, 10]
|
LOG
LOG
|
LOGISTIC_REG
|
PRECISION
RECALL
ACCURACY
F1_SCORE
LOG_LOSS
ROC_AUC (ברירת מחדל)
|
L1_REG
L2_REG
|
(0, ∞]
(0, ∞]
|
(0, 10]
(0, 10]
|
LOG
LOG
|
KMEANS
|
DAVIES_BOULDIN_INDEX
|
NUM_CLUSTERS
|
[2, 100]
|
[2, 10]
|
LINEAR
|
MATRIX_ (explicit)
|
MEAN_SQUARED_ERROR
|
NUM_FACTORS
L2_REG
|
[2, 200]
(0, ∞)
|
[2, 20]
(0, 10]
|
LINEAR
LOG
|
MATRIX_ (מרומז)
|
MEAN_AVERAGE_PRECISION (ברירת מחדל)
MEAN_SQUARED_ERROR
NORMALIZED_DISCOUNTED_CUMULATIVE_GAIN
AVERAGE_RANK
|
NUM_FACTORS
L2_REG
WALS_ALPHA
|
[2, 200]
(0, ∞)
[0, ∞)
|
[2, 20]
(0, 10]
[0, 100]
|
LINEAR
LOG
LINEAR
|
AUTOENCODER
|
MEAN_ABSOLUTE_ERROR
MEAN_SQUARED_ERROR (ברירת מחדל)
MEAN_SQUARED_LOG_ERROR
|
LEARN_RATE
BATCH_SIZE
L1_REG
L2_REG
L1_REG_ACTIVATION
DROPOUT
HIDDEN_UNITS
OPTIMIZER
ACTIVATION_FN
|
[0, 1]
(0, ∞)
(0, ∞)
(0, ∞)
(0, ∞)
[0, 1)
מערך של [1, ∞)
{ ADAM, ADAGRAD, FTRL, RMSPROP, SGD}
{ RELU, RELU6, CRELU, ELU, SELU, SIGMOID, TANH}
|
[0, 1]
[16, 1024]
(0, 10]
(0, 10]
(0, 10]
[0, 0.8]
לא רלוונטי { ADAM, ADAGRAD, FTRL, RMSPROP, SGD}
לא רלוונטי |
LOG
LOG
LOG
LOG
LOG
LINEAR
לא רלוונטי לא רלוונטי לא רלוונטי |
DNN_CLASSIFIER
|
PRECISION
RECALL
ACCURACY
F1_SCORE
LOG_LOSS
ROC_AUC (ברירת מחדל)
|
BATCH_SIZE
DROPOUT
HIDDEN_UNITS
LEARN_RATE
OPTIMIZER
L1_REG
L2_REG
ACTIVATION_FN
|
(0, ∞)
[0, 1)
מערך של [1, ∞)
[0, 1]
{ ADAM, ADAGRAD, FTRL, RMSPROP, SGD}
(0, ∞)
(0, ∞)
{ RELU, RELU6, CRELU, ELU, SELU, SIGMOID, TANH}
|
[16, 1024]
[0, 0.8]
לא רלוונטי [0, 1]
{ ADAM, ADAGRAD, FTRL, RMSPROP, SGD}
(0, 10]
(0, 10]
לא רלוונטי |
LOG
LINEAR
N/A LINEAR
N/A LOG
LOG
N/A |
DNN_REGRESSOR
|
MEAN_ABSOLUTE_ERROR
MEAN_SQUARED_ERROR
MEAN_SQUARED_LOG_ERROR
MEDIAN_ABSOLUTE_ERROR
R2_SCORE (ברירת מחדל)
EXPLAINED_VARIANCE
|
||||
DNN_LINEAR_
|
PRECISION
RECALL
ACCURACY
F1_SCORE
LOG_LOSS
ROC_AUC (ברירת מחדל)
|
BATCH_SIZE
DROPOUT
HIDDEN_UNITS
L1_REG
L2_REG
ACTIVATION_FN
|
(0, ∞)
[0, 1)
מערך של [1, ∞)
(0, ∞)
(0, ∞)
{ RELU, RELU6, CRELU, ELU, SELU, SIGMOID, TANH}
|
[16, 1024]
[0, 0.8]
לא רלוונטי (0, 10]
(0, 10]
לא רלוונטי |
LOG
LINEAR
לא רלוונטי LOG
LOG
לא רלוונטי |
DNN_LINEAR_
|
MEAN_ABSOLUTE_ERROR
MEAN_SQUARED_ERROR
MEAN_SQUARED_LOG_ERROR
MEDIAN_ABSOLUTE_ERROR
R2_SCORE (ברירת מחדל)
EXPLAINED_VARIANCE
|
||||
BOOSTED_TREE_
|
PRECISION
RECALL
ACCURACY
F1_SCORE
LOG_LOSS
ROC_AUC (ברירת מחדל)
|
LEARN_RATE
L1_REG
L2_REG
DROPOUT
MAX_TREE_DEPTHMAX_TREE_DEPTH
SUBSAMPLE
MIN_SPLIT_LOSS
NUM_PARALLEL_TREE
MIN_TREE_CHILD_WEIGHT
COLSAMPLE_BYTREE
COLSAMPLE_BYLEVEL
COLSAMPLE_BYNODE
BOOSTER_TYPE
DART_NORMALIZE_TYPE
TREE_METHOD
|
[0, ∞)
(0, ∞)
(0, ∞)
[0, 1]
[1, 20]
(0, 1]
[0, ∞)
[1, ∞)
[0, ∞)
[0, 1]
[0, 1]
[0, 1]
{ GBTREE, DART}
{ TREE, FOREST}
{ AUTO, EXACT, APPROX, HIST}
|
[0, 1]
(0, 10]
(0, 10]
לא רלוונטי [1, 10]
(0, 1]
לא רלוונטי לא רלוונטי לא רלוונטי לא רלוונטי לא רלוונטי לא רלוונטי לא רלוונטי לא רלוונטי לא רלוונטי |
LINEAR
LOG
LOG
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
לא רלוונטי לא רלוונטי לא רלוונטי |
BOOSTED_TREE_ |
MEAN_ABSOLUTE_ERROR
MEAN_SQUARED_ERROR
MEAN_SQUARED_LOG_ERROR
MEDIAN_ABSOLUTE_ERROR
R2_SCORE (ברירת מחדל)
EXPLAINED_VARIANCE
|
||||
RANDOM_FOREST_
|
PRECISION
RECALL
ACCURACY
F1_SCORE
LOG_LOSS
ROC_AUC (ברירת מחדל)
|
L1_REG
L2_REG
MAX_TREE_DEPTH
SUBSAMPLE
MIN_SPLIT_LOSS
NUM_PARALLEL_TREE
MIN_TREE_CHILD_WEIGHT
COLSAMPLE_BYTREE
COLSAMPLE_BYLEVEL
COLSAMPLE_BYNODE
TREE_METHOD
|
(0, ∞)
(0, ∞)
[1, 20]
(0, 1)
[0, ∞)
[2, ∞)
[0, ∞)
[0, 1]
[0, 1]
[0, 1]
{ AUTO, EXACT, APPROX, HIST}
|
(0, 10]
(0, 10]
[1, 20]
(0, 1)
לא רלוונטי [2, 200]
לא רלוונטי לא רלוונטי לא רלוונטי לא רלוונטי לא רלוונטי |
LOG
LOG
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
LINEAR
לא רלוונטי |
RANDOM_FOREST_ |
MEAN_ABSOLUTE_ERROR
MEAN_SQUARED_ERROR
MEAN_SQUARED_LOG_ERROR
MEDIAN_ABSOLUTE_ERROR
R2_SCORE (ברירת מחדל)
EXPLAINED_VARIANCE
|
רוב ההיפרפרמטרים של קנה המידה LOG משתמשים בגבול התחתון הפתוח של 0. עדיין אפשר להגדיר את 0 כגבול התחתון באמצעות מילת המפתח HPARAM_RANGE כדי להגדיר את טווח ההיפרפרמטרים. לדוגמה, במודל של מסווג עצים מחוזקים, אפשר להגדיר את הטווח של ההיפרפרמטר L1_REG כ-L1_REG = HPARAM_RANGE(0, 5). הערך 0 מומר ל-1e-14.
יש תמיכה בהיפרפרמטרים מותנים. לדוגמה, במודל רגרסיה של עץ מחוזק, אפשר לכוונן רק את ההיפר-פרמטר DART_NORMALIZE_TYPE אם הערך של ההיפר-פרמטר BOOSTER_TYPE הוא DART. במקרה כזה, מציינים את שני מרחבי החיפוש והתנאים מטופלים באופן אוטומטי, כמו בדוגמה הבאה:
BOOSTER_TYPE = HPARAM_CANDIDATES(['DART', 'GBTREE'])
DART_NORMALIZE_TYPE = HPARAM_CANDIDATES(['TREE', 'FOREST'])
דוגמה נוספת היא האינטראקציה בין BOOSTER_TYPE לבין DROPOUT במודלים של עצים מחוזקים. אפשר לשנות את הפרמטר DROPOUT רק אם BOOSTER_TYPE כולל את 'DART' כמועמד. אם מגדירים מרחב חיפוש ל-DROPOUT אבל מגבילים את BOOSTER_TYPE רק ל-HPARAM_CANDIDATES(['GBTREE']), משימת ההתאמה תיכשל.
חיפוש נקודת התחלה
אם לא מציינים מרחב חיפוש להיפרפרמטר באמצעות HPARAM_RANGE או HPARAM_CANDIDATES, החיפוש מתחיל מערך ברירת המחדל של ההיפרפרמטר הזה, כפי שמתואר בנושא CREATE MODEL עבור סוג המודל הזה. לדוגמה, אם מריצים אופטימיזציה של היפרפרמטרים עבור מודל של עץ מחוזק, ולא מציינים ערך להיפרפרמטר L1_REG היפר-פרמטר, החיפוש יתחיל מ-0, שהוא ערך ברירת המחדל.
אם מציינים מרחב חיפוש להיפרפרמטר באמצעות HPARAM_RANGE או HPARAM_CANDIDATES, נקודות ההתחלה של החיפוש תלויות בשאלה אם מרחב החיפוש שצוין כולל את ערך ברירת המחדל של ההיפרפרמטר הזה, כפי שמתואר בנושא CREATE MODEL עבור סוג המודל הזה:
- אם הטווח שצוין מכיל את ערך ברירת המחדל, החיפוש מתחיל שם. לדוגמה, אם אתם מריצים כוונון של היפרפרמטרים עבור מודל של פירוק מטריצות מרומז, ומציינים את הערך
[20, 30, 40, 50]עבור ההיפרפרמטרWALS_ALPHA, החיפוש מתחיל בערך ברירת המחדל40. - אם הטווח שצוין לא מכיל את ערך ברירת המחדל, החיפוש מתחיל מהנקודה בטווח שצוין שהכי קרובה לערך ברירת המחדל.
לדוגמה, אם מציינים את הערך
[10, 20, 30]להיפר-פרמטרWALS_ALPHA, החיפוש יתחיל מ-30, שהוא הערך הכי קרוב לערך ברירת המחדל40.
פיצול נתונים
כשמציינים ערך לאפשרות NUM_TRIALS, השירות מזהה שמבצעים כוונון של היפרפרמטרים ומבצע באופן אוטומטי פיצול תלת-כיווני של נתוני הקלט כדי לחלק אותם למערכי אימון, הערכה ובדיקה.
כברירת מחדל, נתוני הקלט עוברים רנדומיזציה ואז מחולקים ל-80% לאימון, 10% להערכה ו-10% לבדיקה.
קבוצות האימון וההערכה משמשות בכל אימון ניסיוני, בדיוק כמו במודלים שלא משתמשים באופטימיזציה של היפרפרמטרים. ההצעות להיפר-פרמטרים לניסיון מחושבות על סמך מדדי הערכת המודל עבור סוג המודל הזה. בסיום כל אימון ניסיון, קבוצת הנתונים לבדיקה משמשת לבדיקת הניסיון ולתיעוד המדדים שלו במודל. כך אפשר להבטיח את האובייקטיביות של מדדי ההערכה הסופיים בדוחות, כי המודל לא ניתח את הנתונים האלה. נתוני ההערכה משמשים לחישוב מדדי הביניים להצעת היפרפרמטרים, ואילו נתוני הבדיקה משמשים לחישוב המדדים הסופיים של המודל.
אם רוצים להשתמש רק בקבוצת נתונים לאימון, צריך לציין NO_SPLIT
for the
DATA_SPLIT_METHOD option
of the CREATE MODEL statement.
אם רוצים להשתמש רק במערכי אימון והערכה, מציינים 0 באפשרות DATA_SPLIT_TEST_FRACTION של הצהרת CREATE MODEL. אם קבוצת הבדיקה ריקה, קבוצת ההערכה משמשת כקבוצת הבדיקה לדיווח על מדדי ההערכה הסופיים.
אפשר להשוות בין המדדים של מודלים שנוצרו ממשימת אימון רגילה לבין המדדים של מודלים שנוצרו ממשימת אימון של כוונון היפר-פרמטרים רק אם חלקי הנתונים שווים. לדוגמה, המודלים הבאים ניתנים להשוואה:
- כוונון שאינו היפר-פרמטר:
DATA_SPLIT_METHOD='RANDOM', DATA_SPLIT_EVAL_FRACTION=0.2 - כוונון היפר-פרמטרים:
DATA_SPLIT_METHOD='RANDOM', DATA_SPLIT_EVAL_FRACTION=0.2, DATA_SPLIT_TEST_FRACTION=0
ביצועים
בדרך כלל, ביצועי המודל כשמשתמשים בכוונון היפר-פרמטרים לא פחות טובים מביצועי המודל כשמשתמשים במרחב החיפוש שמוגדר כברירת מחדל ולא משתמשים בכוונון היפר-פרמטרים. מודל שמשתמש במרחב החיפוש שמוגדר כברירת מחדל ולא משתמש בכוונון של היפרפרמטרים, תמיד משתמש בהיפרפרמטרים שמוגדרים כברירת מחדל בניסיון הראשון.
כדי לאשר את השיפורים בביצועי המודל שמתקבלים מכוונון היפר-פרמטרים, משווים את הניסוי האופטימלי של מודל כוונון ההיפר-פרמטרים לניסוי הראשון של מודל ללא כוונון היפר-פרמטרים.
למידה בהעברה
ההגדרה של האפשרות HPARAM_TUNING_ALGORITHM בהצהרה CREATE MODEL לערך VIZIER_DEFAULT מפעילה כברירת מחדל את ההגדרה של העברת למידה. כוונון ההיפר-פרמטרים של מודל מסוים יכול להפיק תועלת מלמידה ממודלים שכוונו בעבר, אם מתקיימות הדרישות הבאות:
- הוא כולל את אותו סוג מודל כמו מודלים שעברו כוונון בעבר.
- הוא נמצא באותו פרויקט כמו מודלים שהותאמו בעבר.
- הוא משתמש באותו מרחב חיפוש של היפרפרמטרים או בקבוצת משנה של מרחב החיפוש של היפרפרמטרים של מודלים שעברו כוונון בעבר. קבוצת משנה משתמשת באותם שמות וסוגים של היפרפרמטרים, אבל לא חייבת להשתמש באותם טווחים.
לדוגמה,
(a:[0, 10])נחשבת לקבוצת משנה של(a:[-1, 1], b:[0, 1]).
בלמידת העברה, לא נדרש שנתוני הקלט יהיו זהים.
העברת ידע עוזרת לפתור את בעיית ההפעלה במצב התחלתי (cold start), שבה המערכת מבצעת חיפוש אקראי במהלך קבוצת הניסויים הראשונה. העברת ידע מאפשרת למערכת לקבל ידע ראשוני על הפרמטרים של היפר-פרמטרים ועל היעדים שלהם. כדי לשפר באופן מתמיד את איכות המודל, מומלץ לאמן תמיד מודל חדש של כוונון היפרפרמטרים עם אותם היפרפרמטרים או עם קבוצת משנה שלהם.
העברת למידה עוזרת לכוונון של היפרפרמטרים להתכנס מהר יותר, במקום לעזור למודלים משניים להתכנס.
טיפול בשגיאות
התאמה אופטימלית של היפרפרמטרים מטפלת בשגיאות בדרכים הבאות:
ביטול: אם עבודת אימון מבוטלת בזמן שהיא פועלת, כל הניסויים שהצליחו עדיין ניתנים לשימוש.
קלט לא תקין: אם קלט של משתמשים לא תקין, השירות מחזיר שגיאת משתמש.
היפרפרמטרים לא חוקיים: אם ההיפרפרמטרים לא חוקיים לניסיון, הניסיון ידלג ויסומן כ-
INFEASIBLEבפלט מהפונקציהML.TRIAL_INFO.שגיאה פנימית בגרסת ניסיון: אם יותר מ-10% מהערך
NUM_TRIALSנכשלים בגללINTERNAL_ERROR, משימת האימון נעצרת ומוחזרת שגיאת משתמש.אם פחות מ-10% מהערך של
NUM_TRIALSנכשלים בגללINTERNAL_ERROR, האימון נמשך עם הניסיונות שנכשלו, שמסומנים כ-FAILEDבפלט של הפונקציהML.TRIAL_INFO.
פונקציות של פרסום מודלים
אפשר להשתמש במודלים של פלט מכוונון היפר-פרמטרים עם מספר פונקציות קיימות של הגשת מודלים. כדי להשתמש בפונקציות האלה, צריך לפעול לפי הכללים הבאים:
אם הפונקציה מקבלת נתוני קלט, רק התוצאה של ניסיון אחד מוחזרת. כברירת מחדל, זו הגרסה האופטימלית של הניסיון, אבל אפשר גם לבחור גרסה מסוימת של הניסיון על ידי ציון
TRIAL_IDכארגומנט לפונקציה הנתונה. אפשר לקבל אתTRIAL_IDמהפלט של הפונקציהML.TRIAL_INFO. הפונקציות הבאות נתמכות:אם הפונקציה לא מקבלת נתוני קלט, כל התוצאות של תקופת הניסיון מוחזרות, ועמודת הפלט הראשונה היא
TRIAL_ID. הפונקציות הבאות נתמכות:
הפלט של
ML.FEATURE_INFO
לא משתנה, כי כל הניסויים חולקים את אותם נתוני קלט.
יכול להיות שיהיו הבדלים בין מדדי ההערכה של ML.EVALUATE ושל ML.TRIAL_INFO בגלל האופן שבו נתוני הקלט מחולקים. כברירת מחדל, הפונקציה ML.EVALUATE פועלת על נתוני הבדיקה, והפונקציה ML.TRIAL_INFO פועלת על נתוני ההערכה. מידע נוסף זמין במאמר בנושא פיצול נתונים.
פונקציות שלא נתמכות
הפונקציה ML.TRAINING_INFO מחזירה מידע על כל איטרציה, והתוצאות של האיטרציות לא נשמרות במודלים של כוונון היפר-פרמטרים. במקום זאת, נשמרות תוצאות הניסיון. אפשר להשתמש בפונקציה ML.TRIAL_INFO כדי לקבל מידע על תוצאות של ניסויים.
ייצוא מודלים
אפשר לייצא מודלים שנוצרו באמצעות כוונון היפרפרמטרים למיקומים ב-Cloud Storage באמצעות ההצהרה EXPORT MODEL.
אפשר לייצא את תקופת הניסיון האופטימלית שמוגדרת כברירת מחדל או כל תקופת ניסיון שצוינה.
תמחור
העלות של אימון לשיפור היפרפרמטרים היא סכום העלויות של כל הניסויים שהופעלו. התמחור של תקופת הניסיון זהה למודל התמחור הקיים של BigQuery ML.
שאלות נפוצות
בקטע הזה ריכזנו תשובות לכמה שאלות נפוצות בנושא אופטימיזציה של היפרפרמטרים.
כמה ניסיונות צריך כדי לכוונן מודל?
מומלץ להשתמש ב-10 ניסויים לפחות לכל היפרפרמטר, כך שמספר הניסויים הכולל צריך להיות לפחות 10 * num_hyperparameters. אם אתם משתמשים במרחב החיפוש שמוגדר כברירת מחדל, תוכלו לעיין בעמודה Hyperparameters בטבלה Hyperparameters and objectives כדי לראות את מספר ההיפרפרמטרים שמכווננים כברירת מחדל עבור סוג מודל נתון.
מה קורה אם לא רואים שיפורים בביצועים אחרי שימוש באופטימיזציה של היפרפרמטרים?
כדי שההשוואה תהיה הוגנת, חשוב לפעול לפי ההנחיות במאמר הזה. אם עדיין לא רואים שיפורים בביצועים, יכול להיות שהיפרפרמטרים שמוגדרים כברירת מחדל כבר מתאימים לכם. אפשר להתמקד בהנדסת תכונות או לנסות סוגים אחרים של מודלים לפני שמנסים שוב לכוונן את ההיפרפרמטרים.
מה קורה אם רוצים להמשיך לכוונן מודל?
מאמנים מודל חדש של כוונון היפר-פרמטרים עם אותו מרחב חיפוש. הלמידה בהעברה המובנית עוזרת להמשיך לכוונן את המודלים על סמך המודלים שכבר כוונו.
האם צריך לאמן מחדש את המודל עם כל הנתונים וההיפרפרמטרים האופטימליים?
זה תלוי בגורמים הבאים:
מודלים של K-means כבר משתמשים בכל הנתונים כנתוני האימון, כך שאין צורך לאמן מחדש את המודל.
במודלים של פירוק מטריצות, אפשר לאמן מחדש את המודל עם ההיפרפרמטרים שנבחרו ועם כל נתוני הקלט, כדי לשפר את הכיסוי של המשתמשים והפריטים.
בכל שאר סוגי המודלים, בדרך כלל אין צורך באימון מחדש. השירות כבר שומר 80% מנתוני הקלט לצורך אימון במהלך פיצול הנתונים האקראי שמוגדר כברירת מחדל. אם מערך הנתונים קטן, עדיין אפשר לאמן מחדש את המודל עם יותר נתוני אימון והיפרפרמטרים שנבחרו, אבל השארת כמות קטנה של נתוני הערכה להפסקת אימון מוקדמת עלולה להחמיר את התאמת היתר.
המאמרים הבאים
- כדי לנסות להריץ כוונון היפר-פרמטרים, אפשר לעיין במאמר שימוש בכוונון היפר-פרמטרים ב-BigQuery ML כדי לשפר את ביצועי המודל.
- מידע נוסף על פונקציות והצהרות SQL נתמכות עבור מודלים של ML זמין במאמר מסלולי משתמשים מקצה לקצה למודלים של ML.