مقدمه ای اجمالی بر انواع نرم بردار در یادگیری ماشین

محاسبه طول، بزرگی یا نرم بردار، اغلب یا بطور مستقیم بصورت یک روش رگولاریزاسیون در یادگیری ماشین یا به عنوان بخشی از عملیات های برداری یا ماتریسی وسیعتر باید صورت گیرد. 

روشهای مختلف محاسبه طول یا بزرگی بردار را در این دوره آموزشی درمییابید که نرم بردار نامیده میشود.

  • نرم L1، به صورت مجموع قدر مطلقهای بردار محاسبه میگردد.
  • نرم L2، به صورت جذر مجموع مجذور مقادیر بردار محاسبه میگردد. 
  • نرم ماکسیمم، به صورت ماکسیمم مقادیر بردار محاسبه میگردد. 

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

Page 112, No Bullshit Guide To Linear Algebra, 2017

نرم بردار

طول بردار، به عنوان نرم بردار یا بزرگی بردار مورد اشاره قرار میگیرد. 

طول بردار، همواره البته به استثنای یک بردار با همه ی مقادیر صفر، یک عدد مثبت است. طول بردار، با استفاده از مقیاسی محاسبه میگردد که فاصله بردار از مبداء فضای برداری را خلاصه میکند. برای نمونه، مبداء یک فضای برداری یک بردار دارای سه عضو، به صورت (0، 0، 0) است. 

نگاهی اجمالی به برخی محاسبات معمول نرم بردار مورد استفاده در یادگیری ماشین خواهیم داشت.

نرم L1

طول یک بردار را با استفاده از نرم L1 میتوان محاسبه نمود که 1، اندیس بالای L یعنی \(L^1\) است.  

\(\lVert v \rVert_1\)، علامت نرم L1 یک بردار است که 1، یک اندیس پایین است. این طول، به معنای دقیق کلمه، برخی مواقع نرم تاکسی یا نرم منهتن نامیده میشود.

نرم L1، به صورت مجموع قدرمطلقهای بردار محاسبه میگردد که برای نمایش قدرمطلق یک اسکالر، علامت |a1| را بکار میرود. این نرم، در نتیجه، محاسبه فاصله منهتن از مبداء فضای برداری است.


$$\lVert v \rVert_1 = \sum_{r=0}^n \lvert x_r \rvert$$

#l1 norm with numpy
import numpy as np
from numpy.linalg import norm
a = np.array([1, 2, 3])
print(a)
l1 = norm(a, 1)
print(l1)

#result:
#[1, 2, 3]
#6

ابتدا، یک بردار3 1× تعریف میشود، آنگاه نرم L1 بردار محاسبه میگردد. 

نرم L1، اغلب در زمان برازاندن الگوریتمهای یادگیری ماشین به عنوان یک روش رگولاریزاسیون مورد استفاده قرار میگیرد، روشی که ضرایب مدل را در اندازههای کوچک و به نوبه ی خود، پیچیدگی کمتر مدل را حفظ میکند. 

نرم L2

طول یک بردار را با استفاده از نرم L2 میتوان محاسبه نمود که 2، یک اندیس بالای L یعنی \(L^2\) است. 

\(\lVert v \rVert_2\)، علامت نرم L2 یک بردار است که 2، یک اندیس پایین است. 

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

نرم L2، به صورت جذر مجموع مجذور مقادیر بردار محاسبه میشود. 


$$\lVert v \rVert_2 = \sqrt{\sum_{r=0}^n \lvert x^2 \rvert}$$

#l1 norm with numpy
import numpy as np
from numpy.linalg import norm
a = np.array([1, 2, 3])
print(a)
l1 = norm(a) #with default params
print(l1)

#result:
#[1, 2, 3]
#3.74165738677

نرم L2 همچون نرم L1، اغلب در زمان برازاندن الگوریتمهای یادگیری ماشین به عنوان یک روش رگولاریزاسیون مورد استفاده قرار میگیرد، روشی که ضرایب مدل را در اندازههای کوچک و به نوبه ی خود، پیچیدگی کمتر مدل را حفظ میکند. 

کاربرد نرم L2 در یادگیری ماشین، نسبت به سایرنرم بردارها، به مراتب متداولتر است. 

نرم ماکسیمم

طول یک بردار را با استفاده از نرم ماکسیمم میتوان محاسبه نمود که max norm نیز نامیده میشود. 

Max norm، به صورت \(L^\infty\) نیز مورد اشاره قرار میگیرد که inf، یک اندیس بالاست و آن را با نماد infinity (بینهایت) میتوان نشان داد. \(\lVert v \rVert_\infty\)، علامت max norm است که inf، یک اندیس پایین است. 

max norm، ، همانطور که از نامش پیداست.به صورت انتخاب حداکثر مقدار بردار محاسبه میگردد. 

#l1 norm with numpy
import numpy as np
from numpy.linalg import norm
a = np.array([1, 2, 3])
print(a)
l1 = norm(a, np.inf) #with order param as inf
print(l1)

#result:
#[1, 2, 3]
#3

Max norm، به صورت رگولاریزاسیون در یادگیری ماشین مانند اوزان شبکه عصبی نیز مورد استفاده واقع میشود که رگولاریزاسیون max norm نامیده میشود.

منبع

دسته‌ها جبرخطی

آیا سوالی دارید؟

سوال خود را در بخش نظرات بپرسید، سعی میکنم به آنها جواب مناسب بدم.

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