شبکه عصبی (neural network) در متلب

آشنایی مقدماتی با شبکه های عصبی مصنوعی

شبکه های عصبی نوعی مدلسازی ساده انگارانه از سیستمهای عصبی واقعی هستند که کاربرد فراوانی در حل مسائل مختلف در علوم دارند. حوزه کاربرد این شبکه ها آنچنان گسترده است که از کاربردهای طبقه بندی گرفته تا کاربردهایی نظیر درون یابی، تخمین، آشکارسازی و … را شامل می شود. شاید مهمترین مزیت این شبکه ها، توانایی وافر آنها در کنار سهولت استفاده از آن ها باشد. به موازات گسترش کاربردهای شبکه عصبی، نیاز به فراگیری آن و آشنایی با تواناییها و قابلیتهای آن رخ می نماید. در این راستا، تألیفات زیادی وجود دارد که می توان به آن ها استناد نمود. در اکثر قریب به اتفاق این خودآموزها، مبانی این شبکه ها با تفاصیل و جزئیات بسیار بیان شده است و مسلماً به عنوان قدم اول برای آشنایی، حجیم و وقت گیر به نظر می رسد. لذا بر آن شدیم تا با درنظر گرفتن نیاز دانشجویان، به ویژه در کاربردهای پروژه ای در مقطع کارشناسی، مقدماتی را جهت آشنایی با این شبکه ها تدوین کنیم به نحوی که به عنوان یک خودآموز، در پیمودن قدمهای اولیه برای آشنایی و سپس تسلط بر مفاهیم مقدماتی آن ها، راهگشا باشد. بنابراین در این جزوه سعی کرده ایم مبانی مدل سازی و تحلیل یک سیستم با استفاده از شبکه های عصبی بیان شده و شبکه چندلایه پرسپترون، به عنوان یکی از پرکاربردترین شبکه ها مرور گردد.
همچنین رویکرد در پیش رو بر این است که در کنار بیان اجمالی روابط ریاضی مورد نیاز، به نکات پیاده سازی و تکنیکهای عملی استفاده از آن ها اشاره خواهیم کرد. با توجه به گستردگی مطالب، در این نوشتار سعی بر آن شده است که از پرداختن به جزئیات غیرضروری پرهیز شود. لذا در این نسخه، تنها به مفاهیم مقدماتی و ضروری شبکه های عصبی مصنوعی خواهیم پرداخت، به این امید که دانشجویان عزیز بتوانند با فراگیری این نکات، مسیر فراگیری و به کار گیری این شبکهها را ساده تر بپیمایند. در این راستا، رئوس مطالبی که به آنها خواهیم پرداخت عبارتند از:
  • مفهوم شبکه
  • مدل ریاضی شبکه عصبی مصنوعی
  • پرسپترون چند لایه
  • آموزش شبکه به روش پسانتشار خطا
  • روند شبیه سازی مسائل

مفهوم شبکه:

یکی از روش های کارآمد در حل مسائل پیچیده، شکستن آن به زیرمسأله های ساده تر است که هر کدام از این زیر بخشها به نحو ساده تری قابل درک و توصیف باشند. در حقیقت یک شبکه، مجموعه ای از این ساختارهای ساده است که در کنار یکدیگر سیستم پیچیده نهایی را توصیف می کنند. شبکه ها انواع مختلفی دارند اما همگی آنها از دو مؤلفه تشکیل می شوند.
۱. مجموعهای از گره ها؛ هر گره در حقیقت واحد محاسباتی شبکه است که ورودی ها را گرفته و برروی آن پردازش انجام میدهد تا خروجی بدست آید. پردازش انجام شده توسط گره می تواند از ساده ترین نوع پردازش ها نظیر جمع کردن ورودی ها تا پیچیده ترین محاسبات را شامل شود. در حالت خاص، یک گره میتواند خود، شامل یک شبکه دیگر باشد.
۲. اتصالات بین گرهها؛ این اتصالات نحوه گذر اطلاعات بین گره ها را مشخص می کند. در حالت کلی اتصالات  Bidirectional (دوسویه) و یا Unidirectional (تک سویه) می توانند باشند. تعامل بین گره ها از طریق این اتصالات سبب بروز یک رفتار کلی از سوی شبکه می گردد که چنین رفتاری به تنهایی در هیچ یک از المانهای شبکه دیده نمیشود. جامع بودن این رفتار کلی بر عملکرد موجود در هر گره سبب تبدیل شبکه به یک ابزار توانمند میشود. به عبارت دیگر، مجموعه سادهای از المانها وقتی در قالب یک شبکه باشند می توانند رفتاری از خود بروز دهند که هیچ یک از آن المان ها به تنهایی قادر به بروز چنین مشخصه ای نبود.

