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

در ادامه با یک حلقه شبکه را با تعداد تکرار مشخص شده اجرا میکنیم و سپس با یک حلقه دیگر وزنهای شبکه را بروزرسانی میکنیم. حلقه اول به تعداد ittr و حلقه دوم به تعداد دادههای آموزشی که برای آموزش از دادگان جدا شدهاند، اجرا میشود.
در حلقه دوم چون ورودیها یک بردار n تایی هستند باید تبدیل به یک ماتریس شوند و از دستور reshape استفاده میشود target خروجی مطلوب یا واقعی است که خروجی شبکه را با آن مقایسه میکنیم. در واقع برای محاسبه خطا خروجی شبکه y3 را با target مقایسه می کنیم. بعد از بدست آوردن خطا از مشتقهای زنجیرهای استفاده میکنیم تا پارامترهای شبکه رو بروزرسانی کنیم. در زیر فرمول بروز رسانی وزنها برایw1 آورده شده است.
w1 = w1 – lr * (-2/N)*(error) * df3 * w3 * df2 * w2 * df1 * input
در این فرمول N=1 است پون الگو ها را یکی یکی مقایسه می کنیم و df1,df2,df3 به ترتیب مشتق خروجی لایه اول و لایه دوم و سوم هستند.
از آنجایی که w ها و خروجی هر لایه ماتریس هستند پس در این فرمول ضرب ماتریسی رخ می دهد و باید به اندازه ماتریسها دقت کرد.
نکته: ابعاد ماتریس را میتوان با دستور shape بدست آورد.
مثال: ضرب df3*w3
df3.shape = (1,n3) = (1,1)
w3.shape = (n3 , n2) à new=df3 * w3 : shape= (1,n2)
df2.shape = (1, n2)à new*df2.shape=?
برای برقرار کردن شرط ضرب ماتریس از دستور diagflat() استفاده می کنیم تا ماتریس df2 را قطری کنیم. برای راحت تر شدن محاسبات از متغییرهای کمکی temp استفاده میکنیم.

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