تا %60 تخفیف خرید برای 3 نفر با صدور مدرک فقط تا
00 00 00
در توسینسو تدریس کنید

دوره آموزشی یادگیری عمیق |‌ Deep Learning قسمت ۵ : توابع خطا

مقدمه

یکی از مهم ترین بخش های تعلیم یک شکبه عصبی محاسبه میزان خطای آن در پیشبینی هایش است. برای این منظور از تابع هایی با عنوان تابع های خطا یا Cost / Loss Functions استفاده می کنیم که در این جلسه در مورد این تابع ها بحث می کنیم و مواردی از این قبیل را بررسی خواهیم کرد:

  1. فرایند یادگیری شبکه های عصبی چگونه است ؟
  2. توابع خطا چگونه کار می کنند؟
  3. بررسی توابع خطا پرکاربرد برای Binary Classification

فرایند یادگیری شبکه های عصبی چگونه است ؟

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

توابع خطا چگونه کار می کنند ؟‌

همانطور که توضیح دادیم خروجی پیشبینی شده توسط شبکه عصبی به همراه مقدار حقیقی ورودی داده شده , وارد تابع خطا می شود. پس می توان گفت توابع خطا عمدتا دو ورودی دارند که عبارتند از Ypred (مقدار پیشبینی شده)  و Ytrue (مقدار حقیقی). سپس این توابع با استفاده از این دو ورودی شروع به محاسبه میزان فاصله مقدار پیشبینی شده با مقدار حقیقی می کنند. که این کار را می توانند با روش های مختلفی انجام دهند. و پس از انجام محاسبات , این فاصله را به عنوان خطا باز می گردانند. هر Task تابع خطا مخصوص به خود را دارد برای مثال تابع خطا یک شکبه عصبی که وظیفه آن Classification است با تابع خطا یک شبکه عصبی که وظیفه آن Regression است متفاوت خواهد بود. اما هردو آن ها نهایتا فاصله بین خروجی پیشبینی شده با مقدار حقیقی را محاسبه می کنند.

نکته Classification و Regression در جلسه دوم توضیح داده شده.

Binary Classification چیست ؟

Binary Classfication در واقع به معنای طبقه بندی بین ۰ و ۱ است به این معنا که یا ورودی شرط لازم را دارد و ۱ است و یا شرط را نداشته و ۰ است برای مثال یک عکس یا گربه است یا نیست که این طبقه بندی می تواند به دو شکل انجام شود:

  1. خروجی عددی بین 0 , ۱ باشد. (Logistic Regression)
  2. خروجی یا ۰ یا ۱ است.

توابع خطا پرکاربرد در ‌Binary Classification

در این قسمت به طور خلاصه با سه تابع خطا پرکاربرد در زمینه Binary Classification آشنا می شویم. نکته در تمام این توابع Ypred مقدار پیشبینی شده و Ytrue مقدار حقیقی است.

L1 Loss Fcuntion

Loss = |Ypred - Ytrue|

L2 Loss Function

Loss = (Ypred - Ytrue

Binary Cross-Entropy Loss

Loss = -Ytruelog(Ypred)-(1 - Ytrue)log(1 - Ypred)

 

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

 

حال خواهیم داشت که با کاهش مقدار این توابع یا اصطلاحا minimize کردن آن ها مقدار خطای شبکه عصبی کمتر شده و می تواند دقیق تر خروجی خود را محاسبه کند. که درمورد چگونگی minimize کردن آن در جلسات بعدی بحث خواهیم کرد.

 

نکته لگاریتم در ویدیو آموزشی توضیح داده شده است

نکته در ویدیو اشتباها مقدار عدد e را  2.3 فرض کرده ایم اما مقدار حقیقی آن 2.718 است

نویسنده: محمد مهدی نوری برجی

هرگونه کپی برداری از متن بدون ذکر منبع و نام نویسنده مشکل اخلاقی دارد

نظر شما
برای ارسال نظر باید وارد شوید.
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...