2)شبکه ی (لایه ی) کوهونن
مقدمه
ریشه ی قانون یادگیری کوهونن به سالهای 1962 و قبل از آن و به مباحث خوشه بندی بی نظارت بر می گردد. در دهه ی 70 کریستف واندرمالزبرگ قانونی معرفی نمود مبتنی بر این ایده که مجموع وزن های مربوط به ورودی ها در واحدهای مختلف که از یک خروجی آمده اند بایستی ثابت باشند. مبنای این ایده محدود بودن ماده شیمیایی موجود در خروجی مورد بحث و تقسیم شدن آن بین ورودی های مختلف متصل به این خروجی بود.
در سال 1976 استفن گراسبرگ ایده مالزبرگ را رد کرد و قانونی که در این بخش مطرح می شود را ارائه نمود. اما در اواخر دهه ی 70 کوهونن به این نتیجه ی مهم رسید که هدف این قانون یادگیری بایستی ساختن یک مجموعه بردار wi که ارائه های هم احتمال یک تابع چگالی احتمال ثابت r را تشکیل می دهند، باشند.
یعنی بردارهای wi بایستی طوری خودرا تغییر دهند که برای هر بردار ورودی X با تابع چگالی احتمال r داشته باشیم:
,X به wi نزدیکترین است به ازاء i=1,2,...,m
این ایده برای توابع چگالی احتمال یکنواخت به طور مطلوب کار می کرد، در سال 1987 دوین دسینو تغییری در قانون کوهونن ایجاد نمود که مشکل مزبور را حل کرد اما هنوز به واسطه ی نقش مهم کوهونن در این زمینه، قانون را قانون کوهونن می گویند.
مدل ساختاری شبکه ی کوهونن یک بعدی
مدل ساختاری شبکه ی کوهونن دو بعدی
ساختار شبکه
یک لایه کوهونن آرایه ای از نورون ها است به صورت یک بعدی، دو بعدی یا بیشتر است که نمونه ای از آن را در شکل فوق مشاهده می نمائید.
در فاز یادگیری هر یک از واحدها فاصله ی بردار ورودی X تا وزن های خود را به صورت زیر محاسبه می کنند.
Ii=D(X,wi)
که D تابع سنجش فاصله است و می توان هر یک از توابع مرسوم برای سنجش فاصله را استفاده نمود، مثلا فاصله ی کمان کروی
D(u,v)=1-cosq ، زاویه ی بین u و v q=
یا فاصله ی اقلیدسی D(u,v)=|u-v| را می توان استفاده نمود. واحدها با این محاسبه می خواهند بدانند نزدیکترین بردار وزن به x را دارند یا نه که این همان بخش رقابتی در اینگونه از شبکه ها می باشد.
واحد دارای نزدیکترین وزن به بردار ورودی، برنده این مرحله از رقابت خواهد بود که برای آن Zi مربوطه برابر 1 قرار داده می شود و سایر Zi ها برابر صفر خواهند بود. آنگاه قانون کوهونن که به صورت ذیل است برای به روز رسانی وزن ها استفاده می شود:
winew=wiold+a(X-wiold)zi ,0<a≤1
قانون فوق معادل قانون زیر است:
مشکلات و راه حلها
یکی از مشکلات عمده در این نوع از شبکه ها آموزش آنها می باشد، در ادامه توضیحاتی در این رابطه ارائه می گردد. در اوایل فاز یادگیری a را بزرگ اختیار می کنیم(مثلا 0.8)، با پیشرفت یادگیر a کاهش داده می شود تا نهایتا در پایان یادگیری ممکن است به 0.1 یا کمتر از آن رسیده باشد با اعمال بردارهای ورودی مختلف X ها در فاز آموزش بردارهای وزن ها به سمت آنها جذب می شوند و در جاهایی که X های بیشتری قرار گیرند wi های بیشتری متمرکز می شوند و در جاهایی که X های زیادی قرار نمی گیرند wi های زیادی نیز تمرکز نمی یابند به این ترتیب لایه، وزنهای خود را با تابع چگالی احتمال ورودیها تطبیق می دهند.
همانگونه که قبلا اشاره شد می خواهیم بردارهای wi خود را طوری تنظیم کنند که برای هر یک ورودی X با تابع چگالی احتمال r احتمال اینکه X به wi نزدیک باشد، برابر 1/m گردد. اما با قانون کوهونن p(wi) تنها در حالت خاصی برابر 1/m می شود مانند حالتی که r در یک و تنها یک ناحیه متصل دارای هندسه ی ساده ثابت یا تقریبا ثابت باشد.
پس اگر p(wi)¹1/m شرط برقرار باشد، آنگاه ممکن است با مشکل گیر افتادن بردارهای وزن در نواحی ایزوله و عدم امکان حرکت آنها به نواحی مطلوب مواجه شویم. همچنین ممکن است یک بردار وزن خاص در یک ناحیه همیشه به همه ی X های ورودی در آن ناحیه نزدیکتر باشد و لذا همیشه آن بردار برنده شود و در این حالت وزنهای همه ی واحدها اصلاح نخواهند شد.
واحدی که وزن های آن اصلا اصلاح نشود در این شبکه یک واحد مرده نامیده می شود. البته چندین راه برای حل مشکل پیشنهاد شده است که در ادامه با برخی از آنها آشنا می شویم.
1) روش رشد دادن شعاعی (Redial Sproting)
β<<1 , Xi-->βXi , wiold=0
یعنی Xi ها را نیز به نزدیکی مبدا می بریم، β تدریجا بزرگ می شود تا اینکه سرانجام به یک می رسد و مشکل حل می شود اما یادگیری بسیار کند پیش می رود.
2) افزایش نویز
در این روش به Xi ها نویز دارای توزیع ثابت با دامنه قوی اضافه می شود، به طوری که در ابتدا نویز بر Xi ها غالب باشد با گذشت زمان نویز تضعیف می شود و یادگیری انجام می شود. مشکل این روش نیز سرعت بسیار پایین آن می باشد.
3) استفاده از همسایگی برنده
در این روش بجای اصلاح وزنهای واحد برنده به تنهایی، وزنهای واحدهای همسایه واحد برنده را نیز اصلاح می کنیم. در ابتدا آموزش همسایگی را بسیار بزرگ در نظر می گیرند به طوری که تقریبا همه واحدها در آن جای گیرند. اما با پیشرفت یادگیری شعاع همسایگی را تدریجا کوچک می کنیم تا در پایان آموزش به نواحی محلی مجزا که نماینده کلاسهای مختلف ورودی هستند برسیم.
4) روش دسینو
در ادامه روشی که توسط دسینو برای حل مشکل آموزش شبکه مطرح شده است اشاره می شود. یک مکانیزم وجدان در شبکه در نظر می گیریم در این حال سابقه برنده شدن واحدها نگهداشته می شود و اگر واحدی بیش از 1/m دفعه برنده شود برای مدتی از رقابت خارج می شود. این روش در اکثر اوقات بسیار خوب عمل می کند، پیاده سازی آن می تواند به صورت زیر انجام پذیرد.
پس از پایان رقابت و تعیین zi ها نسبت زمانی که واحد i برنده می شود به صورت زیر محاسبه می شود.
finew=fiold+β(zi-fiold)
همچنین یک بایاس از رابطه زیر حساب می شود:
bi=g(1/m-finew)
حال می گوئیم وزنهای واحدی اصلاح می شود که دارای کوچکترین فاصله:
D'=D(wi,X)-bi
باشد.
اگر واحد i خیلی برنده شود : bi<0 می شود و D'>D می شود
اگر واحد i خیلی کم برنده شود : bi>0 می شود و D'<D می شود
اجراء کار تعیین واحد برنده به چند صورت امکان پذیر است:
1- هر واحد از سایر واحدها Ii های مربوط به آنها را دریافت کند و تصمیم بگیرد که خود برنده است یا نه
2- بین واحدها اتصالات جانبی بازدارنده تشکیل شود به طوری که تنها واحد برنده فعال بماند
3- یک واحد برنامه ریزی، همه ی Ii ها را دریافت کند و واحد برنده را اعلام نماید
4- واحد برنامه ریزی یک مقدار آستانه ای به همه واحدها ارسال کند اولین واحدی که داری فاصله Ii کمتر از T باشد برنده حساب می شود مقدار T ابتدا صفر انتخاب می شود و سپس افزایش می یابد.
الگوریتم کار شبکه
0- مقادیر اولیه wi0 اختیار می شوند، پارامترهای همسایگی واحد برنده تعیین شود، نرخ یادگیری تعیین شود.
1- تا زمانیکه شرط خاتمه غلط است قدمهای 2 الی 8 تکرار شود.
2- برای هر بردار ورودی X قدمهای 3 الی 5 اجرا شود.
3- برای هر j فاصله D محاسبه شود
4- اندیس J را که برای آن D(J) مینیمم است، تعیین می کنیم.
5- برای کلیه واحدهای j در همسایگی J و برای کلیه iها:
wijnew=(1-a)wijold+axi
6- نرخ یادگیری a را به هنگام در می آوریم.
7- شعاع همسایگی را در زمانهای مشخص کاهش می دهیم.
8- شرط خاتمه را آزمایش می کنیم.
چند نکته
1) نرخ یادگیری a می تواند به صورت خطی در طی آموزش کاهش یابد.
2) برای همگرا شدن الگوریتم ممکن است لازم شود که مجموعه ی آموزشی ما به دفعات متعدد به شبکه اعمال شود.
شیوه های انتخاب همسایگی
همسایگی پیرامون نورون برنده را چگونه تعریف کنیم که از نظر بیولوژیکی نیز موجه باشد؟
در علم اعصاب مشخص شده است، که یک واحد فعال بر روی واحدهای همسایگی نزدیک بیشتر از همسایه های دور اثر می گذارد لذا بایستی همسایگی حول نورون i یک همسایگی متقارن و کاهش یابنده هموار بافاصله از i باشد.
برای مثال تابع
و di,j= فاصله نورون j از نورون i
dj,i=|j-i| , dj,i2=||rj-ri||2
که در آن ri و rj برای نشان دادن نورون های i و j در فضای خروجی هستند، و رابطه فوق میزان شرکت همسایه ها در یادگیری را نشان می دهد.
از طرف دیگر اندازه ی همسایگی باید با زمان کاهش یابد لذا معمولا s را به صورت زیر در نظر می گیرند:
, n=0,1,...
که درآن s0 و t ثابت هستند.
شعاع همسایگی بزرگ در آغاز یادگیری
کاهش شعاع همسایگی با گذر زمان
برای تطبیقی کردن نرخ یادگیری نیز از رابطه ی ذیل استفاده می شود:
نرخ یادیگری با زمان باید کاهش یابد.
و n=0,1,...
که h0 و t2 دو ثابت هستند
در نهایت قانون تغییر وزن ها به صورت ذیل تبدیل می شود:
كد:
wj(n+1)=wj(n)+h(n)hj,i(X)(n)(X-wj(n))
توضیحات تکمیلی در مورد یادگیری شبکه
I- در شبکه ی فوق یادگیری در دو مرحله انجام می گیرد که به قرار ذیل هستند:
1) فاز خودسازمان دهی(مرتب شدن-Ordering )
با تغییرات اساسی لازم وزنها در این فاز مرتب می شوند، این کار شاید هزار دور تکرار الگوریتم را طلب بکند(مثلا با 1000 دور تکرار الگوریتم)
مسئله ی دیگر در این فاز انتخاب پارامترهای مورد نیاز برای یادگیری است.
h می تواند با 0.1 شروع شود و به 0.01 برسد،
h0=0.1 ,t2=1000
اندازه همسایگی ابتدا به گونه ای انتخاب می شود که تقریبا همه واحدها در همسایگی باشند سپس تدریجا کوچک می شود تا در پایان فاز مرتب شدن به واحد برنده یا واحد برنده و چند همسایه اش برسد.
s0=شعاع نقشه ,
2) فاز همگرائی (Tuning)
این فاز برای تنظیم دقیق نقشه است، تکرار الگوریتم در این فاز عموما حدود 500 برابر تعداد واحدهای نقشه است. در این فاز h(n) برای تمام فاز کوچک و ثابت مثلا 0.01 در نظر نظر گرفته می شود. همسایگی در این فاز در ابتدا شامل واحد برنده و چند همسایه آن می شود که سپس به تدریج به خود واحد برنده می رسد.
II- نگاشت حاصل از شبکه SOM به این ترتیب است :
F:X-->A
که در آن F نگاشت ویژگی غیر خطی است و X فضای پیوسته ورودی یا داده ها است و همچنین A فضای گسسته خروجی است. نگاشت ویژگی F که با مجموعه ی {wi} در فضای A ارائه می شود تقریب خوبی از فضای ورودی X است.
III- نقشه ی محاسبه شده با SOM از نظر توپولوژیکی مرتب شده است، یعنی مکان یک نورون در نقشه متناظر یک قلمرو ویژگی مشخص الگوهای ورودی است.
نقشه ی ویژگی معمولا در فضای ورودی x نشان داده می شود. هر وزن با یک دایره کوچک نشان داده می شود و این دوایر برای نورون های مجاور با خط به یکدیگر وصل می شوند.
IV- اگر توپولوژی یک بعدی باشد و ورودی دو بعدی شبکه با پیچ و خم سعی می کند آن را بپوشاند.
V- این نوع از شبکه ها بسیار پر کاربرد هستند.