محاسبه طول، بزرگی یا نرم بردار، اغلب یا بطور مستقیم بصورت یک روش رگولاریزاسیون در یادگیری ماشین یا به عنوان بخشی از عملیات های برداری یا ماتریسی وسیعتر باید صورت گیرد.
روشهای مختلف محاسبه طول یا بزرگی بردار را در این دوره آموزشی درمییابید که نرم بردار نامیده میشود.
- نرم 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 نامیده میشود.