nn

شبکه های عصبی و الگوریتم های یادگیری در متلب

در این پست شبکه های عصبی و الگوریتم های یادگیری در متلب قرار داده شده است.

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

  • شبکه های عصبی گاما،
  • Group Method of Data Handling (GMDH)
  • Radial basis function (RBF)
  • Recurrent neural network (RNN)
  • Convolutional neural network (CNN)
  • cerebellar-model-articulation-controller (CMAC)
  • Multilayer perceptron (MLP)
  • و برخی شبکه های عصبی مهم و کابردی دیگر از قبیل شبکه های عصبی خود تنظیم و شکبه های عصبی بر اساس تئوری راف و شبکه های عصبی Lolimot

همچنین روش های مختلف آموزش شبکه های عصبی بر اساس روش های آموزشی پس انتشار خطا (Back Propagation و Full Propafation) متدهای مختلف بهینه سازی از قبیل

  • گرادیان نزولی (Learning of neural network based on gradient descent algorithm )،
  • فیلتر کالمن توسعه یافته (Learning of neural network based on extended Kalman filter)،
  • فیلتر کالمن غیر خطی (Learning of neural network based on unsecented Kalman filter) و (Learning of neural network based on square root capture kalman filter)
  • روش کمترین مربعات خطا (Learning of neural network based on recursive least square algorithm)
  • روش آموزش مرتبه دوم لونبرگ مارکوآت (Learning of neural network based on Levenbeg-Marquat) و
  • روش مرتبه دوم نیوتن و روش مرتبه دوم  conjugate-gradient
  • روشهای تکاملی مثل الگوریتم ژنتیک (genetic algorithm) الگوریتم تجمعی پرندگان (particle swarm optimization) و الگوریتم عنکبوت (Social Spider optimization) رشد علف های هرز IWO و برخی دیگر از الگوریتم های مهم تکامی.

لازم به ذکر است که همه شبکه های عصبی و الگوریتم یادگیری در محیط متلب به صورت کد نویسی و قابل تطبیق با مسئله جدید پیاده سازی می شوند.

برای دانلود و خرید به انتهای صفحه مراجعه کنید



جلسه اول: مقده ای بر شبکه های عصبی و الگوریتم های یادگیری

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

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب

پیش نمایش:کیفیت را روی HD قرار دهید.


جلسه دوم:  شبکه های عصبی MLP، آموزش بر اساس پس انتشار خطا -گرادیان نزولی، کابرد در تخمین توابع غیرخطی

قابل استفاده در پایان نامه های ارشد و دکتری، آموزش به صورت کاملاً کاربردی

در این جلسه شبکه های عصبی MLP بر اساس روش آموزش پس انتشار خطا Back Propagation و روش بهینه سازی گرادیان نزولی   Gradient Descent آموزش داده می شود. همچنین مسئله Over Train شرح داده می شود. الگوریتم های توضیح داده شده در محیط متلب به صورت کدنویسی شبیه سازی شده و در یک مسئله تخمین تابع غیرخطی به کار گرفته می شوند. برنامه ها به صورتی نوشته شده که به آسانی می توانید در مسئله خودتان استفاده نمایید.

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب

پیش نمایش:کیفیت را روی HD قرار دهید.


جلسه سوم: شبکه های عصبی MLP، روش Full Propagation، کابرد در دسته بندی

قابل استفاده در پایان نامه های ارشد و دکتری، آموزش به صورت کاملاً کاربردی

در این جلسه ابتدا شبکه های عصبی MLP بر اساس روش آموزش  Full Propagation و روش بهینه سازی گرادیان نزولی   Gradient Descent آموزش داده می شود. سپس  این شبکه ها در یک مسئله کابردی با داده های واقعی برای دسته بندی classification  مورد استفاده قرار می گیرد. در نهایت مسئله Over Parameterize توضیح داده می شود. الگوریتم های توضیح داده شده در محیط متلب به صورت کدنویسی شبیه سازی می شوند. به آسانی می توانید از این مثال در کابرد دسته بندی مربوط به خودتان استفاده نمایید.

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب

پیش نمایش:کیفیت را روی HD قرار دهید.


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

قابل استفاده در پایان نامه های ارشد و دکتری، آموزش به صورت کاملاً کاربردی

در این جلسه آموزش شبکه های عصبی MLP با استفاده از گرادیان نزولی با نرخ تطبیقی و روش کمترین مربعات خطا RLS شرح داده می شود. دقت این الگوریتم ها با روشهای جلسه قبل مقایسه می شود. همچنین مشکلات روش RLS و روشهای رفع آنها با استفاده از Forgeting Factor و Covariance Matrix Resetting شرح داده می شود. همه الگوریتم های در محیط متلب به صورت کدنویسی پیاده سازی می شوند. برنامه ها به صورت برداری نوشته شده اند تا با سرعت بهینه در متلب اجرا شوند.

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب

