رتبه موضوع:
  • 3 رای - 3.67 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش شبکه های عصبی به همراه بررسی شبکه های پرسپترون و هاپفیلد به همراه سورس کد
#1
مبحث شبکه های عصبی مربوط به شبیه سازی قوه یادگیری در انسان و پیاده سازی آن به صورت الگوریتم های کامپیوتری می باشد.قوه یادگیری در انسان عبارت از فراگیری الگوهای اطراف خود توسط تکرار می باشد.
مغز به عنوان یک سیستم پردازش اطلاعات با ساختار موازی از ملیونها نرون تشکیل شده است.بافتهایی که عصب نامیده می شوند اجتماعی از نرون ها هستند که اطلاعات و پیامها را از یک قسمت بدن به قسمت دیگر منتقل می کنند.

نرون بیولوژیکی

[عکس: 1.png]
شکل 1 – نرون بیولوژیکی
نرون های بیولوژیکی از چهار قسمت اساسی تشکیل شده اند :
1- دندریت : اطلاعات را دریافت و به هسته سلول می رساند
2- بدنه سلول : اطلاعات دریافتی را پردازش می کند
3- اکسون : اطلاعات هسته سلول را به نرون های دیگر منتقل می کند
4 - سیناپس: محل تلاقی یک اکسون از یک نرون به دندریتهای نرون دیگر را سیناپس میگویند

معماری شبکه عصبی مصنوعی
نرون مصنوعی : کوچکترین واحد پردازشگر اطلاعات است.ورودیهای نرون توسط یک نوع ارتباط به نام وزن به نرون وارد می شوند
[عکس: 2.png]
شکل 2- نرون تک لایه با یک ورودی

[عکس: 3.png]
شکل 3 - نرون تک لایه با R ورودی

