דף זה תורגם על ידי Cloud Translation API.
Switch to English

TensorFlow Lattice (TFL)

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

מושגים

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

סריג

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

הדוגמה הפשוטה שלמעלה היא פונקציה עם 2 תכונות קלט ו -4 פרמטרים: $ \ theta = [0, 0.2, 0.4, 1] $, שהם ערכי הפונקציה בפינות חלל הקלט; שאר הפונקציה משולבת מפרמטרים אלה.

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

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

כִּיוּל

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

  • מחיר קפה, בטווח 0 עד 20 דולר
  • מרחק למשתמש, בטווח 0 עד 30 ק"מ

אנו רוצים שהמודל שלנו ילמד אושר למשתמשים בעזרת הצעה מקומית לבית קפה. דגמי סריג TensorFlow יכולים להשתמש בפונקציות ליניאריות tfl.layers.PWLCalibration (עם tfl.layers.PWLCalibration כיול) בכיול ונורמליזציה של תכונות הקלט לטווח המקובל על הסריג: 0.0 עד 1.0 בסריג הדוגמא שלמעלה. להלן דוגמאות לפונקציות כיול מסוג זה עם 10 קבצי מקשים:

לעיתים קרובות כדאי להשתמש בכמויות של התכונות כקלידים מקשים לקלט. אומדנים משומרים של TensorFlow Lattice יכולים להגדיר באופן אוטומטי את מקשי המקשים לקלט לכמויות התכונה.

עבור תכונות קטגוריות, TensorFlow Lattice מספק כיול קטגורי (עם tfl.layers.CategoricalCalibration ) עם פלט דומה tfl.layers.CategoricalCalibration להזנה לסריג.

הרכבים

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

הספרייה מספקת שתי וריאציות של הרכבים אלה:

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

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

מדוע סריג TensorFlow?

אתה יכול למצוא מבוא קצר ל TensorFlow Lattice בפוסט זה בבלוג TF .

פירוש

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

דגמים מדויקים וגמישים

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

מגבלות צורות נפוצות

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

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

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

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

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

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

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

גמישות מבוקרת עם רגולטורים

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

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

  • Hessian Regularizer : זה מעניש את הנגזרת הראשונה של שכבת הכיול PWL כדי להפוך את הפונקציה ליניארית יותר .

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

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

מערבבים ומתאימים עם שכבות Keras אחרות

ניתן להשתמש בשכבות TF Lattice בשילוב עם שכבות Keras אחרות כדי לבנות דגמים מוגבלים או מסודרים חלקית. לדוגמה, ניתן להשתמש בשכבות כיול סריג או PWL בשכבה האחרונה של רשתות עמוקות יותר הכוללות הטבעות או שכבות קרס אחרות.

ניירות

הדרכות ומסמכי API

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