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

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

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

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

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

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

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

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

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

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

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

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

شکل ۱۲. نمودار منحنی زیان که یک کاهش شدید و سپس یک کاهش ملایم را نشان می‌دهد.

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

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

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

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

در شکل زیر، می‌توانیم ببینیم که در حدود تکرار دوم، مدل به دلیل میزان بالای تلفات، در پیش‌بینی خوب عمل نمی‌کند.

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

شکل ۱۳. منحنی تلفات و تصویر لحظه‌ای از مدل در ابتدای فرآیند آموزش.

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

شکل ۱۴. منحنی تلفات و نمودار مربوطه از مدل، که از نقاط داده عبور می‌کند اما نه در زاویه بهینه.

شکل ۱۴. منحنی تلفات و تصویر لحظه‌ای مدل در اواسط آموزش.

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

شکل ۱۵. منحنی زیان و نمودار مربوط به مدل، که به خوبی با داده‌ها مطابقت دارد.

شکل ۱۵. منحنی تلفات و تصویر لحظه‌ای از مدل در نزدیکی پایان فرآیند آموزش.

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

نقش گرادیان نزولی در رگرسیون خطی چیست؟
گرادیان نزولی یک فرآیند تکراری است که بهترین وزن‌ها و بایاس‌ها را پیدا می‌کند که تلفات را به حداقل می‌رساند.
گرادیان نزولی به تعیین نوع تلفات مورد استفاده هنگام آموزش یک مدل، مثلاً L1 یا L2 ، کمک می‌کند.
روش گرادیان نزولی در انتخاب تابع زیان برای آموزش مدل دخیل نیست.
روش گرادیان کاهشی، داده‌های پرت را از مجموعه داده‌ها حذف می‌کند تا به مدل کمک کند پیش‌بینی‌های بهتری انجام دهد.
روش گرادیان کاهشی مجموعه داده‌ها را تغییر نمی‌دهد.

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

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

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

شکل ۱۶. نمودار سه‌بعدی سطح تلفات.

شکل ۱۶. سطح تلفات که شکل محدب آن را نشان می‌دهد.

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

شکل ۱۷. نمودار سه‌بعدی سطح تلفات، با (-۵.۴۴، ۳۵.۹۴، ۵.۵۴) در پایین.

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

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

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

شکل ۱۸. نمودار تلفات که نقاط گرادیان نزولی را نشان می‌دهد که در پایین‌ترین نقطه نمودار متوقف می‌شوند.

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

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

شکل ۱۹. نمودار پوند در هزارم در مقابل مایل در هر گالن، با مدلی که داده‌ها را برازش می‌دهد.

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

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