کانولوشن چیه؟
وقتی دو تابع یا دو لیست داری، میتونی یک عالمه عملیات (Operation) روش انجام بدی. جمع کنی و ضرب کنی. یا هر جور دلت خواست مرتب کنی و خلاصه یک لیست دیگه تولید کنی.
یه عملیات جالب در این راستا کانولوشن هست. اما در نگاه اول شهودی نیست.
تعبیرهای مختلفی هم داره:
- یکیش تعبیر ضرب چندجملهای ها در هم هست.
- یکی دیگه اش تعبیر جمع دو تا تاس که تاسها جمعشون یک عدد خاصی بشه.
- یکی دیگه از تعبیرهاش هم برای توابع میشه میانگین محرک.
علت بر عکس کردنش هم جالبه.
اگر دو تا لیستی که میخوای ضرب کنی یک ترتیب خاصی داشته باشند (مثلاً بر اساس درجه چند جملهای a مرتب شده باشند) وقتی یکیش رو برعکس کنی و بعد کمکم جلو بیاری و ضرب کنی، یه ویژگی جالبش این میشه که عبارتها مستقیم بدست میان. یعنی عبارتهای مشابه همشون با هم تشکیل میشن. جمع اندیس همه اینها همیشه یکی میشه.
مثلاُ فرض کن داشته باشی:
حالا اگر برعکسش کنی میشه:
حالا از سمت چپ دومی رو بصورت Sliding Window حرکت بده. یه بار جمع همه میشه صفر. یه بار میشه یک. یه بار دو. الی آخر. دارم راجع به صحبت میکنم.
Tip
این باعث میشه جملاتی که جمع اندیسهاشون یکیه در کنار هم قرار بگیرن. کلاً خاصیت کانولوشن همینه. و این ویژگی مطلوبی تو ضرب دو تا تابع چند جملهای هست (چون مشابه حساب میشن).
تو فضای فوریه این اپراتور جالب میشه.
یک اپراتور هست که هر جایی ممکنه استفاده بشه و لزوماً ربطی به فضای خاصی نداره. برای ترکیب دو لیست، ترکیب دو تابع و اینها قابل استفاده است.
یا برای این که یک تصویر رو روش نویز گاوسی بندازی.
تو تعریف گفتند که باید برعکس بشه لیست دوم.
ولی مثلاً تو کانولوشن تصویر فایدهای نداره این برعکس کردن. ضرری هم نمی رسونه البته. حالا برعکس ضرب بشه خیلی تفاوتی نمیکنه.