ریاضیات برای یادگیری ماشین (جبر خطی)

محسن شاهوردی کندری

این مقاله مجموعۀ دوم از مقالات ریاضیات برای یادگیری ماشین است (فصل اول). در این مقاله، قصد داریم فصل دوم از کتاب Mathematics for Machine Learning را بررسی کنیم. فصل دوم کتاب به بررسی موضوعات دربارۀ جبر خطی می‌پردازد. در ادامه، عنوان‌های فصل دوم کتاب را می‌بینید و بعد از آن خلاصۀ فصل شروع می‌شود. چون در این فصل تعداد بسیار زیادی فرمول داریم و تایپ تمامی این فرمول‌ها زمان‌گیر است، من از این به بعد از تصاویر کتاب استفاده می‌کنم. امیدوارم این تغییر شما را در روند خواندن مقالات اذیت نکند.


در ابتدا، برای فهم بهتر و داشتن دید وسیع‌تری به مباحث این فصل می‌توانید به شکل زیر نگاه کنید که دیدگاهی اولیه به مفاهیم فصل دوم، ارتباط آن‌ها با یکدیگر و ارتباطشان با فصل‌های بعدی ایجاد می‌کند.


2.1) سیستم معادلات خطی (Systems of Linear Equations):

سیستم معادلات خطی نقش بسیار گسترده و پررنگی در ریاضیات و به‌خصوص مباحث مرتبط به مدل‌سازی و یادگیری ماشین ایفا می‌کنند. به مجموعه‌ای از معادلات به‌شکل زیر یک دستگاه یا سیستم معادلات خطی گفته می‌شود.


مجموعۀ جواب‌های معادله به هر مجموعۀ nعضوی مثل (x1, x2, . . . , xn) ∈ Rn گفته می‌شود که در معادلۀ بالا صدق کند.

برای مثال مجموعۀ جواب (1، 1، 1) جواب دستگاه معادلۀ زیر است که اگر در مقادیر جای‌گذاری انجام دهید، هر سه معادله نتیجه می‌دهد.


شهود حل دستگاه معادلات بالا به ازای (1، 1، 1) این‌گونه است که ۳ صفحۀ بالا در یک نقطه به مختصات (1,1,1) برخورد دارند. برای دو بعدی تصویر زیر کمک‌کننده است.


باید دقت کنیم که جواب هر دستگاه معادلات خطی ممکن است یک صفحه، یک نقطه یا حتی یک مجموعۀ تهی باشد. برای مثال، در دستگاه مختصات دو بعدی دو خط با معادله عدد ثابت جوابی ندارند.

2.2) ماتریس (matrix):

ماتریس‌ها نقشی بسیار حیاتی در جبر خطی دارند و با استفاده از آن‌ها می‌توان بسیاری مسائل را ساده‌تر حل کرد و نوعی ابزار قدرتمند ریاضی هستند. ماتریس در واقع یک چندتایی (tuple) با K عضوی است که K = M * N است و N تعداد ستون‌ها و M تعداد سطرها را نشان می‌دهد و aij, i = 1, ... , m, j=1, ... , n است که به aij ها درایه گفته می‌شود. در زیر مثالی برای ماتریس آورده شده است.


2.2.1) ضرب و جمع ماتریس (Matrix Addition and Multiplication): ما بر روی ماتریس‌ها به تعریف عملیات پایه‌ای همچون جمع و ضرب نیاز داریم. عملیات جمع بر روی ماتریس‌ها به‌شکل جمع درایه به درایه تعریف می‌شود. باید دقت کنید که هنگام جمع دو ماتریس با یکدیگر باید ابعاد هر دو ماتریس با هم برابر باشد، در غیر این‌صورت قادر به انجام عمل جمع نخواهیم بود. در شکل زیر جمع دو ماتریس نمایش داده شده است.


ضرب دو ماتریس به‌شکل زیر تعریف می‌شود و باید دقت کنید که هنگام ضرب دو ماتریس باید ابعاد همسایه با هم برابر باشند. در ضرب زیر


ابعاد همسایه k است و چون در دو ماتریس A و B برابر است، ضرب این دو ماتریس ممکن است و ابعاد ماتریس نتیجه برابر با سطرهای ماتریس اول و ستون‌های ماتریس دوم خواهد بود، اما ضرب B در A را به‌دلیل مساوی نبودن n و m نمی‌توان تعریف کرد.


مثالی از ضرب دو ماتریس برای نشان دادن اینکه AB ≠ BA برقرار است.


ماتریس همانی (Identity Matrix): به ماتریس مربعی (n * n) گفته می‌شود که درایه‌های قطر اصلی آن ۱ و بقیۀ درایه‌ها صفر هستند.

cij = 1 if i = j else 0

تعریف برخی خاصیت‌های روابط ماتریسی:

خاصیت انجمنی (associativity):

