نرم (Norm) بردار یا ماتریس چیست؟

مدرس: مسعود کاویانی

در ریاضیات و محاسباتِ عددی، وقتی بخواهند اندازه‌ی یک بردار (vector) یا ماتریس (matrix) را محاسبه کنند از عبارتِ نُرم یا همان norm استفاده می‌کنند. نُرمِ یک بردار یا ماتریس، کاربردِ فراوانی مخصوصاً در یادگیری ماشین و شبکه‌های عصبی‌ عمیق (deep neural network) دارد. در این درس قصد داریم به بررسی چند روش محاسبه‌ی نُرم‌ها بپردازیم تا اگر در کتاب یا مقاله‌ای به عبارتِ نُرم برخوردیم معنیِ آن را بدانیم.

نحوه‌ی محاسبه‌ی نرم (norm) متفاوت است، به همین دلیل normها اسامی مختلفی دارند. مثلا نُرمِ اُقلیدوسی یا L1 Norm و یا L2 Norm که ممکن است در بسیاری از مراجع داده‌کاوی و یادگیری ماشین دیده باشید، از پرکاربردترین نُرم‌ها هستند. برای آشنایی با آن‌ها ابتدا به یکی از معروف‌ترین نُرم‌ها که همان نُرمِ اُقلیدوسی یا L2 norm است می‌پردازیم. شکل زیر را نگاه کنید:

نرم ماتریس

همان‌طور که در شکل می‌بینید ما یک بردار (vector) داریم و هر کدام از عناصرِ آن را به توان ۲ رساندیم و با هم جمع کردیم، سپس از مجموعِ آن‌ها رادیکال گرفتیم و در نهایت به یک عدد (۶.۲۴۵) رسیدیم. این عدد در واقع نشان دهنده‌ی بزرگیِ این بردار است. پس در واقع می‌توان گفت نُرم، یک نوع تخمین برای به دست آوردن بزرگی بردار است.

اجازه بدهید یک نُرمِ معروفِ دیگر را با هم مشاهده کنیم. نُرمِ بیشنیه یا maximum norm که بزرگ‌ترین عنصرِ یک بردار را نمایش می‌دهد. مانند شکل زیر:

نرم ماتریس

همان‌طور که مشاهده کردید، بزرگترین مقدار برای بردارِ موجود در شکل، عدد ۵ است که این همان max norm برای این بردار می‌شود.

یک نُرمِ معروف دیگر L1 norm است. برای محاسبه‌ی این نُرم، ابتدا از تمامیِ اعدادْ قدرِ مطلق می‌گیریم (تمامیِ آن‌ها را مثبت می‌کنیم) و سپس آن‌ها را با هم جمع می‌کنیم. مثلا در بردارهای شکلِ بالا، مقدار L1 norm برابر ۱۱ می‌شود.

در مثال‌های بالا، ما نُرمِ بردار (vector) را محاسبه می‌کردیم. می‌توان مقدارِ نُرم را برای ماتریس هم محاسبه کرد. یکی از معروف‌ترین نُرم‌ها برای ماتریس، نُرم فروبنیوس (frobenius norm) است که چیزی شبیه به L2 norm برای بردارهاست. به شکل زیر نگاه کنید:

نرم ماتریس

فرمول ساده است، تمامی اعداد داخل ماتریس (هر سطر به ازای هر ستون) را به توان ۲ می‌رسانیم و با یکدیگر جمع می‌کنیم. سپس از آن‌ها رادیکال می‌گیریم. در واقع اینجا هم یک ماتریس را به یک عدد تبدیل کردیم. با این کار به صورت تخمینی می‌توانیم متوجه شویم که اندازه‌ی یک ماتریس چقدر بزرگ است و یا اینکه ماتریس‌ها را با هم مقایسه کنیم.

دو نُرمِ دیگر برای ماتریس‌ها نیز از اهمیت ویژه‌ای برخوردار هستند. نُرم بیشنیه‌ی جمعِ مطلقِ سطرها (max absolute row sum)! و نرم بیشنیه‌ی جمعِ مطلقِ ستون‌ها (max absolute column sum)! که محاسبه‌ی آن‌ها بسیار ساده است. برای مثال برای اولی (یعنی بیشینه‌ی جمع مطلق سطرها)، جمعِ قدر مطلقِ مقادیرِ هر کدام از سطر‌ها را محاسبه می‌کنیم (برای شکل بالا می‌شود: ۱۰، ۱، ۴) و سپس بیشترین مقدار آن‌ها را به عنوان max absolute row sum norm به دست می‌آوریم (که برای شکل بالا برابر ۱۰ می‌شود)

همان‌طور که مشاهده کردید، نُرم (norm)های مختلفی داریم که هر کدام می‌توانند برای مسئله‌ای به کار گرفته شوند. اگر‌چه که همه‌ی آن‌ها یک هدف دارند و آن هدف به دست آوردن تخمینی از بزرگیِ ماتریس یا بردار است. نرم‌ها کاربرد مختلفی در جبرخطی و در نتیجه در یادگیری‌ ماشین، داده‌ کاوی و یادگیری‌ عمیق دارند.

منابع این بحث و اطلاعات بیشتر

» فصل دوم کتاب Deep Learning » وب‌سایت Nptel.ac.in

در صورت تمایل به یادگیری بیشتر، منابع بالا در نظر گرفته شده است. می توانید با خواندن این منابع، به یادگیری خود در این زمینه عمق ببخشید

29 دیدگاه دربارهٔ «نرم (Norm) بردار یا ماتریس چیست؟»

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *