چگونه یک مدل خطی را به کمک داده‌های آموزشی ایجاد کنیم؟

سلام. سال نوتون (۱۳۹۷) مبارک باشه. امیدوارم همگی سالی پر از پیشرفت و به دور از همه کلیشه‌های اعصاب‌خورد کن رو پیش رومون داشته باشیم. این اولین پست امسال هست و دارم این رو در بهترین موقعیت که شب باشه و در یکی از بهترین فصل‌های سال که بهار باشه می‌نویسم که تقدیم حضورتون کنم. برای کسانی که هنوز باهم آشنا نشدیم من پیمان برجوییان هستم و به حوزه‌های یادگیری ماشینی و علم داده علاقمندم.

در ابن پست قصد دارم که راجع به مدل‌های خطی و این که چطور در فرآیند آموزش این این مدل‌ها، خطا به حداقل می‌رسه بنویسم. در کتاب Elements of Statistical Learning ویرایش دوم صفحه ۴۵ به رابطه‌هایی که در مدل‌های خطی استفاده می‌شوند اشاره شده. ولی درباره اثبات و نحوه به‌دست آوردن آن‌ها توضیحی ارائه نشده است. بنابراین تصمیم گرفتم که اثبات‌ اون‌ها رو در این پست برای این که برای خودم هم بیشتر جا بیفته ارائه کنم. این نوشته رو خیلی وقته که تصمیم دارم بنویسم. همچنین این تصمیم رو در یک کافی‌شاپ گرفتم و طی چند روز هم در همون‌جا عملیش کردم. امشب هم فرصت کردم که اینجا قرارش بدم تا بقیه هم بتونن ازش استفاده کنن.

روش‌های زیادی برای انجام این کار وجود دارد، ولی یکی از پر استفاده‌ترین و مشهورترین روش‌ها، حداقل مربع‌های خطاها است. در این رویکرد ضرایب \beta را برای به حداقل رساندن مربع مجموع خطاها، انتخاب می‌کنیم.

    \[ RSS(\beta) = \sum_{i=1}^{N} (y_i - x_i^T\beta)^2 \]

\RSS(\beta) یک تابع درجه ۲ از پارامترهایش است و از این‌رو مقدار کمینه آن همیشه وجود دارد ولی ممکن است منحصر‌به‌فرد نباشد. نشان دادن راه حل به وسیله ماتریس‌ها راحت‌تر است. پس می‌توانیم بنویسیم:

    \[ RSS(\beta) = (y - X\beta)^T(y - X\beta) \]

که در آن X یک ماتریس N*p و هر سطر آن یک بردار ورودی است. همچنین y یک بردار Nتایی از خروجی‌های موجود در مجموعه داده آموزشی است. با مشتق‌گیری w.r.t بر حسب \beta، معادله نرمال شده زیر را خواهیم داشت:

    \[ -2X^T(y - X\beta)=0 \]

اگر X^TX یک ماتریس معکوس‌پذیر باشد، پاسخ منحصر‌به‌فرد به وسیله رابطه زیر بدست می‌آید:

    \[ \hat{\beta}=(X^TX)^{-1}X^Ty \]

اما این رابطه‌ها چطور محاسبه می‌شوند و از کجا به دست آمده‌اند:

فرض کنید که:

    \[ \mathbf{y} = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_N \end{bmatrix} \]

    \[ \mathbf{X} = \begin{bmatrix} x_{11} & x_{12} & \cdots & x_{1p} \\ x_{21} & x_{22} & \cdots & x_{2p} \\ \vdots & \vdots & \vdots & \vdots \\ x_{N1} & x_{N2} & \cdots & x_{Np} \end{bmatrix} \]

و

    \[ \beta = \begin{bmatrix} b_1 \\ b_2 \\ \vdots \\ b_p \end{bmatrix}\text{Barjoueian.com} \]

باشد.

در نتیجه \mathbf{X}\beta \in \mathbb{R}^N و

    \[ \mathbf{X}\beta = \begin{bmatrix} \sum_{j=1}^{p}b_jx_{1j} \\ \sum_{j=1}^{p}b_jx_{2j} \\ \vdots \\ \sum_{j=1}^{p}b_jx_{Nj} \end{bmatrix} \implies \mathbf{y}-\mathbf{X}\beta=\begin{bmatrix} y_1 - \sum_{j=1}^{p}b_jx_{1j} \\ y_2 - \sum_{j=1}^{p}b_jx_{2j} \\ \vdots \\ y_N - \sum_{j=1}^{p}b_jx_{Nj} \end{bmatrix} \text{.} \]

بنابراین،

    \[ (\mathbf{y}-\mathbf{X}\beta)^{T}(\mathbf{y}-\mathbf{X}\beta) = \|\mathbf{y}-\mathbf{X}\beta \|^2 = \sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)^2\text{.} \]

به ازای هر k = 1, \dots, p داریم:

    \[ \dfrac{\partial \text{RSS}}{\partial b_k} = 2\sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)(-x_{ik}) = -2\sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)x_{ik}\text{.} \]

در نتیجه:

    \[ \dfrac{\partial \text{RSS}}{\partial \beta} &= \begin{bmatrix} \dfrac{\partial \text{RSS}}{\partial b_1} \\ \dfrac{\partial \text{RSS}}{\partial b_2} \\ \vdots \\ \dfrac{\partial \text{RSS}}{\partial b_p} \end{bmatrix} \\ \]

    \[ = \begin{bmatrix} -2\sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)x_{i1} \\ -2\sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)x_{i2} \\ \vdots \\ -2\sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)x_{ip} \end{bmatrix} \\ \]

    \[ = -2\begin{bmatrix} \sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)x_{i1} \\ \sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)x_{i2} \\ \vdots \\ \sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)x_{ip} \end{bmatrix} \\ \]

    \[ = -2\mathbf{X}^{T}(\mathbf{y}-\mathbf{X}\beta)\text{.} \end{align} \]

مشتق دوم این رابطه نیز مشابه مراحل قبل محاسبه می‌شود.

    \[ \dfrac{\partial \text{RSS}}{\partial \beta^{T}} &= \begin{bmatrix} \dfrac{\partial \text{RSS}}{\partial b_1} & \dfrac{\partial \text{RSS}}{\partial b_2} & \cdots & \dfrac{\partial \text{RSS}}{\partial b_p} \end{bmatrix} \\ \]

    \[ = -2\begin{bmatrix} \sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)x_{i1} & \cdots & \sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)x_{ip} \end{bmatrix} \]

حال بر حسب \beta مشتق می‌گیریم:

    \[ \dfrac{\partial^2\text{RSS}}{\partial \beta\text{ }\partial\beta^{T}} &= \dfrac{\partial}{\partial\beta}\left(\dfrac{\partial \text{RSS}}{\partial \beta^{T}} \right) \\ \]

    \[ = \begin{bmatrix} -2\cdot \dfrac{\partial}{\partial b_1}\begin{bmatrix} \sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)x_{i1} & \cdots & \sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)x_{ip} \end{bmatrix} \\ \vdots \\ -2\cdot \dfrac{\partial}{\partial b_p}\begin{bmatrix} \sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)x_{i1} & \cdots & \sum_{i=1}^{N}\left(y_i-\sum_{j=1}^{p}b_jx_{ij}\right)x_{ip} \end{bmatrix} \end{bmatrix} \\ \]

    \[ = \begin{bmatrix} -2\begin{bmatrix} -\sum_{i=1}^{N}x_{i1}^2 & \cdots & -\sum_{i=1}^{N}x_{i1}x_{ip} \end{bmatrix} \\ \vdots \\ -2\begin{bmatrix} -\sum_{i=1}^{N}x_{i1}x_{ip} & \cdots & -\sum_{i=1}^{N}x_{ip}^2 \end{bmatrix} \end{bmatrix} \\ \]

    \[ = 2\mathbf{X}^{T}\mathbf{X}\text{.} \]

 

شاد باشید.


پانوشت(ها):

  • تصمیم دارم امسال یک لپ‌تاپ جدید بخرم و یک مک‌بوک پرو ۱۳ اینچی ۲۰۱۷ بدون تاچ‌بار با ۱۶ گیگ حافظه، پردازنده core i7 و فضای ۲۵۶ گیگ SSD رو در نظر دارم. پس اگه کسی رو می‌شناسید که همچین دستگاهی رو می‌فروشه یا می‌تونه برام گیر بیاره، خیلی خوشحالم می‌کنید اگه که بهم اطلاع بدین.
  • همچنان مشغول مطالعه کتاب «دنیای سوفی» نوشته «یوستین گوردر» هستم و به محض این که تمام شد اینجا راجع بهش می‌نویسم.
اشتراک‌گذاری

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

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

7 − 4 =