קונבולוציה הינה פעולה מתמטית בין פונקציות שתוצאתה היא גם פונקציה. זו ההגדרה המתמטית לקונבולוציה רציפה ולקונבולוציה בדידה. הסימון המקובל לפעולת הקונבולוציה הינו *. לא נשקיע זמן בלהבין את ההגדרה הזו,
כי בהקשר שלנו הקונבולוציה נעשית בין מטריצות (שהינן למעשה פונקציות דו מימדיות בדידות) ומחזירה מטריצה.
נסביר בדיוק איך מבוצעת הפעולה המתמטית הזו, רק נזכור שבפועל המחשב כבר יעשה אותה, אנחנו בתור המפתחים נצטרך רק להבין את המימדים של התוצאה בהינתן המימדים של המטריצות המקוריות שלעיתים נקראות מטריצת הקלט ומטריצת הגרעין Kernel או הפילטר. מטריצת התוצאה תחושב ע”י החלקת מטריצת הגרעין\הפילטר על פני מטריצת הקלט. ובכל אזור חפיפה מחשבים את סכום המכפלות של האלמנטים החופפים בין המטריצות וזה יהיה אלמנט של מטריצת התוצאה.
למשל נסתכל על שתי המטריצות הללו: מטריצת הקלט משמאל (בגודל 3X3) קונבולוציה עם מטריצת הגרעין\הפילטר מימין (גם כן בגודל 3X3) ונבין איך מחשבים את מטריצת התוצאה (גם היא בגודל 3X3).
כל אלמנט במטריצה התוצאה הינו תוצאה של סכום של כל המכפלות בין כל האלמנטים החופפים בין מטריצת הקלט ומטריצת הגרעין כשהיא הפוכה, כאשר כל פעם מטריצת הגרעין ההפוכה מוסטת. האיבר הראשון (שמאלי עליון) של מטריצת התוצאה שהינו 13- חושב ע”י סכום המכפלות: 01+02+(-2)4+(-1)5
כעת נזיז את מטריצת הגרעין ההפוכה ימינה ונחזור על החישוב. כאשר האיברים החופפים אחרים כעת.
הפעם החישוב יכלול סכום של יותר מכפלות (כי יש יותר חפיפה בין המטריצות). החישוב יהיה:
01+02+03+(-1)4+(-2)5+(-1)6 וזה שווה ל 20- שהוא האלמנט האמצעי מלמעלה במטריצה התוצאה.
נמשיך באותו אופן ונראה איך נוצרת השורה הראשונה של מטריצת התוצאה, השורה השניה של מטריצת התוצאה, והשורה השלישית של מטריצת התוצאה.
לגבי המימדים של מטריצת התוצאה, לזה ניכנס בקורס למידה עמוקה. בשלב זה חשוב רק להבין את המכניקה שמאחורי חישובי הקונבולוציה.