![]() |
سوال در مورد الگوریتم BackPropagation
سلام دوستان.
فرض کنید ما شبکه زیر رو داریم. weight همه یالها رو هم که داریم. http://www.4freeimagehost.com/resized/8825167bd5f7.jpg حالا سوال من اینه، وقتی ما ورودی به شبکه میدیم و خروجی ازش میگیریم (بعنوان مثال اعداد 1 و 3 و 5 رو بهش دادیم و اعداد 2 و 4 رو ازش بعنوان جواب صحیح میخوایم که مثلا اعداد 3 و 1 رو بهمون میده (یعنی خروجی شماره 8 بجای دادن عدد 2 بهمون عدد 3 رو داده و خروجی شماره 4 هم بجای عدد 4 بهمون عدد 1 رو داده) وزن یالها رو چطور تصحیح میکنیم؟ تا اونجایی که من متوجه شدم مثلا برای این مثالی که زدم میایم خطا محاسبه میکنیم، (برای خروجی 8 میشه 2 منهای 3 که برابر منفی 1 میشه) بعدش رو دیگه هر چی خوندم نفهمیدم که چطور بر مبنای اون خطا وزن یالها رو تصحیح میکنیم. نمیدونم شایدم از مرحله خیلی پرت باشم و این سوال همینطور... در هر حال ممنون میشم اگر کسی لطف کنه و پاسخ من رو بده... |
یعنی اینقدر سوالم پرته از ماجرا؟؟!
|
سلام عموما وزنها با استفاده از یک فرمول مانند:w(n+1)=w(n)+ j.delta(w) می باشد حالا بحث سر این است که این فرمول خطا باید چی باشد؟ضریب j چی باشد؟ اما کلیت قضیه این است که شما یک سری داده آموزشی داری (یعنی خروجی آنها را می دانی) آنقدر این وزنها را با آن فرمول و با ورودی های آموزشی جابجا می کنی تا خطا صفر بشود ویا مقدارش خیلی کم بشود. این یک تعریف ساده از شبکه عصبی که میشه گفت
|
شما تابع انتقالت رو نگفتی سامیشن رو هم نگفتی
ولی خب فرض کن سیگموئید و سام اول مشتق رو میگیری از تابع انتقال بعد خطا رو در مشتق در مقدار خطا ضرب می کنی و ... یادمه یک بار کدشو با سی شارپ نوشتم تا فهمیدم. تو هم یه سرچ بزنی کدش به زبان های مختلف بخصوص c تو نت هست. |
زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۱۲:۴۴ بعد از ظهر ميباشد. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.