نويسنده موضوع: كد كامل شبكه عصبي MLP  (دفعات بازديد: 24780 بار)

0 کاربر و 1 مهمان درحال ديدن موضوع.

آفلاين mahsa85

  • کاربر تازه وارد سطح اول
  • *
  • تشکر
  • -اهدايي: 0
  • -دريافتي: 4
  • ارسال: 7
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #30 : 5 آذر 1388 - 18:13:12 »
سلام.
مثل اينكه كدنويسي برا شبكه هاي عصبي و ... مشتري نداره :lol:.
يه نكته اي رو بگم و اون اينكه اگه حجم اطلاعاتي كه ميخواهيد به شبكه آموزش بديد زياد باشه، مثلا در پروژه اي كه ما روش كار ميكرديم ابعاد ماتريس 20*6900 بود براي امكان استفاده از دستور newff نبود(با 4 گيگ رم) اين برنامه اونجاها ميتونه به داد آدم برسه.
اگه كسي مايل بود كد رو كامل بررسي كنه و يه توضيحي براش بنويسه منم اگه چيزي بلد باشم بهش اضافه ميكنم كه انشالله يه چيز كاربردي از آب در بياد :wink:


سلام
میشه توضیح بدید در کدتون چرا نرمالسازی کردید و اینکه چرا داده ها رو قاطی کردید تا شبکه بهتر آموزش ببینه چه تاثیری داره؟

آفلاين محمد نحوي

  • همکار علمی
  • *
  • تشکر
  • -اهدايي: 917
  • -دريافتي: 1869
  • ارسال: 2821
    • دانشجوي دکترا الکترونيک
    • وب سايت شخصي
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #31 : 9 آذر 1388 - 20:50:54 »
سلام.
سوالات خوبي مطرح كرديد ممنونم:
1. علت اينكه داده ها رو نرماليزه مي كنن اين هست كه در غير اين صورت نورون هاي شبكه عصبي اشباع مي شن. يعني به سرعت خروجي آنها 1 يا 1- ميشه بدون اينكه داده به نحوه صحيحي در اون تاثير داشته باشه. ناحيه فعال يه نورون بين صفر تا 1 يا بين 1- تا 1 هست بنابراين بايد داده ها رو در اين محدوده نرماليزه كنيم.
2. علت اينكه داده ها رو بهم ميزنيم اين هست كه فرض كنيد شما اول تمام داده هاي كلاس 1 رو به شبكه آموزش بديد، شبكه بدون ديدن داده هاي كلاس هاي ديگه به راحتي با چند تا تغيير كوچيك ميتونه اين كلاس رو ياد بگيره بعد از اينكار داده هاي كلاس 2 رو به شبكه آموزش ميديم، با اينكار شبكه وزن هايي كه براي كلاس 1 آموزش ديده بود رو تغيير ميده تا شبكه 2 رو آموزش ببينه و .... . در نهايت احتمالا كلاس آخري كه بهش آموزش مديد رو خوب ياد ميگيره. براي اينكه اين مشكل پيش نياد داده ها رو بهم ميزنن. يعني مثلا 2 تا داده از كلاس 1 بهش ميدن، 5 تا از كلاس 4 و ... تا شبكه همزمان تمام كلاس ها رو آموزش ببينه و بتونه اونها رو از هم تفكيك كنه.
موفق باشيد.
شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمه‌ي جهاد في‌سبيل‌الله.
هجرت، هجرت از سنگيني‌هاست و جاذبه‌هايي كه تو را به خاك مي‌چسباند.
چكمه‌هايت را بپوش، ره‌توشه‌ات را بردار و هجرت كن.

آفلاين مجید رافعی

  • کاربر تازه وارد سطح سوم
  • *
  • تشکر
  • -اهدايي: 8
  • -دريافتي: 15
  • ارسال: 26
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #32 : 22 فروردين 1389 - 22:48:25 »
با سلام. :smile:

سؤالاتی داشتم، لطف می کنید اگه پاسخ دهید:

1- روی پروژه ای دارم کار می کنم که با MLP پیاده سازی میشه، تو برون یابی نتایج مطلوب بدست نمیارم. شما چه تکنیک یا توصیه ای برای بهبود نتایج در برون یابی پیشنهاد می کنید؟ نتایج درون یابی ها قابل قبوله!

2- در آزمایش هام استفاده از تابع newcf رو نسبت به newff مطلوب تر دیدم. شما در برنامتون از چه الگوریتمی استفاده کرده اید؟

با تشکر :agree:
« آخرين ويرايش: 22 فروردين 1389 - 23:12:25 توسط مجید رافعی »

آفلاين خرابات

  • Moderator
  • *
  • تشکر
  • -اهدايي: 175
  • -دريافتي: 412
  • ارسال: 363
  • افتتاح اولین انجمن مایکرویو ایرانی در ECA.ir
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #33 : 22 فروردين 1389 - 23:04:07 »
با سلام. :smile:

سؤالی داشتم، لطف می کنید اگه پاسخ دهید:

1- روی پروژه ای دارم کار می کنم که با MLP پیاده سازی میشه، تو برون یابی نتایج مطلوب بدست نمیارم. شما چه تکنیک یا توصیه ای برای بهبود نتایج در برون یابی پیشنهاد می کنید؟ نتایج درون یابی ها قابل قبوله!

با تشکر :agree:
سلام
جواب سئوال شما رو با توجه به علم اندک خودم میدم،نمی دونم کاملا درسته یا نه.
ببینید به هنگام آموزش شبکه عصبی فرآیندی به نام نرمالسزای روی بردارهای آموزش انجام میشه.
یعنی چی ؟
یعنی میایم ماکسیمم و مینیمم ورودی-خروجیو رو معین می کنیم و کار آموزش شبکه عصبی شروع میشه.
روی این فرآیند نرمالیزه کردن دقت کنیم:
مگر نه اینکه داده های ما هر مقداری داشته باشند به بازه ای می آن که قدر مطلقش کمتر از یک باشه.
این به این مفهوم هست که با توجه به تابع تصمیم گیری ما مثلا (سیگمویید) شبکه ما جوری عمی می کنه که رابطه بین ورودی - خروجیو در همون بازه یاد می گیره به عبارت بهتر همه این ها توضیخ مفهومی این عبارت بود:
شبکه های عصبی قدرت برون یابی ندارند. :wink:
انجمن طراحی مدارهای مایکرویو(فرکانس بالا)(کاربران مهمان مجاز به مشاهده لینک ها نیستند. لطفا ثبت نام نمایید. ثبت نام -- ورود)
انجمن شبکه های عصبی(کاربران مهمان مجاز به مشاهده لینک ها نیستند. لطفا ثبت نام نمایید. ثبت نام -- ورود)
                                                *****

آفلاين k_siroos

  • کاربر تازه وارد سطح سوم
  • *
  • تشکر
  • -اهدايي: 25
  • -دريافتي: 1
  • ارسال: 20
    • Chemical Engineer B.Sc
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #34 : 2 تير 1389 - 01:42:55 »
نقل قول
... بعد هم داده ها رو باهم قاطي ميكنه تا شبكه بهتر آموزش ببينه ...

اگه اشتباه نکنم در فایل  CMLP  از دستور  [P,T] = Combine_Data(P,T)  برای این کار استفاده کردین ؛ من وقتی این دستور رو وارد برنامه نوشته شده ام می کنم ، متلب این ارور رو میگیره

Undefined command/function 'Combine_Data'

می خواستم بدونم مشکل از کجاست ؟؟؟ دستور رو اشتباه استفاده می کنم ؟؟؟
« آخرين ويرايش: 2 تير 1389 - 01:46:18 توسط k_siroos »
شعله یک شمع با روشن کردن شمع دیگر خاموش نخواهد شد ...

کاربران مهمان مجاز به مشاهده لینک ها نیستند. لطفا ثبت نام نمایید. ثبت نام -- ورود

آفلاين خرابات

  • Moderator
  • *
  • تشکر
  • -اهدايي: 175
  • -دريافتي: 412
  • ارسال: 363
  • افتتاح اولین انجمن مایکرویو ایرانی در ECA.ir
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #35 : 2 تير 1389 - 02:06:07 »
تابع فوق،جزء توابع تعریف شده در متلب نیست و باید توسط خودتون نوشته بشه
(احتمالا در برنامه جناب نحوی نوشته شده و شما یادتان رفته این تابع را به شاخه Matlab در Mydocument بیاورید.)

 واسه اینکه هر تابعی اجرا بشه باید در شاخه
C:/Mydocument/Matlab
ذخیره شده باشه و عنوانcurrent directory نیز در برنامه متلب روی همون آدرس بالا تنظیم شده باشه.

