کدهای آماده شبکه عصبی مصنوعی در متلب MATLAB | |
تعداد خطوط کد | ۲۱۳ |
نوع فایل | MATLAB + WORD + EXCLE |
کدهای آماده شبکه عصبی مصنوعی در متلب MATLAB
در این قسمت کدهای آماده شبکه عصبی مصنوعی در متلب MATLAB برای دانلود ارائه شده است. این مجموعه شامل کد متلب، اکسل ورودی به شبکه و فایل ورد توضیح کدهای شبکه است. این کدها به صورت کاملا کاربردی نوشته شده اند و برای استفاده از آن تنها کافی است داده های خود را در فایل اکسل وارد کنید و برنامه را اجرا کنید.
کدهای کاملا تحلیل شده هستند. این فایل شامل بیس از ۲۰۰ خط کد متلب است. در صورت درخواست داده های شما توسط تیم پروژه یاران به شبکه وارد می شوند و نتایج برای شما ارسال می گردند.
قسمتی از متن فایل word در زیر نشان داده شده است.
شبکه عصبی مصنوعی
شبکه های عصبی از عناصر عملیاتی ساده ای ساخته می شوند که بصورت موازی در کنار هم عمل می کنند. این عناصر از سیستم های عصبی زیستی الهام گرفته شده اند. در طبیعت، عملکرد شبکه های عصبی از طریق نحوه اتصال بین اجزا تعیین می شود. بنابراین ما می توانیم یک ساختار مصنوعی به تبعیت از شبکه های طبیعی بسازیم و با تنظیم مقادیر هر اتصال، تحت عنوان وزن اتصال، نحوه ارتباط بین اجزای آن را تعیین نماییم.
پس از تنظیم یا همان آموزش شبکه عصبی، اعمال یک ورودی خاص به آن منجر به دریافت پاسخ خاصی می شود. شبکه بر مبنای تطابق و همسنجی بین ورودی و هدف سازگار می شود تا اینکه خروجی شبکه و خروجی موردنظر ما (هدف) بر هم منطبق گردند. عموما تعداد زیادی از این زوج های ورودی و خروجی بکار گرفته می شوند تا در این روند شبکه آموزش داده شود.
امروزه از شبکه عصبی برای حل مسائل دشواری که حل آنها با روش های معمول دشوار می باشد استفاده می شود. شبکه های عصبی مصنوعی دارای تاریخ ۵۰ ساله می باشند. اما کاربرد آنها در مسائل عملی به ۱۵ سال گذشته بر می گردد و این زمینه هم اکنون به سرعت در حال پیشرفت می باشد.
ساختمان شبکه های عصبی مصنوعی شامل نورون ها، توابع انتقال و لایه ها می باشد. در شکل ۱ مدل یک نورون با یک ورودی نشان داده شده است. این نورون ساده از دو عنصر کلیدی تشکیل شده است: وزن w و تابع انتقال f. ورودی p به نورون اعمال شده با ضرب در وزن w، وزن دار می شود و حاصلضرب بعنوان ورودی به تابع انتقال f اعمال شده و خروجی نهایی حاصل می گردد. با اضافه کردن بایاس به ساختار نرون، نورونی بایاس دار به صورت نرون سمت راست ایجاد می شود.
ورودی بایاس یک مقدار ثابت ۱ است. مقدار بایاس با حاصل w.p جمع شده و در واقع تابع را به سمت راست شیفت می دهد. تابع انتقال f معمولا یک تابع پلکانی و یا یک تابع سیگمویید می باشد که آرگومان n را دریافت کرده و خروجی a را تولید می کند.
یک یا چند نورون در کنار هم یک لایه از شبکه را تشکیل می دهند. در شکل ۲ یک شبکه تک لایه با R ورودی و S نورون نشان داده شده است. در این شبکه اعضای بردار ورودی p به همه و نورون ها اعمال می شوند پس از ضرب در بردار وزن ها و جمع با بایاس، به تابع انتقال اعمال شده و خروجی حاصل می گردد. خروجی شبکه یک بردار خواهد بود.
یک شبکه می تواند از چند لایه این چنینی تشکیل شود. هر لایه در شبکه دارای ماتریس وزن ها، بردار بایاس و خروجی مختص به خود می باشد. شکل ۳ یک شبکه سه لایه را همراه با اطلاعات تفکیک شده بر حسب لایه های آن نشان می دهد. همانطور که در این شکل مشخص است یک شبکه می تواند دارای تعداد متفاوت نورون در لایه های مختلف خود باشد.
خروجی هر یک از لایه های میانی به عنوان ورودی لایه بعدی مورد استفاده قرار می گیرند. لایه ای که خروجی شبکه را ایجاد می کند (لایه آخر) تحت عنوان لایه خروجی شناخته می شود. بقیه لایه ها تحت عنوان لایه های مخفی نامگذاری شده اند. نقش هر نورون محاسبه مجموع وزن های ورودی و سپس گذراندن این مجموع از تابع انتقال می باشد.
انواع مختلفی از شبکه های عصبی وجود دارد ولی یک نوع که کاربرد خیلی زیادی دارد شبکه پرسپترون چند لایه می باشد که دارای یک لایه ورودی، چند لایه میانی و یک لایه خروجی می باشد. تابع انتقال می تواند یک تابع خطی یا غیر خطی باشد. دو نوع از توابع مرسوم در شبکه پرسپترون چند لایه، سیگمویید و تانژانت سیگمویید می باشد. آموزش شبکه پرسپترون چند لایه چهار مرحله است:
۱- مهیا کردن داده های آموزشی
۲- ایجاد شبکه
۳- آموزش شبکه
۴- شبیه سازی شبکه با داده های جدید
هدف از آموزش شبکه برقراری ارتباط بین یک سری از ورودی ها و خروجی ها و یا ارتباط دادن یک سری از متغیرها با سیگنال اندازه گیری شده آنها می باشد. در آموزش شبکه یک ورودی وارد شبکه شده و مقدار وزن برای هر نورون محاسبه می شود سپس این مقدار در تابع انتقال نورون قرار گرفته و خروجی نورون محاسبه می شود.
خروجی هر نورون در هر لایه به عنوان ورودی برای نورون های موجود در لایه های پایین دست محسوب می شود و عملیات ذکر شده در نورون های پایین دست به همان صورت انجام می گیرد و در نهایت خروجی لایه آخر که خروجی شبکه می باشد محاسبه می شود. سپس این خروجی با مقدار مطلوب که همان سیگنال اندازه گیری شده می باشد مقایسه شده و اختلاف این دو به عنوان خطا تلقی می شود، این مقدار خطا به لایه های بالادست انتشار داده شده و بر اساس آن وزن های نورون ها در لایه های بالادست تصحیح می گردد.
عمل تصحیح تا اولین لایه مخفی ادامه می یابد. سپس با وزن های جدید شبکه دوباره خروجی می دهد و دومرتبه این خروجی با مقدار مطلوب مقایسه شده و خطای آن محاسبه می شود، اگر خطا به حدی که مدنظر ما است نرسیده باشد دوباره عمل تصحیح وزن ها انجام می گیرد (هر کدام از این چرخه ها یک اپوک نامیده می شود) و این مراحل تکرار می شود تا خطا به مقدار مدنظر برسد. به این الگوریتم، الگوریتم انتشار معکوس خطا می گویند. شکل ۱-۲۸ بطور شماتیک این فرایند را نشان می دهد.
در کدهای آماده شده در این قسمت، یک شبکه عصبی مصنوعی با یک لایه مخفی و الگوریتم پس انتشار خطا استفاده شده است. داده ها از یک فایل های اکسل بازخوانی می شوند. سپس ورودی های شبکه شامل تعداد نرون های مخفی، نوع توابع انتقال مشخص می شوند و تعداد مشخصی تکرار برای به دست آوردن بهترین شبکه انجام می شود و شبکه بهینه انتخاب می شود.
تحلیل های شبکه بهینه شامل انواع مختلف خطا برای مجموعه داده های مختلف، نمودارها و شکل ها انجام می شود. کلیه این کارها به صورت کدنویسی شده هستند که انجام آن بسیار راحت است. انواع مختلف توابع انتقال و فرمول خطاهای مختلف نیز شرح داده شده اند. در ادامه کلیه قسمت های این کد شرح داده شده اند.
شرح کد نوشته شده
ورود داده ها به شبکه
برای معرفی داده ها به شبکه عصبی از یک فایل اکسل استفاده می شود. داده های مربوط به Xها در سطرهای ابتدایی و داده های مربوط به y در سطر دهم قرار می گیرند (شکل ۵). تعداد ورودی های x می توانند متغییر باشند بنابراین بسته به تعداد متغیرهای ورودی سطر در نظر گرفته می شود. نمونه فایل اکسل در شکل ۵ نشان داده شده است.
فهرست مطالب این پروژه در زیر نشان داده شده است:
شبکه عصبی مصنوعی
شرح کد نوشته شده
ورود داده ها به شبکه
ایجاد شبکه اولیه
انتخاب نوع توابع انتقال
نرمالایز کردن داده ها
انتخاب مجموعه داده های مختلف
آموزش شبکه
بررسی شبکه بهینه
وزن های شبکه
بررسی مقادیر مختلف خطا
رسم نمودار مقایسه داده ها
رسم نمودار توزیع خطا
آنالیزتاثیر ورودی های مختلف بر خروجی شبکه
اجرای برنامه
محیط اجرای برنامه در زیر نشان داده شده است:
کدهای آماده شبکه عصبی مصنوعی در متلب MATLAB | |
تعداد خطوط کد | ۲۱۳ |
نوع فایل | MATLAB + WORD + EXCLE |