آمار کلی

بازدیدکنندگان : 2726609

Who's Online

ما 69 مهمان آنلاین داریم

آخرين ارسالهاي تالار

پرداخت آنلاین بانک ملت

مبلغ تراکنش (ريال):
ايجاد شبكه‌هاي عصبي با ابزار GUI مشاهده در قالب PDF چاپ فرستادن به ایمیل
نوشته شده توسط مجتبی آیتی نیا   
یکشنبه, 30 خرداد 1389 ساعت 12:13

به طور كلي در نرم‌افزار MATLAB به سه روش مي‌توان شبكه‌هاي عصبي را ايجاد كرد:

  1. كدنويسي
  2. استفاده از سيستم‌هاي بلوكي(Simulink)
  3. استفاده از محيط گرافيكي(GUI)

در اين نوشتار قصد دارم نحوه‌ي استفاده از GUI در جعبه‌ابزار شبكه عصبي را به دوستان معرفي كنم البته به دوستان توصيه مي‌كنم كه ابتدا با كدنويسي آشنا شوند زيرا ممكن است درجايي مجبور به نوشتن كد باشند مگر كساني كه شبكه عصبي، درس تخصصي آنها نبوده و فقط براي انجام قسمتي از پروژه‌شان مي‌خواهند از شبكه‌هاي عصبي استفاده كنند كه استفاده از GUI در اين مورد بسيار ساده و سريع است.

براي شروع nntool را در خط فرمان تايپ و اينتر كنيد و يا از مسير Start >> Toolboxes >> Neural Network >> Neural Network Tool استفاده كنيد پنجره‌اي مانند شكل زير مشاهده مي‌كنيد:

 

براي ايجاد يك شبكه جديد، روي دگمه New كليك كنيد همان‌طور كه مشاهده مي‌شود، ‌پنجره‌اي باز مي‌شود كه مي‌توانيد در آن پارامترهاي شبكه‌ي مورد نظرتان را وارد كنيد:

در تب Network شما مي‌توانيد تنظيمات مربوط به شبكه عصبي مورد نظرتان را وارد كنيد و در زبانه دوم يعني Data شما داده‌هاي خود را وارد مي‌كنيد. حالا براي مثال اول مي‌خواهيم با يك تك پرسپترون، گيت NAND دو ورودي را پياده‌سازي كنيم ابتدا نام شبكه مورد نظر را در قسمت Name وارد كنيد من نام NAND را وارد مي‌كنم سپس در قسمت Network Type نوع شبكه را Perceptron انتخاب كنيد پس از آن به تب Data رفته و در قسمت Name نام p و در قسمت Value مقدار [1 0 1 0;1 1 0 0] و در Data Type حالت Inputs را انتخاب كرده و به روي Create كليك كنيد ديالوگي مبني بر ذخيره ديتا مشاهده مي‌‌كنيد آن را Ok كنيد سپس براي ذخيره‌ي داده‌هاي تارگت مشابه حالت قبل عمل كنيد يعني در قسمت Name نام t و در قسمت Value مقدار [0 1 1 1] و در Data Type حالت Targets را انتخاب كرده و به روي Create كليك كنيد ديالوگ مشاهده شده را Ok كنيد. به تب Network بازگشته و داده‌هاي ورودي و تارگت را از منوي مقابلشان انتخاب كنيد براي ديدن ساختار شبكه، بر دگمه View كليك كنيد بصورت زير:

همان‌طور كه مي‌بينيد از تابع محدود كننده سخت نامتقارن استفاده كرده‌ايم تا خروجي‌هاي ما صفر يا يك شوند حالا براي ايجاد شبكه، Create را كليك، و ديالوگ پس از آن را Ok كنيد به پنجره اصلي بازگشته و در قسمت Networks به روي NAND كليك كرده و Open را بزنيد در پنجره باز شده به تب Train رفته و مقادير ورودي و تارگت را وارد كرده و براي شروع آموزش Train Network را بفشاريد همان‌طور كه مشاهده مي‌كنيد به پرفورمانس صفر رسيده‌ايم(اتفاقي كه در هيچكدام از مسائل واقعي كه ما با آن سروكار داريم، هرگز رخ نخواهد داد!) كه دليلش را هم احتمالا مي‌دانيد حال به پنجره اصلي بازگشته و مقادير خروجي و خطا را به ازاي داده‌هاي آموزشي مشاهده كنيد كه البته از پرفورمانس صفر مي‌توان حدس زد كه چه مقاديري به دست آمده است.

اكنون اگر بوسيله‌ي همين روش تابع XOR را پياده‌سازي كنيد نتايج وحشتناكي خواهيد گرفت.

براي مثال دوم مي‌خواهيم تابع سينوس را بوسيله‌ي يك شبكه عصبي MLP ، تقريب بزنيم براي اين منظور در پنجره مديريت شبكه و ديتا، New را كليك  كرده و مانند شكل زير عمل  كنيد:

شبكه را دو لايه قرار داده‌ايم كه در لايه اول ده نرون با تابع تبديل تانژانت سيگموئيد و لايه دوم كه همان لايه خروجي است را تابع تبديل خطي داده‌ايم(نرون‌هاي لايه خروجي برابر تعداد خروجي‌هاي شبكه مي‌باشد كه در اين مثال برابر يك است.)

البته من يادم رفت كه نحوه‌ي ايجاد داده‌ها را به شما بگم در اينجا ديگر نمي‌توانيد از روش قبل براي ايجاد داده‌هاي خود استفاده كنيد و بايد ديتا را يا از يك فايل mat بگيريد و يا از فضاي كاري متلب. دستورات زير را در خط فرمان تايپ و اينتر كنيد:

;p=0:0.1:4*pi

;(t=sin(p

به پنجره‌ي اصلي بازگشته و Import را كليك كنيد سپس داده‌هاي p و t را به ترتيب عنوان داده‌هاي ورودي و تارگت، Import كرده و سپس Close كنيد.

حال به پنجره‌ي تنظيمات بازگشته و داده‌هاي ورودي و تارگت را وارد كرده و شبكه را ايجاد كنيد. شبكه‌اي را كه با نام Sin ذخيره كرده‌ايد، باز كنيد و به تب Train برويد و پس از وارد كردن داده‌هاي ورودي و تارگت، به تب Training Parameters برويد همانطور كه ملاحظه مي‌كنيد در اينجا مي‌توانيد پارامترهاي زيادي را تغيير دهيد مثلا ممكن است در مساله‌اي خاص، پرفورمانسي برابر 0.001 كافي باشد كه مي‌توانيد در قسمت goal آن عدد را وارد كنيد و نيز تنظيمات ديگري از جمله زمان، تعداد مراحل آموزش و ...

 

 

مقادير را پيش‌فرض قرار داده و شبكه را آموزش دهيد:

 

اگر به مقاديري غير از آنچه در بالا آمده، رسيده‌ايد، تعجب نكنيد.

در تب View/Edit Weights مي‌توانيد تمام وزن‌ها و باياس‌ها را مشاهده كنيد به پنجره‌ي اصلي بازگرديد و Export را كليك كرده و شبكه و نيز داده‌هاي خروجي و خطا را به فضاي كاري متلب انتقال دهيد و كدهاي زير را اجرا كنيد:

(subplot(2,1,1

;(y1=sim(Sin,p

('plot(p,t,p,y1,'m

;([xlim([0 4*pi]);ylim([-1 1

;('(title('Network Output (Training Data

(subplot(2,1,2

;x=0:0.001:4*pi

;(y2=sim(Sin,x

('plot(x,sin(x),x,y2,'m

;([xlim([0 4*pi]);ylim([-1 1

;('(title('Network Output (Test Data

همان‌طوري كه مشاهده مي‌شود شبكه با ده نرون به خوبي آموزش ديده و براي داده‌هاي تست نيز خروجي مناسبي داريم.

(توجه كنيد كه در شكل، منحني‌هاي خروجي و تارگت روي هم افتاده‌اند)

 

نكته: توجه كنيد كه تابع سينوس يكي از ساده‌ترين توابع است و آن را مي‌توانيد با تعداد نرون‌هاي كمتري(حتي دو سه نرون) با تقريب نسبتا خوبي پياده‌سازي كنيد. درواقع بسته به خودتان است كه چه ميزان دقت مورد نياز شماست. يكي از توابع سخت براي پياده‌سازي، تابع مربعي مي‌باشد كه دليل آن تغييرات شديد در لبه‌هاي بالارونده و پائين‌رونده‌ي آن است به عبارتي ديگر اگر شما مي‌خواهيد دو تابع سينوسي و مربعي را با دقت يكساني تقريب بزنيد، شما مجبور هستيد تا شبكه‌ي بزرگتري را براي تابع مربعي درنظر بگيريد اين تابع را خودتان پياده‌سازي كنيد تا درك بهتري از شبكه عصبي داشته باشيد.

اگر سؤالي داشتيد در بخش نظرات آن را مطرح كنيد.

نظر ها (241)
  • موج و ساحل
    سلام آفا مجتبي
    كارت خيلي خوبه
    تبريك ميگم
    ادامه بده
  • ناشناس
    :P لطفا" با برنامه نويسي هم آموزش بدين
  • moj1001
    سعي مي‌كنم كه سر فرصت با برنامه‌نويسي هم آموزش بدم.
  • ناشناس
    سلام
    من یه شبکه عصبی پرسپترون از طریق کد نویسی برای کنترل پسورد طراحی کردم ولی نمیدونم نمونه های پسورد را برای آموزش چطوری به شبکه بدم.
    مثلا پسورد fAr12@g بعنوان یک پسورد strong میباشد.

    ممنون
  • صانع
    دمت داغ
    پهلون دست درست
    به درد من كه خيلي خورد
  • shahram  - neural net
    salam
    mamnoon az matalebe mofidetoon
    man chanta mushkel daram dar murede sakhte shabake ba matlab
    mishe telphoni ba ham harf bezanim agar vaghtesho dashtin
    manoon misham
    lotfan be mail bezanid
    sh.rezaeii@yahoo.com
    bazam mamnoon
  • saeed  - تشکر
    سلام دوست گرامی از راهنمایی ها که برای دوستان مبتدی مثل من گذاشتین واقعا ممنونم...اما اگه امکانش هست در مورد شبکه های هاپفیلد هم یک مثال بگذارید چون شدیدا نیازمندش هستم و در واقع روند انجام پروژه ام به تعویق افتاده است. پیشاپیش سپاسگذارم. (ssm3500@yahoo.com)
  • saye  - aneural netwok
    سلام،خسته نباشد و خدا قوت
    ميشه كدنويسي تو مطلب براي شبكه عصبي مصنوعي رو با مثال y=sinx بنويسيد تو سايت يا ايميل كنيد. من تو مطلب مبتدب هستم براي پروژه ام نيازش دارم.
    ممنون ميشم كمكم كنيد
  • moj1001
    سلام ممنون
    با دستور newff مي‌توني اين‌كار رو انجام بدي. يه سرچ توي help بزن ساختارش رو متوجه مي‌شي.
  • saye  - neural network
    سلام مجدد
    همون طور كه دفعه پيش خدمتتون عرض كردم،من كلا تو برنامه نويسي و مطلب مبتدي هستم،خواستم شما بازدن مثالي مثل y=sinx راهنماييم كنيد.
    پروژه ام روي شبكه هاي عصبي تو مطلب هست،الان هم چند وقته دنبالش هستم يادبگيرم. اگر شما جزوه اي يا چيزي در مورد nntool مطلب داريد،كه كامل ياد داده باشه(به زبان فادرسي) ممنون ميشم كمكم كنيد.
    با تشكر :evil:
  • saye  - re: neural network
    سلام،يه مشكلي برام تو nntool مطلب پيش اومده! ميشه لطف كنيد راهنماييم كنيد.
    من داده هايي رو تو excel دارم،دو ستون به عنوان ورودي،يه ستون به عنوان خروجي.اينها رو وارد مطلب كردم؛به اين شكل:تو خط فرمانinput رو تايپ كرده و علامت كروشه گذاشتم،بعد داده ها رو از excelكپي كرده و pasteكردم،در نهايت با بستن كروشه وگذاشتن علامت (،)و(;)به خط بعدي رفته وoutput رو به همين ترتيب وارد كردم وقتي شبكه رو ايجاد ميكنم و بعد از انجام مراحل لازمtrain رو ميزنم آموزش نميبينه و پيغام زير تو صفحه اصلي مطلب ظاهر ميشه:
    ??? Insufficient number of outputs from right hand side of equal sign to satisfy assignment.

    Error in ==> nntool at 681
    [errmsg,errid] = me.message;

    com.mathworks.jmi.MatlabException: Insufficient number of outputs from right hand side of equal sign to satisfy assignment.
  • moj1001
    سلام
    داده‌هاتو بصورت سطري وارد كن نه ستوني!
    در ضمن نيازي به كپي پست نيست! فايل اكسلت رو در دايركتوري جاري متلب قرار بده و از كد زير استفاده كن:
    کد:
    xlsread('data.xlsx')
    input=mydata(:,1:2);
    target=mydata(:,3);

    بعد براي سطري كردن هم:
    کد:
    input=input';
    target=target';

    موفق باشي
  • ناشناس
    سلام.می خوام یک شبکه عصبی در محیط متلب برای یک متغییر وابسته به سه پارامتر دیگر طراحی کنم.کمک کنید(نوع شبکه و روش آموزش)
  • رضا  - تشکر
    واقعا من از شما متشکرم کارتون خداپسندانه است.
  • جودی  - XOR in Matlab
    سلام
    مرسی از آموزش خوب تون.میشه برای گیت XOR هم راهنمایی کنید که چه جوری رسم کنیم تو نرم افزار matlab?
    با تشکر
  • moj1001
    سلام
    بايد يك شبكه دو لايه ايجاد كني مثل شبكه اي كه براي تابع سينوس ايجاد كردم.
  • جودی  - XOR in Matlab
    سلام
    مرسی از آموزش خوب تون.میشه برای گیت XOR هم راهنمایی کنید که چه جوری رسم کنیم تو نرم افزار matlab?
    با تشکر
  • مسعود  - سلام و خسته نباشيد
    من قرار يك موتور القايي را با شبكه عصبي تعيين خطا كنم توي كجاي آموزش شبكه عصبي بايد تغييرات بدم تا بتونم شبكه آن قسمت و پارامتر ورودي را كه باعث ايجاد آن خطا شده رو برام تعيين كنه!خيلي ممنون
  • ناشناس  - شبكه عصبي
    ممنون به خاطر مطالبي كه در مورد شبكه هاي عصبي گذاشتيد.مي خواستم بدونم مي تونيد يك مثال بهتري رو انجام بدين وبه صورت pdf يا odc قرار بدين.
    باز هم تشكر مي كنم.javascript:JOSC_emoticon(":P")
  • احد  - مشکل ترینینگ
    سلام
    دستت درد نکنه از آموزشت. من یه مشکلی داشتم. همین مشکل رو یکی از دوستان هم در پستهای بالایی نوشتن ولی جوابشو ندادین. یک ورودی به صورت ماتریس 8 در 36 هست و تارگت من هم یک ماتریس 8 در یک هست. وقتی که ورودی و تارگت رو وارد میکنم و ترینینگ رو میزنم ایراد زیر رو میده.
    ??? Insufficient number of outputs from right hand side of equal sign to satisfy assignment.

    Error in ==> nntool at 681
    [errmsg,errid] = me.message;

    com.mathworks.jmi.MatlabException: Insufficient number of outputs from right hand side of equal sign to satisfy assignment.

    میشه راهنمایی کنی؟
    ممنون
  • moj1001
    سلام
    ورودي رو بصورت 36 در 8 و خروجي رو بصورت 1 در 8 وارد كن.
  • aamm  - سوال تشخيص خطا
    سلام من جواب نگرفتم براي تشخيص خطاي يك سيتم با شبكه عصبي بايد مدل خطا دار را به شبكه آموزش دهيم تا شناسايي بشه يا نه چون من مي خوام بدونم كدوم قسمت وبه چه ميزاني داراي اختلال است! ممنون از آموزشتون
  • moj1001
    سلام
    تشخيص خطا!
    منظورت رو متوجه نشدم؟
  • aamm
    با عرض سلام مجدد تشخيص خطا با استفاده از شبكه عصبيfault detection ابتدا مدل درست كاركرد رفتار يك سيستم رو به شبكه عصبي آموزش ميدن بعد وقتي رفتار واقعي رو بهش ميدن با اولي مقايسه مي شه ودر صورت اختلاف بعنوان خطا ميگيريم حالا اگر بخواهيم تعيين كنيم كدوم پارامتر باعث ايجاد اين خطا و به چه درصدي در ايجاد خطا نقش داشته بايد چكار كنيم من تازه با شبكه عصبي آشنا شدم لطفا اگر راه ديگري بوسيله شبكه عصبي براي اين كار به نظرتون ميرسه بگين ممنون!
  • moj1001
    سلام
    اينكه كدوم پارامتر باعث خطا شده رو جوابي براش ندارم
  • ناشناس
    تابع sim را چگونه بدست آوریم
  • moj1001
    يعني چي؟
  • aamm
    سلام آيا مي توان برنامه هاي شبكه عصبي را روي IC DSP ريخت آيا SUPPORT ميكنه ميشه لطفا يك سايتي براي اين كار معرفي كنيد ممون!
  • مجتبی
    سلام وقت بخیر
    می شود بگویید چگونه از این روش در طراحی یک کنترل کننده استفاده کنیم
  • gozal  - تشکر
    سلام دمتون گرم این مطالب خیلی به دردم خورد.@@@
  • سجاد  - سوال
    سلام مهندس
    من میخوام با سه تا داده یه داده رو پیش بینی کنم.
    با mlp هم میخوام انجامش بدم. یعنی سه تا ورودی دارم و یه خروجی. با روشی که شما فرمودین میشه انجام داد از قسمت nntoo ؟ اگه تعداد نمونه ها زیاد باشه مشکلی پیش نمیاد؟ بعد از این که داده های ورودی و خروجی رو برای آموزش به شبکه دادم و شبکه آماده شد کجا باید داده های ورودی رو برای پیش بینی خروجیم وارد کنم؟
    خیلی تابلو که من هیچی از شبکه و متلب سر در نمیارم :oops: البته رشته من چیز دیگه ایه تو یه قسمت از پایان نامه نیاز به این مورد پیدا کردم
    لطفن کمک کنید :?:
  • moj1001
    سلام
    آره ميشه.
    تعداد نمونه‌‌ها زیاد باشه فكر نكنم مشکلی پیش بیاد فقط اگه داده‌هات پراكندگي زيادي دارند بايد شبكه‌ات به اندازه‌اي باشه كه بتونه خودش رو با داده‌ها تطبيق بده.
    شبكه رو كه سيو كردي هم مي‌توني با ابزار nntool و هم از طريق دستور sim خروجي شبكه رو بدست بياري.
  • سجاد
    سلام مهندس جان
    مهندس من یه شبکه رو درست کردم به روش mlp که فرمودید.
    3 پارامتر 132 نمونه را برای ورودی دادم 1پارامتر و 132 نمونه رو واسه هدف تعریف کردم. بعد 3پارامتر از 132 نمونه دیگه رو دادم و با سیمولیشن 132 داده رو گرفتم. ولی داده هایی رو که به من داده از نظر ضریب همبستگی و میانگین و واریانس با داده های واقعی خودم نمیخونه. چیکار باید بکنم . تعداد لایه 2 بود و تعداد نرون 10.
    یه مشکلی هم داشتم وقتی تعداد لایه 3 و تعداد نرون 20 بود اصلا ترین نمیکرد.
    کجای کارم گیر داره که داده هام اینقدر با هم متفاوت میشه
  • moj1001
    سلام
    گفتم ممكن هست پراكندگي داده‌هات زياد باشه. براي همين شبكه نتونه خودش رو تطبيق بده!
    تعداد لايه‌ها رو همون دو بزار و تعدا نرون‌ها رو بطور پيوسته زياد كن ببين چه تغييراتي حس مي‌كني.
  • ناشناس
    سلام
    برای اینکه یه برنامه m فایل که الگوریتم pso را پیاده سازی کرده با benchmark ها تست کنم باید چطوری عمل کنم
    من کلا در مورد نحوه استفاده از benchmarkها اطلاعاتی ندارم
    ممنون
  • ناشناس
    مهندس من هنوز به نتیجه نرسیدم
    داده های من دمای مینیمم و ماکزیمم و بارندگی هستن و خروجی هم دبی (آبدهی رودخانه ست)
    داده های قبل هم بر داده های بعدی تاثیر میزارن
    با این تفاسیر چه تغییراتی رو اعمال کنم که نتیجه بگیرم

    در ضمن تا همین جاش هم کلی کمک کردین من کلا از شبکه سر در نمیاوردم ولی الان کلی جلو افتادم دستت درد نکنه اگه کارت به هیدرولوژی افتاد ایشالا جبران کنیم :D
  • moj1001
    سلام
    فكر كنم بايد از شبكه‌هاي بازگشتي استفاده كني.
  • ناشناس
    سلام
    من تو یه مقاله خوندم روش شبکه پرسپترون چند لايه با الگوريتم (BP (Back Propagation نتایج خوبی میده ولی توی آموزش شما قسمت Network Type نتونستم همچین روشی رو پیدا کنم،
  • moj1001
    شبکه پرسپترون چند لايه با الگوريتم (BP (Back Propagation همون چيزي كه در مثال گفتم ولي بعيد مي‌دونم با اين شبكه بتوني جواب بگيري چون اين شبكه بدون فيدبك هست.
  • ناشناس
    باز نتیجه نگرفتم. میشه یه مقدار درباره Network Type توضیح بدین. راستی من یکی از ورودی هام تاثیر مستقیم تری روی خروجی داره ، جایی رو نباید تنظیم کنم.
  • moj1001
    از شبكه Layer Recurrent استفاده كن.
  • maryam
    سلام و وقت بخیر.
    مرسی از مطالب مفید تون.
    ببخشید یک سوال دارم .ماتریس ورودی من 220 سطر و 15 ستون و تارگت 220 سطر و دو ستون داره .وقتی در شبکه این ها رو انتخاب می کنم ،این پیغامو میده eceed dimension
    میشه لطفاً راهنمایی کنید.
    بسیار ممنون
  • moj1001
    سلام - ممنون
    داده‌هات رو بصورت 15 سطر و 220 ستون براي ورودي و 2 سطر و 220 ستون براي تارگت وارد كن.
  • ناشناس
    مهندس کجا میشه به داده های ورودی وزن داد، میخوام یکی از داده ها رو که تاثیرش خیلی بیشتره نسبت به دوتای دیگه، وزن بیشتری بدم شاید جواب بده.
    یه سوال دیگه هن داشتم:
    من 143 نمونه رو با هم به شبکه میدم (یعنی 143 ستون و 3 ردیف، واسه ورودی) و 143 نمونه رو واسه هدف گذاشتم (143 ستون و 1 ردیف)اینجوری درسته یا من باید هر کدام از نمونه ها رو جدا جدا به شبکه بدم؟
    ممنون از راهنمای هاتون
  • moj1001
    سلام
    يعني چي؟! وزن رو به داده كه نمي‌دن! وزن و باياس در طي آموزش شبكه ايجاد مي‌شه.
    طريقه دادن ورودي و تارگت رو در نظرات قبلي توضيح دادم.
  • elmaes
    سلام
    مرسی بابت مطالب مفیدتون .
    من به شدت نیازمند راهنماییتون هستم .مرسی
    شیکه آموزش داده شده ولی چطور می تونم یک نمونه رو تست کنم ببینم خوب جواب میده یا نه؟
    مرسی هم توی nf tool , و هم nntool این مشکلو دارم .
    خیییلی ممنون
  • moj1001
    سلام - ممنون
    شبكه‌ت رو سيو كن بعد با استفاده از دستور sim اون رو تست كن.
  • elmaes
    سلام،
    بسیار ممنون از اینکه سوالات رو می خونید وجواب میدید.من به شدت گیر کردم.
    میخوام شبکه رو برای شناسایی مکان آسیب یک سازه اموزش بدم.(پیش بینی x,y)
    به نظر شما استفاده از شبکه back propagation مفید است؟
    لطفاً اگر توضیحی در مورد مسئله من دارین ،ممنون می شوم که بگید و یا اگر لینکی هست برای استفاده بفرمایید.
  • moj1001
    سلام - خواهش مي‌كنم
    بايد ببيني رياضيات مساله به چه صورت است يعني پارامترهاي ورودي‌ت به چه صورت تغيير مي‌كنند و آيا برهم تاثير دارند و ديگر شرايط كه برای شناسایی مکان آسیب یک سازه نياز است. چون من از عمران سر در نمي‌يارم نمي‌تونم بيشتر از اين كمكت كنم.
  • mahdi  - سلام
    واقعا خدا قوت خیلی کمکم کردی به کارت ادامه بده موفق باشی
  • فاطیما  - سلام
    سلام
    من یک پروژه تشخیص بیماری با شبکه عصبی دارم
    که یک ماتریس تقریبا 600در40 ورودی داره
    که بایستی داده ها را نرمال کنم و بعضی از داده ها رو هم در بعضی ستون ها قبل از شروع به کار به صفر تبدیل کنم
    میخوام از nntool برای انجام پروژه استفاده کنم
    میشه لطفا بفرمایید بعد از خواندن اطلاعات از فایل اکسل به چه طریق نرمال سازی ورودی ها و تغییر مقدار به صفر را انجام دهم و سپس خروجی را تعریف نمایم
    مرسی
  • moj1001
    سلام
    براي نرمال‌سازي داده‌ها از دستور normc استفاده كن
  • فاطیما  - hi
    برای این پروژه 3 تا خروجی دارم چطوری این 3 تا خروجی را با ورودی های داده شده در nntool مشخص کنم ؟
    یعنی بایستی بین بیماران تشخیص دهد که با توجه به ورودی ها بیماری 1 را دارد یا 2 را یا سالم هستش
  • moj1001
    سلام
    اين ديگه تقريبا بستگي به خودت داره. يه بردار به صورت [a0 a1 a2] براي خروجي تعيين مي كني و شبكه رو طوري آموزش مي‌دي كه هر وقت داده‌هاي مربوط به سالم بودن بيمار اومد خروجي a0 بشه و همين‌طور الي آخر.
  • آرمان
    سوالی ندارم فقط تشکر :shock:
  • فاطیما  - hi
    برای نرمال سازی داده ها مشکلی ندارم
    چون میخوام داده ها یا صفر بشن یا 1 که براش یه فرمولی نوشتم
    مشکل برای این هستش که 3 تا خروجی دارم؟

  • حسین  - تست شبکه عصبی
    سلام مهندس عزیز

    من قبلا هم از شما کمک گرفته بودم.
    اما اینبار،من یه برنامه پردازش تصویر دارم و یک دیتابیس 70 نایی عکس.شبکه را آموزش دادم و سیمولیت کردم.
    حالا چطور باید یه عکس به شبکه بدم تا ببینم شبکه درست آموزش دیده، آیا امکان این هست که خودم شبکه رو تست کنم.
    ممنونم.
  • moj1001
    سلام دوست عزيز
    چرا امكانش نباشه!؟
    شما در ابتدا بايد معيين كني كه اندازه تصاوير آموزش داده شده به شبكه چقدر است سپس در يك برنامه جنبي مانند Paint يه تصوير به همان اندازه توليد كني و به شبكه بدي.
    فقط توجه داشته باش كه قبلا از دادن تصوير به شبكه بايد يه سري عمليات روش انجام بدي.
  • حسین
    ابعاد تصویری که به شبکه دادم 384*512 .
    و برای تست یک تصویر با همین ابعاد دارم، اما متفاوت.
    حالا با چه دستوری شبکه رو تست کنم؟
    لطفاً راهنمایی کنید.
  • moj1001
    ابعاد تصويرت خيلي بزرگه!
    حواست باشه كه شبكه‌ات رو بايد به همان اندازه بزرگ تهيه كني.
    براي شبيه‌سازي هم كه در آموزش توضيح دادم با استفاده از دستور sim.
  • حسین
    مهندس عزیز من فایل رو آپلود کردم، اگر براتون امکان پذیر هست نگاه کنید.
    http://s1.picofile.com/file/7305461826/Mfile2.zip.html

    سپاسگذارم.

  • moj1001
    اگه مشكلت حل نشد بگو تا كمكت كنم.
  • ناشناس
    عالی بود، ممنون
  • فریده
    سلام دوست عزیز من می خوام یک یکسوساز تک فاز طراحی کنم اما نمی تونم خروجی یکسو شده رو به دست بیارم.امکان داره برام شبیه سازیش کنید؟ممنون می شم.
  • moj1001
    سلام
    مدارش رو برام ايميل كن.
  • حسین
    سلام مهندس عزیز

    دستور mean(a) عملکردش برام روشنه
    اما در این حالت >>>> mean(a,2) چه اتفاقی می افته؟

    سپاسگذارم
  • moj1001
    سلام
    خروجي اين دستور يه بردار ستوني كه ميانگين سطري a رو برمي‌گردونه.
  • ناشناس  - سوال
    با تشکر از توضیحات
    من شبکه رو با nntool ساختم بعد آموزش میدم ولی:
    1-ماتریس های تست کجا باید وارد شن.
    2-چه جوری خطا کم میشه؟
    3-خطا چه جوری حساب میشه؟
    لطف می کنین.
  • moj1001
    سلام
    1- توضيح دادم در آموزش، با استفاده از دستور sim البته پس از ذخيره كردن شبكه در فضاي كاري متلب.
    2- اينكه خطا چه جوري كم ميشه خب روش‌هاي زيادي هست و پارامترهاي مختلفي در اون دخيلند. و بستگي به ديتاهاي ورودي هم داره كه چه تصميمي بگيري خب ولي معمولا با افزايش تعداد نرون‌هاي لايه مياني، افزايش تعداد لايه‌ها، كاهش پراكندگي داده هاي ورودي در صورت امكان، استفاده از ديگر شبكه‌هاي عصبي و ...
    3- تارگت منهاي خروجي.
  • mahsa  - راهنمایی
    با سلام
    من واسه پروژه ام نیاز به کمک دارم؛در مورد شبکه عصبی هستش که باید کامل یادش بگیرم و کنفرانس بدم باید یه شبکه عصبی رو با سیمولینک شبیه سازی کنم؛راستش اطلاعاتم در این زمینه خیلی کمه لطفا منو راهنمایی کنید,ممنون میشم.
  • moj1001
    سلام
    اگه ميخاي كامل ياد بگيري كه بهتره از منابع انگليسي كه بهترينشون همون هلپ متلب است استفاده كني البته يه كتاب هم در سايت معرفي شده كه ترجمه هلپ متلب است.
  • مسعود
    سلام ممنون از آموزشتون من شبكه را با nntool آموزش دادم و save هم كردم ولي دستور sim خطا ميده ميشه لطفا sim رو كامل توضيح بديد از help چيز زيادي نفهميدم ! خيلي ممنون
  • moj1001
    سلام
    چه خطایی می ده؟
  • ناشناس
    سلام! يك خطايي كلي ميده معلوم نميكنه مشكل از كجاست
    Command syntax error see SIM command for details
  • moj1001
    سلام
    احتمالا دستور رو اشتباه به کار گرفتی.
    فرمت دستور به قرار زیر است:
    کد:
    sim(net,data)

    که net همون شبکه سیو شده و data داده هایی مورد نظر شما می باشد.
    موردی هم که مهمه اینکه سایز داده هایی که جهت تست به شبکه میدی با لایه ورودی شبکه همخوانی داشته باشه.
  • ناشناس
    سلام ممنون از كمكتون !من حدود 7تا پارامتر ورودي دارم كه بايد در3 سطح ضعيف متوسط و زياد مقدار دهي كنم حتما بايد 3تا شبكه جدا با nn tool براي مقادير ضعيف متوسط زياد براي هر حالت طراحي كنم نميشه اين 3 حالت مقدار اين7تا ورودي رو توي يك شبكه nn tool طراحي كرد.اگر امكان اين كار توي يك شبكه باشه خروجيها رو چطور بايد تفكيك كرد خيلي ممنون !
  • moj1001
    سلام
    چرا نمیشه، یه شبکه ایجاد کن با 3 خروجی!
  • ناشناس
    سلام !ببخشيد من متوجه نشدم با 3خروجي يعني چي! در انتخاب پارامترها بعنوان target (خروجي)هر پارامتري رو ميشه انتخاب كرد ولي من فقط برام يك خروجي مهمه كه در 3 مقدار ورودي (ضعيف متوسط زياد ) ببينم چه تغييري ميكنه .چون در خروجي پارامترها منحصر به فرد اند واز يك پارامتر بيشتر از يك بار بعنوان خروجي نميشه استفاده كرد .يعني من بايد براي هر مقداري از ورودي يك پارامتر متفاوتي رو بعنوان خروجي در نظر بگيرم ميشه يك توضيح مختصري بديد (تشكر از راهنمايي هاتون)
  • moj1001
    سلام
    صورت مساله رو کامل توضیح بده تا بتون کمکت کنم. پارامترهات چه هستند؟
  • ناشناس
    سلام خيلي ممنون از توجهتون!
    من بايد با استفاده از مدل رياضي موتور القايي شبكه عصبي رو آموزش بدم ابتدا همه پارامترهاي ورودي مثل(جريان ولتاژورودي ومقاومت روتور و استاتورو...)را در حالت عادي به مدل مقداردهي ميكنم بعد خروجي موتور رو كه ماكزيمم توان گشتاور خروجيTs است رو اندازه گيري مكنيم اين به حساب ميشه حالت عادي موتور بعد يك پارامترمثلا جريان ورودي رو صفر ميذاريمifl=0 اين هم به حساب ميشه آموزش خطاي مدارباز به شبكه براي 6تا پارامتر ديگه هم مينطور مقدامعمولي (نرمال) و مقدار غيرنرمال بعنوان خطا ميدهيم.يعني من لازم دارم براي هر پارامتر حدود دو سه مقدار بدم بعد خروجي هركدوم رو جدا داشته باشم وليي nntool خروجيهاش منحصربه فرد لطفا يك توضيح مختصري بفرماييد ممنون
    (شرمنده از اينكه طولاني شد)
  • moj1001
    سلام
    از اینکه nntool خروجی هاش منحصر به فرد هست منظورت رو نگرفتم! در nntool مثل کدنویسی میتونی خروجی های متفاوت داشته باشی.
    در ضمن شما میخای موتور رو با شبکه عصبی کنترل کنی یا پیادی سازی کنی؟
  • ناشناس
    سلام!من ميخوام پياده سازي كنم.
    من مدل رياضي موتور رو دارم بعد در حالتهاي مختلف سيستم موتور رو(با داده هاي ورودي-خروجي) به شبكه آموزش ميدم.اين حالتهاي مختلف يعني حالت نرمال(وقتي مقدار پارامترهاي ورودي مناسب)و حالت خطا(وقتي مقدارپارامترهاي ورودي نامناسب )بعد از آموزش اگر شبكه ورودي رو گرفت بگه حالت نرمال يا خطا!(نوع خطارو هم بگه).براي منحصر بفردبودن خروجي منظورم اين كه خروجي موتوركه در اينجا توان Tm باشه فقط با دادهاي (مثلا نرمال) ميشه آموزش دادواين خروجي رو نميشه با (دادهاي خطا دار)آموزش داد.(به يك خروجي فقط يكبار ميشه پارامتر ورودي نسبت داد)ولي من لازم دارم اين خروجي توانTM رو با چند حالت نرمال و خطا و..بدست بيارم يعنيTm1 براي نرمال و Tm2براي خطاو.. ميخواستم بدونم همه اين حالتها رو دريك nntool ميشهپياده كرد يا بايد براي هر حالت يك nntool تعريف كنم.
    باز هم خيلي ممنون!
  • aasetayesh
    یه سوال؟ بین شبکه عصبی و الگوریتم ژنتیک بطور کلی کدوم پرکربردتره؟
  • moj1001
    سلام
    هرکدوم کاربرد خودش رو داره بستگی داره که بخای چه کاری انجام بدی.
    مثل این میمونه که بگی خیار خوشمزه تره یا گوجه!
تنها کاربران عضو شده می توانند نظر ارسال کنند!
آخرین بروز رسانی در دوشنبه, 16 مرداد 1391 ساعت 02:49