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

סריג TensorFlow (TFL)

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

מושגים

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

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

הרכבים

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

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

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

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

מדוע TensorFlow Lattice?

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

פירוש

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ניירות

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

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