حامد جاویدپور
حامد جاویدپور
خواندن ۳ دقیقه·۳ سال پیش

تابع ضرر ( loss function ) در شبکه های عصبی

به یاد داریم در قسمت " انتشار عقبگرد " در مورد این صحبت شد که در مرحله back propagation, پارامتر های شبکه عصبی بر اساس مشتق تابع ضرر نسبت به هرکدام از پارامتر ها تغییر میکنند؛ برای توضیح بیشتر راجع به این جمله، مفهوم مشتق را با مثالی یادآوری میکنیم.

مفهوم مشتق
مفهوم مشتق

در عبارت f = 2w + 3b، تابع f از دو متغیر w ,b تشکیل شده است. در تابع فوق همانطور که از ریاضیات دبیرستان در خاطر دارید، تغییرات تابع f نسبت به b ، عدد 3 و نسبت به w مقدار 2 است؛ یعنی با هر واحد تغییر در b ما ۳ واحد تغییر در f داریم و با هر واحد تغییر در w ، دو واحد تغییر را در f داریم. ( مثلا با 2 واحد تغییر در w ، مقدار f به اندازه 2×2 واحد تغییر میکند.)

حال متوجه میشویم اگر به عنوان مثل معادله تابع ضرر یک شبکه عصبی، همان تابع f باشد و پارامتر ها w و b باشند ( وزن های نورون های شبکه عصبی )، تغییرات w و b در هر epoch از شبکه عصبی بر اساس مقدار مشتق تابع بر اساس همان پارامتر است.( به یک مرحله خوانش و یادگیری از روی دیتا ها یک epoch گفته می شود. )

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


حال به مفهوم خود تابع ضرر بپردازیم:

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

یک مثال بسیار ساده از تابع ضرر
یک مثال بسیار ساده از تابع ضرر

به عنوان مثال اگر با استفاده از داده ای که به شبکه عصبی feed میکنیم، خروجی 5 حاصل شود و مقدار واقعی داده 15 باشد با تابع ضرر فرضی

Loss func = ( y - ý )2

y = مقدار واقعی داده

ý = خروجی شبکه عصبی

در مثال فوق مقدار تابع loss برابر است با 100.

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

اگر ما روند یادگیری عمیق را به درستی طی کنیم، بعد از چند epoch یادگیری شبکه، اصولا می توان خروجی مانند مقدار فوق را انتظار داشت؛ در جدول فوق، مقدار loss برابر است با 9. با توجه به این که مقدار تابع کمتر می شود، پس شبکه به درستی train شده است.


در کلام خلاصه، ما در روند یادگیری عمیق، وقتی شبکه عصبی را train میکنیم، نیاز به عبارتی جبری داریم که بتواند تاثیر پارامتر های مختلف شبکه عصبی را بر خروجی شبکه بسنجد و در عین حال خروجی پیشبینی شده (ý) و مقدار اصلی داده (y) را مقایسه کند ؛همچنین این تابع معیاری برای تغییرات پارامتر ها یا وزن های شبکه عصبی در جهت افزایش دقت خروجی شبکه عصبی است.

نمودار یک تابع ضرر
نمودار یک تابع ضرر


یادگیری عمیقهوش مصنوعییادگیری ماشینloss functionشبکه عصبی
علاقه مند و برنامه نویس حوزه هوش مصنوعی در سلامت و علم داده - دانش جوی پزشکی
شاید از این پست‌ها خوشتان بیاید