وقتی همچین تابعی در برنامه وجود نداره،متلب Error می گیره.
انجمن طراحی مدارهای مایکرویو(فرکانس بالا)(کاربران مهمان مجاز به مشاهده لینک ها نیستند. لطفا ثبت نام نمایید. ثبت نام -- ورود)
انجمن شبکه های عصبی(کاربران مهمان مجاز به مشاهده لینک ها نیستند. لطفا ثبت نام نمایید. ثبت نام -- ورود)
                                                *****

آفلاين k_siroos

  • کاربر تازه وارد سطح سوم
  • *
  • تشکر
  • -اهدايي: 25
  • -دريافتي: 1
  • ارسال: 20
    • Chemical Engineer B.Sc
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #36 : 2 تير 1389 - 23:25:50 »
تابع فوق،جزء توابع تعریف شده در متلب نیست و باید توسط خودتون نوشته بشه
(احتمالا در برنامه جناب نحوی نوشته شده و شما یادتان رفته این تابع را به شاخه Matlab در Mydocument بیاورید.)

 واسه اینکه هر تابعی اجرا بشه باید در شاخه
C:/Mydocument/Matlab
ذخیره شده باشه و عنوانcurrent directory نیز در برنامه متلب روی همون آدرس بالا تنظیم شده باشه.

وقتی همچین تابعی در برنامه وجود نداره،متلب Error می گیره.

کاملا حق با شما بود ... مرسی از لطفتون .  @};-
شعله یک شمع با روشن کردن شمع دیگر خاموش نخواهد شد ...

کاربران مهمان مجاز به مشاهده لینک ها نیستند. لطفا ثبت نام نمایید. ثبت نام -- ورود

آفلاين logamp2002

  • کاربر تازه وارد سطح دوم
  • *
  • تشکر
  • -اهدايي: 1
  • -دريافتي: 4
  • ارسال: 14
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #37 : 22 تير 1389 - 19:04:14 »
سلام
لطفا اگه امکان داره در مورد این کد بیشتر توضیح بدبد.فایل KFData2 رو چطوری باید ایجاد کنیم؟ همینطور در مورد تعریف پترن و تارگت P,T توضیح بدید لطفا.
اگه بخوام تعداد زیادی تصاویر باینری رو به عنوان ورودی به این شبکه بدم تا آموزش ببینه چطوری باید واسش تعریف کنم؟ با تشکر.

آفلاين naser1363

  • کاربر ساده سطح اول
  • *
  • تشکر
  • -اهدايي: 2
  • -دريافتي: 5
  • ارسال: 87
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #38 : 9 مرداد 1389 - 19:08:35 »
سلام
لطفا اگه امکان داره در مورد این کد بیشتر توضیح بدبد.فایل KFData2 رو چطوری باید ایجاد کنیم؟ همینطور در مورد تعریف پترن و تارگت P,T توضیح بدید لطفا.

ممنونم

آفلاين خرابات

  • Moderator
  • *
  • تشکر
  • -اهدايي: 175
  • -دريافتي: 412
  • ارسال: 363
  • افتتاح اولین انجمن مایکرویو ایرانی در ECA.ir
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #39 : 9 مرداد 1389 - 20:10:34 »
سلام
لطفا اگه امکان داره در مورد این کد بیشتر توضیح بدبد.فایل KFData2 رو چطوری باید ایجاد کنیم؟ همینطور در مورد تعریف پترن و تارگت P,T توضیح بدید لطفا.

ممنونم
در خطوط اولیه برنامه CMLP امده است :
load('KFData2');
این عبارت متغیر هایی که تحت عنوان KFdata2 هستند رو load میکنه،من فکر می کنم این متغیر باید شامل p(پترن)وt(تارگتها)باشه
این متغیر kfdata2 جزء متغیرهایی بوده که می بایستی در اون پوشه اصلی  وجود داشته باشه همراه برنامه،که وجود نداره.
احتمالا جناب نحوی می خواستن این کد این قابلیت رو داشته باشه که هر کسی ورودی-خروجی هاشو در قالب متغیر kfdata2 ایجاد کنه و با run کردن برنامه سیر آموزش شبکه و ... طی بشه.
این نظر من بود که ممکن هم هست غلط باشه که خود جناب نحوی قطعا می تونن نظر نهایی رو در این باره بدن.
انجمن طراحی مدارهای مایکرویو(فرکانس بالا)(کاربران مهمان مجاز به مشاهده لینک ها نیستند. لطفا ثبت نام نمایید. ثبت نام -- ورود)
انجمن شبکه های عصبی(کاربران مهمان مجاز به مشاهده لینک ها نیستند. لطفا ثبت نام نمایید. ثبت نام -- ورود)
                                                *****

