סקירה כללית על כוונון היפר-פרמטרים

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

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

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

במודלים מהסוגים האלה, כוונון היפרפרמטרים מופעל כשמציינים ערך לאפשרות 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_
FACTORIZATION
(explicit)
MEAN_SQUARED_ERROR NUM_FACTORS

L2_REG
[2, 200]

(0, ∞)
[2, 20]

(0, 10]
LINEAR

LOG
MATRIX_
FACTORIZATION
(משתמע)
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]

N/A

{ADAM, ADAGRAD, FTRL, RMSPROP, SGD}

N/A
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

לא רלוונטי

LINEAR

לא רלוונטי



LOG

LOG

לא רלוונטי
DNN_REGRESSOR MEAN_ABSOLUTE_ERROR

MEAN_SQUARED_ERROR

MEAN_SQUARED_LOG_ERROR

MEDIAN_ABSOLUTE_ERROR

R2_SCORE (ברירת מחדל)

EXPLAINED_VARIANCE
DNN_LINEAR_
COMBINED_
CLASSIFIER
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_
COMBINED_
REGRESSOR
MEAN_ABSOLUTE_ERROR

MEAN_SQUARED_ERROR

MEAN_SQUARED_LOG_ERROR

MEDIAN_ABSOLUTE_ERROR

R2_SCORE (ברירת מחדל)

EXPLAINED_VARIANCE
BOOSTED_TREE_
CLASSIFIER
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_
REGRESSOR






MEAN_ABSOLUTE_ERROR

MEAN_SQUARED_ERROR

MEAN_SQUARED_LOG_ERROR

MEDIAN_ABSOLUTE_ERROR

R2_SCORE (ברירת מחדל)

EXPLAINED_VARIANCE
RANDOM_FOREST_
CLASSIFIER
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_
REGRESSOR






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 כדי לראות את מספר ההיפרפרמטרים שמכווננים כברירת מחדל עבור סוג מודל נתון.

מה קורה אם לא רואים שיפורים בביצועים אחרי שימוש באופטימיזציה של היפרפרמטרים?

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

מה קורה אם רוצים להמשיך לכוונן מודל?

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

האם צריך לאמן מחדש את המודל עם כל הנתונים וההיפרפרמטרים האופטימליים?

זה תלוי בגורמים הבאים:

  • מודלים של K-means כבר משתמשים בכל הנתונים כנתוני אימון, ולכן אין צורך לאמן מחדש את המודל.

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

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

המאמרים הבאים