رفتن به مطلب

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

شبکه عصبی چیست؟

l روشی برای محاسبه است که بر پایه اتصال به هم پیوسته چندین واحد پردازشی ساخته میشود.

l شبکه از تعداد دلخواهی سلول یا گره یا واحد یا نرون تشکیل میشود که مجموعه ورودی را به خروجی ربط میدهند.

 

شبکه عصبی چه قابلیتهائی دارد؟

l محاسبه یک تابع معلوم

l تقریب یک تابع ناشناخته

l شناسائی الگو

l پردازش سیگنال

lیادگیری انجام موارد فوق

الهام از طبیعت

l مطالعه شبکه های عصبی مصنوعی تا حد زیادی ملهم از سیستم های یادگیر طبیعی است که در آنها یک مجموعه پیچیده از نرونهای به هم متصل در کار یادگیری دخیل هستند.

l گمان میرود که مغز انسان از تعداد 10 11 نرون تشکیل شده باشد که هر نرون با تقریبا 104 نرون دیگر در ارتباط است.

lسرعت سوئیچنگ نرونها در حدود 10-3 ثانیه است که در مقایسه با کامپیوترها 10 -10 ) ثانیه ( بسیار ناچیز مینماید. با این وجود آدمی قادر است در 0.1 ثانیه تصویر یک انسان را بازشناسائی نماید. این قدرت فوق العاده باید از پردازش موازی توزیع شده در تعدادی زیادی از نرونها حاصل شده باشد.

l یک پرسپترون میتواند بسیاری از توابع بولی را نمایش دهد نظیر AND, OR, NAND, NOR

l اما نمیتواند XORرا نمایش دهد.

 

lدر واقع هر تابع بولی را میتوان با شبکه ای دوسطحی از پرسپترونها نشان داد.

 

l چگونه وزنهای یک پرسپترون واحد را یاد بگیریم به نحوی که پرسپترون برای مثالهای آموزشی مقادیر صحیح را ایجاد نماید؟

l دو راه مختلف :

l قانون پرسپترون

l قانون دلتا

 

الگوریتم یادگیری پرسپترون

l مقادیری تصادفی به وزنها نسبت میدهیم

l پریسپترون را به تک تک مثالهای آموزشی اعمال میکنیم. اگر مثال غلط ارزیابی شود مقادیر وزنهای پرسپترون را تصحیح میکنیم.

l آیا تمامی مثالهای آموزشی درست ارزیابی میشوند:

l بله ß پایان الگوریتم

lخیرßبه مرحله 2 برمیگردیم

 

l برای یک مثال آموزشیX = (x1, x2, …, xn) در هر مرحله وزنها بر اساس قانون پریسپتون بصورت زیر تغییر میکند:

wi = wi + Δwi

 

که در آن

 

قانون دلتا Delta Rule

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

l ایده اصلی این قانون استفاده از gradient descent برای جستجو در فضای فرضیه وزنهای ممکن میباشد. این قانون پایه روش Backpropagation است که برای آموزش شبکه با چندین نرون به هم متصل بکار میرود.

lهمچنین این روش پایه ای برای انواع الگوریتمهای یادگیری است که باید فضای فرضیه ای شامل فرضیه های مختلف پیوسته را جستجو کنند.

قانون دلتا Delta Rule

l برای درک بهتر این روش آنرا به یک پرسپترون فاقد حد آستانه اعمال میکنیم. در انجا لازم است ابتدا تعریفی برای خطا ی آموزش ارائه شود. یک تعریف متداول این چنین است:

E = ½ Σi (ti – oi) 2

 

lکه این مجموع برای تمام مثالهای آموزشی انجام میشود.

الگوریتم gradient descent

lبا توجه به نحوه تعریف E سطح خطا بصورت یک سهمی خواهد بود. ما بدنبال وزنهائی هستیم که حداقل خطا را داشته باشند . الگوریتم gradient descent در فضای وزنها بدنبال برداری میگردد که خطا را حداقل کند. این الگوریتم از یک مقدار دلبخواه برای بردار وزن شروع کرده و در هر مرحله وزنها را طوری تغییر میدهد که در جهت شیب کاهشی منحنی فوق خطا کاهش داده شود.

بدست آوردن قانون gradient descent

l ایده اصلی: گرادیان همواره در جهت افزایش شیب E عمل میکند.

l گرادیان E نسبت به بردار وزن w بصورت زیر تعریف میشود:

 

E (W) = [ E’/w0, E’/w1, …, E’/wn]

l که در آن E (W) یک بردارو E’مشتق جزئی نسبت به هر وزن میباشد.

 

قانون دلتا Delta Rule

l برای یک مثال آموزشیX = (x1, x2, …, xn) در هر مرحله وزنها بر اساس قانون دلتا بصورت زیر تغییر میکند:

wi = wi + Δwi

 

Where Δwi = -η E’(W)/wi

 

η: learning rate (e.g., 0.1)

علامت منفی نشاندهنده حرکت در جهت کاهش شیب است.

محاسبه گرادیان

l با مشتق گیری جزئی از رابطه خطا میتوان بسادگی گرادیان را محاسبه نمود:

E’(W)/ wi = Σi (ti – Oi) (-xi)

l لذا وزنها طبق رابطه زیر تغییر خواهند نمود.

Δwi = η Σi (ti – oi) xi

 

خلاصه یادگیری قانون دلتا

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

l به وزنها مقدار تصادفی نسبت دهید

l تا رسیدن به شرایط توقف مراحل زیر را ادامه دهید

l هر وزن wi را با مقدار صفر عدد دهی اولیه کنید.

l برای هر مثال: وزن wi را بصورت زیر تغییر دهید:

wi = wi + η (t – o) xi

مقدار wi را بصورت زیر تغییر دهید:

wi = wi + wi

تا خطا بسیار کوچک شود

مشکلات روش gradient descent

l ممکن است همگرا شدن به یک مقدار مینیمم زمان زیادی لازم داشته باشد.

l اگر در سطح خطا چندین مینیمم محلی وجود داشته باشد تضمینی وجود ندارد که الگوریتم مینیمم مطلق را پیدا بکند.

 

در ضمن این روش وقتی قابل استفاده است که:

l فضای فرضیه دارای فرضیه های پارامتریک پیوسته باشد.

lرابطه خطا قابل مشتق گیری باشد

تقریب افزایشی gradient descent

l میتوان بجای تغییر وزنها پس از مشاهده همه مثالها، آنها را بازا هر مثال مشاهده شده تغییر داد. در این حالت وزنها بصورت افزایشی incremental تغییر میکنند. این روش را stochastic gradient descent نیزمینامند.

wi = η (t-o) xi

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

شبکه های چند لایه

مثال

یک سلول واحد

تابع سیگموئید

الگوریتم Back propagation

l برای یادگیری وزن های یک شبکه چند لایه از روش Back Propagation استفاده میشود. در این روش با استفاده از gradient descent سعی میشود تا مربع خطای بین خروجی های شبکه و تابع هدف مینیمم شود.

lخطا بصورت زیر تعریف میشود:

الگوریتم Back propagation

lفضای فرضیه مورد جستجو در این روش عبارت است از فضای بزرگی که توسط همه مقادیر ممکن برای وزنها تعریف میشود. روش gradient descent سعی میکند تا با مینیمم کردن خطا به فرضیه مناسبی دست پیدا کند. اما تضمینی برای اینکه این الگوریتم به مینیمم مطلق برسد وجود ندارد.

الگوریتم BP

l شبکه ای با ninگره ورودی، nhidden گره مخفی، و nout گره خروجی ایجاد کنید.

l همه وزنها را با یک مقدار تصادفی کوچک عدد دهی کنید.

l تا رسیدن به شرط پایانی ) کوچک شدن خطا( مراحل زیر را انجام دهید:

برای هر xمتعلق به مثالهای آموزشی:

مثال X را به سمت جلو در شبکه انتشار دهید

خطای E را به سمت عقب در شبکه انتشار دهید.

انتشار به سمت جلو

lبرای هر مثال X مقدار خروجی هر واحد را محاسبه کنید تا به گره های خروجی برسید.

انتشار به سمت عقب

l برای هر واحد خروجی جمله خطا را بصورت زیر محاسبه کنید: δk = Ok (1-Ok)(tk – Ok)

l برای هر واحد مخفی جمله خطا را بصورت زیر محاسبه کنید: δh = Oh (1-Oh) Σk Wkh δk

l مقدارهر وزن را بصورت زیر تغییر دهید:

Wji = Wji + ΔWji

که در آن :

ΔWji = η δj Xji

شرط خاتمه

معمولا الگوریتم BP پیش از خاتمه هزاران بار با استفاده همان داده های آموزشی تکرار میگردد شروط مختلفی را میتوان برای خاتمه الگوریتم بکار برد:

l توقف بعد از تکرار به دفعات معین

l توقف وقتی که خطا از یک مقدار تعیین شده کمتر شود.

l توقف وقتی که خطا در مثالهای مجموعه تائید از قاعده خاصی پیروی نماید.

اگر دفعات تکرار کم باشد خطا خواهیم داشت و اگر زیاد باشد مسئله Overfitting رخ خواهد داد.

مرور الگوریتم BP

l این الگوریتم یک جستجوی gradient descent در فضای وزنها انجام میدهد.

l ممکن است در یک مینیمم محلی گیر بیافتد

l در عمل بسیار موثر بوده است

 

برای پرهیز از مینیمم محلی روشهای مختلفی وجود دارد:

l افزودن ممنتم

l استفاده از stochastic gradient descent

l استفاده ازشبکه های مختلف با مقادیر متفاوتی برای وزنهای اولیه

افزودن ممنتم

l میتوان قانون تغییر وزنها را طوری در نظر گرفت که تغییر وزن در تکرا n ام تا حدی به اندازه تغییروزن در تکرار قبلی بستگی داشته باشد.

ΔWji (n) = η δj Xji + αΔWji (n-1)

 

که در آن مقدارممنتم α بصورت 0

افزودن ممنتم باعث میشود تا با حرکت در مسیر قبلی در سطح خطا:

l از گیر افتادن در مینیم محلی پرهیز شود

l از قرارگرفتن در سطوح صاف پرهیز شود

lبا افزایش تدریجی مقدار پله تغییرات، سرعت جستجو افزایش یابد.

قدرت نمایش توابع

l گرچه قدرت نمایش توابع به توسط یک شبکه feedforward بسته به عمق و گستردگی شبکه دارد، با این وجود موارد زیر را میتوان به صورت قوانین کلی بیان نمود:

l توابع بولی: هر تابع بولی را میتوان توسط یک شبکه دو لایه پیاده سازی نمود.

l توابع پیوسته: هر تابع پیوسته محدود را میتوان توسط یک شبکه دو لایه تقریب زد. تئوری مربوطه در مورد شبکه هائی که از تابع سیگموئید در لایه پنهان و لایه خطی در شبکه خروجی استفاده میکنند صادق است.

lتوابع دلخواه: هر تابع دلخواه را میتوان با یک شبکه سه لایه تا حد قابل قبولی تفریب زد.

فضای فرضیه و بایاس استقرا

l فضای فرضیه مورد جستجو را میتوان بصورت یک فضای فرضیه اقلیدسی n بعدی از وزنهای شبکه در نظر گرفت )کهn تعداد وزنهاست(

l این فضای فرضیه بر خلاف فضای فرضیه درخت تصمیم یک فضای پیوسته است.

l بایاس استقرا این روش را میتوان بصورت زیر بیان کرد:

“smooth interpolation between data points”

به این معنا که الگوریتم BP سعی میکند تا نقاطی را که به هم نزدیکتر هستند در یک دسته بندی قرار دهد.

مثال

قدرت نمایش لایه پنهان

lیکی از خواص BP این است که میتواند در لایه های پنهان شبکه ویژگیهای نا آشکاری از داده ورودی نشان دهد.

قدرت نمایش لایه پنهان

نمودارخطا

قدرت تعمیم و overfitting

دلایل رخ دادن overfitting

l overfitting ناشی از تنظیم وزنها برای در نظر گرفتن مثالهای نادری است که ممکن است با توزیع کلی داده ها مطابقت نداشته باشند. تعداد زیاد وزنهای یک شبکه عصبی باعث میشود تا شبکه درجه آزادی زیادی برای انطباق با این مثالها داشته باشد.

lبا افزایش تعداد تکرار، پیچیدگی فضای فرضیه یادگرفته شده توسط الگوریتم بیشتر و بیشتر میشود تا شبکه بتواند نویز و مثالهای نادر موجود در مجموعه آموزش را بدرستی ارزیابی نماید.

راه حل

روشهای دیگر

راه های بسیار متنوعی برای ایجاد شبکه های جدید وجود دارد از جمله:

l استفاده از تعاریف دیگری برای تابع خطا

l استفاده از روشهای دیگری برای کاهش خطا در حین یادگیری

l Hybrid Global Learning

l Simulated Annealing

l Genetic Algorithms

l استفاده از توابع دیگری در واحدها

l Radial Basis Functions

l استفاده از ساختار های دیگری برای شبکه

lRecurrent Network

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

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

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

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

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

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

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

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

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

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