השב / י לאירוע TensorFlow Everywhere המקומי שלך היום!
דף זה תורגם על ידי Cloud Translation API.
Switch to English

סריג TensorFlow (TFL)

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

מושגים

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

סורגים

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

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

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

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

כִּיוּל

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

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

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

פרשנות

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

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

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

מגבלות צורה בריאה

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

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

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

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

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

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

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

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

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

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

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

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

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

מערבבים ומתאימים עם שכבות אחרות של קרס

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

ניירות

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

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