خاصیت توزیع‌پذیری (Distributivity):


ضرب ماتریس در ماتریس همانی:


2.2.2) وارون ماتریس و ترانهاده (Inverse and Transpose):

ماتریس وارون: ماتریس مربعی A ∈ R n * n را در نظر بگیرید. ماتریس B ∈ R n * n را ماتریس وارون A می‌نامیم، اگر AB = I = BA باشد و آن را به‌طور عمومی با A -1 نمایش می‌دهیم.

باید دقت کنید وارون تنها برای ماتریس‌های مربعی تعریف می‌شود و همچنین هر ماتریس A مربعی‌ای نیز وارون ندارد که در آینده دراین‌باره بیشتر صحبت خواهیم کرد. اگر A ماتریسی باشد که وارون داشته باشد، به A ماتریس regular/invertible/nonsingular و در صورت نبود وارون به آن singular/non invertible گفته می‌شود.

مثال: برای یک ماتریس ۲ * ۲ تلاش می‌کنیم که ماتریس وارون بیابیم.

ماتریس A را به‌شکل زیر فرض کنید.


سپس اگر ماتریس 'A به‌شکل زیر تعریف شود،


ضرب این دو ماتریس برابر با ماتریس همانی خواهد شد، اگر یک ضریب اسکالر را نیز در نظر بگیریم.


پس ماتریس وارون A برابر خواهد بود با:


به ضریب ثابتی که در مخرج قرار دارد و در ماتریس بالا ضرب شده است دترمینان گفته می‌شود که در واقع یک نگاشت از درایه‌ها به یک اسکالر است که در فصل‌های آینده بیشتر دراین‌باره صحبت خواهیم کرد، اما باید دقت کنیم ماتریس A در صورتی وارون خواهد داشت که دترمینان آن برابر با صفر نباشد.

ترانهاده (transpose): ماتریس A ∈ R m * n را در نظر بگیرید. ماتریس B ∈R n * m با درایه‌های bij = aji را ترانهادۀ ماتریس A می‌نامیم و به‌شکل AT= B نمایش می‌دهیم.

برخی خواص وارون و ترانهادۀ ماتریس‌ها:


ماتریس متقارن (symmetric matrix): ماتریس A متقارن است اگر A = AT برقرار باشد.

اگر A معکوس‌پذیر باشد، آنگاه ترانهادۀ A نیز معکوس‌پذیر است.


2.2.3) ضرب ماتریس در اسکالر (Multiplication by a Scalar): ما همچنین می‌توانیم یک عدد را در یک ماتریس ضرب کنیم که به‌شکل زیر تعریف می‌شود.


خاصیت انجمنی (Associativity):


خاصیت توزیع‌پذیری (distributivity):


2.2.4) نمایش فشردۀ سیستم‌های معادلات خطی (Compact Representations of Systems of Linear Equations): از ماتریس‌ها می‌توانیم برای نمایش دستگاه‌های معادلۀ خطی استفاده کنیم. برای مثال، می‌توان دستگاه معادلات زیر را به‌شکل ماتریسی نمایش داد و سپس از خاصیت‌های موجود بر روی ماتریس‌ها استفاده کرد و دستگاه‌های معادلات خطی را حل کرد.

شکل ماتریس دستگاه بالا.


حال ما یک دستگاه معادلات خطی را به‌صورتAx = b نمایش دادیم که A ماتریس ضرایب است و x ماتریس مجهولات و b نیز ماتریس اعداد ثابت ماست. در قسمت بعدی فصل دو به برخی روش‌های حل دستگاه‌های معادلات خطی می‌رسیم و روش‌های مرسوم را توضیح می‌دهیم و با مثال حل می‌کنیم.

2.3) حل سیستم معادلات خطی (Solving Systems of Linear Equations): همان‌گونه که در بخش قبلی مطرح شد، می‌توانیم دستگاه معادلات خطی را به‌صورت معادلۀ ماتریس بازتعریف کنیم. حال قصد داریم در این قسمت از کتاب به بررسی برخی از روشهای حل دستگاه معادلات خطی بپردازیم.

2.3.1) جواب خاص و عمومی (Particular and General Solution): به‌طورکلی به جواب‌های معادلۀAx = b جواب خاص دستگاه گفته می‌شود و جواب عمومی یک معادله ترکیب جواب خاص و جواب‌های Ax = 0 است.

برای مثال، قصد داریم برای معادلۀ زیر جواب خاص و عمومی را به دست آوریم.

برای قسمت راست معادله، می‌توانیم بردار b را به‌شکل زیر بازنویسی کنیم.


