• انجام پرو‍ژه‌های دانشجویی مهندسی برق و کامپیوتر

    ترجمه متون تخصصی

    ADS, C++, CircuitMaker, CodeVisionAVR, EWB, LabVIEW, MATLAB, MAX+PLUS II, ModelSim, OrCAD, Protel DXP, Proteus, SIMULINK, VHDL, Neural Networks, Fuzzy Logic, Signal Processing, Image Processing,...

     

    پرو‍ژه‌های آماده       سفارش پروژه و ترجمه

  • تدریس خصوصی نرم‌افزار مهندسی برق و کامپیوتر

     

    ADS, C++, CircuitMaker, CodeVisionAVR, EWB, LabVIEW, MATLAB, MAX+PLUS II, ModelSim, OrCAD, Protel DXP, Proteus, SIMULINK, VHDL, Neural Networks, Fuzzy Logic, Signal Processing, Image Processing,...

     

    سفارش تدریس

  • دعوت به همکاری در انجام پروژه

     

    VHDL, C++, Cisco Packet Tracer, GNS3, Visual Basic, C#.Net, ASP.Net, Assembly, VB.Net, Delphi

     

    همکاری با ما

مقدمه ای بر شبکه های عصبی مصنوعی (قسمت اول)

مقدمه

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

با ظهور کامپيوترها در دهه 1950، اين امکان فراهم گرديد، تا مقدمات تئوری هايی که مدت ها ذهن انسان را به خود مشغول کرده بود، مدل سازی گردد. ناتانال روچستر از لابراتوارهای تحقيقاتی IBM اولين کوشش ها را برای شبيه سازی شبکه های عصبی انجام داد. اولين کوشش با شکست مواجه شد. اما کوشش های بعدی موفقيت آميز بود. در همين زمان بود که کامپيوترهای اوليه شروع به شکوفا شدن کردند و اهميت دادن به محاسبات کامپيوتری، سبب شد، که تحقيقات در ضمينه شبکه های عصبی به حاشيه رفته و به فراموشی سپرده شود.

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

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

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

در سال 1985 انستيتوی فيزيک آمريکا اجلاس ساليانه خود را با نام «شبکه های عصبی برای محاسبات» برگزار کرد. در همين سال انستيتوی مهندسان برق و الکترونيک، اولين کنفرانس بين المللی در ضمينه شبکه های عصبی را برگزار کرد، که در آن بيش از 1800 نفر حضور داشتند.

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

ايجاد شبكه‌هاي عصبي با ابزار GUI

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

1- كدنويسي

2- استفاده از سيستم هاي بلوكي(Simulink)

3- استفاده از محيط گرافيكي(GUI)

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

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

آموزش GUI در MATLAB (قسمت چهارم)

در قسمت دوم آموزش GUI ، طراحی یک GUI نسبتا کامل و در ارتباط با آنالیز سیستم های کنترلی را آغاز کردیم. در قسمت سوم آموزش نیز کدنویسی آن را شروع کردیم. حال می خواهیم در این قسمت ادامه ی کدنویسی آن را انجام داده و GUI نهایی را تست کنیم.

به Callback منوی Exit رفته و قطعه کد زیر را وارد کنید:

... ,'?button = questdlg('Do you want to quit the ControlTool

;('Quit the ControlTool','Yes','No','No'

switch button

,'case 'Yes

;('close('ControlTool

,'case 'No

;quit cancel

end

آموزش GUI در MATLAB (قسمت سوم)

طراحی بدنه ی اصلی GUI ، در قسمت دوم آموزش GUI ، شرح داده شد. حال در این مرحله برنامه را Run کرده و با نام ControlTool ذخیره کرده ایم. اینک می خواهیم کدهای آن را بنویسیم.

برای شروع ابتدا به قسمت ControlTool_OpeningFcn بروید تا کدهای بازشدن GUI را بنویسید. کدهای زیر را وارد کنید:

;([g=tf(1,[1 3 2 4

;(step(handles.axes1,g

;(rlocus(handles.axes2,g

;(bode(handles.axes3,g

این کدها نمودارهای سیستمی را که بصورت پیش فرض قرار داده ایم، رسم می کند. تابع تبدیل این سیستم، به قرار زیر است:

آموزش GUI در MATLAB (قسمت دوم)

در ادامه ی آموزش GUI بنا دارم در چند قسمت، یک مثال نسبتا کامل را به شما معرفی کنم، تا با مطالعه ی دقیق این مثال بتوانید برنامه های کاربردی خودتان را پیاده سازی کنید. در مطالعه ی این قسمت و همچنین قسمت های بعدی، پیش فرض آن است که دوستان یا قسمت اول آموزش را مطالعه کرده اند و یا اطلاعات اولیه را دارند، پس از ذکر جزئیات خودداری شده است.

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

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