آفلاين naser1363

  • کاربر ساده سطح اول
  • *
  • تشکر
  • -اهدايي: 2
  • -دريافتي: 5
  • ارسال: 87
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #40 : 9 مرداد 1389 - 21:30:23 »
ممنونم

پس متغییر های PT و TT در این برنامه چی هستند؟

وقتی من T و p را برای برنامه معرفی می کنم و برنامه CMLP رو اجرا میکنم خطا میده متغییر PT تعریف نشده؟

آفلاين logamp2002

  • کاربر تازه وارد سطح دوم
  • *
  • تشکر
  • -اهدايي: 1
  • -دريافتي: 4
  • ارسال: 14
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #41 : 17 مرداد 1389 - 17:33:30 »
یعنی هیچکی نیست که بگه فایل KFData رو چطور باید ایجاد کرد؟ اگه تعداد دیتا های ورودی که مثلا از نوع تصویر باشند خیلی زیاد باشند این شبکه جواب میده؟

آفلاين marzie_h

  • کاربر تازه وارد
  • *
  • تشکر
  • -اهدايي: 0
  • -دريافتي: 1
  • ارسال: 1
    • لیسانس
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #42 : 2 شهريور 1389 - 19:01:17 »
سلام آقای نحوی
من این کدا رو دیدم اگه لطف کنید در مورد هر کدوم از این فایلا یه توضیخ یه خطی بدبد که کار هر کدوم چیه و ورودی ها و خروجی هاش چیند؟
lدر ضمن در مورد kfdata2 هم توضیح بدبد که چطور ایجادش میکنید , متغیر های PT,TT چیهستند اخه توی برنامه تعریف نشدند؟
میشه در مورد مبنای ریاضی نرمالسازی که انجام دادید توضیح بدبد" تا اونجا که من میدونم برای نرمال سازی داده ها باید اونا رو از میانگینشون کم وبر واریانسشون تقسیم کرد؟
« آخرين ويرايش: 4 شهريور 1389 - 19:07:35 توسط marzie_h »

آفلاين av_saber

  • کاربر تازه وارد سطح چهارم
  • *
  • تشکر
  • -اهدايي: 13
  • -دريافتي: 12
  • ارسال: 30
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #43 : 29 شهريور 1389 - 01:24:25 »
سلام
يه دو سالي بود كه با شبكه عصبي كار نكرده بودم و بعد از مدت ها توي يه پروژه به ياد ايام جواني دوباره اومدم سروقتش.
جناب نحوي كد تون رو ديدم تنها نقطه مبهم همون طوري كه دوستان هم گفته بودند در فايل CMLP.m هست كه نوع ديتا هاي ذخيره شده توسط دستور KFData2 مشخص نشده
در ادامه از دو متغير p,t استفاده شده يعني فقط اين دو متغير تعريف بشند كفايت مي كنه كه بقيه مراحل انجام بشه ؟؟

آفلاين av_saber

  • کاربر تازه وارد سطح چهارم
  • *
  • تشکر
  • -اهدايي: 13
  • -دريافتي: 12
  • ارسال: 30
پاسخ : كد كامل شبكه عصبي MLP
« پاسخ #44 : 30 شهريور 1389 - 15:59:07 »
چند تا چيز جديد هم فهميدم
و اون اينكه متغير هاي موجود در فايل KFData2 بايد به اين صورت باشند
T يا همون target كه بردار هدف يا خروجي مورد نظر در اون ذخيره مي شه
P كه همون ماتريس ورودي هست
‏‏TT كه target test هست و بايد تعدادي از ديتاها رو مثلا 10٪ رو براي تست شبكه و گرفتن نتايج خروجي استفاده كرد اين ماتريس همون ماتريس خروجي تست هست
‏TP  و اين ماتريس ماتريس ورودي تست هست
ولي بازم شبكه من يه خطا مبني بر يكي منطبق نبودن اندازه ماتريس ها مي ده علتش رو نفهميدم ؟؟؟ :angry: