ضرب داخلی بردارها (Dot Product) در جبر خطی و هوش مصنوعی
ضرب داخلی (Dot Product) در هوش مصنوعی | مهمترین ضرب بردارها
سلام رفقا! به جلسه پنجم از دوره جامع ریاضیات هوش مصنوعی خوش اومدید. امروز قراره در مورد یکی از مهمترین و پرکاربردترین مفاهیم جبر خطی صحبت کنیم: ضرب داخلی یا Dot Product.
تو دنیای دیتا ساینس و یادگیری عمیق (Deep Learning)، ما سه مدل ضربِ بردار داریم (ضرب داخلی، ضرب عنصری و ضرب اسکالر)، اما ضرب داخلی پادشاه همهشونه! تو این مقاله با هم یاد میگیریم که چطور محاسبه میشه و از نظر هندسی چه معنایی میده.
محاسبه ضرب داخلی به زبان خیلی ساده
اگه بخوایم ضرب داخلی دو تا بردار رو حساب کنیم، خیلی راحت باید اعضای متناظر (یعنی همجایگاه) اونا رو تو همدیگه ضرب کنیم و در نهایت حاصل این ضربها رو با هم جمع کنیم. دقت کنید که جوابِ ضرب داخلی، دیگه یه بردار نیست، بلکه یک عدد اسکالر است!
فرض کنید دو تا بردار داریم: بردار A مساوی با [2, 3] و بردار B مساوی با [4, 5]. بریم ضرب داخلیشون رو حساب کنیم:
| مرحله محاسبه | عملیات | نتیجه |
|---|---|---|
| ضرب ایکسها (X) | 2 × 4 | 8 |
| ضرب وایها (Y) | 3 × 5 | 15 |
| جمع نهایی (Dot Product) | 8 + 15 | 23 (اسکالر) |
اصلاً مهم نیست که بردار ما دو بُعدی باشه یا ۱۰۰ بُعدی! روند کار همینه؛ نظیر به نظیر ضرب میکنیم و همهرو با هم جمع میزنیم.
درک هندسی ضرب داخلی (روی محور مختصات)
حالا بیاین از ریاضی بیایم بیرون و ببینیم این عدد تو واقعیت یعنی چی. ضرب داخلی در واقع نشون میده که دو تا بردار چقدر با هم هممسیر و همجهت هستن. برای درک بهتر، زاویه بین دو تا بردار رو در نظر بگیرید:
| وضعیت دو بردار نسبت به هم | زاویه بین آنها | نتیجه ضرب داخلی (اسکالر) |
|---|---|---|
| تقریباً همجهت باشن | کمتر از 90 درجه | مثبت (+) |
| عمود بر هم باشن | دقیقاً 90 درجه | صفر (0) |
| خلاف جهت هم باشن | بیشتر از 90 درجه | منفی (-) |
فرمول پیشرفتهترِ ضرب داخلی
یه فرمول هندسی هم برای ضرب داخلی وجود داره که میگه: ضرب داخلی بردار A و B برابر است با (اندازه بردار A) ضربدر (اندازه بردار B) ضربدر کسینوس زاویه بینشون (Cos θ).
حالا این کسینوس تتا دقیقاً چیکار میکنه؟ در واقع داره میزان همجهتی رو مشخص میکنه. وقتی ما میگوییم “اندازه B در کسینوس تتا”، یعنی داریم فقط اون بخشی از بردار B رو حساب میکنیم که دقیقاً در راستای بردار A قرار گرفته. به این کار میگن پیدا کردن «طول سایه» یا «تصویر» بردار B روی بردار A.
⚠️ اگه بردارها خلاف جهت بودن چی؟
اگه زاویه بیشتر از ۹۰ درجه باشه (بردارها خلاف جهت هم باشن)، نمیتونیم مستقیماً سایه بردار رو بندازیم روی اون یکی. تو این حالت، ما خطِ یکی از بردارها رو در جهت مخالف گسترش میدیم (Extend میکنیم) تا بتونیم تصویر اون یکی رو روش بندازیم. به همین دلیله که وقتی خلاف جهت هستن، کسینوس منفی میشه و جواب نهاییِ ضرب داخلی هم یک عدد منفی درمیاد.
این همه داستان برای چی بود؟ (کاربرد خفن)
شاید با خودتون بگید خب که چی؟ این ضرب داخلی کجای هوش مصنوعی کاربرد داره؟ برای اینکه فقط یه چشمهاش رو بهتون نشون بدم: فرض کنید تو پلتفرمهایی مثل فیلیمو یا نتفلیکس دارید فیلم «انتقامجویان (Avengers)» رو میبینید. این سیستم چطوری میفهمه فیلم بعدی که باید بهتون پیشنهاد بده چیه تا تو پلتفرم بمونید؟
دقیقاً با استفاده از همین ضرب داخلی! سیستم، سلیقه شما رو تبدیل میکنه به یه بردار، ویژگیهای فیلمها رو هم میکنه یه بردار دیگه؛ بعد با ضرب داخلیِ اینا، میفهمه که سلیقه شما چقدر با فیلمهای مختلف «همجهت» و «همسو» است (چقدر سایهشون روی هم میفته). فیلمی که بیشترین ضرب داخلی رو داشته باشه، میشه پیشنهاد بعدی شما!
تو جلسه بعدی قراره چند تا مثال خیلی جذابتر از این کاربردها تو دنیای واقعی براتون بزنم تا کاملاً عاشق این مبحث بشید!