SVM – درک مفاهیم ریاضی مورد نیاز – قسمت دوم

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

در قسمت اول مزیت استفاده از SVM را باهم بررسی کردیم. هدف آن پیدا کردن ابرصفحه جداکننده‌ای بود که حاشیه را به حداکثر برساند.

ولی چطور این حاشیه را محاسبه می‌کنیم؟

SVM = Support VECTOR Machine

در عبارت ماشین بردار پشتیبان کلمه بردار وجود دارد.

این یعنی درک بردار و چگونگی استفاده از آن برای ما اهمیت دارد.

اجازه دهید جمع‌بندی کوتاهی از مواردی که امروز بررسی خواهیم کرد، داشته باشیم:

  • بردار چیست؟
    • اندازه بردار
    • جهت بردار
  • جمع و تفاضل بردارها
  • جمع نقطه‌ای چیست؟
  • تصویر یک بردار روی برداری دیگر

پس از آشنا شدن با موارد بالا، در ادامه خواهیم دید:

  • معادله ابرصفحه چیست؟
  • حاشیه را چطور محاسبه کنیم؟

بردار چیست؟

اگر نقطه‌ای مانند A(3,4) را تعریف کنیم، در صفحه R^2 می‌توانیم آن را به صورت زیر رسم کنیم:

شکل ۱: یک نقطه

 

تعریف: هر نقطه  x(x_1,x_2), x\neq0 در  R^2 ، یک بردار در صفحه را مشخص می‌کند که ابتدای آن مبدا مختصات و انتهای آن همان نقطه x است.

این تعریف به این معنی است که بین مبدا مختصات و نقطه  A ، یک بردار وجود دارد.

شکل ۲: یک بردار

 

اگر به این صورت بگیم که شروه در نقطهA(0,0) است، در این صورت بردار بالا، همان بردار \overrightarrow{OA} است. همچنین می‌توانیم اسم دلخواهی مانند \textbf{u} را برای آن در نظر بگیریم.

توجه:  نام بردار را می‌توان هم با فلشی بالای ‌ان و هم به صورت ضخیم نمایش داد.در این‌جا من از فلش بالای نام بردار مانند:\overrightarrow{OA} که از دو حرف انگلیسی تشکیل شده، استفاده می‌کنم. و زمانی که اسم بردار تک حرفی باشد، آن را به صورت ضخیم(Bold) می‌نویسم.

تا این‌جا فهمیدیم که با چیزی به اسم بردار سروکار داریم. ولی به احتمال زیاد هنوز نمی‌دانیم که بردار چیست؟

تعریف: بردار شیٔ‌ای است دارای جهت و اندازه.

که در ادامه به این دو مفهوم می‌پردازیم.

۱) اندازه

اندازه یا طول بردار \textbf{x} به صورت \|\textbf{x}\| نوشته و به آن نرم گفته می‌شود.

برای بردار \overrightarrow{OA}، \|OA\|طول ضلع OA است.

شکل ۳

 

در شکل ۳ به راحتی می‌توانیم فاصله OA را به کمک قضیه فیثاغورث محاسبه کنیم:

    \[ OA^2 = OB^2 + AB^2\]


    \[ OA^2 = 3^2 + 4^2\]


    \[OA^2 = 25\]


    \[OA = \sqrt{25}\]


    \[\|OA\| = OA = 5\]

۲) جهت

جهت دومین جز‌ٔ یک بردار است.

 

تعریفجهت یک بردار مانند u(u_1,u_2)، بردار w(\frac{u_1}{\|u\|},\frac{u_2}{\|u\|}) است.

 

مختصات w از کجا میاد؟

درک کردن تعریف

برای پیدا کردن جهت یک بردار، به زاویه‌های آن نیاز خواهیم داشت

شکل ۴: جهت یک بردار

 

شکل ۴ بردار u(u_1,u_2) را با مختصات u_1 = 3 و u_2 = 4 نشان می‌دهد.

تعریف قبل را به این صورت نیز می‌توان بیان کرد:

تعریف ساده‌تر ۱: جهت بردار به وسیله زاویه بردار با محور افقی که آن را \theta و زاویه بردار با محور عمودی که ‌آن را \alpha می‌نامیم، تعریف می‌شود.

 

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

 

در یک مثلث قائم‌الزاویه، کسینوس زاویه \beta به صورت زیر محاسبه می‌شود.

    \[\cos(\beta) = \frac{adjacent}{hypotenuse}\]

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

 

تعریف ساده ۲: جهت بردار به وسیله کسینوس زاویه \theta و کسینوس زاویه \alpha تعریف می‌شود.

    \[\cos(\theta) = \frac{u_1}{\|u\|}\]


    \[\cos(\alpha) = \frac{u_2}{\|u\|}\]

با توجه به مقدار اولیه بردار W، دلیل نام‌گذاری مختصات آن به جهت کسینوسی اکنون برای ما مشخص شده است.

 

    \[\cos(\theta) = \frac{u_1}{\|u\|} = \frac{3}{5} = 0.6\]

و

    \[\cos(\alpha) = \frac{u_2}{\|u\|} = \frac{4}{5} = 0.8\]

جهت بردار u(3,4)، بردار w(0.6,0.8) است.

اگر این بردار را رسم کنیم، شکل ۵ را خواهیم داشت:

شکل ۵: جهت بردار u

 

‌می‌توان مشاهده کرد که w در واقع از نظر ظاهری بسیار شبیه است، به جز این‌که کمی کوچک‌تر است. نکته جالبی که در مورد بردارهای جهت وجود دارد این است که نرم آن‌ها همیشه برابر با ۱ است. به همین دلیل ‌آن‌ها را بردارهای واحد می‌نامیم.

جمع دو بردار

شکل ۶: دو بردار و v

 

اگر دو بردار u(u_1,u_2) و v(v_1,v_2) را داشته باشیم، در این صورت جمع آن‌ها به صورت زیر خواهد بود:

    \[u + v = (u_1 + v_1,u_2 + v_2)\]

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

شکل ۷: جمع دو بردار

تفاضل بین دو بردار

تفاضل دو بردار هم مشابه جمع آن‌ها عمل می‌کند.

    \[u - v = (u_1 - v_1,u_2 - v_2)\]

شکل ۸: تفاضل دو بردار

 

از آن‌جایی که عمل تفاضل دارای خاصیت جابجایی است، می‌توان حالت دیگری را نیز در نظر گرفت:

    \[v - u = (v_1 - u_1,v_2 - u_2)\]

شکل ۹: تفاضل u – v

 

دو تصویر آخر، بردارهای درستی که توسط تفاضل بردارهای u و به دست آمده‌اند را نمایش می‌دهند.

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

پس اگر جایی بردار تفاضلی به صورت زیر دیدید تعجب نکنید:

شکل ۱۰: راه دیگری برای نمایش تفاضل v – u

 

و

شکل ۱۱: راه دیگری برای نمایش تفاضل u – v

 

با توجه به ریاضیات ممکن  است که این نوع نمایش اشتباه به نظر برسد. به دلیل این که انتهای بردار u – v در نقطه صحیحی قرار نمی‌گیرد. ولی این یک راه آسان برای فکر کردن در مورد بردارها است که معمولا ما ترجیح می‌دهیم به این صورت با آن‌ها برخورد کنیم.

 

ضرب نقطه‌ای

یکی ار علائمی که برای فهم SVM خیلی مهم است، ضرب نقطه‌ای نام دارد.

 

تعریف: از لحاظ هندسی، ضرب اندازه‌های اقلیدسی دو بردار و کسینوس زاویه بین آن‌ها، ضرب برداری نام دارد.

 

که یعنی اگر ما دو بردار و را داشته باشیم و زاویه بین آن‌ها برابر \theta باشد، ضرب نقطه‌ای آن‌ها برابر است با:

    \[x . y = \|x|\|\|y\|\cos(\theta)\]

چرا؟

برای پاسخ دادن به این سؤال، به مسأله از لحاظ هندسی نگاه می‌کنیم.

شکل ۱۲

 

در تعریف، از \cos(\theta) صحبت شد، پس بررسی می‌کنیم که این \cos(\theta) چیست؟

طبق تعریف می‌دانیم که در یک مثلث قائم‌الزاویه:

    \[\cos(\theta) = \frac{adjacent}{hypotenuse} \]


ولی در شکل مثلث قائم‌الزاویه‌ای وجود ندارد.

با این حال اگر از زاویه دیگری به شکل ۱۲ نگاه کنیم، می‌توانیم دو مثلث قائم‌الزاویه که هر بردار با محور افقی ایجاد می‌کند را پیدا کنیم.

شکل ۱۳

و

شکل ۱۴

 

پس شکل مسأله زیر را می‌توان به صورت زیر نشان داد:

شکل ۱۵

 

می‌توان مشاهده کرد که

    \[\theta = \beta - \alpha\]

پس محاسبه \cos(\theta) به محاسبه \cos(\beta - \alpha) تبدیل شد.

فرمول خاصی به نام کسینوس تفاضل دو زاویه وجود دارد که به صورت زیر نوشته می‌شود:

    \[\cos(\beta - \alpha) = \cos(\beta)\cos(\alpha) + \sin(\beta)\sin(\alpha)\]

(در صورت تمایل می‌توانید توضیحات بیشتر راجع به این فرمول را در اینجا بخوانید.)

اجازه دهید از این فرمول استفاده کنیم!

    \[\cos(\beta) = \frac{adjacent}{hypotenuse} = \frac{x_1}{\|x\|} \]

    \[\sin(\beta) = \frac{opposite}{hypotenuse} = \frac{x_2}{\|x\|} \]

    \[\cos(\alpha) = \frac{adjacent}{hypotenuse} = \frac{y_1}{\|y\|} \]

    \[\sin(\alpha) = \frac{opposite}{hypotenuse} = \frac{y_2}{\|y\|} \]

پس اگر هر عبارت را جایگزین کنیم داریم

    \[\cos(\theta) = \cos(\beta - \alpha) = \cos(\beta)\cos(\alpha) + \sin(\beta)\sin(\alpha)\]

    \[\cos(\theta) = \frac{x_1}{\|x\|}\frac{y_1}{\|y\|} + \frac{x_2}{\|x\|}\frac{y_2}{\|y\|}\]

اگر دو طرف را در \|x\|\|y\| ضرب کیم داریم:

    \[\|x\|\|y\|\cos(\theta) = x_1y_1 + x_2y_2\]

که برابر است با:

    \[\|x\|\|y\|\cos(\theta) = x . y\]

فرمولی که همین الآن به آن رسیدیم، تعریف هندسی ضرب نقطه‌ای است!

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

    \[x . y = x_1y_1 + x_2y_2 = \displaystyle\sum_{i=1}^{2} (x_iy_i)\]

فرمول بالا نیز تعریف جبری ضرب نقطه‌ای است.

 

چند جمله در مورد نماد ضرب نقطه‌ای (.)

به این دلیل به این نماد ضرب نقطه‌ای گفته می‌شود که برای نمایش آن، یک نقطه بین دو بردار گذاشته ‌می‌شود.

وقتی در مورد ضرب نقطه‌ای x . y صحبت می‌کنیم مانند این است که درباره مفاهیم زیر صحبت کنیم

  • ضرب داخلی \langle x , y \rangle (در جبر خطی)
  • ضرب اسکالر به دلیل این که وقتی ما ضرب دو بردار را انجام می‌دهیم، یک اسکالر(یک عدد حقیقی) را بر می‌گرداند.

تصویر عمود یک بردار

با داشتن دو بردار x و y می‌خواهیم تصویر عمود بر روی را پیدا کنیم.

شکل ۱۶

 

برای این منظور بردار را روی تصویر می‌کنیم

شکل ۱۷

 

این کار بردار را به ما خواهد داد

شکل ۱۸ تصویر روی y  است

 

طبق تعریف:

    \[\cos(\theta) = \frac{\|z\|}{\|x\|} \]

    \[\|z\| = \|x\|\cos(\theta)\]

در مورد ضرب نقطه‌ای در همین بخش دیدیم که

    \[\cos(\theta) = \frac{x . y}{\|x\|\|y\|}\]

پس در معادله بالا \cos(\theta) را جایگذاری می‌کنیم:

    \[\|z\| = \|x\|\frac{x . y}{\|x\|\|y\|}\]

    \[\|z\| = \frac{x . y}{\|y\|}\]

اگر بردار را به عنوان جهت بردار تعریف کنیم، در این صورت:

    \[u = \frac{y}{\|y\|}\]

و

    \[\|z\| = u . x\]

در این صورت راه ساده‌ای برای محاسبه نرم بردار خواهیم داریم.

از آن‌جایی که این بردار جهت یکسانی با بردار y دارد، پس آن هم بردار جهت را خواهد داشت.

    \[u = \frac{z}{\|z\|}\]

    \[z = \|z\|u\]

و می‌تولن گفت که:

 

بردار z = (u . x)u تصویر بردار بر روی است.

 

چرا علاقمند شدیم که درباره تصویر عمود بردار بدانیم؟ در مثال ما این بردار به ما این اجازه را می‌دهد تا فاصله بین x و نقطه‌ای که خط عمود، بردار را قطع می‌کند، محاسبه کنیم.

شکل ۱۹

 

می‌توان مشاهده کرد که این فاصله برابر \|x - z\| است.

    \[\|x - z\| = \sqrt{(3 - 4)^2 + (5 - 1)^2} = \sqrt{17}\]

ابرصفحه SVM

درک معادله ابرصفحه

به احتمال زیاد از قبل می‌دانید که معادله یک خط y = ax + b است. با این وجود زمانی که در مورد ابرصفحه مطالعه می‌کنیم، متوجه می‌شویم که معادله یک ابرصفحه به صورت زیر تعریف می‌شود:

    \[W^TX = 0\]

این دو معادله چه شباهتی به هم دارند و چطور باهم مرتبطند؟

در معادله ابرصفحه می‌توانید مشاهده کنید که نام متغیر‌ها به صورت ذخیم نوشته شده‌اند به این معنی که آن‌ها بردار هستند! علاوه بر این W^TX روشی است که ما ضرب داخلی دو بردار را محاسبه می‌کنیم و اگر دقت کنید، ضرب داخلی نام دیگر ضرب نقطه‌ای است.

توجه کنید که

    \[y = ax + b\]

را می‌توان به این صورت نیز نوشت

    \[y - ax -b = 0\]

با داشتن دو بردار 

