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

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

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

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

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

לא רלוונטי

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

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

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

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

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

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

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

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

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

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

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