پیش نمایش:کیفیت را روی HD قرار دهید.


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

قابل استفاده در پایان نامه های ارشد و دکتری، آموزش به صورت کاملاً کاربردی

در این جلسه آموزش شبکه های عصبی MLP با استفاده از روشهای مرتبه دومی مثل لونبرگ-مارکوآت  levenberg-marquardt و Conjugate Gradient آموزش داده می شود. دقت و سرعت این الگوریتم ها با روشهای جلسه قبل مقایسه می شود.  همه الگوریتم های در محیط متلب به صورت کدنویسی پیاده سازی می شوند. برنامه ها به صورت برداری نوشته شده اند تا با سرعت بهینه در متلب اجرا شوند.

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب

حجم: حدوداً ۱۰۰MB

پیش نماش: کیفیت را روی HD قرار دهید.

 


جلسه ششم: شبکه های عصبی RBF ، آموزش بدون مربی، خوشه بندی

قابل استفاده در پایان نامه های ارشد و دکتری، آموزش به صورت کاملاً کاربردی

در این جلسه، ابتدا ساختار شبکه های عصبی RBF  شرح داده می شود، سپس به تشریح روش آموزش شبکه های عصبی بر پایه روش بدون مربی  Unsupervised Learning Algorithm پرداخته می شود. از روش های آموزش بدون مربی، روش خوشه بندی K-means توضیح داده می شود. در نهایت  الگوریتم های توضیح داده شده در محیط کدنویسی متلب و با  یک مثال گویا پیاده سازی میشود و نتایج به دست آمده با روش آموزش با مربی نیز مقایسه می شود.

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب

حجم: حدوداً ۱۰۰MB

پیش نماش: می توانید کیفیت را روی HD قرار دهید.


جلسه هفتم: شبکه های عصبی GMDH (Ivakhenenco)، شبیه سازی مقاله ۲۰۱۵، تشخیص خطا

قابل استفاده در پایان نامه های ارشد و دکتری، آموزش به صورت کاملاً کاربردی

در این جلسه، شبکه های عصبی GMDH (شبکه عصبی بر اساس چند جمله ای های ایواخننکو Ivakhenenco) معرفی میشود. نحوه تنظیم ساختار، پارامترها و قابلیت های این شکبه عصبی شرح داده شده و در نهایت در یک مسئله تشخیص خطا fault detection  به کار برده می شود. شبیه سازی انجام شده در این جلسه به صورت سیمولنیک و بر اساس یک مقاله معتبر ISI   می باشد.

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب

حجم: حدوداً ۱۰۰MB

پیش نماش: می توانید کیفیت را روی HD قرار دهید.


جلسه هشتم: الگوریتم ژنتیک، تولباکس متلب، کدنویسی

قابل استفاده در پایان نامه های ارشد و دکتری، آموزش به صورت کاملاً کاربردی

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

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب

حجم: حدوداً ۱۰۰MB

پیش نماش:  کیفیت را روی HD قرار دهید.


جلسه نهم: آموزش شبکه های عصبی با استفاده از الگوریتم ژنتیک، شبکه های عصبی حافظه دار

قابل استفاده در پایان نامه های ارشد و دکتری، آموزش به صورت کاملاً کاربردی

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

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب

حجم: حدوداً ۱۰۰MB

پیش نماش:  کیفیت را روی HD قرار دهید.


جلسه دهم: شناسایی غیرخطی بر اساس شبکه های عصبی (مدلهای NNARX, NNFIR, NNEO,…)،

قابل استفاده در پایان نامه های ارشد و دکتری، آموزش به صورت کاملاً کاربردی

در این جلسه ابتدا روش های شناسایی غیرخطی بر پایه شبکه های عصبی شرح داده می شود (Identification based on neural networks). سپس به بررسی شبکه های عصبی با توابع فعالساز انعطاف پذیر پرداخته می شود. در نهایت یک مثال گویا و کابردی در متلب شبیه سازی می شود. برنامه متلب نوشته شده به صورت کامل است و می توانید در پروژه های خود از آن استفاده نمایید.


محتوا: فایل آموزشی ۷۲۰pو کدهای متلب

حجم: حدوداً ۱۰۰MB

پیش نماش:  کیفیت را روی HD قرار دهید.


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

قابل استفاده در پایان نامه های ارشد و دکتری، آموزش به صورت کاملاً کاربردی

 در این جلسه، ابتدا فیلتر کالمن توسعه یافته (extended Kalman filter) به صورت مختصر شرح داده می شود سپس به نحوه آموزش شبکه های عصبی بر اساس این روش می پردازیم. در نهایت شبکه های عصبی در یک مثال کاربردی (پیش بینی بارندگی تهران با استفاده از داده های واقعی) مورد استفاده قرار می گیرد. یک برنامه متلب به صورت جامع و کامل در این جلسه ارائه می شود که می توانید در پروژه ها و پایان نامه های مشابه به آسانی از آن استفاده نمایید.

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب

حجم: حدوداً ۱۰۰MB

پیش نماش:  کیفیت را روی HD قرار دهید.


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

قابل استفاده در پایان نامه های ارشد و دکتری، آموزش به صورت کاملاً کاربردی

 در این جلسه، شبکه های عصبی راف (Rough Neural Networks) شرح داده می شوند. این شبکه های عصبی حساسیت کمتری در مقایسه با MLP نسبت به نرون های لایه میانی دارند. از الگوریتم های گرادیان نزولی و فیلتر کالمن توسعه یافته برای آموزش این شبکه عصبی استفاده می شود. در نهایت برنامه متلب جامع و کامل همراه با یک مثال گویا برای آموزش این شبکه های عصبی ارائه می شود و نتایج با شبکه عصبی MLP مقایسه می شود.

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب

حجم: حدوداً ۱۰۰MB

پیش نماش:  کیفیت را روی HD قرار دهید.


جلسه سیزدهم: شبکه های عصبی مبتنی بر کانولوشن، تشخیص اعداد دست نویس انگلیسی

قابل استفاده در پایان نامه های ارشد و دکتری، آموزش به صورت کاملاً کاربردی

 در این جلسه، شبکه عصبی  Convolutional Neural Networks (CNN) را معرفی کرده و به تشریح ساختار و قابلیت های آن می پردازیم و با شبکه های عصبی MLP  مقایسه می کنیم و درنهایت در یک مسئله مهم و کاربردی تشخیص اعداد دست نویس به کار برده می شود.

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب

حجم: حدوداً ۱۰۰MB

پیش نماش:  کیفیت را روی HD قرار دهید.

 

جلسه چهاردهم: Unscented Kalman Filter، آموزش شبکه های عصبی بر اساس فیلتر کالمن UKF

قابل استفاده در پایان نامه های ارشد و دکتری، آموزش به صورت کاملاً کاربردی

 در این جلسه، ابتدا به صورت مختصر مزایا و معایب روشهای آموزشی مختلف را بررسی کرده و سپس به تشریح فیلتر کالمن UKF  می پردازیم. از این الگوریتم در یک مثال گویا برای آموزش شبکه های عصبی استفاده می کنیم. برنامه متلبی به صورت کامل و بهینه برای این آموزش شبکه های عصبی MLP با ساختار دلخواه بر اساس UKF  ارائه می شود.

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب

حجم: حدوداً  ۱۰۰MB

پیش نماش:  کیفیت را روی HD قرار دهید.



جلسه پانزدهم:  آموزش شبکه های عصبی بر اساس PSO

قابل استفاده در پایان نامه های ارشد و دکتری، آموزش به صورت کاملاً کاربردی

 در این جلسه، ابتدا الگوریتم PSO شرح داده می شود، سپس نحوه بهینه سازی شبکه های عصبی با استفاده از این الگوریتم توضیح داده می شود. در نهایت در یک مثال کاربردی از PSO برای طراحی شبکه  عصبی استفاده می شود. از کدهای متلب ارائه شده به راحتی می توانید در مسائل مربوط به خودتان استفاده کنید.

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب و pdf

حجم: حدوداً  ۶۰MB

پیش نماش:  کیفیت را روی HD قرار دهید.


جلسه شانزدهم: شبکه های عصبی گاما

در این جلسه شبکه های عصبی گاما (gamma neural network) ، اهمیت این شبکه های عصبی و کاربردهای آن توضیح داده می شود. سپس در یک مثال کاربردی برای تخمین یک تابع غیرخطی به کار گرفته می شود. همه پارامترهای این شبکه عصبی بر اساس PSO  تنظیم می شوند. برنامه متلب جامعی برای این شبکه عصبی ارائه شده است.

محتوا: فایل آموزشی ۷۲۰pو کدهای متلب و pdf

حجم: حدوداً  ۸۰MB

پیش نماش:  کیفیت را روی HD قرار دهید.


جلسه شانزدهم: شبکه های عصبی مدل مخچه (CMAC)

در این جلسه شبکه های عصبی مدل مخچه  (Cerebellar model articulation controller)، توضیح داده می شود. همه پارامترهای این شبکه عصبی بر اساس PSO  تنظیم می شوند. این شبکه عصبی در یک مثال کابردی با دیتای واقعی برای پیش بینی بارندگی استفاده می شود. برنامه متلب جامعی ارائه شده است که می توانید در مسائل خودتان استفاده کنید.

 محتوا: فایل آموزشی ۷۲۰pو کدهای متلب و pdf

حجم: حدوداً  ۸۰MB

پیش نماش:  کیفیت را روی HD قرار دهید.


جلسه هجدهم: شبکه های عصبی مثلثاتی و تولباکس متلب

در این جلسه شبکه های عصبی مثلثاتی شرح داده شده و در یک مثال کاربردی برای پیش بینی سری های زمانی به کار گرفته می شود. علاوه بر برنامه جامع متلبی که برای این کار ارائه می شود از تولباکس متلب نیز برای این کار استفاده می شود.
 محتوا: فایل آموزشی ۷۲۰pو کدهای متلب و pdf

حجم: حدوداً  ۸۰MB

پیش نماش:  کیفیت را روی HD قرار دهید.


در جلسات بعدی شبکه های عصبی پیشرفته تر و همچنین چند پروژه در زمینه شبکه های عصبی افزوده خواهد شد.



برای خرید کلیک بفرمایید

