נעים להכיר: רשתות נוירונים מרצון
פריצת דרך בבניית מודלים לסיווג תמונות אפשר לגלות באמצעות רשת נוירונים קונספטואלית (CNN) שמאפשרת לחלץ בהדרגה ייצוגים ברמה גבוהה וגבוהה יותר של תוכן התמונות. במקום לעבד מראש את הנתונים כדי להסיק תכונות כגון מרקמים וצורות, רשת ה-CNN מסתמכת על נתוני הפיקסלים הגולמיים של התמונה בתור קלט, ועל הדרכים שבהן ניתן לחלץ את התכונות האלו ובסופו של דבר מסיקת איזה אובייקט היא יוצרת.
בתור התחלה, ה-CNN מקבל מפה של מאפייני קלט: מטריצה תלת-ממדית שבה הגודל של שני המאפיינים הראשונים תואם לאורך ולרוחב של התמונות בפיקסלים. הגודל של המאפיין השלישי הוא 3 (תואמים ל-3 ערוצים של תמונת צבע: אדום, ירוק וכחול). ה-CNN מורכב ממקבץ של מודולים, שכל אחד מהם מבצע שלוש פעולות.
1. פיסול
הסכמה מחלצת אריחים של מפת תכונות הקלט ומפעילה מסננים כדי לחשב תכונות חדשות, מפיקה מפת תכונות פלט או תכונה משולבת (שגודלה ועומקה עשויים להיות שונים מאלה של המפה של תכונות הקלט). הקביעות מוגדרות באמצעות שני פרמטרים:
- גודל המשבצות שחולצו (בדרך כלל 3x3 או 5x5 פיקסלים).
- עומק מפת התכונות של הפלט, שתואם את מספר המסננים שהוחלו.
במהלך השרשור, המסננים (הגודל שלהם זהה לזה של גודל המשבצת) מחליקים בפועל מעל רשת התכונות של הקלט באופן אופקי ואנכי, פיקסל אחד בכל פעם, שחולץ את המשבצת המתאימה (ראו איור 3).
איור 3. היסט של עומק 1X3 בוצע על גבי מפה של קלט 5x5, וגם את עומק 1. יש תשעה מיקומים אפשריים בגודל 3x3 כדי לחלץ משבצות ממפת התכונות של 5x5, כך שההמרה הזו יוצרת מפת תכונות של פלט של 3x3.
עבור כל צמד של אריחי מסנן, ה-CNN מבצע הכפלה ברמת הרכיב של מטריצת הפילטרים ומטריצת האריחים, ואז מסכם את כל הרכיבים של המטריצת שתתקבל כדי לקבל ערך יחיד. לאחר מכן, כל אחד מהערכים שמתקבלים עבור כל צמד של אריח מסנן נוצר במטריצה של התכונה המעורבת (ראו איורים 4a ו-4ב).
איור 4א. שמאלה: מפה של תכונות קלט 5x5 (עומק 1). ימין: המרה בגודל 3x3 (עומק 1).
איור 4ב. בצד שמאל: התמונה בגודל 3x3 מתבצעת במפה של תכונת הקלט בגודל 5x5. ימין: התכונה המתפתלת שמתקבלת. לחצו על ערך במפה של תכונת הפלט כדי לראות איך הוא מחושב.
במהלך האימון, ה-CNN "learns" הערכים האופטימליים של מטריקת המסנן שמאפשרים לו לשלוף תכונות משמעותיות (מרקמים, קצוות, צורות) ממפת התכונות של הקלט. ככל שמספר המסננים (עומק המפה של תכונת הפלט) שחל על הקלט עולה, כך מספר התכונות שה-CNN יכול לחלץ. עם זאת, החיסרון הוא שהמסננים מהווים את רוב המשאבים שהושקעו על ידי ה-CNN, כך שזמן האימון עולה גם ככל שמוסיפים עוד מסננים. בנוסף, כל מסנן שמתווסף לרשת מספק ערך מצטבר נמוך יותר מהמסנן הקודם, כך שהמהנדסים שואפים ליצור רשתות שמשתמשות במספר המינימלי של מסננים הדרוש כדי לחלץ את התכונות הנדרשות לסיווג תמונות מדויק.
2. רילו
לאחר כל פעולת פיתול, ה-CNN מחיל שינוי לינארי מתוקן (ReLU) על התכונה המשופעת, כדי להכניס אל המודל מודל לינארי. הפונקציה RLU, \(F(x)=max(0,x)\), מחזירה x לכל הערכים x > 0, והחזרת 0 לכל הערכים ב-x ≤ 0.
.3. ביליארד
אחרי ReLU הגיע שלב המאגר, שבו מספר ה-CNN בודק את התכונה המתוקנת (כדי לחסוך בזמן העיבוד), ומצמצם את מספר המאפיינים של מפת התכונות, תוך שמירה על הפרטים הקריטיים ביותר של התכונה. אלגוריתם נפוץ המשמש לתהליך זה הוא max-poolling [איחוד].
מאגר הנתונים המקסימלי פועל בצורה דומה להשגת המרות. אנחנו מחליקים מעל למפת התכונות וחלץ את האריחים בגודל מסוים. עבור כל אריח, הערך המקסימלי הוא פלט של מפת פיצ'רים חדשה, וכל שאר הערכים נמחקים. פעולות ההעלאה המקסימליות משתמשות בשני פרמטרים:
- הגודל של המסנן למיקסום השימוש (בדרך כלל 2x2 פיקסלים)
- רצף: המרחק בפיקסלים, מפריד בין כל כרטיס מידע שנשלף. בניגוד לשיטה משותפת, שבה מסננים מחליקים על פני פיקסלים במפה לפי פיקסלים, במאגר המקסימלי, הרצף קובע את המיקומים שבהם חולצו כל אריח. עבור מסנן 2x2, המשמעות של רצף 2 מציינת שפעולת המאגר המקסימלית תחלץ את כל אריחי ה-2x2 שאינם חופפים ממפת התכונות (ראו איור 5).
איור 5. שמאל: בריכה מקסימלית בוצעה מעל מפה של 4x4 עם מסנן 2x2 ועלייה של 2. ימינה: הפלט של פעולת המאגר המקסימלית. שימו לב שמיפוי התכונות המתקבל הוא עכשיו בגודל 2x2, והוא שומר רק את הערכים המקסימליים של כל כרטיס מידע.
שכבות מחוברות באופן מלא
בסוף רשת נוירונים משופעת יש שכבת-על אחת או יותר מחוברת (כששתי שכבות מחוברות &&אחרת; כל צומת בשכבה הראשונה מחובר לכל צומת בשכבה השנייה). תפקידם הוא לסווג את התכונות על סמך התכונות שנשלפו על ידי המהפכה. לרוב, השכבה הסופית שמקושרת במלואה מכילה פונקציית הפעלה של softmax, שפלט בה ערך הסתברות מ-0 עד 1 לכל תווית סיווג שהמודל מנסה לחזות.
איור 6 ממחיש את המבנה מקצה לקצה של רשת נוירונים מפותלת.
איור 6. ה-CNN שמוצג כאן כולל שני מודולים של קונבולציה (איחוד + RLU + מאגר) לחילוץ תכונות, ושתי שכבות המחוברות באופן מלא לסיווג. רשתות CNN אחרות עשויות להכיל מספרים גדולים או קטנים יותר של מודולים קונבולטוריים, וגם שכבות גדולות או קטנות יותר שמחוברות באופן מלא. לרוב, מהנדסי תוכנה הם אלה שמנסים כדי לקבוע איזו הגדרה תניב את התוצאות הטובות ביותר מהמודל שלהם.