P : ورودی ، W : وزن ورودی ،b : بایاس ،f : تابع تحریک ،a : خروجی
بایاس : یکی از وزن های ورودی نرون می باشد که مقدار ورودی اش همواره یک است
نرون مدل سازی شده ورودی های خود را محاسبه می کند .ابتدا اولین ورودی را در ضریب وزنی مربوط به خط ارتباطی آن ورودی ضرب می کند سپس همین عمل را برای ورودی دوم و سایر ورودی ها تکرار می کند در نهایت تمام مقادیر را جمع می کند . در صورتی که مجموع مقادیر از حد آستانه بالاتر رود ، نرون تولید خروجی می کند (فعال می شود)
wipi=w1p1+w2p2+…+wnpn∑
(a = f( ∑ wipi + bi

B و w دو پارامتر تنظیم شونده در نورون ها می باشند . ایده اصلی شبکه های عصبی این است که با تغییر مقادیر w و b ،شبکه یک رفتار یا تصمیم را اتخاذ کند

منبع: منبع دقیق این آموزش برای من مشخص نیست. این آموزش از فایلی به نام مهدیان برگرفته شده است.
پاسخ
سپاس شده توسط R_Ebadi ، amintronic ، farshidkh1385
#2
تابع های مورد استفاده در شبکه های عصبی :
[عکس: 4.png]
شکل 4 – تابع های محرک

تابع محرک f میتواند خطی یا غیر خطی باشد.
یک تابع محرک بر اساس نیاز خاص حل یک مساله انتخاب میشود

انواع شبکه از نظر تعداد لایه :
شبکه تک لایه : شبکه های تک لایه قادر به حل مسایل ساده هستند ولی با شبکه های چند لایه هر مثالی را می توان حل کرد(شکل هایی که تا کنون دیدیم از نوع تک لایه بودند)
شبکه چند لایه :یک شبکه چند لایه دارای لایه های زیر می باشد
1. لایه ورودی : دریافت اطلاعات خامی که به شبکه تغذیه شده‌است.
2. لایه‌های پنهان : عملکرد این لایه‌ها به وسیله ورودی‌ها و وزن ارتباط بین آنها و لایه‌های پنهان تعیین می‌شود. وزن‌های بین واحدهای ورودی و پنهان تعیین می‌کند که چه وقت یک واحد پنهان باید فعال شود.
3. لایه خروجی : عملکرد واحد خروجی بسته به فعالیت واحد پنهان و وزن ارتباط بین واحد پنهان و خروجی می‌باشد.
[عکس: 5.png]
شکل 5 – شبکه سه لایه

منبع: همان
پاسخ
#3
برخی از کاربرد شبکه های عصبی :
طبقه بندی ,شناسایی و تشخیص الگو
پردازش سیگنال
مدلسازی و کنترل
مسائل مالی ، بیمه ،امنیتی ،بازار بورس و وسایل سرگرم کننده
ساخت وسایل صنعتی ،پزشکی و امور حمل و نقل


آموزش شبکه
1 یادگیری نظارت نشده یا بدون ناظر
در این نوع یادگیری هیچ سیگنالی که اطلاعات را در مورد مطلوبیت جواب شبکه به خود شبکه وارد نماید وجود ندارد. به عبارت دیگر به شبکه گفته نمی شود که خروجی هدف چه است و یا اینکه جواب شبکه چقدر مطلوب است.در این حالت شبکه با دریافت اطلاعات ورودی و شاخص های موجود در ورودی ها ، ارتباط موجود بین الگوهای ورودی را پیدا کند و در خروجی کد کند.
[عکس: 6.png]
شکل - 6

یادگیری نظارت شده یا با ناظر:
در این نوع اموزش به الگوریتم یادگیری مجموعه ای از زوج داده که به داده های یادکیری موسوم هستند داده می شود.هر داده یادگیری شامل ورودی به شبکه و خروجی هدف است.پس از اعمال ورودی به شبکه خروجی شبکه با خروجی هدف مقایسه میگردد و سپس خطای یادگیری محاسبه شده و از آن جهت تنظیم پارامتر های شبکه(وزن ها) استفاده می گردد به گونه ای که اگر دفعه بعد به شبکه همان ورودی را دادیم خروجی شبکه به خروجی هدف نزیک گردد.
[عکس: 7.png]
شکل - 7
منبع : همان
پاسخ
سپاس شده توسط tavakoli1984 ، R_Ebadi ، farshidkh1385
#4
چگونگی جداسازی الگوها توسط شبکه عصبی
کلاس بندی به معنای جداسازی چند الگو از یکدیگر است.
فرض کنید یک رباتی داریم که میخواهد دو میوه سیب و موز را از هم جدا کند برای اینکار از محور مختصات دو بعدی استفاده می شود و میوه ها بر اساس رنگ و اندازه در صفحه مختصات قرار می گیرند.
ربات جداکننده میوه بر اساس رنگ و اندازه میوه آن ها را در یک صفحه مختصات ، کلاس بندی می کند ، از این پس ربات مقادیر رنگ و اندازه میوه برداشته شده را در محور مختصات قرار داده تا بفهمد میوه در کدام کلاس باید قرار گیرد
[عکس: 8.png]
شکل – 8 کلاس بندی

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

X2 + X1 - 0.5 = 0
[w0 w1 w2]=[-0.5 1 1]
هنر یک شبکه عصبی این است که با روش تکرار وزن ها را به دست آورد

منبع: همان
پاسخ
سپاس شده توسط tavakoli1984 ، شایسته فرد ، R_Ebadi ، farshidkh1385 ، milad_sabz
#5
انواع شبکه های عصبی :
1 – پرسپترون
2 – هاپفیلد
3 – همینگ
4 – کوهنن
5 - شبکه عصبی انتشار رو به عقب
6 - شبکه عصبی کارپنتر و گروسبرگ

پرسپترون :
این نوع شبکه عصبی در حل مساله ها بسیار سریع و قابل اطمینان است . قاعده یادگیری این شبکه تکرار است و وزنهای خود را به شیوه تکرار بدست می آورد . شبکه با کلاس های خطی تربیت می شود.
Yin : مجموع حاصل ضربهای ورودی در وزن
Ѳ: یک عدد کوچک معمولا 0.2 ، کمیت ناحیه ای را نشان می دهد که در آن ناحیه الگوها را نمی توان کلاس بندی کرد .
شبکه می تواند به صورت باینری یا بایپولار تربیت شود.
در حالت باینری اطلاعات مورد پردازش 0 یا 1 می باشد در حالت بایپولار اطلاعات مورد پردازش 1 یا 1- می باشد و
در شکل زیر یک شبکه پرسپترون می بینید که از تابع محرک آستانه ای دو مقداره متقارن استفاده کرده است.
[عکس: 9.png]
شکل 9 – پرسپترون

مراحل کار الگوریتم :
1. وزنها را با صفر ، α را با 0.1 و Ѳ را با 0.2 مقدار دهی می کنیم.
2. یک حلقه که شرط خاتمه آن عدم تغییر وزن هاست(به ازای n الگوی ورودی باید حداقل یک وزن تغییر کند در غیر این صورت الگوریتم به پایان می رسد)
3. یک حلقه است که به تعداد الگوی ورودی مراحل زیر خود را تکرار می کند.
4. ماتریسی به تعداد n سطر(الگوهای ورودی) و به تعداد m+1 ستون (m تعداد نرون های ورودی)ایجاد می کنیم . بردار فضای هدف(t) را با n عنصر ایجاد میکنیم(هر الگو دارای یک مقدار هدف است)
[عکس: 10.png]
شکل 10 – ماتریس گیت and به همراه خروجی هدف

تابع تحریک شبکه به صورت زیر است
1 IF yin > Ѳ
Y= 0 IF -Ѳ <= yin <= Ѳ
-1 IF yin < Ѳ

معادله خطوط جداکننده پرسپترون به صورت زیر است
W2x2 + w1x1 + b = ±Ѳ
وزن ها از روش تربیتی زیر استفاده می کنند
Wi(new)=wi(old) + α . t .xi
B(new)=b(old) + α .t
مقدار هدف(مقدار هدف کلاس الگو را مشخص می کند) . αسرعت تربیت است و مقدارش بین 0 و 1 (به یک نزدیک شود سرعت بالا رفته و دقت پایین می آید)

منبع : همان
پاسخ
سپاس شده توسط شایسته فرد ، R_Ebadi ، mozhgan1916 ، farshidkh1385 ، milad_sabz
#6
شبکه هاپفیلد :
شبکه هاپفیلد از معماری بازگشتی استفاده می کند.این شبکه دارای یک لایه از نرون های ورودی به نرون های ورودی است (نرون های ورودی همان نرون های خروجی اند)
در نویزگیری از الگو ها و تبدیل به نمونه اصلی استفاده می شود.

[عکس: 11.png]
شکل 11 – شبکه هاپفیلد

[عکس: 12.png]
شکل 12 – برطرف شدن نویز توسط هاپفیلد

در این شبکه الگویی را که برای تربیت انتخاب شده با S و الگوی ناشناس ورودی را با X نمایش می دهیم.

مراحل کار الگوریتم :
1. ورودی را به صورت باینری دریافت کرده و سپس با فرمول زیر آن را به بایپولار تبدیل می کنیم.
Sbipolar = 2S - 1
برای بدست آوردن وزن ماتریس S را در ترانهاده خودش ضرب کرده و مقادیر قطر اصلی آن را صفر می کنیم.
W = Sbipolar * SbipolarT
2. خروجی را معادل ورودی در نظر می گیریم یعنی Y = X .
3. به تعداد نرون های ورودی مرحله بعد انجام شود (حلقه).
4. Yini = xi + ∑ xj . Wji
[عکس: 13.png]
شکل 13 – خروجی نرون x

5. Y i = 1 yin i >=0
Y i = 0 yin i <0

X=y
Yini = xi + ∑ xj . Wji

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

منبع: همان
پاسخ
سپاس شده توسط شایسته فرد ، R_Ebadi ، mozhgan1916 ، farshidkh1385 ، milad_sabz
#7
این هم سورس کدها:
پسورد:http://www.mojsazan.com



منبع:همان


فایل‌های پیوست
.rar   Hopfild.rar (اندازه 2.58 KB / تعداد دانلود: 1,597)
پاسخ
سپاس شده توسط شایسته فرد ، R_Ebadi ، iranban ، rezaazadi ، mozhgan1916 ، farshidkh1385


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  شبکه عصبی هاپفیلد س نامدار 0 378 06-07-2014, 04:52 PM
آخرین ارسال: س نامدار
  پیاده سازی گیت AND به کمک شبکه عصبی پرسپترون در متلب مهدی ابراهیمی 3 2,597 05-30-2014, 10:31 AM
آخرین ارسال: مهدی ابراهیمی
  پیاده سازی گیت ORبه کمک شبکه عصبی پرسپترون در متلب مهدی ابراهیمی 0 326 05-30-2014, 10:28 AM
آخرین ارسال: مهدی ابراهیمی
  کاربرد شبکه های عصبی در پردازش تصویر اسماعیل 3 1,600 02-28-2014, 10:02 PM
آخرین ارسال: مهدی ابراهیمی
  مقدمه ای بر شبکه های عصبی(Neural Network) مهدی ابراهیمی 9 8,243 12-27-2013, 06:07 PM
آخرین ارسال: e21_tex
Smile نرخ آموزش ( learning rate ) چیست؟ mina5184 1 730 12-11-2013, 10:57 PM
آخرین ارسال: مهدی ابراهیمی
  آموزش شبکه عصبی در متلب به همراه پیاده سازی پرسپترون و ادالاین مهدی ابراهیمی 2 9,156 04-16-2013, 10:16 AM
آخرین ارسال: مهدی ابراهیمی
  درخواست کد هاپفیلد amirm91 0 973 08-16-2012, 01:26 PM
آخرین ارسال: amirm91
  تخمین تابع بوسیله شبکه عصبی در Matlab soroush 0 2,699 06-27-2012, 08:43 PM
آخرین ارسال: soroush
  دانلود کتاب مرجع شبکه های عصبی هاگان مهدی ابراهیمی 0 8,745 02-21-2012, 02:28 PM
آخرین ارسال: مهدی ابراهیمی

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان