پی دی اف انگلیسیشو می تونین از اینجا بگیرین:
http://www.eca.ir/forum2/index.php?a....0;attach=2613
(برای دنبال کردن مطالب آشنایی مقدماتی با شبکه های عصبی چند لایه لازم است.)
(لازمه که بگم نمی دونم اینجا چرا ماتریس ها رو اینجوری نشون میده،هر کاری می کنم درست نشون نمیده.واسه اینکه درست ببینید،هر جا که عبارت"کد"نوشته شده،جلوش نوشته شده"انتخاب"،رو انتخاب کلیک راست کنید و گزینه آخر رو انتخاب کنید،در ضمن می تونین اصلشو دانلود کنین و کد رو از رو اصل بخونین.)
به نام خدا
کلاس بندی توسط یک نرون(پرسپترون) با دو ورودی:
خوب در هر شبکه عصبی یه بردار ورودی داریم و بازای اون بردار ورودی،یه بردار در خروجی(به نام بردار هدف).
در اینجا فرض می کنیم ماتریس P بردار ورودی ما باشه:
ماتریس T نیز بردار خروجی(هدف) ما باشه به این صورت:
با دستور زیر موقعیت بردار های ورودی-خروجی رسم میشه:(در حقیقت این همون کاریه که ما می خایم شبکه عصبی واسمون انجام بده.)
این نرون باید 4 الگوی ورودی(ماتریس P) را به دو دسته در خروجی(ماتریسT)دسته بندی کنه.
با استفاده از دستور زیر با معرفی ماتریس P و T به نرون،از متلب می خواهیم که بردار وزن ها و بایاس تک نرون را مقدار دهی اولیه کند:
بعد از اجرای فرمان فوق-مقدار وزن ها و بایاس اولیه در ماتریس های W,b قرار می گیرد.
اکنون باید نرون را آموزش دهیم،با دستور ذیل کار آموزش نرون با توجه به ورودی - خروجی آغاز می شود:
این دستور ماتریس وزن-بایاس-ورودی-هدف را می گیرد و کار آموزش نرون را آغاز می کند و خروجی آن نیز عبارتست از :
ماتریس وزن های بهینه
ماتریس بایاس های بهینه
تعداد تکرار ها تا آموزش دیدن صحیح شبکه عصبی
خطا در هر مرحل آموزش شبکه عصبی
الان تک نرون ما آموزش دیده است،با استفاده از دستور زیر،مقدار خطا در هر مرحله آموزش نشان داده میشود:
خوب حالا ممکنه که بخوایم شبکه عصبیه آموزش دیده رو امتحان کنیم،یعنی یه الگو در ورودی بهش بدیم،ببینیم آیا درست دسته بندی می کنه یا نه؟
باید اول ماتریس ورودیو معرفی کنیم،بعد ازش بخوایم واسمون خروجیو با توجه به ماتریس وزن ها و بایاس شبیه سازی کنه و جواب رو در ماتریسa بریزه.
از دستور زیر استفاده می کنیم:
خوب همه می دونیم که شبکه عصبی در حقیقت یک نگاشت غیر خطی از ورودی-به خروجی انجام میده،واسه اینکه ببینیم بوسیله چه صفحه ای کار دسته بندی انجام شده از دستور زیر استفاده میکنیم:
دستور لذت بخشیه نه؟ 
تبریک می گم شما اولین نرونتون رو با متلب آموزش دادین.از اینجا به بعد مسائل پیشرفت می کنن و شرایط جدید رو در نظر می گیریم.
دسته بندی با یک نرون با سه ورودی:
ابتدا ماتریس ورودی رو معرفی می کنیم،ماتریس p به صورت زیر با سه ورودی:
حالا ماتریس هدف رو معرفی می کنیم، به این صورت:
حالا از متلب می خوایم که الگو بندیه ورودی-خروجیو واسمون بکشه،با این دستور:
نوبت به مقدار اولیه دادن به بردار وزن ها و بایاس می رسه :
اکنون کار آموزش شبکه عصبی با دستور:
شبکه عصبی آموزش می بینه که 8 الگو را در ورودی به 2 الگو در خروجی تبدیل کند.
اینجا حتما پیشنهاد می کنم این دو تا دستور رو پشت سر هم اجرا کنین،نتیجه رضایت بخشه.
مشاهده می کنین که چه جوری با یک صفحه،این نرون،این 8 الگو رو از هم تشخیص میده،زیباست،نه؟ :applause:
http://www.eca.ir/forum2/index.php?a....0;attach=2613
(برای دنبال کردن مطالب آشنایی مقدماتی با شبکه های عصبی چند لایه لازم است.)
(لازمه که بگم نمی دونم اینجا چرا ماتریس ها رو اینجوری نشون میده،هر کاری می کنم درست نشون نمیده.واسه اینکه درست ببینید،هر جا که عبارت"کد"نوشته شده،جلوش نوشته شده"انتخاب"،رو انتخاب کلیک راست کنید و گزینه آخر رو انتخاب کنید،در ضمن می تونین اصلشو دانلود کنین و کد رو از رو اصل بخونین.)
به نام خدا
کلاس بندی توسط یک نرون(پرسپترون) با دو ورودی:
خوب در هر شبکه عصبی یه بردار ورودی داریم و بازای اون بردار ورودی،یه بردار در خروجی(به نام بردار هدف).
در اینجا فرض می کنیم ماتریس P بردار ورودی ما باشه:
کد:
P=[-.5 -.5 .3 0; -.5 .5 -.5 1];
کد:
T=[1 1 0 0];
کد:
plotpv(P,T)
با استفاده از دستور زیر با معرفی ماتریس P و T به نرون،از متلب می خواهیم که بردار وزن ها و بایاس تک نرون را مقدار دهی اولیه کند:
کد:
[W,b]=initp(P,T)
اکنون باید نرون را آموزش دهیم،با دستور ذیل کار آموزش نرون با توجه به ورودی - خروجی آغاز می شود:
کد:
[W,b,epochs,errors]=trainp(W,b,P,T)
ماتریس وزن های بهینه
ماتریس بایاس های بهینه
تعداد تکرار ها تا آموزش دیدن صحیح شبکه عصبی
خطا در هر مرحل آموزش شبکه عصبی
الان تک نرون ما آموزش دیده است،با استفاده از دستور زیر،مقدار خطا در هر مرحله آموزش نشان داده میشود:
کد:
ploterr(errors)
باید اول ماتریس ورودیو معرفی کنیم،بعد ازش بخوایم واسمون خروجیو با توجه به ماتریس وزن ها و بایاس شبیه سازی کنه و جواب رو در ماتریسa بریزه.
از دستور زیر استفاده می کنیم:
کد:
a=simup(p,W,b)
کد:
plotpc(W,b)

تبریک می گم شما اولین نرونتون رو با متلب آموزش دادین.از اینجا به بعد مسائل پیشرفت می کنن و شرایط جدید رو در نظر می گیریم.
دسته بندی با یک نرون با سه ورودی:
ابتدا ماتریس ورودی رو معرفی می کنیم،ماتریس p به صورت زیر با سه ورودی:
کد:
P=[-1 1 -1 1 -1 1 -1 1; -1 -1 1 1 -1 -1 1 1; -1 -1 -1 -1 1 1 1 1];
کد:
T=[0 1 0 0 1 1 0 1];
کد:
plotpv(P,T)
کد:
[W,b]=initp(P,T)
کد:
[W,b,epochs,errors]=trinp(W,b,P,T)
اینجا حتما پیشنهاد می کنم این دو تا دستور رو پشت سر هم اجرا کنین،نتیجه رضایت بخشه.
کد:
plotpv(P,T); plotpc(P,T);
دیدگاه