در ریاضیات و محاسباتِ عددی، وقتی بخواهند اندازهی یک بردار (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)های مختلفی داریم که هر کدام میتوانند برای مسئلهای به کار گرفته شوند. اگرچه که همهی آنها یک هدف دارند و آن هدف به دست آوردن تخمینی از بزرگیِ ماتریس یا بردار است. نرمها کاربرد مختلفی در جبرخطی و در نتیجه در یادگیری ماشین، داده کاوی و یادگیری عمیق دارند.
- ۱ » عدد (Scalar)، بردار (Vectors)، ماتریس (Matrix) و تنسور (Tensor) چیست؟
- ۲ » ماتریسها و کاربرد آنها در دادهکاوی و یادگیری ماشین
- ۳ » نرم (Norm) بردار یا ماتریس چیست؟
- ۴ » انواع ماتریس و ویژگیهای مختلف آنها
- ۵ » چرا ماتریسها در علوم داده مهم هستند؟
- ۶ » معیارهای فاصله (Distance Measures) در یادگیری ماشین
- ۷ » بردار ویژه (Eigen Vector) و مقدار ویژه (Eigen Value) برای یک ماتریس
- ۸ » Singular Value Decomposition یا همان SVD در ماتریس چیست؟
- ۹ » ماتریس کواریانس (Covariance) و ماتریس همبستگی (Correlation) چیست؟
- ۱۰ » آنالیز مولفه اصلی (Principal Component Analysis) یا همان PCA چیست؟
- ۱۱ » دستگاه معادلات خطی (System of Linear Equations) در ماتریسها
ممنون از آموزش های عالی تون
موفق و پیروز باشید…
سلام میشه در مورد L2,1 Norm نیز توضیح بدین؟ چه فرقی با L2 Norm داره
خدا خیرتون بده
خیلی خوب بود.ممنون
بسیار عالی
تشکر عالی بود
عالی
خیلی خوب بود
خیلی واضح و صریح بود ممنونم
آقا واقعا یکی از بزرگترین چالش های ذهنی من توی سه ماه گذشته رو به راحتی آب خوردن رفع کردید. ازتون یک دنیا سپاسگزارم
متشکرم عالی بود
تفاوت بین نرم(Norm) و قدرمطلق(مثلا برای بردارها) دقیقا در چیست؟
قدر مطلق یه مدل خاص از نرم است نرم ها بسته به فضا از ۰تا بینهایت قابل تشکیل است اندازه بردار بسته به بعد فضا را نرم گوییم
البته در مبحث ماتریس ها معروفترین نرم، دترمینان هست!
دترمینان نرم نیست. چون حاصل نرم باید همیشه نامنفی باشه.
سلام.ممنون . خیلی خوب بود
ممنون از شما . واقعا همونی بود که می خواستم،کامل و بدون نقص
ممنون از آموزش مختصر و مفیدتون
عالی
مختصر، مفید، عالی! مرسی!
نرم بی نهایت چی ؟
hinf
ممنون ، خدا خیرت بده
کاملا خلاصه، مفید و عالی
مشخصه که تسلط کاملی بر موضوعی دارید
متشکرم
سلام. نرم اقلیدسی شده ۶/۴ اما maxnorm شده ۵؟؟ مگه maxnorm بزرگترین نرم نیست؟
چرا نمی توان نرم را به ازای اعداد کوچکتر از یک به دست آورد.نرم یک داریم .نرم دو داریم .اما نرم یک دوم نداریم.