{W\begin{pmatrix}-b\\-a\\1\end{pmatrix}

و

{X\begin{pmatrix}1\\x\\y\end{pmatrix}

 

    \[W^TX = - b * (1) + (-a) * x + 1 * y\]


    \[W^TX = y -ax - b\]

دو معادله اخیر در واقع را‌های متفاوت نشان دادن یک چیز یکسان هستند.

 

جالب است که اگر توجه کنیم W_0 همان - b است. یعنی این مقدار محل تلاقی خط با محور عمودی را مشخص می‌کند.

چرا ما از معادله ابر صفحه W^T به‌جای y = ax - b استفاده می‌کنیم؟

به دو دلیل:

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

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

 

محاسبه فاصله یک نقطه تا ابرصفحه

 

در شکل ۲۰ ابرصفحه‌ای را داریم که گروهی از داده‌ها را تفکیک می‌کند.

شکل ۲۰

 

برای سادگی مقدار W_0 را برابر ۰ در نظر می‌گیریم.

 

همان‌طور که در شکل ۲۰ مشاهده می‌کنید، معادله ابرصفحه برابر است با:

    \[x_2 = - 2x_1\]

که برابر است با

    \[W^Tx = 0\]

با پارامترهای:

{W\begin{pmatrix}2\\1\end{pmatrix}

و

{X\begin{pmatrix}x_1\\x_2\end{pmatrix}

 

توجه کنید که بردار w در شکل ۲۰ نمایش داده شده است. (نقطه یک قلم داده نیست.)

 

می‌خواهیم فاصله بین نقطه A(3 , 4) و ابرصفحه را محاسبه کنیم.

 

و این همان فاصله بین A و تصویرش روی ابرصفحه است.

شکل ۲۱

 

می‌توان نقطه را به صورت برداری نشان داد که ابتذای آن مبدٔ مختصات است.

اگر بردار را روی بردار نرمال تصویر کنیم

شکل ۲۲: تصویر روی w

 

بردار به دست خواهد آمد.

شکل ۲۳تصویر بردار روی w است.

 

هدف ما پیدا کردن فاصله بین نقطه A(3 , 4) و ابرصفحه است.

می‌توان در شکل ۲۳ مشاهده کرد که این فاصله همان اندازه بردار p (\|p\|) است.

اجازه دهید که این مقدار را محاسبه کنیم.

 

با دو بردار  که نرمال ابرصفحه است و  که بردار بین مبدأ مختصات و نقطه است شروع می‌کنیم.

    \[\|w\| = \sqrt{2^2 + 1^2} = \sqrt{5}\]

اگر بردار جهت بردار باشد

    \[u = (\frac{2}{\sqrt{5}}, \frac{1}{\sqrt{5}})\]

تصویر بردار روی w است. در نتیجه:

    \[p = (u . a)u\]


    \[p = (3 * \frac{2}{\sqrt{5}} + 4 * \frac{1}{\sqrt{5}})\]


    \[p = (\frac{6}{\sqrt{5}} + \frac{4}{\sqrt{5}})\]


    \[p = \frac{10}{\sqrt{5}}u\]


    \[p = (\frac{10}{\sqrt{5}} * \frac{2}{\sqrt{5}}, \frac{10}{\sqrt{5}} * \frac{1}{\sqrt{5}})\]


    \[p = (\frac{20}{5}, \frac{10}{5})\]


    \[p = (4, 2)\]


    \[\|p\| = \sqrt{4^2 + 2^2} = 2\sqrt{5}\]

محاسبه حاشیه ابرصفحه

حال که فاصله \|p\| بین و ابرصفحه را داریم، حاشیه به صورت زیر محاسبه می‌شود:

    \[margin = 2\|p\| = 4\sqrt{5}\]

خب تبریک میگم! حاشیه ابرصفحه را محاسبه کردیم!

 

 


نتیجه‌گیری

این پایان قسمت دوم از آموزش ریاضیات پشت SVM است.

درباره مطالب ریاضی مربوط به این بحث، مطالب بیشتری وجود دارد. اما من امیدوارم که بتوانید باقی‌مانده مطالب را بدون مشکل دنبال کنید.

 

بعدش چی؟

حال که یاد گرفتیم چطور حاشیه را محاسبه کنیم، ممکن است که نیاز داشته باشیم تا نحوه انتخاب بهترین ابرصفحه را بدانیم. این مطلب در مقاله SVM درک مفاهیم ریاضی مورد نیاز قسمت سوم توضیح داده خواهد شد.

اشتراک‌گذاری

2 فکر می‌کنند “SVM – درک مفاهیم ریاضی مورد نیاز – قسمت دوم

  1. فروغ

    سلام به خاطر مطلب خوب تون بسیار سپاسگزارم.
    دو تا سوال دارم
    لینک قسمت بعدی این آموزش رو پیدا نکردم.
    در نهایت که p به دست اومد چرا حاشیه شد ۲||p|| ؟ عدد ۲ رو متوجه نمی شم؟ ممنون

    1. پیمان برجوییان نویسنده

      سلام. خواهش می‌کنم. ممنون از نظرتون.
      قسمت‌های بعدی این آموزش رو متأسفانه هتوز فرصت نکردم که بنویسم.

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

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

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

7 + دوازده =