רשתות נוירונים: מבנה

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

עלילה קרטית. ציר ה-x המסורתי מסומן בתווית 'x1'. ציר ה-Y המסורתי מסומן בתווית 'x2'. נקודות כחולות מרוכזות באזור הצפון-מערבי והדרום-מזרחי של ארה"ב. נקודות צהובות משתרעות באזור הדרום-מערבי ובצפון-מזרחי.

איור 1. בעיה לסיווג לא לינארי.

"nonלינארי" פירוש הדבר שניתן לחזות מראש תווית עם מודל של הטופס \(b + w_1x_1 + w_2x_2\) או במילים אחרות, "פני השטח של ההחלטה" היא לא קו. בעבר, בדקנו את הצלבים של התכונות כגישה אפשרית אחת לבניית מודלים של בעיות לא לינאריות.

עכשיו חישבו על קבוצת הנתונים הבאה:

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

איור 2. בעיה קשה יותר בנוגע לסיווג לא לינארי.

לא ניתן לפתור את קבוצת הנתונים המוצגת באיור 2 עם מודל לינארי.

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

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

איור 3. מודל לינארי כתרשים.

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

איך אנחנו יכולים לשנות את המודל הזה כדי לשפר את היכולת שלו לטפל בבעיות לא לינאריות?

שכבות מוסתרות

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

שלושה עיגולים כחולים בשורה המסומנת בתווית

איור 4. תרשים של מודל דו-שכבתי.

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

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

שלושה עיגולים כחולים בשורה המסומנת בתווית

איור 5. תרשים של מודל תלת-שכבתי.

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

פונקציות הפעלה

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

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

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

איור 6. תרשים של מודל תלת-שכבתי עם פונקציית הפעלה.

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

פונקציות הפעלה נפוצות

פונקציית ההפעלה sigmoid הבאה ממירה את הסכום המשוקלל לערך בין 0 ל-1.

$$F(x)=\frac{1} {1+e^{-x}}$$

זה עלילה:

פונקציית Sigmoid

איור 7. פונקציית ההפעלה של Sigmoid.

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

$$F(x)=max(0,x)$$

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

פונקציית הפעלה של ReLU

איור 8. פונקציית ההפעלה של ReLU.

למעשה, כל פונקציה מתמטית יכולה לשמש כפונקציית הפעלה. נניח ש- \(\sigma\) מייצג את פונקציית ההפעלה שלנו (Relu, Sigmoid או כל דבר אחר). כתוצאה מכך, הערך של הצומת ברשת מקבל את הנוסחה הבאה:

$$\sigma(\boldsymbol w \cdot \boldsymbol x+b)$$

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

סיכום

עכשיו יש למודל שלנו את כל הרכיבים הרגילים של מה שאנשים אומרים בדרך כלל כשהם אומרים "רשת נוירונים&quot:

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

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