חוצה תכונות: קידוד לא-לינאריות

באיורים 1 ו-2, נניח את הדברים הבאים:

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

נקודות בבלוז ממוקמות בריבוע הצפון-מזרחי; נקודות כתומות ממוקמות בריבוע הדרום מערבי.

איור 1. האם זו בעיה לינארית?

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

עכשיו יש לעיין בדמות הבאה:

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

איור 2. האם זו בעיה לינארית?

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

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

איור 3. שורה אחת לא יכולה להפריד בין שתי הכיתות.

 

כדי לפתור את הבעיה הלא לינארית המוצגת באיור 2, צרו צלב של תכונה. צלב תכונות הוא תכונה סינתטית שמקודדת לא לינארית במרחב התכונות על ידי הכפלת שתי תכונות קלט או יותר. (המונח צלב מגיע ממוצר חוצה). בואו ניצור צומת תכונות בשם \(x_3\) על ידי מעבר \(x_1\) ו- \(x_2\):

$$x_3 = x_1x_2$$

אנחנו מתייחסים לסימון \(x_3\) החדש שקופץ, כמו כל תכונה אחרת. הנוסחה הלינארית הופכת ל:

$$y = b + w_1x_1 + w_2x_2 + w_3x_3$$

אלגוריתם לינארי יכול ללמוד משקל \(w_3\) בדיוק כמו ב- \(w_1\) וב- \(w_2\). במילים אחרות, אף על פי \(w_3\) שמקודד מידע לא לינארי, אין צורך לשנות את האופן שבו המודל הלינארי מאמן כדי לקבוע את הערך של \(w_3\).

סוגים של צלבים לתכונות

אנחנו יכולים ליצור סוגים רבים של צלב תכונות. למשל:

  • [A X B]: צלב תכונה שנוצר על ידי הכפלת הערכים של שתי תכונות.
  • [A x B x C x D x E]: צלב תכונות שנוצר על ידי הכפלת הערכים של חמש תכונות.
  • [A x A]: צלב של תכונה שנוצרת על ידי ריבוע תכונה אחת.

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