۹۹ نظر

  1. سلام برای یادگیری الگوریتم Resilient Backpropagation کدوم مجموعه رو باید دانلود کنم و اساسا تفاوت این روش با روش استاندارد چیه ؟

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ مرداد ۲۵ام, ۱۳۹۶ ۹:۰۴ ب.ظ:

    @ارشام,
    سلام
    خیلی شبیه به روش استاندارد است
    تاحدودی سرعت همگراییش بیشتره ولی حجم محاسبات بیشتری هم به مسئله تحمیل میشه
    خیلی راحت می توانید روش استاندارد را به این روش ارتقا دهید
    کدها همونه
    فقط بعد از اینکه برنامه گرادیان رو اجرا کردین و مشتقات رو بدست آوردین (dE/dw)
    با توجه به علامت مشتقات آپدیت صورت میگیره
    یعنی مقدار (دامنه) مشتقات بی تاثیره
    به این صورت که، اگر تغییری در علامت مشتق به وجود اومد وزن متناظر با نرخ کمتر از یک (معمولاً ۰٫۵) آپدیت میشه و اگه نه، با نرخ بالاتر از یک (معمولاً ۱٫۲)

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

    موضوعات جلسات مختلف در ذیل هر جلسه به صورت مختصر توضیح داده شده و در چند دقیقه اول هر جلسه میتوانید فهرست مطالب و کلیت اون جلسه رو ببینید.
    موفق باشین.

    [پاسخ]

    ارشام پاسخ در تاريخ مرداد ۲۶ام, ۱۳۹۶ ۲:۵۹ ق.ظ:

    @دکتر محمدزاده,
    کد تغییر رو مینویسید ؟

    [پاسخ]

    ارشام پاسخ در تاريخ مرداد ۲۶ام, ۱۳۹۶ ۴:۲۷ ق.ظ:

    @ارشام,
    کدی که از سایت شما دانلود کردم و باید تغییر پیدا کنه اینه :
    function [w1,w2]=GD_MLP(e,eta,u,o1,net1,net2,w1,w2)
    df1 =@(x) 2*exp(-x)./(1+exp(-x)).^2;
    df2 =@(x) 1*exp(-x)./(1+exp(-x)).^2;

    delta2=e.*df2(net2);
    w2=w2+eta*o1*delta2′;

    delta1=(w2(2:end,:)*delta2).*df1(net1);
    w1=w1+eta*u*(delta1)’;
    end

    [پاسخ]

    ارشام پاسخ در تاريخ مرداد ۲۷ام, ۱۳۹۶ ۴:۰۷ ب.ظ:

    @ارشام,
    با توجه به اینکه خروجی لایه اول معمولا سیگموئید است و بصورت برداری یه خروجی رو بهمون میده چطور باید بردار رو تعیین علامت نمود که اگه مثبت باشه eta=.5باشه و اگه منفی باشه ۱٫۲ باشه؟

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ مرداد ۲۸ام, ۱۳۹۶ ۱:۲۵ ب.ظ:

    @ارشام,
    خیلی راحت می توانید از دستورات مقایسه ای استفاده کنید
    مثلاً (aa=delta>0) برداری هم اندازه delta می دهد که درایه هایی که در آنها درایه های متناظر delta بزرکتر از صفر است، یک و بقیه صفر می باشند.
    ضمناً تغییر علامت مشتق در سمپل های متولی معیار می باشد نه مثبت و منفی بودن.

    جلسه ای راجع به این مبحث در مباحث تکمیلی این مجموعه ارائه خواهد شد.
    موفق باشین.

    [پاسخ]

  2. سلام.شبکه های gmdh زیر مجموعه شبکه های mlp هستن ؟فرق شبکه های gmdh و mlp چیه؟میشه کد مربوط به شبکه gmdh رو به mlp تغییر داد؟

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ مرداد ۲۲ام, ۱۳۹۶ ۳:۳۰ ب.ظ:

    @رضا اسدی,
    سلام
    به جلسه هفتم مراجعه کنید
    یک شبکه عصبی چندلایه بر اساس چند جمله ای های ایواخننکو می باشد.

    [پاسخ]

    اسدی پاسخ در تاريخ مرداد ۲۷ام, ۱۳۹۶ ۱۱:۰۷ ب.ظ:

    @دکتر محمدزاده,
    سلام ،من دانلود کردم .gmdh هر نورون در هر سری دو تا ورودی دریافت میکنه و در نهایته در هر مرحله محاسبه میکنه .
    آیا gmdh به عنوان زیر مجموعه mlp هست ؟
    من میتونم برنامه ای که با gmdh نوشتم رو به عنوان الگوریتم های mlp ارائه بدم یا نه ؟

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ مرداد ۲۸ام, ۱۳۹۶ ۱:۲۰ ب.ظ:

    @اسدی,
    سلام
    لطفاً فیلم آموزشی مربوطه را ببیند
    یک شبکه عصبی چندلایه بر اساس چند جمله ای های ایواخننکو می باشد.
    در مثال داده شده چون تعداد ورودیها دوتاست به خاظر همین تنها یک بلوک gmdh داریم
    اگه تعداد ورودها زیاد باشد علاوه بر وزنها می توانید لینکها رو نیز بهینه کنید. (کدام جفت ورودی تشکیل بک بلوک دهند و چند جمله ای های ایواخننکو را تولید کنند).
    در جلسات زیادی راجع به MLP و روشهای مختلف آموزش آن بحث شده است که می توانید مراجعه کرده و نتایج رو مقایسه کنید.
    موفق باشین

    [پاسخ]

  3. سلام
    دیتا ستی با مشخصات زیر دارم
    input=5*900
    سن [۵…۹۰]
    قد [۱…۲٫۵]
    وزن [۱۰…۱۹۰]
    مقدار چربی خون [۴۵٫٫۱۹۵]
    میزان کلسیم [۴۰…۳۵۰]
    target=1*900
    میزان مجاز مصرف [۳۵۰…۴۵۰]
    ===================
    داده های آموزشی = ۷۰ درصد
    داده های تست = ۳۰ درصد
    =================
    میخوام پیش بینی و طبقه بندی رو با استفاده از کدهای mlp انجام بدم ولی متاسفانه با اموزش ها و کدهایی که گذاشتین نمیتونم این کار رو انجام بدم .
    خروجی که بدست میارم در بازه ۰ و ۱ هست و خروجی e خیلی با خروجی مطلوب(هدف) اختلاف داره .
    آیا با همین کدها که گذاشتین این کار امکان پذیر هست یا نه ؟

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ مرداد ۲۱ام, ۱۳۹۶ ۱:۰۰ ب.ظ:

    @a,
    سلام
    بله، تابع فعالساز لایه خروجی را به خطی تغییر دهید
    موفق باشین.

    [پاسخ]

    a پاسخ در تاريخ مرداد ۲۱ام, ۱۳۹۶ ۵:۰۸ ب.ظ:

    @دکتر محمدزاده, امکانش هست بیشتر راهنمایی کنید که باید چطوری اینکار رو بکنم ؟

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ مرداد ۲۱ام, ۱۳۹۶ ۹:۳۸ ب.ظ:

    @a,
    خروجی را به صورت O=net2
    در نظر بگیرید
    net2 ورودی تابع فعالساز لایه خروجی است.
    با اینکار در واقع تابع فعالساز را به خطی تغییر داده اید.

    [پاسخ]

    a پاسخ در تاريخ مرداد ۲۲ام, ۱۳۹۶ ۷:۳۱ ب.ظ:

    @دکتر محمدزاده,
    کد رو بصورت زیر تغییر دادم ولی نتیجه نمیگیرم .
    TrainInputs = Inputs(:,TrainInd);
    TrainTargets = Targets(:,TrainInd);
    TestInputs = Inputs(:,TestInd);
    TestTargets = Targets(:,TestInd);

    num_neuron=10;
    b1=0;
    b2=0;
    eta=.03;
    w1=rand(9,num_neuron);
    w2=rand(num_neuron+1,1);

    for epoch=1:13
    epoch;
    %% Train
    E=0;
    nn=nTrainData;

    for i=1:1:nn
    x=TrainInputs(:,i);
    [o1,o2,net1,net2]=FeedForward(x’,b1,b2,w1,w2);
    e=TrainTargets(i)-o2;
    [w1,w2]=GD_MLP(e,eta,[b1;x],[b2;o1],net1,net2,w1,w2);
    E=E+e^2;
    TrainOutputs(i)=o2;
    end
    E/nn ;
    MSE_Train(epoch)= E/423;

    %% Test
    E=0;
    for i=1:1:75
    x=TestInputs(:,i);
    [o1,o2,net1,net2]=FeedForward(x’,b1,b2,w1,w2);
    e= TestTargets(i)-o2;
    E=E+e^2;
    testOutputs(i)=o2;
    yest(i)=o2;
    end

    E/75;
    MSE_Test(epoch)=E/75;

    end

    TrainTargets;
    TrainOutputs;
    % figure;
    % PlotResults(TrainTargets, TrainOutputs, ‘Train Data’);
    %
    % figure;
    % PlotResults(TestTargets, testOutputs, ‘Test Data’);

    % figure;
    % PlotResults(Targets, Outputs, ‘All Data’);

    end

    function [o1,o2,net1,net2]=FeedForward(x,b1,b2,w1,w2)
    %% Activation functions
    % f1 =@(x)(x);
    % % f2 =@(x)(1-exp(-x))./(1+exp(-x));
    % f2=@(x) (x);
    % f2 =@(x) 1./(1+exp(-x));
    %% Hidden Layer
    u1=[b1;x’];
    net1=w1’*u1;
    o1= (net1)
    %% Out Layer
    u2=[b2;o1];
    net2=w2’*u2;
    o2=(net2)
    end

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ مرداد ۲۲ام, ۱۳۹۶ ۱۱:۴۹ ب.ظ:

    @a,
    در بخش آموزش هم باید مشتق تابع فعالساز را تغییر دهید
    مشتق تابع فعالسازی که در این کد استفاده کردین ۱ خاهد شد.

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

    [پاسخ]

    a پاسخ در تاريخ مرداد ۲۳ام, ۱۳۹۶ ۱۲:۰۹ ق.ظ:

    @دکتر محمدزاده,
    جناب دکتر من تو همین قسمت مشتق گیری و بهینه سازی وزن ها مشکل دارم .
    خروجی دلتا ۱ و دلتا ۲ همش صفر میشه .
    این کد رو اگه امکانش هست شما تغییر بدین مشکلم حل میشه .
    function [w1,w2]=GD_MLP(e,eta,u,o1,net1,net2,w1,w2)
    df1 =@(x) 2*exp(-x)./(1+exp(-x)).^2;
    df2 =@(x) 1*exp(-x)./(1+exp(-x)).^2;
    delta2=e.*df2(net2);
    w2=w2+eta*o1*delta2′;
    delta1=(w2(2:end,:)*delta2).*df1(net1);
    w1=w1+eta*u*(delta1)’;
    end

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ مرداد ۲۳ام, ۱۳۹۶ ۲:۱۳ ب.ظ:

    @a,
    اگه تابع فعالساز لایه خروجی را به صورت
    O2=net2
    در نظر گرفتین
    در برنامه گرادیان delta2 میشه e
    تابع فعالساز لایه میانی بذارید همون قبلی باشه
    delta2 مستقیم به خطا مربوطه اگر صفر بشه یعنی اینکه خروجی شبکه عصبی دقیقاً شده خروجی مطلوب

    [پاسخ]

    a پاسخ در تاريخ مرداد ۲۳ام, ۱۳۹۶ ۵:۲۶ ب.ظ:

    @دکتر محمدزاده,
    متاسفانه بازم حل نشد.
    کد کامل بصورت زیر هست:

    Inputs = (data.Inputs);
    Targets = (data.Targets);

    nData = size(Inputs,2);
    Perm = randperm(nData);
    % Train Data
    pTrain = 0.85;
    nTrainData = round(pTrain*nData);
    TrainInd = Perm(1:nTrainData);
    TrainInputs = Inputs(:,TrainInd);
    TrainTargets = Targets(:,TrainInd);

    % Test Data
    pTest = 1 – pTrain;
    nTestData = nData – nTrainData;
    TestInd = Perm(nTrainData+1:end);
    TestInputs = Inputs(:,TestInd);
    TestTargets = Targets(:,TestInd);

    num_neuron=10;
    b1=1;
    b2=1;
    eta=.5;
    w1=rand(9,num_neuron);
    w2=rand(num_neuron+1,1);
    E=0;
    nn=nTrainData;

    for i=1:1:nn
    x=TrainInputs(:,i);
    [o1,o2,net1,net2]=FeedForward(x,b1,b2,w1,w2);
    e=TrainTargets(i)-o2;
    [w1,w2]=GD_MLP(E,e,eta,[b1;x],[b2;o1],net1,net2,w1,w2);
    E=E+e^2;
    end

    end

    function [o1,o2,net1,net2]=FeedForward(x,b1,b2,w1,w2)
    %% Activation functions
    f1 =@(x)(1-exp(-x))./(1+exp(-x));
    % f1 =@(x)(1-exp(-x))./(1+exp(-x));

    %% Hidden Layer
    u1=[b1;x];
    net1=w1’*u1;
    o1= f1(net1);
    %% Out Layer
    u2=[b2;o1];
    net2=w2’*u2;
    o2=net2;
    end

    function [w1,w2]=GD_MLP(E,e,eta,u,o1,net1,net2,w1,w2)
    %% Derivative of Activation functions
    df1 =@(x) 2*exp(-x)./(1+exp(-x)).^2;
    df2 =@(x) 1*exp(-x)./(1+exp(-x)).^2;
    deltai=eta*(e);
    delta2=e;
    w2=w2+eta*o1*delta2′;
    delta1=(w2(2:end,:)*delta2).*df1(net1);
    w1=w1+eta*u*(delta1)’;
    end

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ مرداد ۲۳ام, ۱۳۹۶ ۸:۵۳ ب.ظ:

    @a,
    ابتدا کدها متلب داده شده رو اجرا کرده و فیلم آموزشی رو ببیند
    سپس اقدام به تغییر کدها برای مسئله خودتان نمایید البته که به سادگی امکان پذیره
    فقط باید دقت کنید که ابعاد مسئله رو به درستی تعریف کنید
    در تغییراتی که دادید نباید تعداد ایپاکها رو حذف کنید در یک ایپاک که جواب بدست نمیاد، روش پس انتشار خطا باید در چند تکرار با ترتیب ورودی تصادفی انجام شود، مشابه مثال حل شده.
    قبل از اجرای برنامه دقت کنید که ورودی مطلوب (تارقت) متناظر با هریک از دیتاها به درستی تعریف شده است.

    تعداد نرونها در لایه میانی و نرخ آموزشی و همچنین تعداد ایپاکها تاثیر زیادی در کیفیت پاسخ خاهد داشت.

    کدها رو سطر به سطر اجرا کنید تا اگه تغییری به اشتباه انجام دادید پیدا کنید

    موفق باشین

    [پاسخ]

  4. سلام اقای دکتر محمد زاده ببخشید من راجبه نحوه ی استفاده از الگوریتم ژنتیک در شبکه های رادیو شناختی اطلاعات میخواستم ‌.نمیدونم چجوری پارامتر هاشو تعیین کنم امکان نداره یه فیلم راجبه این موضوع اپلود کنید؟ موضوع اصلی کارم مکان یابی کاربر اولیه در شبکه های رادیو شناختی است …

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ مرداد ۶ام, ۱۳۹۶ ۹:۴۲ ب.ظ:

    @هانیه کردی,
    با سلام
    تولباکس متلب برای الگوریتم ژنتیک در یکی از جلسات به صورت کامل توضیح داده شده است که می توانید در مسائل مختلف استفاده کنید. مهمترین مسئله در استفاده از الگوریتم ژنتیک، درست نوشتن تابع هزینه است که باید متناسب با مسئله خودتان بتوانید بنویسید…

    [پاسخ]

  5. با عرض سلام خدمت استاد محمدزاده
    من چند وقت پیش ویدیوی تنظیم ضرایب pid با شبکه عصبی شما را خریداری کردم خیلی خوب بود اما در مورد آن سوال داشتم:
    اینکه ژاکوبین یک سیستم چگونه است؟
    ایا این برنامه برای سیستم های ناپایدار هم جواب میدهد؟
    با تشکر فراوان

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ تیر ۲۲ام, ۱۳۹۶ ۷:۲۷ ب.ظ:

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

    [پاسخ]

  6. سلام.

    در درس جلسه مربوط به شبکه عصبی MLP :

    در مجموع ۱۰۲۴۰ تا دیتای ترین (train) داریم. در حالی که با مشاهده ضرایب ترین (train) در ورک اسپیس مشاهده میکنیم که

    یک ماتریس با ۲۳ تا سطر و ۱۰۲۴ تا ستون داریم، چرا؟

    مگر نباید ۱۰۲۴۰ تا ستون داشته باشیم؟ یا اینکه ۱۰ تا از این ستون های ۱۰۲۴ تایی باید داشته باشیم؟

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ اردیبهشت ۳۱ام, ۱۳۹۶ ۶:۳۷ ب.ظ:

    @ماهان,
    دوست عزیز چرا فیلم آموزشی را نمی بینید؟؟؟؟؟؟؟؟
    از دقیقه ۷ تا ۱۱ در مورد این دیتا با جزئیات توضیح داده شده است.
    ابعاد دیتا train به صورت ۱۰*۱۰۲۴*۲۳ می باشد که هر لایه این ماتریس مربوط به یک تصویر است. حالا اگه همه دیتاها را کنار هم قرار دهیم به صورت یک ماتریس دو بعدی ۱۰۲۴۰*۲۳ خاهد بود.

    [پاسخ]

  7. سلام. وقت شما بخیر

    بنابراین با توجه به پاسخ قبلی شما :

    ۱- منظور شما از ۱۰۲۴ تا نمونه همون ۱۰۲۴ تا پیکسل است که برای هر پیکسل از ۲۳ تا فیچر استفاده کردید ؟

    ۲- و منظور شما از ۱۰ تا ورودی همون ۱۰ نوع پیکسل مختلف است که از هر نوع ۱۰۲۴ تا نمونه داریم؟

    باتشکر.

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ اردیبهشت ۳۱ام, ۱۳۹۶ ۱:۵۱ ب.ظ:

    @ماهان,
    لطفاً فیلم آموزشی را با دقت ببینید.
    تعداد ورودی ۲۳ تا است و تعداد خروجی ۱۰٫
    از هر نوع تصویر ۱۰۲۴ تا داریم.

    [پاسخ]

  8. سلام.

    از پاسخگویی شما به سوالات قبلی متشکرم.

    منظور شما در درس جلسه ۳ (MLP) از ۲۳ تا مشخصه که همون ورودی های شبکه هستند، ۲۳ تا ضریب مربوط به هر “پیکسل” است؟

    بعد هر سیگنال مجموعه ای از این پیکسل ها یعنی مضربی از ۲۳ ضریب است؟

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ اردیبهشت ۳۱ام, ۱۳۹۶ ۱۱:۴۰ ق.ظ:

    @ماهان,
    سلام
    تعداد ورودی های شبکه عصبی ۲۳ تاست که در مورد اون دیتابیس مربوط به ۲۳تا فیچر از یک تصویر است.
    ضمن اینکه برنامه به صورت کاملاً جنرال نوشته شده و شما به راحتی می توانید تعداد ورودی-خروجی دالخواه در نظر بگیرید.

    [پاسخ]

  9. سلام.

    منظورم در سوال قبلی این است که برای دیدن ام فایل دیتا بیسی که شما در درس جلسه سوم (MLP) استفاده کردید، چکار باید بکنیم.

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ اردیبهشت ۲۸ام, ۱۳۹۶ ۶:۴۶ ب.ظ:

    @ماهان,
    اگه برنامه را ران کنید این دیتا بیس در workspace شما لود میشه. داخل فلیم در مورد این دیتا بیس توضیح داده شده است. دیتابیس داخل فایلای متلب قرارد داده شده است با پسوند mat

    [پاسخ]

  10. سلام خدمت دکتر محمدزاده.

    شما در درس مربوط به جلسه ۳ (MLP) در دقیقه ۷ فرمودید که از یک سری دیتای پرکتیکال در این درس استفاده نمودید، می فرمایید که

    طریقه مشاهده ی این دیتا در فایل متلب این درس چگونه است؟

    با تشکر.

    [پاسخ]

    دکتر محمدزاده پاسخ در تاريخ اردیبهشت ۲۸ام, ۱۳۹۶ ۶:۴۴ ب.ظ:

    @ماهان,
    سلام دیتا بیس داخل فایلا قرار داده شده است. Xtrain و
    Xtest

    [پاسخ]

یک پاسخ بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *