رگرسیون خطی: نزول گرادیان

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

این مدل تمرین را با وزنه های تصادفی و بایاس های نزدیک به صفر شروع می کند و سپس مراحل زیر را تکرار می کند:

  1. افت را با وزن فعلی و تعصب محاسبه کنید.

  2. جهت حرکت وزنه ها و سوگیری هایی که از دست دادن را کاهش می دهند، تعیین کنید.

  3. مقادیر وزن و سوگیری را به مقدار کمی در جهتی حرکت دهید که از دست دادن کاسته شود.

  4. به مرحله یک بازگردید و این روند را تکرار کنید تا زمانی که مدل نتواند ضرر را بیشتر کاهش دهد.

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

شکل 12. تصویر فرآیند نزول گرادیان.

شکل 12 . گرادیان نزول یک فرآیند تکراری است که وزن ها و سوگیری هایی را پیدا می کند که مدل را با کمترین افت تولید می کند.

برای کسب اطلاعات بیشتر در مورد ریاضیات پشت شیب نزول، روی نماد مثبت کلیک کنید.

در یک سطح ملموس، می‌توانیم با استفاده از یک مجموعه داده کوچک با هفت مثال برای سنگینی خودرو بر حسب پوند و امتیاز مایل در هر گالن، مراحل فرود گرادیان را طی کنیم:

پوند در 1000 ثانیه (ویژگی) مایل در هر گالن (برچسب)
3.5 18
3.69 15
3.44 18
3.43 16
4.34 15
4.42 14
2.37 24
  1. این مدل با تنظیم وزن و بایاس روی صفر شروع به تمرین می کند:
  2. $$ \small{Weight:\ 0} $$$$ \small{Bias:\ 0} $$$$ \small{y = 0 + 0(x_1)} $$
  3. محاسبه ضرر MSE با پارامترهای مدل فعلی:
  4. $$ \small{Loss = \frac{(18-0)^2 + (15-0)^2 + (18-0)^2 + (16-0)^2 + (15-0)^2 + (14-0)^2 + (24-0)^2}{7}} $$$$ \small{Loss= 303.71} $$
  5. شیب مماس بر تابع تلفات در هر وزن و بایاس را محاسبه کنید:
  6. $$ \small{Weight\ slope: -119.7} $$$$ \small{Bias\ slope: -34.3} $$

    برای آشنایی با محاسبه شیب روی نماد مثبت کلیک کنید.

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

    معادله پیش بینی را به صورت زیر می نویسیم:
    $ f_{w,b}(x) = (w*x)+b $.

    مقدار واقعی را به صورت زیر می نویسیم: $ y $.

    ما MSE را با استفاده از:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)})^2 $
    که $i$ نشان دهنده مثال آموزشی $ith$ و $M$ تعداد نمونه ها را نشان می دهد.

    مشتق وزن

    مشتق تابع ضرر با توجه به وزن به صورت زیر نوشته می شود:
    $ \frac{\partial }{\partial w} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{( i)})^2 دلار

    و ارزیابی می کند:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2x_{(i)} $

    ابتدا هر مقدار پیش بینی شده را منهای مقدار واقعی جمع می کنیم و سپس آن را در دو برابر مقدار ویژگی ضرب می کنیم. سپس جمع را بر تعداد مثال ها تقسیم می کنیم. نتیجه شیب خط مماس بر مقدار وزن است.

    اگر این معادله را با وزن و بایاس برابر با صفر حل کنیم، برای شیب خط 7/119- بدست می آید.

    مشتق تعصب

    مشتق تابع ضرر با توجه به بایاس به صورت زیر نوشته می شود:
    $ \frac{\partial }{\partial b} \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{( i)})^2 دلار

    و ارزیابی می کند:
    $ \frac{1}{M} \sum_{i=1}^{M} (f_{w,b}(x_{(i)}) - y_{(i)}) * 2 $

    ابتدا هر مقدار پیش بینی شده را منهای مقدار واقعی جمع می کنیم و سپس آن را در دو ضرب می کنیم. سپس جمع را بر تعداد مثال ها تقسیم می کنیم. نتیجه شیب خط مماس بر مقدار بایاس است.

    اگر این معادله را با وزن و بایاس برابر با صفر حل کنیم، برای شیب خط 3/34- بدست می آید.

  7. مقدار کمی را در جهت شیب منفی حرکت دهید تا وزن و سوگیری بعدی را بدست آورید. در حال حاضر، ما به طور دلخواه "مقدار کوچک" را 0.01 تعریف می کنیم:
  8. $$ \small{New\ weight = old\ weight - (small\ amount * weight\ slope)} $$$$ \small{New\ bias = old\ bias - (small\ amount * bias\ slope)} $$$$ \small{New\ weight = 0 - (0.01)*(-119.7)} $$$$ \small{New\ bias = 0 - (0.01)*(-34.3)} $$$$ \small{New\ weight = 1.2} $$$$ \small{New\ bias = 0.34} $$

از وزن جدید و بایاس برای محاسبه کاهش و تکرار استفاده کنید. با تکمیل فرآیند برای شش تکرار، وزن‌ها، سوگیری‌ها و ضررهای زیر را دریافت می‌کنیم:

تکرار وزن تعصب ضرر (MSE)
1 0 0 303.71
2 1.2 0.34 170.67
3 2.75 0.59 67.3
4 3.17 0.72 50.63
5 3.47 0.82 42.1
6 3.68 0.9 37.74

می بینید که با هر وزن به روز شده و تعصب، ضرر کمتر می شود. در این مثال، پس از شش بار تکرار متوقف شدیم. در عمل، یک مدل تمرین می کند تا زمانی که همگرا شود . هنگامی که یک مدل همگرا می شود، تکرارهای اضافی ضرر را بیشتر کاهش نمی دهند زیرا نزول گرادیان وزن ها و سوگیری هایی را پیدا کرده است که تقریباً تلفات را به حداقل می رساند.

اگر مدل به آموزش همگرایی گذشته ادامه دهد، ضرر شروع به نوسان در مقادیر کم می کند زیرا مدل به طور مداوم پارامترها را حول پایین ترین مقادیر خود به روز می کند. این می تواند تأیید اینکه مدل واقعاً همگرا شده است را دشوار کند. برای تأیید همگرایی مدل، باید تمرین را تا زمانی که ضرر تثبیت شود ادامه دهید.

منحنی های همگرایی و تلفات مدل

هنگام آموزش یک مدل، اغلب به منحنی ضرر نگاه می کنید تا مشخص کنید آیا مدل همگرا شده است یا خیر. منحنی ضرر نشان می دهد که چگونه زیان با آموزش مدل تغییر می کند. در زیر منحنی ضرر معمولی به نظر می رسد. تلفات در محور y و تکرارها در محور x هستند:

شکل 13. نمودار منحنی تلفات که کاهش شدید و سپس کاهش ملایم را نشان می دهد.

شکل 13 . منحنی ضرر که مدل را در اطراف علامت تکرار 1000 همگرا نشان می دهد.

می‌توانید ببینید که ضرر در چند تکرار اول به‌طور چشمگیری کاهش می‌یابد، سپس به تدریج کاهش می‌یابد قبل از اینکه در اطراف علامت تکرار 1000 صاف شود. پس از 1000 تکرار، ما می توانیم اکثراً مطمئن باشیم که مدل همگرا شده است.

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

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

در شکل زیر می بینیم که در حوالی تکرار دوم مدل به دلیل مقدار زیاد ضرر در پیش بینی خوب نیست.

شکل 14. منحنی تلفات و نمودار مربوط به مدل، که از نقاط داده کج می شود.

شکل 14 . منحنی ضرر و عکس فوری مدل در ابتدای فرآیند آموزش.

در حدود 400 تکرار، می‌توانیم ببینیم که نزول گرادیان وزن و سوگیری را پیدا کرده است که مدل بهتری را تولید می‌کند.

شکل 15. منحنی تلفات و نمودار متناظر مدل، که نقاط داده را قطع می کند اما در زاویه بهینه نیست.

شکل 15 . منحنی ضرر و عکس فوری از مدل در اواسط راه آموزش.

و در حدود هزارمین تکرار، می‌توانیم ببینیم که مدل همگرا شده است و مدلی با کمترین ضرر ممکن تولید می‌کند.

شکل 16. منحنی ضرر و نمودار مربوط به مدل که به خوبی با داده ها مطابقت دارد.

شکل 16 . منحنی ضرر و عکس فوری از مدل نزدیک به پایان فرآیند آموزش.

تمرین: درک خود را بررسی کنید

نقش نزول گرادیان در رگرسیون خطی چیست؟
نزول گرادیان یک فرآیند تکراری است که بهترین وزنه ها و سوگیری هایی را پیدا می کند که تلفات را به حداقل می رساند.
نزول گرادیان کمک می کند تا مشخص شود از چه نوع ضرری در هنگام آموزش یک مدل استفاده شود، به عنوان مثال، L 1 یا L 2 .
نزول گرادیان در انتخاب تابع ضرر برای آموزش مدل دخالتی ندارد.
نزول گرادیان، نقاط پرت را از مجموعه داده حذف می کند تا به مدل کمک کند تا پیش بینی های بهتری داشته باشد.
نزول گرادیان مجموعه داده را تغییر نمی دهد.

توابع همگرایی و محدب

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

اگر سطح افت را برای یک مدل با یک ویژگی ترسیم کنیم، می‌توانیم شکل محدب آن را ببینیم. در زیر سطح تلفات مایل به ازای هر گالن مجموعه داده استفاده شده در مثال های قبلی است. وزن در محور x، بایاس در محور y، و کاهش در محور z است:

شکل 17. نمودار 3 بعدی سطح تلفات.

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

در این مثال، وزن 5.44- و بایاس 35.94 کمترین ضرر را در 5.54 ایجاد می کند:

شکل 18. نمودار 3 بعدی سطح تلفات، با (5.44-، 35.94، 5.54) در پایین.

شکل 18 . سطح از دست دادن وزن و مقادیر سوگیری را نشان می دهد که کمترین افت را ایجاد می کند.

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

شکل 19. سطح از دست دادن 3 بعدی محدب با نقاط نزولی گرادیان در حال حرکت به پایین ترین نقطه.

شکل 19 . نمودار تلفات که نقاط شیب نزولی را نشان می دهد که در پایین ترین نقطه نمودار متوقف شده اند.

توجه داشته باشید که نقاط از دست دادن سیاه شکل دقیق منحنی از دست دادن را ایجاد می کنند: یک نزول تند قبل از شیب تدریجی به پایین تا زمانی که به پایین ترین نقطه در سطح تلفات برسند.

توجه به این نکته مهم است که مدل تقریباً هرگز حداقل دقیق را برای هر وزن و بایاس پیدا نمی کند، اما در عوض مقداری بسیار نزدیک به آن پیدا می کند. همچنین مهم است که توجه داشته باشید که حداقل برای وزن ها و بایاس با صفر تلفات مطابقت ندارد، فقط مقداری که کمترین تلفات را برای آن پارامتر ایجاد می کند.

با استفاده از مقادیر وزن و بایاس که کمترین تلفات را ایجاد می کنند - در این مورد وزن 5.44- و بایاس 35.94 - می توانیم مدل را نمودار کنیم تا ببینیم چقدر با داده ها مطابقت دارد:

شکل 20. نمودار پوند در 1000 ثانیه در مقابل مایل بر گالن، با مدل متناسب با داده ها.

شکل 20. مدل با استفاده از مقادیر وزن و بایاس که کمترین تلفات را ایجاد می کند، نمودار شده است.

این بهترین مدل برای این مجموعه داده خواهد بود زیرا هیچ وزن و ارزش دیگری مدلی با تلفات کمتر تولید نمی کند.