قانون دلتا

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

برای یک عصب \displaystyle j با عملکرد فعال سازی {\displaystyle g(x)}، قاعده دلتا برای نورون \displaystyle i-امین وزن عصب \displaystyle j از طریق زیر محاسبه می  شود.

{\displaystyle \Delta w_{ji}=\alpha (t_{j}-y_{j})g'(h_{j})x_{i}}

که در آن:

{\displaystyle \alpha } یک ثابت کوچک به نام نرخ یادگیری است.

\displaystyle g(x) تابع فعال سازی عصب است.

{\displaystyle g'} مشتق \displaystyle g است.

{\displaystyle t_{j}}  خروجی هدف است.

{\displaystyle h_{j}}  مجموع وزنی ورودی های عصب است.

{\displaystyle y_{j}}  خروجی واقعی است.

{\displaystyle x_{i}} ورودی \displaystyle i-ام است.

نشان میدهد که {\textstyle h_{j}=\sum _{i}x_{i}w_{ji}} و {\displaystyle y_{j}=g(h_{j})}..

قانون دلتا معمولاً به شکل ساده شده برای یک عصب با تابع فعال سازی خطی به صورت زیر بیان می شود:

{\displaystyle \Delta w_{ji}=\alpha \left(t_{j}-y_{j}\right)x_{i}}

در حالی که قانون دلتا شبیه به قانون بروزرسانی پرسپترون است، اشتقاق متفاوت است. پرسپترون از تابع پله‌ای هویساید به عنوان تابع فعال سازی {\displaystyle g(h)} استفاده می کند, و این بدان معنی است که {\displaystyle g'(h)}  در صفر وجود ندارد و در جاهای دیگر برابر با صفر است, که استفاده مستقیم از قانون دلتا را غیرممکن می کند.

## اشتقاق قاعده دلتا
قانون دلتا با تلاش برای به حداقل رساندن خطا در خروجی شبکه عصبی از طریق گرادیان کاهشی مشتق شده است. خطای شبکه عصبی با خروجی های j را می توان به این صورت اندازه گیری کرد:

{\displaystyle E=\sum _{j}{\tfrac {1}{2}}\left(t_{j}-y_{j}\right)^{2}.}


در این مورد، ما می‌خواهیم از "فضای وزن" عصبی (فضای همه مقادیر ممکن وزن‌های عصب) متناسب با گرادیان تابع خطا نسبت به هر وزن حرکت کنیم. برای انجام این کار، مشتق جزئی خطا را با توجه به هر وزن محاسبه می کنیم. برای وزن i ام، این مشتق را می توان به صورت زیر نوشت:

{\displaystyle {\frac {\partial E}{\partial w_{ji}}}}

بدلیل اینکه فقط به نورون j ام توجه می کنیم، می‌توانیم در حالی که جمع را حذف می‌کنیم، فرمول خطای بالا را جایگزین کنیم:

{\displaystyle {\frac {\partial E}{\partial w_{ji}}}={\frac {\partial }{\partial w_{ji}}}\left[{\frac {1}{2}}\left(t_{j}-y_{j}\right)^{2}\right]}


سپس از قاعده زنجیره ای برای تقسیم آن به دو مشتق استفاده می کنیم:

{\displaystyle {\frac {\partial E}{\partial w_{ji}}}={\frac {\partial \left({\frac {1}{2}}\left(t_{j}-y_{j}\right)^{2}\right)}{\partial y_{j}}}{\frac {\partial y_{j}}{\partial w_{ji}}}}


برای بدست آوردن مشتق سمت چپ, تنها قانون قدرت و قانون زنجیره را اعمال می کنیم:

{\displaystyle {\frac {\partial E}{\partial w_{ji}}}=-\left(t_{j}-y_{j}\right){\frac {\partial y_{j}}{\partial w_{ji}}}}


برای یافتن مشتق مناسب، دوباره قانون زنجیره را اعمال می‌کنیم، این بار با توجه به کل ورودی های {\displaystyle h_j}, {\displaystyle j}:

{\displaystyle {\frac {\partial E}{\partial w_{ji}}}=-\left(t_{j}-y_{j}\right){\frac {\partial y_{j}}{\partial h_{j}}}{\frac {\partial h_{j}}{\partial w_{ji}}}}


توجه داشته باشید که خروجی \displaystyle j ام، \displaystyle y_j، فقط تابع فعال سازی \displaystyle g است که به ورودی عصبی \displaystyle h_j اعمال می شود. بنابراین می توانیم مشتق \displaystyle y_j را با توجه به \displaystyle h_j به سادگی مشتق اول \displaystyle g نوشت:

{\displaystyle {\frac {\partial E}{\partial w_{ji}}}=-\left(t_{j}-y_{j}\right)g'(h_{j}){\frac {\partial h_{j}}{\partial w_{ji}}}}


بعد بازنویسی می کنیم \displaystyle h_j در رابطه آخر به عنوان مجموع همه \displaystyle k وزن هر وزن w
{\displaystyle w_{jk}}  برابر ورودی مربوطه \displaystyle x آن است:

{\displaystyle {\frac {\partial E}{\partial w_{ji}}}=-\left(t_{j}-y_{j}\right)g'(h_{j})\;{\frac {\partial }{\partial w_{ji}}}\!\!\left[\sum _{i}x_{i}w_{ji}\right]}


زیرا ما فقط به این موضوع توجه داریم وزن \displaystyle i ام، تنها عبارت جمع که مرتبط است 
{\displaystyle x_{i}w_{ji}} است:

{\displaystyle {\frac {\partial (x_{i}w_{ji})}{\partial w_{ji}}}=x_{i}.}

که معادله نهاییگرادیان را به ما می دهد:

{\displaystyle {\frac {\partial E}{\partial w_{ji}}}=-\left(t_{j}-y_{j}\right)g'(h_{j})x_{i}}

همانطور که در بالا ذکر شد، شیب نزول به ما می گوید که تغییر ما برای هر وزن باید متناسب با گرادیان باشد. انتخاب یک ثابت تناسب \displaystyle \alpha و با حذف علامت منفی برای اینکه بتوانیم وزن را در جهت منفی گرادیان حرکت دهیم تا خطا را به حداقل برسانیم، به معادله هدف خود می رسیم:

{\displaystyle \Delta w_{ji}=\alpha (t_{j}-y_{j})g'(h_{j})x_{i}.}


## جستارهای وابسته

* گرادیان کاهشی تصادفی
* پس‌انتشار

* مدل رسکورلا-واگنر - سرآغاز قانون دلتا

## منابع

# راسل، اینگرید. "قانون دلتا". دانشگاه هارتفورد بایگانی شده از نسخه اصلی در 4 مارس 2016. بازیابی شده در 5 نوامبر 2012.
رده:شبکه‌های عصبی مصنوعی