מדוע קונבולוציה ב-CNN במקום קורלציה צולבת?
- shlomoyona

- Mar 30
- 2 min read
גיא רגב טען בפוסט שהטרמינולוגיה במושג CNN מטעה שכן אין פעולת קונבולוציה אלא פעולה של קורלציה צולבת. הוא גם טען שלו היו משתמשים בקונבולוציה במקום בקורלציה צולבת בספריות אז ה-CNN לא היה עובד. אז יש לי כמה דברים לומר על כך.

גיא כמובן צודק שבפייטורץ ובטנזורפלו פונקציות כמו Conv2D מממשות פעולה של קורלציה צולבת, ולא קונבולוציה. אין שם שום היפוך של הפילטר. אבל אינני מסכים עם גיא לגבי שהרשת לא תעבוד...
ב-CNN, המספרים בתוך הפילטר, המשקולות, אינם קבועים מראש, להבדיל מעיבוד תמונות קלאסי, שם יש פילטר קבוע לטשטוש או למציאת קצוות. המשקולות נלמדות מאפס במהלך אימון הרשת על ידי Backpropagation.
אם נשתמש בקורלציה, ללא היפוך, הרשת תלמד סט משקולות מסוים, למשל: [1, 2, 3]. אם נכריח את הרשת להשתמש בקונבולוציה, עם היפוך, הרשת תלמד מראש את המשקולות בסדר ההפוך: [3, 2, 1].
בשני המקרים הרשת תזהה את אותם המאפיינים, תפיק את אותן התוצאות, ותעבוד בצורה זהה.
מציק גם לי שקראו לזה קונבולוציה אבל זה כנראה מתוך הכוונה לתאר את הקונספט הכללי והחישובי של שיתוף משקולות באמצעות חלון מחליק. מכיוון שלהיפוך אין שום משמעות חישובית כאשר המשקולות נלמדות, מפתחי הספריות כנראה ויתרו על הפעולה הזו כדי לחסוך בזמן חישוב מיותר ונשארו עם השם שהשתרש.
עבור מי שבונה ומאמן מודלים של למידה עמוקה, אין לזה שום פוטנציאל לבאגים. המקרה היחיד שבו זה משנה משהו, הוא אם אתה מנסה לקחת פילטר קבוע ותשתול אותו ידנית לתוך רשת פייטורץ מבלי לאמן אותה, אז תצטרך לדעת שאתה צריך להזין אותו הפוך כדי לקבל תוצאה זהה לקונבולוציה.
הסמנטיקה המתמטית חשובה ואני מסכים שהפרטים חשובים והדיוק חשוב. אבל...

צריכים עזרה עם מתמטיקה שימושית? עיבוד אותות? צריכים מחקר אלגוריתמי יישומי? צריכים להאיץ תהליכים אלגוריתמיים? ה-AI שלכם צריך שיפור ביצועים, שיפור בדיוק, שיפור בנראות או שיפור בהסברתיות? דברו איתי:
שלמה יונה
מייסד ומדען ראשי, מתמטיקאי מחקר ופיתוח בע"מ
053-7326360
פודקאסט על החברה ועליי, שלמה יונה, ואופן העבודה שלנו ואיתנו: A technical deep dive about Mathematic.ai

.png)
Comments