Skip to content

Latest commit

 

History

History
60 lines (32 loc) · 6.53 KB

File metadata and controls

60 lines (32 loc) · 6.53 KB

רשתות נוירונים קונבולוציוניות

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

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

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

פילטר קצה אנכי פילטר קצה אופקי

תמונה מאת דמיטרי סושניקוב

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

תמונה של Leung-Malik Filter Bank

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

הרעיונות המרכזיים מאחורי CNN

אופן הפעולה של CNN מבוסס על הרעיונות החשובים הבאים:

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

חילוץ תכונות היררכי

תמונה מתוך מאמר של Hislop-Lynch, המבוסס על המחקר שלהם

✍️ תרגילים: רשתות נוירונים קונבולוציוניות

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

ארכיטקטורת פירמידה

רוב ה-CNN המשמשות לעיבוד תמונה עוקבות אחר מה שנקרא ארכיטקטורת פירמידה. השכבה הקונבולוציונית הראשונה המיושמת על התמונות המקוריות כוללת בדרך כלל מספר נמוך יחסית של פילטרים (8-16), המתאימים לשילובי פיקסלים שונים, כמו קווים אופקיים/אנכיים. ברמה הבאה, אנו מצמצמים את הממד המרחבי של הרשת ומגדילים את מספר הפילטרים, מה שמתאים ליותר שילובים אפשריים של תכונות פשוטות. עם כל שכבה, ככל שאנו מתקדמים לעבר המסווג הסופי, הממדים המרחביים של התמונה מצטמצמים, ומספר הפילטרים גדל.

לדוגמה, בואו נסתכל על הארכיטקטורה של VGG-16, רשת שהשיגה דיוק של 92.7% בסיווג הטופ-5 של ImageNet בשנת 2014:

שכבות ImageNet

פירמידת ImageNet

תמונה מתוך Researchgate

הארכיטקטורות המוכרות ביותר של CNN

המשיכו ללמוד על הארכיטקטורות המוכרות ביותר של CNN