جبرخطی در یادگیری ماشین
بهنام خدا، سلام… با یکی از پیشنیازهای مهم یادگیری ماشین و یادگیری عمیق در خدمت شما هستم. در این پست میخواهم در مورد جبرخطی صحبت کنم. این پست طولانی هست و کم کم بروزرسانی میشود. به شما اطمینان میدهم که این محتوا ارزش وقت گذاشتن را دارد. با هوسم همراه باشید…
نترسید! جبر خطی ترسناک نیست!
جبر خطی اسمش کمی ترسناک است. ولی واقعیت این هست که شما با جبر خطی در دبیرستان آشنا شدید. در دوره دبیرستان کتابی تحت عنوان هندسه تحلیلی و جبر خطی داشتیم. الان اسمش هندسه سه شده است (البته کمی هم آب رفته!). همان کتابها را هم بگیرید و یک دور بخوانید. در اینترنت و سایت آموزش و پرورش، نسخه رایگان و الکترونیک این کتابها موجود هست. خب بریم رسما درس جبرخطی را با آرایه ها شروع کنیم…
آرایه چیست؟
ابتدا بیایید یک تعریف ساده از آرایه ببینیم:
مجموعهای از دادههای عددی با نظم و ترتیب در کنار هم!
حتما تا الان آرایه دیدهاید. مثلا ممکن است اسکالر، بردار و ماتریس را در ریاضیات یا برنامهنویسی دیده باشید. دراین بخش میخواهم این موجودات را ساده و مختصر توضیح دهم. همچنین موجود جدیدی بهنام تنسور را به شما معرفی میکنم.
اسکالر در جبر خطی
یک عدد تنهاست. همان اعدادی که روزمره با آنها سروکار داریم. همان پولی که میدهیم یک چیزی میخریم و باقیمانده را به ما برمیگردانند. همه اعداد روزمره مانند 3√، 5، 1/6، π و خیلی موارد دیگر…
ما معمولاً اسکالر را با یک حرف انگلیسی lowercase نشان میدهیم.
چرا؟ چه اهمیتی دارد؟ برای اینکه بتوانیم به راحتی اسکالر را از بردار و ماتریس در یک فرمول متمایز کنیم. این تمایز باعث میشود، راحتتر با فرمولها ارتباط برقرار کنیم. البته، این نمایش قراردادی است و ممکن هست در منبع دیگری نمایش متفاوتی برای اسکالر، بردار یا ماتریس ببینید.
در جبرخطی، نمایشی داریم که شاید دیده باشید:
در رابطه بالا، ∋ به معنی “متعلق به” یا belongs to هست. عبارت بالا را به اینصورت میخوانند:
یعنی x در فضای R تعریف شده است. R یعنی فضای حقیقی یا Real.
تمام شد! این اسکالر بود.
بردار در جبر خطی
تعریف بردار این هست:
مجموعهای از اعداد زیر هم یا کنار همدیگر
بردار لیستی از اعداد اسکالر است. در زیر شما برداری میبینید که سه عدد اسکالر دارد که زیر هم قرار گرفتهاند.
میتوانیم بگوییم: بردار تعمیمیافته اسکالر است. در واقع داداش بزرگه اسکالر است. از چند اسکالر که زیرهم، یک بردار ساخته میشود. بردار را به صورت x نمایش میدهیم. lowercase و بولد…
در جبرخطی بردار را بهصورت هم نمایش میدهیم. یعنی x متغیری است که در فضای Rn تعریف شده است. یعنی در فضای n-بُعدی R تعریف شده است. n طول بردار x را نشان میدهد. به جای n میتواند هر عددی باشد.
مثال یعنی چه؟ یعنی p برداری به طول 5 شامل اعداد طبیعی است.
بردارها در دو شکل سطری یا ستونی نمایش داده میشوند. در بالا شما بردار ستونی را مشاهده کردید. بردار سطری به صورت زیر نمایش داده میشود:
ممکن هست بگویید: “چه فرقی دارد؟ خب، یکی از اینها را برداریم و استفاده کنیم دیگر!” وقتی به عملیات ریاضی (مثلا ضرب) روی آرایهها میرسیم، خواهید که به هردو نوع بردار سطری و ستونی نیاز داریم.
توجه بهصورت پیشفرض، ما بردارها را ستونی درنظر میگیریم. در اکثر کتابها هم چنین قراردادی مطرح هست، مگر آنکه ذکر شود که منظور بردار سطری هست.
حالا باید درمورد اندیسها در بردار صحبت کنیم؛ شما اگر به دو بردار سطری و ستونی تعریف شده در بالا نگاه کنید، مشاهده میکنید که اعداد موجود در این بردارها نظم و ترتیب مشخصی دارند. یعنی، از چپ به راست یا از بالا به پایین این اعداد افزایش مییابند. این اعداد 0 1 2 و غیره همان اندیس درایههای یک بردار هستند. این اندیس معادل با پلاک یا کدپستی خانهها هستند. پس از طریق این اندیسها میتوانیم به یک درایه دسترسی داشته باشیم. مثلا، وقتی میخواهیم به درایه سوم یک بردار اشاره کنیم، مینویسیم: x[3] یا x3
توجه ما در اینجا شماره اندیسها را از 1 نشان دادهایم. اما شروع اندیس از صفر هم رایج هست. خصوصا در کدنویسی پایتون و کتابخانه نامپای که اندیسها از صفر شروع میشود.
بسیارخب، تا اینجای آموزش جبر خطی در یادگیری ماشین از اسکالر و بردار گفتم. حالا میخواهم آرایه دوبعدی یا ماتریس را شروع کنم.
ماتریس در جیر خطی
تعریف ماتریس این است:
مجموعهای از اعداد با آرایش دو بعدی در راستای سطر و ستون
اگر خاطرتان باشد، بردار تعمیمیافته اسکالر بود. حالا میتوان گفت که ماتریس هم تعمیمیافته بردار است. یعنی، اگر تعداد بردار سطری/ستونی را کنار/زیر هم بچینیم، یک ماتریس ساخته میشود. به ماتریس زیر نگاه کنید:
در ماتریس بالا 6 عدد میبینیم که در قالب دو سطر و سه ستون، یک ماتریس را تشکیل دادهاند. به دو شکل میتوانیم این ماتریس را بر پایه بردارها توصیف کنیم:
- ماتریسی که از زیر هم قرار گرفتن دو بردار سطری به طول سه تشکیل شده است.
- ماتریسی که از زیر هم قرار گرفتن سه بردار ستونی به طول دو تشکیل شده است.
هرچند توضیحات و نگاههای بالا بدیهی و ساده هست، اما ارزشمند است. چون بعدا در همین جبر خطی بدردتان میخورد.
ماتریس را با حروف بزرگ بدون ایتالیک و بولد نشان میدهیم: X Y Z و غیره. همچنین، ماتریس را بهصورت تعریف میکنیم. در این نمایش، n معادل با تعداد سطرها و m برابر با تعداد ستونهاست. یادتان باشد، در ماتریسها همیشه اول بعد سطر نوشته میشود و سپس بعد ستون قرار میگیرد. برای مثال، ماتریس بالا بهصورت نوشته میشود.
برویم سراغ اندیسدهی؛ چطور میتوانم به یک المان خاص در ماتریس اشاره کنم؟ اگر اندیسدهی در بردار را یاد گرفته باشید، اینجا هم کارتان ساده هست. اصلا خودتان احتمالا حدس زدهاید که چگونه باید اندیس بدهیم. ما اینجا با یک آرایه دوبعدی سروکار داریم. پس باید برای هر بُعد یک آدرس جداگانه بدهیم. اول باید آدرس بعد سطر و سپس بعد ستون را مشخص کنیم. مشابه با بردارها، اندیسها از صفر شروع میشود. سطرها از بالا به پایین اندیسهای 0 1 2 و غیره دریافت میکنند. ستونها هم از سمت چپ به راست، اندیس 0 1 2 و غیره میگیرند. در شکل زیر، نحوه شمارهگذاری سطر و ستونها را مشاهده کنید:
حالا اگر بخواهم به عدد 1- اشاره کنیم، چه باید بنویسم؟ آفرین! X[1, 2] یا X1,2
میتوانیم درمورد آرایههای با ابعاد بالاتر هم صحبت کنیم. مثلا، آرایه سهبعدی، چهاربعدی و غیره. اما فعلا تا همین جا کافی است. بهتر هست، برویم و با سایر مباحث جبرخطی هم آشنا شویم.
مطالب زیر را حتما مطالعه کنید
آموزش PCA
الگوریتم k means
رگرسیون لجستیک
رگرسیون خطی
گرادیان کاهشی
انواع یادگیری در یادگیری ماشین
8 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
بسیار عالی قناعت بخش بود
سپاس 🌹🙏
ادامه نمیدین؟
اگر ادامه نمیدین میشه یه منبع که همینطور ساده توضیح بده معرفی کنید؟
این پست ادامه داره. در دوره یادگیری ماشین 2022 هم جبرخطی و سایر شاخههای ریاضی مرتبط گفته شده.
لینک دوره یادگیری ماشین 2022
خوب بود حیف شده ادامه ندادید (یاد دادن یه هنره)
عالی بود ممنون بابت همه آموزشها
ممنون میشم ادامه بدید بحث را.
خوب بود. راضیم ازت