رفتن به مطلب

سوال در مورد نمونه کد شبکه عصبی


ارسال های توصیه شده

اینم یک کد دیگر هستش و از دوستانی که شبکه عصبی وارد هستند کسی میتونه در رابطه با کدای آماده متلب در رابطه با mlp توضیح بدید

کد زیر هم در رابطه با ایجاد شبکه عصبی که نیاز دارم توضیح داده بشه

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

لینک به دیدگاه
اینم یک کد دیگر هستش و از دوستانی که شبکه عصبی وارد هستند کسی میتونه در رابطه با کدای آماده متلب در رابطه با mlp توضیح بدید

کد زیر هم در رابطه با ایجاد شبکه عصبی که نیاز دارم توضیح داده بشه

برای مشاهده این محتوا لطفاً ثبت نام کنید یا وارد شوید.

سلام،

من خط به خط کد رو توضیح میدم خدمتتون.

فقط اگر اشکالی بود و یا قسمتی رو متوجه نشدید بفرمایید تا اگر اطلاع داشتم و تونستم در مورد اون توضیح بدم.

البته خیلی خوشحال میشم اگر دوستان همراهی بفرمایند.

 

alphabet = P;

targets = T;

همونطور که می بینید ماتریس ورودی به نام p در متغیر جدیدی به نام alphabet قرار داده شده و ماتریس targets هم همون مقدار خروجی هامون هستن.

...............................

[R,Q] = size(alphabet);

[s2,Q] = size(targets);

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

...............................

net = newff(minmax(alphabet),[s1 50 50 S2],{'logsig' 'logsig' 'logsig' 'logsig'},...

'traingdx');

 

در این قسمت با دستورnewff شبکه ایجاد میشه.

همونطور که مشخصه در بالا سایز و تعداد لایه ها(لایه های میانی و خروجی ) رو مشاهده می فرمایید که در مثال شما سه لایه ی میانی و یک لایه ی خروجی تعریف شده.

میبینید که برای تمامی لایه های میانی و خروجی از تابع 'logsig' استفاده شده و تعداد لایه های میانیتون هم سه عدد هستش.

اینها (سه تا لایه ی میانی تعریف شده)همون توابع انتقال (Transfer Function) یا همون TF ها هستن که آرایه هایی سلولین و از مسیر زیر میتونید انواعشون رو ببینید و استفاده کنید:

در قسمت help متلب عبارت زیر رو تایپ کنید :

neural network toolbox

در این قسمت(Functions) انواع توابع رو میتونید ببینید.

اما 'traingdx' هم همون train function هستش که در مثال شما این تابع ('traingdx' ) از الگوریتم Gradient descent همراه با momentum و adaptive learning rate استفاده می کنه.(که احتمالا باید با اونها آشنا باشید).

انواع این توابع رو هم باز از مسیر بالا میتونید مشاهده بفرمایید.

..............................

net.LW{2,1} = net.LW{2,1}*0.01;

net.b{2} = net.b{2}*0.01;

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

..............................

 

net.performFcn = 'mse';

در این مرحله کارایی یا performance شبکه مورد بررسی قرار می گیره.

الان در این مثال از روش میانگین مربعات خطا داره محاسبه میشه.(mse)

...........................

net.trainParam.show = 20;

تعیین شده که هر 20 بار تکرار نتیجه( به صورت فایل تکست) نمایش داده بشه.

.............................

net.trainParam.epochs = 1500;

و اینکه تا 1500 تکرار پیش بره و بیشتر از اون رو شبکه اجازه نمیده.

..............................

net.trainParam.mc = 0.95;

مقدار ثابت مومنتوم ای که در نظر گرفته شده رو نشون میده.

.........................

[net,tr] = train(net,P,T);

 

در نهایت هم شبکه با همین مقادیر train میشه.

...........................

برای نمایش شبکه ی ایجاد شده هم میتونید از دستور:view(net) استفاده بفرمایید.

.....................................................................................

امیدوارم توضیحاتم گویا بیان شده باشه.

موفق باشید:icon_gol:

لینک به دیدگاه

مرسی خانم حمیدی عزیز ی سوال این چه نوع شبکه عصبی هستش؟ منظورم چند لایه که هستش از چه نوعی هستش؟

اجراش 4لایه میانی دارد که من تصویر اجرا را براتون میزارم. و ممنونم از راهنمایی کامل و خوبتون:w16:

mmm.jpg

لینک به دیدگاه
مرسی خانم حمیدی عزیز ی سوال این چه نوع شبکه عصبی هستش؟ منظورم چند لایه که هستش از چه نوعی هستش؟

اجراش 4لایه میانی دارد که من تصویر اجرا را براتون میزارم. و ممنونم از راهنمایی کامل و خوبتون:w16:

سلام،

خواهش می کنم:icon_gol:

.....

در مورد اینکه این شبکه چه نوع شبکه ی عصبی هست:

همونطور که میبینید شبکه از یک لایه ی ورودی، چند لایه ی میانی و یک لایه ی خروجی نهایی تشکیل شده که این ویژگی از ویژگی های شبکه ی عصبی mlp هست.

در ثانی تابع ترینتون هم همونطور که قبلا توضیح دادم از نوع

traingdx هست و این به این معنی هست که در پیاده سازی از الگوریتم Gradient descent همراه با momentum و adaptive learning rate استفاده شده.

.....

خوب تصویر ارسالیتون که بسیار ریز هست اما طبق کدی که قرار دادید:

شبکه دارای سه لایه میانی هست، نه چهار لایه.

ببینید زیر سه لایه ی میانی تون عدد 50 نوشته شده که در کد هم همینطوری تعریف شده بود.(در قسمت newff).

لایه ی آخری که در شکل میبینید مقدارش 32 هست.این لایه لایه ی خروجیتون هست.

در واقع همون لایه ی نهایی هست ولی چون از دید خروجی مخفی هستش در واقع به این صورت نمایش داده میشه و به عنوان لایه ی میانی نهایی اشتباه گرفته میشه.

پس اون لایه ی آخر لایه ی خروجی هست و با لایه ی میانی متفاوته و به جای 4 لایه ی میانی 3 لایه ی میانی دارید.

یه نکته ی دیگه اینکه:

غالبا برای پیاده سازی شبکه ی mlp اگر از 3 لایه ی میانی بیشتر در پروژه استفاده شد دیگه اون پروژه چندان مطلوب نیست و مقدار همون 2 تا 3 لایه ی میانی برای تقریبا هر پروژه ای کفایت می کنه و نیاز به تعداد لایه ی بیشتر از 3 تا نیست.

لینک به دیدگاه
  • 1 سال بعد...

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...