مدل ریاضی شبکه عصبی مصنوعی:

به هنگام مدل کردن اعصاب، از پیچیدگی های آن ها صرف نظر می شود و تنها به مفاهیم پایه ای بها داده می شود، چرا که در غیر این صورت رویکرد مدلسازی بسیار دشوار خواهد شد. در یک نگاه ساده، مدل یک عصب باید شامل ورودیهایی باشد که در نقش سیناپس انجام وظیفه کنند. این ورودی ها در وزنهایی ضرب می شوند تا قدرت سیگنال را تعیین کنند. نهایتاً یک عملگر ریاضی تصمیم گیری می کند که آیا نرون فعال شود یا خیر و اگر جواب مثبت باشد، میزان خروجی را مشخص می سازد.

پرسپترون چند لایه:

هرچند نحوه مدل کردن نرون جزء اساسی ترین نکات کلیدی در کارآیی شبکه عصبی میباشد اما نحوه برقراری اتصالات و چیدمان (توپولوژی) شبکه نیز فاکتور بسیار مهم و اثرگذاری است. باید توجه داشت که توپولوژی مغز انسان آنقدر پیچیده است که نمیتوان از آن به عنوان مدلی برای اعمال به شبکه عصبی استفاده نمود، چرا که مدلی که ما استفاده می کنیم، یک مدل ساده شده است در حالی که چیدمان مغز از المانهای بسیار زیادی استفاده می کند. به منظور آموزش شبکه و اصلاح وزنها تا رسیدن به یک خطای معنادار، روش های بسیار زیادی وجود دارد. یکی از مشهورترین این روش ها، الگوریتم پس انتشار خطا (Error algorithm propagation back) است که در ادامه توضیح داده میشود

الگوریتم پس انتشار خطا:

این الگوریتم که در سال ۱۹۸۶ توسط روملهارت و مک کلیلاند پیشنهاد گردید، در شبکههای عصبی پیشسو ( Forward feed) مورد استفاده قرار می گیرد. پیش سو بودن به این معناست که نرون های مصنوعی در لایه های متوالی قرار گرفته اند و خروجی (سیگنال) خود را رو به جلو می فرستند. واژه پس انتشار نیز به معنای این است که خطاها به سمت عقب در شبکه تغذیه می شوند تا وزنها را اصلاح کنند و پس از آن، مجدداً ورودی مسیر پیشسوی خود تا خروجی را تکرار کند. روش پس انتشار خطا از روش های با سرپرست است به این مفهوم که نمونه های ورودی برچسب خورده اند و خروجی مورد انتظار هر یک از آنها از پیش دانسته است. لذا خروجی شبکه با این خروجی های ایدهآل مقایسه شده و خطای شبکه محاسبه میگردد. در این الگوریتم ابتدا فرض بر این است که وزنهای شبکه به طور تصادفی انتخاب شده اند. در هر گام خروجی شبکه محاسبه شده و بر حسب میزان اختلاف آن با خروجی مطلوب، وزن ها تصحیح می گردند تا در نهایت این خطا، می نیمم شود. در الگوریتم پس انتشار خطا، تابع تحریک هر عصب به صورت جمع وزندار ورودی های مربوط به آن عصب درنظر گرفته می شود.

جعبه ابزار شبکه عصبی

در این بخش قصد داریم جعبه ابزار شبکه عصبی یا Neural Network Toolbox که یکی از پر کاربردی و مفیدترین جعبه ابزار نرم افزار MATLAB می باشد و در بیشتر  پروژه های متلب مورد استفاده قرار می گیرد را بررسی کرده و ویژگی ها و کاربرد های آن را توضیح دهیم.

معرفی شبکه های عصبی مصنوعی

شبکه‌ های عصبی مصنوعی یا Artificial Neural Network که به اختصار ANN نیز گفته می شود، سیستم‌ ها و روش‌ های محاسباتی جدید برای یادگیری ماشین، نمایش دانش و در آخر اعمال دانش به دست آمده به منظور بیش‌ بینی پاسخ‌ های خروجی از سیستم های پیچیده و سنگین می باشند. اصلی ترین راهکار چنین شبکه‌ های تا حدودی از روش عملکرد سیستم عصبی زیستی به جهت پردازش داده‌ ها و اطلاعات برای یادگیری و همچنین ایجاد دانش قرار دارد. عنصر اصلی این ایده، ساخت ساختار هایی نوین به سیستم پردازش اطلاعات می باشد.

معرفی جعبه ابزار شبکه عصبی

تولباکس Neural Network ابزارهایی برای طراحی، پیاده سازی مصور سازی و شبیه سازی شبکه های عصبی فراهم می آورد. شبکه های عصبی برای حل مسائلی که در آنها روش تحلیل معمول دشوار یا غیر ممکن باشد، نظیر شناسایی الگو و شناسایی و کنترل سیستم های غیرخطی به کار می رود. این جعبه ابزار از شبکه های پیشروی، شبکه های پایه شعاعی، شبکه های پویا، نگاشت های خود سازمانده و الگوهای دیگر شبکه ای عصبی پشتیبانی میکند.

ویژگی های اصلی جعبه ابزار شبکه عصبی

  • طراحی، آموزش و شبیه سازی شبکه ی عصبی
  • ابزارهای شناسایی الگوی، خوشه بندی و برازش داده
  • شبکه های با نظارت شامل شبکه های پیشرو، توابع پایه شعاعی،LVQ، تاخیر زمانی، NARX و بازگشت کننده
  • شبکه های بدون نظارت شامل نگاشت های خود سازمانده و لایه های رقابتی
  • پیش پردازش و پس پردازش برای بهبود کارایی آموزشی شبکه و ارزیابی عملکرد شبکه
  • نمایش مدولاتور شبکه برای مدیریت و مصور سازی شبکه های با اندازه مختلف
  • تعریق معماری و الگوریتم های شبکه های عصبی جدید برای کاربردهای پیشرفته
  • بلوک های سیمولینک برای ساختن و ارزیابی شبکه های عصبی و بلوک های پیشرفت برای کاربرد های کنترل سیستم ها
  • توضیحات
  • نظرات (۱)

توضیحات

آموزش مجازی استفاده از جعبه ابزار شبکه عصبی در نرم افزار Matlab

 

 

 

 

 

 

 

جعبه ابزار شبکه عصبی یا Neural Network Toolbox که یکی از پر کاربردی و مفیدترین جعبه ابزار نرم افزار MATLAB می باشد و در بیشتر  پروژه های متلب مورد استفاده قرار می گیرد.

۱ دیدگاه برای آموزش شبکه عصبی (Neural Network) در Matlab

  1. امتیاز ۵ از ۵

    سلام من این آموزش شبکه عصبی با متلب رو تهیه کردم فقط چند تا سوال دارم چه طوری میتونم رفع کنم ؟؟؟

    با تشکر از کیفیت بالای شبکه عصبی با متلب که برای ما قرار دادید


دیدگاه خود را بنویسید