پیاده سازی پروژه محور شبکه عصبی مصنوعی با پایتون
موسسه پایا پروژه به عنوان متصدی انجام پروژه های برنامه نویسی شبکه عصبی پایتون وظیفه ی خود می داند که در راستای آموزش شبکه عصبی گام های موثری را بردارد. با توجه به اینکه یک دوره آموزشی شبکه عصبی با پایتون مستلزم تمرین و تلاش بسیار است. اما این موسسه تلاش می کند سهم کوچکی در جهت یادگیری شما داشته باشد.
2- پیادهسازی شبکه عصبی تک لایه
در بخش 1 ابتدا تعریف ساده ای از شبکه عصبی و اجزای آن ارائه شد. و ویژگیها و قابلیتهایی که یک شبکه عصبی مصنوعی باید داشته باشد، شرح داده شد. حال نوبت به پیادهسازی است. به منظور درک بهتر موضوع یک پروژه را از ابتدا در نظر گرفته و طبق پروژه توضیحات ارائه و پیاده سازی انجام میشود.
2-1-تعریف مسئله
همانطور که در بخش قبل توضیح داده شد. ابتدا باید نوع مسئله و نوع داده ها بررسی شود تا معماری مناسب شبکه و تابع فعال سازی مناسب اتخاذ شود. پس در قدم اول با دقت مسئله و پروژه را بررسی می کنیم. پروژه مورد بررسی ما دستهبندی دانشجویان یک دانشگاه به سه سطح عالی، متوسط و ضعیف یا A ,B,C است. در واقع ما میخواهیم با داشتن اطلاعات دانشجویان با استفاده از شبکهعصبی آنها را دستهبندی کنیم. خب این کار را چطور باید انجام دهیم؟ ما نیاز به یک سری اطلاعات در مورد دانشجویان داریم. اطلاعاتی که سطح علمی دانشجویان رو برای ما مشخص کنند. این اطلاعات در واقع ویژگیهای مورد نیاز مسئله هستند که از آنها به عنوان ورودی شبکه عصبی استفاده کرده و دستهبندی را انجام میدهیم.
2-1-1- دادگان مسئله
در مسئله طبقهبندی ما نیاز به دو دسته داده داریم یکی دادههای آموزش که شبکه با استفاده از آنها آموزش دیده و وزنهای خود را بروزرسانی کرده تا به کمترین میزان خطا برسد و دادههای تست یا اعتبارسنجی که برای تست شبکه استفاده میشود. معمولا 70 یا 80 درصد داده ها را برای آموزش و 20 یا 25 درصد برای تست در نطر میگیرند. در این پروژه دادگان ما یک فایل اکسل شامل اطلاعات 40 دانشجواست. که اطلاعات 30 دانشجو برای آموزش شبکه و 10 دانشجو به منظو تست یا اعتبارسنجی استفاده میشود. ورودیهای شبکه در این پروژه نمرات دانشجویان در10 درس و تعداد مقالات ارائه شده میباشد. اگر تعداد دانشجویان 40 باشد پس به ازای 40 دانشجو 11 ویژگی داریم. این اطلاعات را در یک فایل اکسل ذخیره و در زمان اجرا فایل را فراخوانی میکنیم. علاوه بر ویژگیهای ذکر شده در ستون آخر یعنی ستون 12 فایل اکسل کلاس یا دسته تعیین شده برای هر دانشجو ذکر شده است.
2-2-الگوریتم یادگیری
در شبکه عصبی از دو الگوریتم پیشرو و پس اتشار خطا استفاده میشود که در ادامه هر کدام توضیح داده شده است.
2-2-1- الگوریتم پیشرو
همانطور که در شکل 1 نشان داده شده در مرحله آموزش شبکه عصبی با استفاده از الگوریتم پیشرو ورودی گرفته شده در وزنهای شبکه ضرب شده و حاصلجمع آنها به همراه بایاس در بلوک سیگما محاسبه میشود. خروجی سیگما ورودی تابع محرک است وخروجی تابع محرک دسته یا کلاس مورد نطر را تعیین می کند

شکل1- الگوریتم پیشرو
2-2-2- الگوریتم پسانتشارخطا
طبق این الگوریتم خروجی شبکه با خروجی واقعی مقایسه شده و از اختلاف آنها به عنوان خطا استفادهمیشود. حال با کمک الگوریتمهای خطا (توابع cost یاlost ) این خطا باید کمینه شود. در واقع در الگوریتمهای یادگیری وزن، شبکه با کمینه کردن خطا، وزنها را بروزرسانی کرده و سپس دستهبندی را با وزنهای جدید انجام میدهد. این روال آنقدر تکرار میشود تا اختلاف خروجی شبکه با مقدار واقعی در کمترین حالت ممکن باشد. به این منظور از الگوریتم کاهش گرادیان استفاده میکنیم.
2-3- تابع محرک
در این پروزه ما از تابع سیگوئید برای بدست آوردن خروجی استفاده میکنیم . فرمول این تابع به صورت زیر است و خروجی آن عددی بین 1و0 است.
2-4- محیط پیادهسازی
برای پیاده سازی نیاز است که ابتدا پایتون و یک IDEرا نصب کنیم. من ابتدا پکیج anaconda رانصب کرده چون کتابخانههای زیادی را همراه خود دارد و نیاز به نصب همه آنها در ابتدا نیست (البته در حین کد نویسی اگر نیاز به کتابخانه جدید داشتیم نیز میتوان آن را در anaconda نصب کرد.). وسپس آن را به vscode اتصال میدهیم. البته میتوان به صورت جداگانه vscode یا pycharm یا هر IDE را نصب کرد و سپس برای شزوع کار کتابخانههای لازم را با دستورpip نصب کنیم. مثلابرای نصب کتابخانه Numpy کد زیر را در cmd یا در صورت استفاده از vscode در powershell مینویسیم. دقت داشته باشید که برای نصب باید سیستم تان به اینترنت وصل باشد.
pip install numpy
2-4-1-کتابخانه های مورد نیاز
در ابتدای انجام پروژه پایتون باید کتابخانههای مورد نیاز را در کد فراخوانی یا به اصطلاح import کنیم. این کار را با کدهای زیر انجام میدهیم. برای کار با آرایه ها کتابخانهnumy و برای کار با فایل اکسل کتابخانه pandas را نیاز داریم.
Import numpy as np
Import pandas as pd
برای فراخوانی فایل اکسل دادگان کد زیر را تایپ میکنیم
File= pd.read_excel(‘stu.xlsx’)
در بخش بعدی به کدهای آمادهسازی دادگان مانند درهم کردن و نرمالیز کردن و جداسازی دادههای آموزش و تست پرداخته خواهد شد.