دقت کنید که در ضرب ماتریس سمت چپ معادله ستون اول ماتریس ضرایب در x1 ضرب می‌شود و ستون دوم در x2 ضرب می‌شود و چون برای x3 و x4 سمت راست معادله مقداری نداریم، می‌توان جواب خاص را به‌شکل[42, 8, 0, 0] نوشت. برای به دست آوردن جواب معادلۀAx = 0 باید ستون سوم ماتریس سمت چپ را در بردار مجهول‌ها ضرب کنیم و برای صفر کردن جواب معادله باید عنصر سوم را منهای یک عدد که معادل جمع


باشد و ضریب x4 را نیز برابر صفر بگذاریم تا در این معادله حذف گردد.


دقت کنید که در رابطۀ بالا هر ضریبی از 1 می‌تواند یک بردار صفر ایجاد کند. باید همین روال را برای x4 حال تکرار کنیم.


همان‌طور که قبلاً گفتیم جواب عمومی برابر است با ترکیب جواب خاص و جواب‌های معادلۀAx = 0 که برای مثال بالا به‌شکل زیر خواهد بود.


2.3.2) تغییرات ابتدایی (Elementary Transformations): از روش‌های حس سیستم‌های معادلات خطی است که با انجام چند نوع عملیات سعی در ساده کردن مسئله و حذف برخی متغیرها در معادلات است. در این روش ما مجاز هستیم از سه عمل زیر استفاده کنیم:

  • جابه‌جایی دو معادله؛
  • ضرب یک معادله در یک اسکالر؛
  • جمع دو معادله با یکدیگر.

مثال: برایa ∈ R تمامی جواب‌های دستگاه معادلات زیر را به دست آورید.


در ابتدا یک ماتریس به‌شکل زیر تشکیل می‌دهیم که در سمت راست خط مقادیر b که سمت راست معادلات بالا هستند قرار می‌گیرد.


سپس، سطر اول را با سطر سوم جابه‌جا می‌کنیم و به‌شکل زیر معادلات را در عددی ضرب و با هم جمع می‌کنیم.


سپس نتایج به‌دست‌آمده را هماهنگ شکل زیر تغییرات را اعمال می‌کنیم.


هنگامی که ماتریس به یک ماتریسی تبدیل شد که تمامی عناصر پایین‌تر از قطر اصلی صفر شد، عملیات ساده کردن را متوقف می‌کنیم.

در دستگاه معادلات خطی بالاa = -1 می‌شود و سپس از سه معادلۀ بالا، جواب خاص دستگاه به‌شکل زیر نتیجه می‌شود.


که جواب عمومی آن نیز به‌شکل زیر خواهد شد.


2.3.3) روش منهای یک (The Minus-1 Trick): این روش به‌دلیل شباهت به روش قبلی بحث‌شده در این مقاله قرار نمی‌گیرد و علاقه‌مندان می‌توانند از روی کتاب این بخش را دنبال کنند.

2.3.4) الگوریتم‌هایی برای حل یک سیستم معادلات خطی: در این قسمت به برخی مقالات در این حوزه اشاره شده است.

the Richardson method, the Jacobi method, the Gauß-Seidel method, and the successive over-relaxation method, or Krylov subspace methods, such as conjugate gradients, generalized minimal residual, or biconjugate gradients.We refer to the books by Stoer and Burlirsch (2002), Strang (2003), and Liesen and Mehrmann (2015) for further details.

همچنین در این بخش از کتاب دربارۀ روش شبه‌وارون (Moore-Penrose pseudo-inverse) نیز صحبت شده است. این روش به‌شکل زیر است:


باید دقت شود اگر ماتریس A ماتریس مربعی نباشد، نمی‌توان وارون آن را محاسبه کرد، زیرا ماتریس وارون تنها برای ماتریس‌های مربعی تعریف می‌شود، به همین دلیل دو طرف معادله را در ترانهادۀ A ضرب می‌کنیم. آنگاه حاصل‌ضرب ترانهادۀ A در A یک ماتریس مربعی می‌شود که می‌توان وارون آن را محاسبه کرد (باید دقت کرد اگر دترمینان ضرب ماتریس در ترانهاده‌اش برابر صفر باشد، برخی روش‌های بازگشتی برای حل مسئله موجود است که در قالب این کتاب نمی‌گنجد، شاید در مقاله‌ای جدا برخی از روش‌های بازگشتی برای رفع این مشکل را بنویسم). روش شبه‌وارون در بسیاری از الگوریتم‌های یادگیری ماشین کاربرد دارد، زیرا معمولاً ما با ماتریس‌هایی از جنس نمونه‌ها و ویژگی‌ها طرف هستیم و این ماتریس‌ها غالباً مربعی نیستند و این روشی جاافتاده در بسیاری از الگوریتم‌های یادگیری ماشین همچون رگرسیون است.

در این مقاله تا این قسمت از جبرخطی پرداخته شد و در مقاله بعدی قسمت های بعدی کتاب (فضاهای برداری، پایه و رتبه، مجموعه مولد، نگاشت خطی، ماتریس انتقال، تغییر پایه و ...) خواهیم پرداخت.