TensorFlow Lattice היא ספרייה המיישמת מודלים מבוססי סריג גמישים, מבוקרים וניתנים לפירוש. הספרייה מאפשרת לך להחדיר ידע תחום לתהליך הלמידה באמצעות אילוצי צורה מונחי הגיון או מדיניות . זה נעשה באמצעות אוסף של שכבות Keras שיכולות לספק אילוצים כמו מונוטוניות, קמורות ואמון זוגי. הספרייה מספקת גם מודלים מוכנים מראש בקלות להגדרה.
מושגים
סעיף זה הוא גרסה פשוטה של התיאור בטבלאות חיפוש מונוטוניות מכוילות אינטרפולציות , JMLR 2016.
סריג
סריג הוא טבלת חיפוש אינטרפולציה שיכולה להעריך קשרי קלט-פלט שרירותיים בנתונים שלך. הוא חופף רשת רגילה למרחב הקלט שלך ולומד ערכים עבור הפלט בקודקודי הרשת. לנקודת בדיקה \(x\), \(f(x)\) אינטרפולציה ליניארית מערכי הסריג שמסביב \(x\).
הדוגמה הפשוטה למעלה היא פונקציה עם 2 תכונות קלט ו-4 פרמטרים:\(\theta=[0, 0.2, 0.4, 1]\), שהם ערכי הפונקציה בפינות מרחב הקלט; שאר הפונקציה משולבת מפרמטרים אלה.
הפונקציה \(f(x)\) יכול ללכוד אינטראקציות לא ליניאריות בין תכונות. אתה יכול לחשוב על פרמטרי הסריג כגובה המוטות המוגדרים באדמה על גבי רשת רגילה, והפונקציה המתקבלת היא כמו בד שנמשך חזק אל ארבעת המוטות.
עִם \(D\) תכונות ו-2 קודקודים לאורך כל מימד, יהיה לסריג רגיל \(2^D\) פרמטרים. כדי להתאים לפונקציה גמישה יותר, אתה יכול לציין סריג בעל גרגירים עדינים יותר על חלל התכונה עם יותר קודקודים לאורך כל ממד. פונקציות רגרסיית הסריג הן רציפות וניתנות להבדלה באופן אינסופי.
כִּיוּל
נניח שהסריג המדגם הקודם מייצג אושר של משתמש למד עם בית קפה מקומי מוצע המחושב באמצעות תכונות:
- מחיר קפה, בטווח של 0 עד 20 דולר
- מרחק למשתמש, בטווח של 0 עד 30 קילומטרים
אנחנו רוצים שהמודל שלנו ילמד את אושר המשתמש עם הצעה של בית קפה מקומי. מודלים של TensorFlow Lattice יכולים להשתמש בפונקציות ליניאריות חלקיות (עם tfl.layers.PWLCalibration
) כדי לכייל ולנרמל את תכונות הקלט לטווח המקובל על הסריג: 0.0 עד 1.0 בסריג לדוגמה למעלה. להלן דוגמאות לפונקציות כיול עם 10 נקודות מפתח:
לעתים קרובות מומלץ להשתמש בקוונטילים של התכונות כנקודות מפתח לקלט. דגמים מוכנים מראש של TensorFlow Lattice יכולים להגדיר באופן אוטומטי את נקודות המפתח של הקלט לקוונטילים המאפיינים.
עבור מאפיינים קטגוריים, TensorFlow Lattice מספק כיול קטגורי (עם tfl.layers.CategoricalCalibration
) עם תוחם פלט דומה להזנה לתוך סריג.
הרכבים
מספר הפרמטרים של שכבת סריג גדל באופן אקספוננציאלי עם מספר תכונות הקלט, ומכאן לא מתקדם היטב לממדים גבוהים מאוד. כדי להתגבר על מגבלה זו, TensorFlow Lattice מציעה אנסמבלים של סריג המשלבים (בממוצע) מספר סריג זעיר , מה שמאפשר למודל לגדול באופן ליניארי במספר התכונות.
הספרייה מספקת שתי וריאציות של הרכבים אלה:
סריג זעיר אקראי (RTL): כל תת-דגם משתמש בתת-קבוצה אקראית של תכונות (עם החלפה).
קריסטלים : אלגוריתם הקריסטלים מאמן תחילה מודל של התאמה מוקדמת שמעריך אינטראקציות בין תכונה זוגית. לאחר מכן הוא מסדר את ההרכב הסופי כך שתכונות עם יותר אינטראקציות לא ליניאריות נמצאות באותם סריג.
למה TensorFlow סריג?
אתה יכול למצוא מבוא קצר ל- TensorFlow Lattice בפוסט זה של בלוג TF .
ניתנות לפירוש
מכיוון שהפרמטרים של כל שכבה הם הפלט של אותה שכבה, קל לנתח, להבין ולתקן באגים בכל חלק של המודל.
דגמים מדויקים וגמישים
באמצעות סריג עדין, אתה יכול לקבל פונקציות מורכבות באופן שרירותי עם שכבת סריג אחת. שימוש בשכבות מרובות של מכיילים וסריג עובד לרוב בצורה יפה בפועל ויכול להתאים או לעלות על דגמי DNN בגדלים דומים.
אילוצי צורה של שכל בריא
ייתכן שנתוני אימון בעולם האמיתי אינם מייצגים מספיק את נתוני זמן הריצה. פתרונות ML גמישים כגון DNNs או יערות פועלים לעתים קרובות באופן בלתי צפוי ואפילו פרוע בחלקים ממרחב הקלט שאינם מכוסים על ידי נתוני האימון. התנהגות זו בעייתית במיוחד כאשר ניתן להפר אילוצי מדיניות או הגינות.
למרות שצורות נפוצות של רגוליזציה יכולות לגרום לאקסטרפולציה הגיונית יותר, מסדרים סטנדרטיים לא יכולים להבטיח התנהגות סבירה של מודל על פני כל מרחב הקלט, במיוחד עם תשומות במידות גבוהות. מעבר למודלים פשוטים יותר עם התנהגות מבוקרת וניתנת לחיזוי יכול לגבות מחיר כבד לדיוק המודל.
TF Lattice מאפשר להמשיך ולהשתמש במודלים גמישים, אך מספק מספר אפשרויות להחדיר ידע תחום לתהליך הלמידה באמצעות אילוצי צורה בעלי משמעות סמנטית של הגיון בריא או מונעי מדיניות:
- מונוטוניות : אתה יכול לציין שהפלט צריך רק להגדיל/להקטין ביחס לקלט. בדוגמה שלנו, ייתכן שתרצה לציין שמרחק מוגדל לבית קפה צריך רק להפחית את העדפת המשתמש החזויה.
קמור/קיעור : ניתן לציין שצורת הפונקציה יכולה להיות קמורה או קעורה. בשילוב עם מונוטוניות, זה יכול לאלץ את הפונקציה לייצג תשואות פוחתות ביחס לתכונה נתונה.
Unimodality : אתה יכול לציין שלפונקציה צריכה להיות פסגה ייחודית או עמק ייחודי. זה מאפשר לך לייצג פונקציות שיש להן נקודה מתוקה ביחס לתכונה.
אמון זוגי : אילוץ זה עובד על זוג תכונות ומציע שתכונת קלט אחת משקפת אמון בתכונה אחרת. לדוגמה, מספר גבוה יותר של ביקורות גורם לך להיות בטוח יותר בדירוג הכוכבים הממוצע של מסעדה. הדגם יהיה רגיש יותר ביחס לדירוג הכוכבים (כלומר יהיה בעל שיפוע גדול יותר ביחס לדירוג) כאשר מספר הביקורות גבוה יותר.
גמישות מבוקרת עם Regularizers
בנוסף לאילוצי הצורה, סריג TensorFlow מספק מספר מסדרים לשליטה בגמישות ובחלקות של הפונקציה עבור כל שכבה.
Laplacian Regularizer : הפלטים של הסריג/קודקודי הכיול/נקודות המפתח מסודרים לערכים של שכניהם. זה מביא לפונקציה שטוחה יותר .
Hessian Regularizer : זה מעניש את הנגזרת הראשונה של שכבת הכיול PWL כדי להפוך את הפונקציה לינארית יותר .
Regularizer של קמטים : זה מעניש את הנגזרת השנייה של שכבת הכיול PWL כדי למנוע שינויים פתאומיים בעקמומיות. זה הופך את הפונקציה לחלקה יותר.
מסדר פיתול : יציאות הסריג יוסדרו למניעת פיתול בין התכונות. במילים אחרות, המודל יוסדר לקראת עצמאות בין תרומות התכונות.
מערבבים ומתאימים עם שכבות קרס אחרות
אתה יכול להשתמש בשכבות TF Lattice בשילוב עם שכבות Keras אחרות כדי לבנות מודלים מוגבלים חלקית או מסודרים. לדוגמה, ניתן להשתמש בשכבות כיול סריג או PWL בשכבה האחרונה של רשתות עמוקות יותר הכוללות הטמעות או שכבות Keras אחרות.
ניירות
- אתיקה דאונטולוגית לפי מונוטוניות Shape Constraints , סרינה וואנג, מאיה גופטה, ועידה בינלאומית לבינה מלאכותית וסטטיסטיקה (AISTATS), 2020
- אילוצי צורה לפונקציות מוגדרות , אנדרו קוטר, מאיה גופטה, ה. ג'יאנג, ארז לואידור, ג'ים מולר, טמאן נאראין, סרינה וואנג, טאו ג'ו. ועידה בינלאומית בנושא למידת מכונה (ICML), 2019
- מגבלות צורה מצטמצמות של החזרות לפרשנות ולוויסות , מאיה גופטה, דארה בהרי, אנדרו קוטר, קווין קניני, התקדמות במערכות עיבוד מידע עצביות (NeurIPS), 2018
- רשתות סריג עמוקות ופונקציות מונוטוניות חלקיות , Seungil You, Kevin Canini, David Ding, Jan Pfeifer, Maya R. Gupta, Advances in Neural Information Processing Systems (NeurIPS), 2017
- פונקציות מונוטוניות מהירות וגמישות עם אנסמבלים של סריג , מהדי מילאני פארד, קווין קניני, אנדרו קוטר, יאן פייפר, מאיה גופטה, התקדמות במערכות עיבוד מידע עצבי (NeurIPS), 2016
- טבלאות חיפוש מונוטוניות מכוילות אינטרפולציות , מאיה גופטה, אנדרו קוטר, יאן פייפר, קונסטנטין וובודסקי, קווין קניני, אלכסנדר מאנגילוב, וויצ'ך מוצ'ידלובסקי, אלכסנדר ואן אסברוק, Journal of Machine Learning Research (JMLR), 2016
- רגרסיה אופטימלית להערכת פונקציות יעילה , אריק גרסיה, ראמאן ארורה, מאיה ר. גופטה, עסקאות IEEE על עיבוד תמונה, 2012
- סריג רגרסיה , אריק גרסיה, מאיה גופטה, התקדמות במערכות עיבוד מידע עצבי (NeurIPS), 2009
הדרכות ומסמכי API
עבור ארכיטקטורות מודלים נפוצות, אתה יכול להשתמש במודלים מוכנים מראש של Keras . אתה יכול גם ליצור דגמים מותאמים אישית באמצעות שכבות TF Lattice Keras או לערבב ולהתאים עם שכבות Keras אחרות. עיין במסמכי ה-API המלאים לפרטים.
,TensorFlow Lattice היא ספרייה המיישמת מודלים מבוססי סריג גמישים, מבוקרים וניתנים לפירוש. הספרייה מאפשרת לך להחדיר ידע תחום לתהליך הלמידה באמצעות אילוצי צורה מונחי הגיון או מדיניות . זה נעשה באמצעות אוסף של שכבות Keras שיכולות לספק אילוצים כמו מונוטוניות, קמורות ואמון זוגי. הספרייה מספקת גם מודלים מוכנים מראש בקלות להגדרה.
מושגים
סעיף זה הוא גרסה פשוטה של התיאור בטבלאות חיפוש מונוטוניות מכוילות אינטרפולציות , JMLR 2016.
סריג
סריג הוא טבלת חיפוש אינטרפולציה שיכולה להעריך קשרי קלט-פלט שרירותיים בנתונים שלך. הוא חופף רשת רגילה למרחב הקלט שלך ולומד ערכים עבור הפלט בקודקודי הרשת. לנקודת בדיקה \(x\), \(f(x)\) אינטרפולציה ליניארית מערכי הסריג שמסביב \(x\).
הדוגמה הפשוטה למעלה היא פונקציה עם 2 תכונות קלט ו-4 פרמטרים:\(\theta=[0, 0.2, 0.4, 1]\), שהם ערכי הפונקציה בפינות מרחב הקלט; שאר הפונקציה משולבת מפרמטרים אלה.
הפונקציה \(f(x)\) יכול ללכוד אינטראקציות לא ליניאריות בין תכונות. אתה יכול לחשוב על פרמטרי הסריג כגובה המוטות המוגדרים באדמה על גבי רשת רגילה, והפונקציה המתקבלת היא כמו בד שנמשך חזק אל ארבעת המוטות.
עִם \(D\) תכונות ו-2 קודקודים לאורך כל מימד, יהיה לסריג רגיל \(2^D\) פרמטרים. כדי להתאים לפונקציה גמישה יותר, אתה יכול לציין סריג בעל גרגירים עדינים יותר על חלל התכונה עם יותר קודקודים לאורך כל ממד. פונקציות רגרסיית הסריג הן רציפות וניתנות להבדלה באופן אינסופי.
כִּיוּל
נניח שהסריג לדוגמה הקודם מייצג אושר של משתמש למד עם בית קפה מקומי מוצע המחושב באמצעות תכונות:
- מחיר קפה, בטווח של 0 עד 20 דולר
- מרחק למשתמש, בטווח של 0 עד 30 קילומטרים
אנחנו רוצים שהמודל שלנו ילמד את אושר המשתמש עם הצעה של בית קפה מקומי. מודלים של TensorFlow Lattice יכולים להשתמש בפונקציות ליניאריות חלקיות (עם tfl.layers.PWLCalibration
) כדי לכייל ולנרמל את תכונות הקלט לטווח המקובל על הסריג: 0.0 עד 1.0 בסריג לדוגמה למעלה. להלן דוגמאות לפונקציות כיול עם 10 נקודות מפתח:
לרוב מומלץ להשתמש בקוונטילים של התכונות כנקודות מפתח לקלט. דגמים מוכנים מראש של TensorFlow Lattice יכולים להגדיר באופן אוטומטי את נקודות המפתח של הקלט לקוונטילים המאפיינים.
עבור מאפיינים קטגוריים, TensorFlow Lattice מספק כיול קטגורי (עם tfl.layers.CategoricalCalibration
) עם תוחם פלט דומה להזנה לתוך סריג.
הרכבים
מספר הפרמטרים של שכבת סריג גדל באופן אקספוננציאלי עם מספר תכונות הקלט, ומכאן לא מתקדם היטב לממדים גבוהים מאוד. כדי להתגבר על מגבלה זו, TensorFlow Lattice מציעה אנסמבלים של סריג המשלבים (בממוצע) מספר סריג זעיר , מה שמאפשר למודל לגדול באופן ליניארי במספר התכונות.
הספרייה מספקת שתי וריאציות של הרכבים אלה:
סריג זעיר אקראי (RTL): כל תת-דגם משתמש בתת-קבוצה אקראית של תכונות (עם החלפה).
קריסטלים : אלגוריתם הקריסטלים מאמן תחילה מודל התאמה מוקדמת המעריך אינטראקציות בין תכונה זוגית. לאחר מכן הוא מסדר את האנסמבל הסופי כך שתכונות עם יותר אינטראקציות לא ליניאריות נמצאות באותם סריג.
למה TensorFlow סריג?
אתה יכול למצוא מבוא קצר ל- TensorFlow Lattice בפוסט זה של TF Blog .
ניתנות לפירוש
מכיוון שהפרמטרים של כל שכבה הם הפלט של אותה שכבה, קל לנתח, להבין ולתקן באגים בכל חלק של המודל.
דגמים מדויקים וגמישים
באמצעות סריג עדין, אתה יכול לקבל פונקציות מורכבות באופן שרירותי עם שכבת סריג אחת. שימוש בשכבות מרובות של מכיילים וסריגים לרוב עובד יפה בפועל ויכול להתאים או לעלות על דגמי DNN בגדלים דומים.
אילוצי צורה של שכל בריא
ייתכן שנתוני אימון בעולם האמיתי אינם מייצגים מספיק את נתוני זמן הריצה. פתרונות ML גמישים כגון DNNs או יערות פועלים לעתים קרובות באופן בלתי צפוי ואפילו פרוע בחלקים ממרחב הקלט שאינם מכוסים על ידי נתוני האימון. התנהגות זו בעייתית במיוחד כאשר ניתן להפר אילוצי מדיניות או הגינות.
למרות שצורות נפוצות של רגוליזציה יכולות לגרום לאקסטרפולציה הגיונית יותר, מסדרים סטנדרטיים לא יכולים להבטיח התנהגות סבירה של מודל על פני כל מרחב הקלט, במיוחד עם תשומות במידות גבוהות. מעבר למודלים פשוטים יותר עם התנהגות מבוקרת וניתנת לחיזוי יכול לעלות בעלות כבדה לדיוק המודל.
TF Lattice מאפשר להמשיך ולהשתמש במודלים גמישים, אך מספק מספר אפשרויות להחדיר ידע תחום לתהליך הלמידה באמצעות אילוצי צורה בעלי משמעות סמנטית של הגיון בריא או מונעי מדיניות:
- מונוטוניות : אתה יכול לציין שהפלט צריך רק להגדיל/להקטין ביחס לקלט. בדוגמה שלנו, ייתכן שתרצה לציין שמרחק מוגדל לבית קפה צריך רק להפחית את העדפת המשתמש החזויה.
קמור/קיעור : ניתן לציין שצורת הפונקציה יכולה להיות קמורה או קעורה. בשילוב עם מונוטוניות, זה יכול לאלץ את הפונקציה לייצג תשואות פוחתות ביחס לתכונה נתונה.
Unimodality : אתה יכול לציין שלפונקציה צריכה להיות פסגה ייחודית או עמק ייחודי. זה מאפשר לך לייצג פונקציות שיש להן נקודה מתוקה ביחס לתכונה.
אמון זוגי : אילוץ זה עובד על זוג תכונות ומציע שתכונת קלט אחת משקפת אמון בתכונה אחרת. לדוגמה, מספר גבוה יותר של ביקורות גורם לך להיות בטוח יותר בדירוג הכוכבים הממוצע של מסעדה. הדגם יהיה רגיש יותר ביחס לדירוג הכוכבים (כלומר יהיה בעל שיפוע גדול יותר ביחס לדירוג) כאשר מספר הביקורות גבוה יותר.
גמישות מבוקרת עם Regularizers
בנוסף לאילוצי הצורה, סריג TensorFlow מספק מספר מסדרים לשליטה בגמישות ובחלקות של הפונקציה עבור כל שכבה.
Laplacian Regularizer : הפלטים של הסריג/קודקודי הכיול/נקודות המפתח מסודרים לערכים של שכניהם. זה מביא לפונקציה שטוחה יותר .
Hessian Regularizer : זה מעניש את הנגזרת הראשונה של שכבת הכיול PWL כדי להפוך את הפונקציה לינארית יותר .
מסדיר קמטים : זה מעניש את הנגזרת השנייה של שכבת הכיול PWL כדי למנוע שינויים פתאומיים בעקמומיות. זה הופך את הפונקציה לחלקה יותר.
מסדר פיתול : יציאות הסריג יוסדרו למניעת פיתול בין התכונות. במילים אחרות, המודל יוסדר לקראת עצמאות בין תרומות התכונות.
מערבבים ומתאימים עם שכבות קרס אחרות
אתה יכול להשתמש בשכבות TF Lattice בשילוב עם שכבות Keras אחרות כדי לבנות מודלים מוגבלים חלקית או מסודרים. לדוגמה, ניתן להשתמש בשכבות כיול סריג או PWL בשכבה האחרונה של רשתות עמוקות יותר הכוללות הטמעות או שכבות Keras אחרות.
ניירות
- אתיקה דאונטולוגית לפי מונוטוניות Shape Constraints , סרינה וואנג, מאיה גופטה, ועידה בינלאומית לבינה מלאכותית וסטטיסטיקה (AISTATS), 2020
- אילוצי צורה לפונקציות מוגדרות , אנדרו קוטר, מאיה גופטה, ה. ג'יאנג, ארז לואידור, ג'ים מולר, טמאן נאראין, סרינה וואנג, טאו ג'ו. ועידה בינלאומית בנושא למידת מכונה (ICML), 2019
- מגבלות צורה מצטמצמות של החזרות לפרשנות ולוויסות , מאיה גופטה, דארה בהרי, אנדרו קוטר, קווין קניני, התקדמות במערכות עיבוד מידע עצביות (NeurIPS), 2018
- רשתות סריג עמוקות ופונקציות מונוטוניות חלקיות , Seungil You, Kevin Canini, David Ding, Jan Pfeifer, Maya R. Gupta, Advances in Neural Information Processing Systems (NeurIPS), 2017
- פונקציות מונוטוניות מהירות וגמישות עם אנסמבלים של סריג , מהדי מילאני פארד, קווין קניני, אנדרו קוטר, יאן פייפר, מאיה גופטה, התקדמות במערכות עיבוד מידע עצבי (NeurIPS), 2016
- טבלאות חיפוש מונוטוניות מכוילות אינטרפולציות , מאיה גופטה, אנדרו קוטר, יאן פייפר, קונסטנטין וובודסקי, קווין קניני, אלכסנדר מאנגילוב, וויצ'ך מוצ'ידלובסקי, אלכסנדר ואן אסברוק, Journal of Machine Learning Research (JMLR), 2016
- רגרסיה אופטימלית להערכת פונקציות יעילה , אריק גרסיה, ראמאן ארורה, מאיה ר. גופטה, עסקאות IEEE על עיבוד תמונה, 2012
- סריג רגרסיה , אריק גרסיה, מאיה גופטה, התקדמות במערכות עיבוד מידע עצבי (NeurIPS), 2009
הדרכות ומסמכי API
עבור ארכיטקטורות מודלים נפוצות, אתה יכול להשתמש במודלים מוכנים מראש של Keras . אתה יכול גם ליצור דגמים מותאמים אישית באמצעות שכבות TF Lattice Keras או לערבב ולהתאים עם שכבות Keras אחרות. עיין במסמכי ה-API המלאים לפרטים.