پرسپترون
نوعی از شبکه عصبی برمبنای یک واحد محاسباتی به نام پرسپترون ساخته میشود. یک پرسپترون برداری از ورودیهای با مقادیر حقیقی را گرفته و یک ترکیب خطی از این ورودیها را محاسبه میکند. اگر حاصل از یک مقدار آستانه بیشتر بود خروجی پرسپترون برابر با ۱ و در غیر اینصورت معادل -۱ خواهد بود.
مسائل مناسب برای یادگیری شبکه های عصبی
خطا در داده های آموزشی وجود داشته باشد. مثل مسائلی که داده های آموزشی دارای نویز حاصل از دادهای سنسورها نظیر دوربین و میکروفن ها هستند.
مواردی که نمونه ها توسط مقادیر زیادی زوج ویژگی-مقدار نشان داده شده باشند. نظیر داده های حاصل از یک دوربین ویدئوئی.
تابع هدف دارای مقادیر پیوسته باشد.
زمان کافی برای یادگیری وجود داشته باشد. این روش در مقایسه با روشهای دیگر نظیر درخت تصمیم نیاز به زمان بیشتری برای یادگیری دارد.
نیازی به تعبیر تابع هدف نباشد. زیرا به سختی میتوان اوزان یادگرفته شده توسط شبکه را تعبیر نمود.
آموزش پرسپترون
چگونه وزنهای یک پرسپترون واحد را یاد بگیریم به نحوی که پرسپترون برای مثالهای آموزشی مقادیر صحیح را ایجاد نماید؟
دو راه مختلف :
- قانون پرسپترون
- قانون دلتا
الگوریتم یادگیری پرسپترون
- مقادیری تصادفی به وزنها نسبت میدهیم
- پریسپترون را به تک تک مثالهای آموزشی اعمال میکنیم. اگر مثال غلط ارزیابی شود مقادیر وزنهای پرسپترون را تصحیح میکنیم.
- آیا تمامی مثالهای آموزشی درست ارزیابی میشوند:
- بله ß پایان الگوریتم
- خیرßبه مرحله ۲ برمیگردیم
الگوریتم gradient descent
با توجه به نحوه تعریف E سطح خطا بصورت یک سهمی خواهد بود. ما بدنبال وزنهائی هستیم که حداقل خطا را داشته باشند . الگوریتم gradient descent در فضای وزنها بدنبال برداری میگردد که خطا را حداقل کند. این الگوریتم از یک مقدار دلبخواه برای بردار وزن شروع کرده و در هر مرحله وزنها را طوری تغییر میدهد که در جهت شیب کاهشی منحنی فوق خطا کاهش داده شود.
ایده اصلی: گرادیان همواره در جهت افزایش شیب E عمل میکند.
گرادیان E نسبت به بردار وزن w بصورت زیر تعریف میشود:
که در آن E (W) یک بردارو E’مشتق جزئی نسبت به هر وزن میباشد.
مشکلات روش gradient descent
- ممکن است همگرا شدن به یک مقدار مینیمم زمان زیادی لازم داشته باشد.
- اگر در سطح خطا چندین مینیمم محلی وجود داشته باشد تضمینی وجود ندارد که الگوریتم مینیمم مطلق را پیدا بکند.
در ضمن این روش وقتی قابل استفاده است که:
- فضای فرضیه دارای فرضیه های پارامتریک پیوسته باشد.
- رابطه خطا قابل مشتق گیری باشد
تقریب افزایشی gradient descent
میتوان بجای تغییر وزنها پس از مشاهده همه مثالها، آنها را بازا هر مثال مشاهده شده تغییر داد. در این حالت وزنها بصورت افزایشی incremental تغییر میکنند. این روش را stochastic gradient descent نیزمی نامند.
در بعضی موارد تغییر افزایشی وزنها میتواند از بروز مینیمم محلی جلوگیری کند. روش استاندارد نیاز به محاسبات بیشتری دارد درعوض میتواند طول step بزرگتری هم داشته باشد.
الگوریتم Back propagation
برای یادگیری وزن های یک شبکه چند لایه از روش Back Propagation استفاده میشود. در این روش با استفاده از gradient descent سعی میشود تا مربع خطای بین خروجی های شبکه و تابع هدف مینیمم شود. خطا بصورت زیر تعریف میشود:
مراد ازoutputs خروجیهای مجموعه واحد های لایه خروجی و tkdو okd مقدار هدف و خروجی متناظر با k امین واحد خروجی و مثال آموزشی d است.
فضای فرضیه مورد جستجو در این روش عبارت است از فضای بزرگی که توسط همه مقادیر ممکن برای وزنها تعریف میشود. روش gradient descent سعی میکند تا با مینیمم کردن خطا به فرضیه مناسبی دست پیدا کند. اما تضمینی برای اینکه این الگوریتم به مینیمم مطلق برسد وجود ندارد.
- شبکه ای با ninگره ورودی، nhidden گره مخفی، و nout گره خروجی ایجاد کنید.
- همه وزنها را با یک مقدار تصادفی کوچک عدد دهی کنید.
- تا رسیدن به شرط پایانی ) کوچک شدن خطا( مراحل زیر را انجام دهید:
برای هر xمتعلق به مثالهای آموزشی:
مثال X را به سمت جلو در شبکه انتشار دهید
خطای E را به سمت عقب در شبکه انتشار دهید.
قدرت نمایش توابع
گرچه قدرت نمایش توابع به توسط یک شبکه feedforward بسته به عمق و گستردگی شبکه دارد، با این وجود موارد زیر را میتوان به صورت قوانین کلی بیان نمود:
توابع بولی: هر تابع بولی را میتوان توسط یک شبکه دو لایه پیاده سازی نمود.
توابع پیوسته: هر تابع پیوسته محدود را میتوان توسط یک شبکه دو لایه تقریب زد. تئوری مربوطه در مورد شبکه هائی که از تابع سیگموئید در لایه پنهان و لایه خطی در شبکه خروجی استفاده میکنند صادق است.
توابع دلخواه: هر تابع دلخواه را میتوان با یک شبکه سه لایه تا حد قابل قبولی تفریب زد.
از شما دوستان عزیز که این مطلب آموزشی را دنبال نموده اید تشکر می کنیم و شما را دعوت میکنیم که برای فراگیری شبکه عصبی مطالب ما را دنبال کنید.این مطالب برای افزایش دانش شما در سایت قرار داده شده و کمک زیادی در یادگیری شما در انجام پروژه شبکه عصبی خواهد نمود.
فریلنسر هستم و مهارت انجام پروژه ای را دارم!
اگر شما فریلنسر هستید و توانایی انجام پروژه ای را در یک رشته یا حوزه ای خاص دارید برای فعالیت در سایت کافه پروژه و کسب درآمد می توانید در سایت ثبت نام کنید و پروژه هایی با مهارت انتخاب خود را مشاهده کنید.جهت ثبت نام و ثبت رزومه خود در سایت از طریق دکمه پایین صفحه در سایت عضو شوید:
نحوه سفارش پروژه در سایت کافه پروژه :
اگر پروژه ای دارید که میخواهید آن را برون سپاری کنید کافی است در سایت کافه پروژه ثبت نام کنید و پروژه خود را ثبت نمایید.پروژه شما هر چه که باشد حتما مجری برای آن وجود دارد.جهت ثبت نام و ثبت سفارش پروژه خود برروی دکمه زیر کلیک نمایید.
بدون دیدگاه