מהו Bottleneck Block, ולמה הוא מאפשר ל-ResNet50 להיות גם עמוקה וגם קלה

📚 סדרת ResNet - חלק 3 ראייה ממוחשבת #ResNet#Bottleneck Block
תוכן עניינים

מהו Bottleneck Block, ולמה הוא מאפשר ל-ResNet50 להיות גם עמוקה וגם קלה

ResNet אפשרה להעמיק את הרשת. אבל ככל שהרשת עמוקה יותר, כך היא “כבדה” יותר מבחינת חישוב. ResNet50 פתרה זאת באמצעות מבנה חכם שנקרא Bottleneck Block.

למה בכלל צריך את זה?

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

כאן נכנס הרעיון של צמצום זמני.

מהו Bottleneck Block?

זהו בלוק שעובד בשלושה שלבים פשוטים:

  1. מצמצמים רגע את כמות המידע.
  2. מעבדים את המידע המצומצם.
  3. מחזירים אותו שוב לגודל המקורי.

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

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

למה זה כל כך יעיל?

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

שילוב עם רעיון קיצור הדרך

היופי הוא שה-Bottleneck Block אינו מחליף את קיצור הדרך - הוא מתווסף אליו.

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

לכן ResNet50 מצליחה להיות גם עמוקה וגם יעילה.

המשל

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

סיום

ה-Bottleneck Block לא רק פתר בעיה הנדסית, אלא הראה דרך לבנות רשתות גדולות בצורה חכמה: להעמיק, אך לשמור על יעילות.

הפוסט הבא בסדרה יעסוק במשפחת הדגמים - ResNet18, 34, 50 ואחיותיה.

תגובות