آشنایی با شبکه‌های عصبی خودسازمان ده (Self Organization Map(SOM))

فهرست مطالب

مقدمه. 1

1) شبکه‌های خودسازمانده دارای وزن ثابت:2

1-1) شبکه ی ماکس نت(MaxNet)2

مقدمه. 2

ساختارشبکه . 2

الگوریتم کار شبکه . 3

1-2) شبکه ی کلاه مکزیکی(Mexican Hat Network)3

مقدمه. 3

ساختار شبکه. 3

الگوریتم کار شبکه. 4

1-3) شبکه ی همینگ (Hamming Network)5

مقدمه. 5

ساختار شبکه. 5

الگوریتم کار شبکه. 6

2)شبکه ی (لایه ی) کوهونن. 6

مقدمه. 6

ساختار شبکه. 8

مشکلات و راه حلها8

الگوریتم کار شبکه. 9

چند نکته. 9

توضیحات تکمیلی در مورد یادگیری شبکه. 11

برخی انواع تغییر یافته ی SOM… 12

برخی کاربردهای شبکه‌های SOM… 13

نحوه ی پیاده سازی این نوع از شبکه در مجموعه ی Matlab. 14

چند مثال پیاده سازی از این نوع شبکه. 17

منابع. 19

لینک‌های مربوط. 20


 

Weka-train-film
Artifical-Neural-Network-tutorial-introduction-training-film2
rapidminer-video

 

 

مقدمه

درشبکه ی خودسازمان ده، از روش یادگیری رقابتی برای آموزش استفاده می‌شود و مبتنی بر مشخصه‌های خاصی از مغز انسان توسعه یافته است. سلولها در مغز انسان در نواحی مختلف طوری سازمان دهی شده اند که در نواحی حسی مختلف، با نقشه‌های محاسباتی مرتب و معنی دار ارائه می‌شوند. برای نمونه، ورودیهای حسی لامسه –شنوائی و … با یک ترتیب هندسی معنی دار به نواحی مختلف مرتبط هستند.

در یک شبکه ی خود سازمان ده که با SOM(Self Organization Map) یا برخی مواقع به صورت SOFM(Self Organization Feature Map) نشان داده می‌شود، واحد‌های پردازش گر در گره‌های یک شبکه ی یک بعدی، دو بعدی یا بیشتر قرار داده می‌شوند. واحد‌ها در یک فرآیند یادگیری رقابتی نسبت به الگوهای ورودی منظم می‌شوند. محل واحدهای تنظیم شده در شبکه به گونه ای نظم می‌یابد که برای ویژگیهای ورودی، یک دستگاه مختصات معنی دار روی شبکه ایجاد شود. لذا یک نقشه ی خود سازمان ده، یک نقشه ی توپوگرافیک از الگوهای ورودی را تشکیل می‌دهد که در آن، محل قرار گرفتن واحدها، متناظر ویژگیهای ذاتی الگوهای ورودی است.

یادگیری رقابتی که در این قیبل شبکه‌ها بکار گرفته می‌شود بدین صورت است که در هر قدم یادگیری، واحدها برای فعال شدن با یکدیگر به رقابت می‌پردازند، در پایان یک مرحله رقابت تنها یک واحد برنده می‌شود، که وزنهای آن نسبت به وزنهای سایر واحدها به شکل متفاوتی تغییر داده می‌شود. این نوع از یادگیری را یادگیری بی نظارت (Unsupervised) می‌نامند. شبکه‌های خودسازمان ده به لحاظ ساختاری به چند دسته تقسیم می‌شوند که در ادامه با هر یک از آنها به صورت مختصری آشنا می‌شویم.

1) شبکه‌های خودسازمانده دارای وزن ثابت:

در این دسته از شبکه‌ها وزن اتصالات بر اساس اهداف مورد نظر در طراحی شبکه در حین طراحی مشخص می‌شود و مقدار آنها تغییر نمی‌یابد، یا به عبارت دیگر نیاز به مرحله ی آموزش ندارند در ادامه جهت آشنایی بیشتر با این گونه از شبکه‌ها با چند نمونه ی عملی آنها آشنا می‌شویم.

1-1) شبکه ی ماکس نت(MaxNet)

مقدمه

شبکه فوق در سال 1987 توسط لیپ من (Lippman) معرفی گردید. هدف استفاده از آن تعیین بزرگترین ورودی به شبکه است یعنی در این شبکه پس از طی چند مرحله از طریق خروجی‌ها می‌توان ورودی بزرگتر را تشخیص داد، از این شبکه به عنوان زیر شبکه نیز می‌توان در ترکیب با شبکه‌های دیگر استفاده نمود(در ادامه نمونه ای از این ترکیب ارائه می‌شود).

op1

ساختارشبکه

در این شبکه، n واحد ورودی دارای اتصالات کامل و متقارن با وزن‌های ثابت هستند. تابع فعالیت آنها به صورت ذیل می‌باشد:

الگوریتم کار شبکه

0- مقادیر اولیه را مشخص می‌کنیم، مقداری برای e در فاصله ی اختیار می‌کنیم، مقادیر اولیه ی فعالیتها(yها) را برابر ورودی‌ها قرار می‌دهیم، وزن‌ها را به فرم ذیل تعیین می‌کنیم:

1- تا زمانیکه شرط خاتمه ارضاء نشده است قدمهای 2 الی 4 را تکرار می‌کنیم

2- بهنگام سازی مقادیر فعالیت

,     j=1,…,m

3- مقادیر فعالیت ذخیره شود:

yjold=yjnew         ,           j=1,…,m

4- اگر بیش از یک واحد مقدار فعالیت غیر صفر دارد الگوریتم ادامه می‌یابد، در غیر این صورت الگوریتم خاتمه می‌یابد.

 

1-2) شبکه ی کلاه مکزیکی(Mexican Hat Network)

مقدمه

این شبکه در سال 1989 توسط کوهونن ارائه شد. هدف از بکار بردن این شبکه، افزایش تمایز بین ورودی‌ها می‌باشد، در این شبکه هر واحد با وزن‌های مثبت به همسایه‌های همکار و با وزن‌های منفی به همسایه‌های رقیب واقع در لایه خود وصل می‌شود.

مدل ساختاری شبکه ی کلاه مکزیکی که اتصالات فقط بری واحد i ام رسم شده

 

ساختار شبکه

در شبکه ی فوق هر نورون i با R1 نورون دیگر که در هر دو طرف نورون i به صورت متقارن قرار دارند تشکیل همسایگی همکار می‌دهد و با R2-R1 نورون متقارن در دو طرف خود همسایگی رقیب تشکیل می‌دهد. R1 را همسایگی همکار و R2 را کل همسایگی متصل می‌نامند. برای نمونه در شکل فوق یک شبکه ی کلاه مکزیکی با R1=1 و R2=2 نشان داده شده است.

تخصیص وزن‌ها نیز بدین گونه است که در همسایگی همکار وزن‌ها مقادیر مثبت دارند ولی در همسایگی رقیب وزن‌ها مقادیر منفی دارا می‌باشند، در ضمن وزن‌های متقارن متصل به هر واحد i با هم مساوی هستند به عبارت دیگر وزن اتصال واحد i+1 و i-1 به واحد i با هم برابر هستند. در ذیل به جزئیات تخصیص وزن‌ها و توابع فعالیت اشاره می‌شود.

وزن اتصالات وارد به واحد i که به فرم wi+k,i می‌باشد بدین گونه است که:

الف) برای واحدهای همکار |k|≤R1 ، وزن‌های مثبت

ب) برای واحدهای رقیب R1≤|k|≤R2 ،وزن‌های منفی

تابع فعالیت هر واحد در زمان t به فرم ذیل است:

الگوریتم کار شبکه

0- تعیین مقادیر اولیه ی پارامتر‌های R1، R2 ، tmax و

yold=0                           ,

1- سیگنال خارجی را اعمال و مقادیر yold را ذخیره می‌کنیم

y=x      ,           yiold=xi,i=1,…,n

2- تا زمانیکه t<tmax قدم‌های 3 الی 7 را تکرار می‌کنیم

3- محاسبه ی خروجی‌های خطی واحدها:

4- تابع فعالیت زیر را اعمال می‌کنیم:

yi=f(Ii)

 

 

yi=min(ymax,max(0,Ii))

5- خروجی‌ها را در yold ذخیره می‌کنیم:

yiold=yi,i=1,…,n

6- افزایش شمارنده

t=t+1

7- آزمایش شرط خاتمه:

اگر t<tmax ادامه دهیم در غیر این صورت الگوریتم خاتمه می‌یابد.

1-3) شبکه ی همینگ (Hamming Network)

مقدمه

قبل از شروع بحث راجع به شبکه ی همینگ باید با برخی اصطلاحات آشنا شویم. اولین تعریف مربوط به فاصله ی همینگ می‌شود. فاصله ی همینگ بین دو بردار X و Sj برابر تعداد مولفه‌های دو بردار است که با هم متفاوت هستند، که با dj نمایش داده می‌شود. تعریف بعدی مربوط به مفهوم میزان تشابه دو بردار است. میزان تشابه دو بردار عبارتست از تعداد مولفه‌های برابر دو بردارکه آن را با aj نمایش می‌دهند. پس با توجه به تعاریف ارائه شده داریم:

aj=n-dj

اکنون اگر فرض کنیم که دو بردار دو قطبی باشند(فقط حاوی مقادیر 1 و 1- ) آنگاه می‌توان روابط زیر را ارائه نمود:

Sj.X=aj-dj=aj+aj-n=2aj-n         ,           aj=0.5*Sj.X+0.5*n=0.5*+0.5*n

 

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

 

بعد از ارائه ی توضیحات اولیه اکنون به بحث پیرامون هدف ارائه ی این شبکه می‌پردازیم. در شبکه ی همینگ تعدادی از نورون‌ها شبیه شکل فوق، تعدادی بردار نمونه را ارائه می‌دهند و شبکه میزان شباهت X ورودی به هر یک را بدست می‌دهد. بزرگترین خروجی شبیه ترین بردار نمونه به X را مشخص می‌کند. این بزرگترین خروجی را می‌توان با استفاده از یک لایه شبکه ی MaxNet مشخص کرد.

ساختار شبکه

همانگونه که در بخش بالا اشاره شد این شبکه از دو بخش تشکیل یافته است، بخش اول که هر واحد آن معرف یک بردار می‌باشد که قصد مقایسه ی ورودی با آن را داریم و وزن اتصالات آن نیز بر اساس تعاریف از قبل مشخص و تنظیم می‌شود، بخش دوم شبکه یک لایه ی شبکه ماکس نت است که جهت تعیین بزرگترین خروجی از بخش اول استفاده می‌شود و بدین طریق کار تشخیص شبیه ترین بردار به بردار ورودی انجام می‌گیرد. شکل ذیل ساختار این شبکه را نمایش می‌دهد.

مدل ساختاری شبکه همینگ

 

الگوریتم کار شبکه

فرض اولیه ذیل را در نظر می‌گیریم :

n : تعداد عناصر بردار ورودی

m : تعداد بردارهای نمونه

Sj ، j=1,…,m : بردار‌های نمونه

0- تعیین وزن‌های شبکه  بر اساس رابطه ی ذیل

wi,j=0.5sij         ,i=1,…,n           j=1,…,m

1- برای هر بردار X قدم‌های 2 الی 4 را انجام می‌دهیم.

2- محاسبه خروجی خطی واحدها:

,j=1,…,m

3- تعیین مقادیر اولیه شبکه ماکس نت

yj(0)=yi                        j=1,…,m

4- الگوریتم ماکس نت انجام می‌شود

 

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 و vq=

یا فاصله ی اقلیدسی 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- این نوع از شبکه‌ها بسیار پر کاربرد هستند.

برخی انواع تغییر یافته ی SOM

بعد از آشنا شدن با مبانی این شبکه و برخی از انواع آن در ادامه لیستی از شبکه ی حاصل شده از تغییرات در نوع اولیه ی SOM که به ضرورتهای کاری مختلف انجام گرفته اند، ارائه می‌گردد.

 

ردیف نام توضیحات
1 SOM for structured data (SOMSD) نوعی از SOM با اتصالات بازگشتی است، که از آن جهت کاربردهای تحلیل توالی‌ها استفاده می‌شود
2 Recursive SOM (RecSOM)

 

یک شبکه‌های عصبی با اتصالات پس خور دارای تاخیر زمانی، که با ترکیب ورودی‌های جاری و فعالیتهای گذشته به صورت تلویحی نمایش دهنده ی زمان می‌باشند.
3 temporal Kohonen map (TKM) نوعی از SOM با اتصالات بازگشتی که فعالیت هر واحد به عنوان تابع ساده ای از بردارهای ورودی تعریف می‌شود که توسط Chappell  و Taylor پیشنهاد شده است
4 general SOM for structured data(GSOMSD) یک مدل عمومی‌برای RecSOM، TKM و SOMSD می‌باشد
5 Merge SOM(MSOM) یک نوع دیگر از SOM می‌باشد که از ترکیب معماری یادگیریnoise-tolerant با مدلهای قبلی ایجاد شده است
6 Recurrent SOM(RSOM) یک نوع دیگر از SOM با feedback می‌باشد که از آن جهت تحلیل‌های وابسته به توالی استفاده می‌شود و توسط Koskela پیشنهاد شده است
7 Batch-Learning Self-Organizing MapBLSOM)) استفاده از آموزش دسته ای (Batch) در SOM که تاثیر ترتیب را از ورودی‌ها حذف می‌کند
8 PicSOM یک نوع TS-SOM می‌باشد که جهت بازیابی محتوایی تصاویر استفاده شده است
9 WEBSOM یک نوع از SOM است که از آن جهت داده کاوی‌های متنی استفاده می‌شود
10 Tree Structured Self-Organizing MapTS-SOM یک الگوریتم کوانتیزاسیون برداری بر مبنای درخت است که در آن از SOM استفاده می‌شود

 

 

برخی کاربردهای شبکه‌های SOM

در این بخش به برخی از موارد استفاده شبکه‌های SOM می‌پردازیم. البته، کاربردهای آن بسیار زیاد می‌باشد ولی در اینجا به برخی از آنها پرداخته می‌شود، که در مورد هر کدام نیز مرجع مورد استفاده نیز جهت مطالعه ی بیشتر معرفی گردیده است.

الف- استفاده از شبکه ی SOM در سنجش از راه دور(Remote Sensing) در مواردی که به جهت زیاد بودن دقت سنسورهای تصویر گیری با داده‌های با ابعاد زیاد مواجه می‌شویم بکار می‌رود، که این کاربرد در بخش

Extensions and Modi_cations of the Kohonen-SOM and Applications in Remote Sensing Image Analysis از کتاب SOM نوشته ی Thomas Villmann به صورت مفصل به همراه اصلاحات انجام گرفته در ساختار اولیه ی SOM ارائه شده است.

 

ب- تشخیص نفوذ غیر مجاز، با استفاده از شبکه ی SOM که در مقاله ی   Multiple Self-Organizing Maps for Intrusion Detectionنوشته ی Brandon Craig Rhodes, James A. Mahaffey, James D. Cannady ارائه شده است.

 

ج- مدلسازی شبکه‌های غشائی بزرگ با استفاده از SOM رشد کننده که در مقاله ی  Modeling large cortical networks with growing self-organizing maps نوشته ی James A. Bednar, Amol Kelkar, and Risto Miikkulainen به آن پرداخته شده است

 

د- استفاده از شبکه ی SOM برای حل مسئله ی معروف فروشنده ی دوره گرد که در مقاله ی An new self-organizing maps strategy for solving the traveling salesman problem نوشته ی Yanping Bai a,*, Wendong Zhang a, Zhen Jin که در Chaos, Solitons and Fractals 28 (2006) 1082–1089 به چاپ رسیده است، به آن اشاره شده است.

 

و- تخمین چگالی احتمال با استفاده از شبکه‌های SOMN که در مقاله ی Self-Organizing Mixture Networks for Probability Density Estimation نوشته ی Hujun Yin and Nigel M. Allinson که در IEEE TRANSACTIONS ON NEURAL NETWORKS, VOL. 12, NO. 2, MARCH 2001 به چاپ رسیده است، به آن پرداخته می‌شود.

 

ن- داده کاوی (Data mining) در توالی‌ها با استفاده از RecSOM که در مقاله ی  Data Mining on Sequences with recursive Self-Organizing Maps نوشته ی Sebastian Blohm به آن اشاره شده است.

 

ه- استفاده از SOM برای تکثیر داده‌های ادغامی‌به صورت غیر خطی که در مقاله ی Self-organizing map learning nonlinearly embedded manifolds نوشته ی Timo Simila که در Information Visualization (2005) 4, 22–31 به چاپ رسیده است، مورد بحث قرار گرفته است.

 

ی- استفاده از Recurrent SOM برای تخمین سری‌های زمانی که در مقاله ی Recurrent SOM with Local Linear Models in Time Series Prediction نوشته Timo Koskela, Markus Varsta, Jukka Heikkonen به آن اشاره شده است.

 

و کاربردهای بسیار دیگروجود دارند که با این شبکه و انواع اصلاح شده ی آن انجام می‌گیرد.

 

نحوه ی پیاده سازی این نوع از شبکه در مجموعه ی Matlab

نرم افزار مطلب، یکی از نرم افزارهای قوی و جامع در ارتباط روشهای یادگیری، از جمله شبکه‌های عصبی می‌باشد که برای بسیاری از کابردها می‌توان از آن استفاده نمود. در این بخش قصد داریم توضیحات مختصری در ارتباط با نحوه ی پیاده سازی شبکه‌های SOM در این نرم افزار ارائه نمائیم.

ساختار لایه ی رقابتی که در نرم افزار مطلب از آن استفاده می‌شود به فرم ذیل می‌باشد:

برای ساخت یک شبکه ی عصبی رقابتی به فرم ذیل عمل می‌شود:

برا این کار از دستور newc استفاده می‌شود.

net = newc(PR,S,KLR,CLR)

بعد از اجرای دستور شبکه ی ایجاد شده در متغیر خروجی net قرار می‌گیرد و پارامترهای ورودی آن عبارتند از PR که یک ماتریس R*2 می‌باشد که در آن R تعداد ورودی‌ها بوده و برای هر ورودی دو مقدار حداقل و حداکثر را نمایش می‌دهد، پارامتر S بیانگر تعداد نورونها می‌باشد، پارامتر KLR نرخ یادگیری کوهونن (پیش فرض برابر 0.01 ) را نشان می‌دهد و در نهایت پارامتر CLR نرخ یادگیری Coscience (پیش فرض برابر 0.001) را ارائه می‌کند. در ذیل نمونه ای از اجرای تابع ارائه شده است:

p = [.1 .8  .1 .9; .2 .9 .1 .8]

p =

0.1000    0.8000    0.1000    0.9000

0.2000    0.9000    0.1000    0.8000

net = newc([0 1; 0 1],2);

با اجرای تابع فوق یک شبکه ی SOM دارای دو نورون با دو ورودی ایجاد می‌شود، به صورت پیش فرض وزن اتصالات با استفاده از تابع midpoint مقداردهی اولیه می‌شود، که برابر مرکز محدوده ی دو ورودی شبکه تنظیم می‌گردد

wts = net.IW{1,1}

wts =

0.5000    0.5000

0.5000    0.5000

برای مقداردهی اولیه ی مقادیر Biases نیز از تابع initcon استفاده می‌شود که برای شبکه ی بالا به صورت ذیل مقدار دهی می‌گردد:

biases =

5.4366

5.4366

بعد از ایجاد شبکه برای آموزش آن از توابع متفاوتی می‌توان استفاده نمود، از جمله این توابع عبارتند ازLearnK که بر اساس قانون یادگیری کوهونن عمل می‌کند و به روز رسانی وزن‌ها در آن برای واحد i ام که برنده است به صورت ذیل انجام می‌گیرد:

برای تعیین مقادیر Bias نیز از قانون یادگیری learncon استفاده می‌شود که استفاده از این قانون به نوعی پیاده سازی الگوریتم وجدان پیشنهادی دسینو می‌باشد که برای پرهیز از ایجاد نورون‌های مرده استفاده می‌شود. بعد از آشنایی با توابع مورد استفاده جهت آموزش شبکه در ادامه با نحوه ی آموزش شبکه آشنا می‌شویم. برای آموزش شبکه ایجاد شده از دستور net2=train(net1,p) استفاده می‌شود که در آن P همان بردارهای ورودی آموزشی هستند و net2 نیز شبکه ی آموزش داده شده است. البته، برخی پارامتر‌های قابل تنظیم نیز وجود دارد از جمله net.trainFcn که تابع آموزش را تعیین می‌کند و به صورت پیش فرض برابر trainr می‌باشد در ضمن پارامتر net.trainParam.epochs که جهت تنظیم تعداد حداکثر Epochها از آن استفاده می‌شود. در پایان بعد از آموزش نیز جهت آزمایش شبکه نیز می‌توان از دستور a=sim(net,p) استفاده نمود.

علاوه بر دستور newc  که در بالا مختصری مورد بررسی قرار گرفتن دستور دیگری نیز وجود دارد که شبکه ی SOM دیگری را با قابلیهای بیشتر ایجاد می‌کند که در ادامه به بررسی آن می‌پردازیم.

این شبکه جدید دارای ساختار ذیل می‌باشد:

برای ایجاد این شبکه از دستور newsom استفاده می‌شود

net = newsom(PR,[D1,D2,…],TFCN,DFCN,OLR,OSTEPS,TLR,TND)

بعد از اجرای تابع فوق نیز، شبکه ی ایجاد شده در خروجی ارائه می‌گردد، و پارامترهای ارسالی به تابع عبارتند از، PR که یک ماتریس R*2 می‌باشد که در آن R تعداد ورودی‌ها بوده و برای هر ورودی دو مقدار حداقل و حداکثر را نمایش می‌دهد، Di اندازه ی لایه ی بـعد iام را نشان می‌دهد، TFCN تابع توپولوژی مورد استفاده را نشان می‌دهد، DFCN تابع فاصله ی مورد استفاده را نشان می‌دهد، OLR نرخ یادگیری در فاز Ordering  یا مرتب سازی را نشان می‌دهد، OSTEPS گامهای (Steps) مرحله ی مرتب سازی را نشان می‌دهد، TLR نرخ یادگیری مرحله ی Tuning یا همگرایی را نشان می‌دهد و در نهایت TND فاصله ی همسایگی در مرحله ی همگرایی را نشان می‌دهد. در ادامه برخی از توضیحات تکمیلی در ارتباط با پارامترهای ارسالی به تابع ارائه می‌شود.

برای شبکه عصبی ایجاد شده می‌توان از انواع مختلفی توپولوژی استفاده نمود، توپولوژیهای قابل تعریف عبارتند از:

1) Gridtop که به فرم ذیل است.

2) Hextop که به فرم ذیل است.

3) Randtop که به فرم ذیل است.

همچنین چهار نوع تابع فاصله ی مختلف وجود دارد که می‌تواند مورد استفاده قرار گیرند. اولین آنها تابع dist است که همان فاصله ی اقلیدسی می‌باشد، دومی‌تابع linkdist می‌باشد که عبارتست از تعداد اتصالات یا مراحلی که باید در توپولوژی طی شود تا از یک نورون به نورون دیگر برسیم که قصد تعیین فاصله ی بین آن دو را داریم، سومی‌تابع boxdist است که شکل ذیل نحوه ی محاسبه ی آن را در توپولوژی grid نشان می‌دهد، چهارمین و آخرین آنها mandist می‌باشد که همان فاصله manhattan را محاسبه می‌نماید.

سایر پارامترهای ارسالی در آموزش شبکه موثر می‌باشند که در ادامه به توضیح مختصری از آنها می‌پردازیم. همانگونه که در بخش توضیحات شبکه ی SOM ارائه شد، این شبکه به پیشنهاد آقای کوهونن در دو مرحله آموزش داده می‌شود، در مرحله ی اول فاز Ordering است که در آن سعی می‌شود با قدم‌های بزرگ یک ترتیب کلی در وزن همه ی نورون‌ها ایجاد شود از این رو پارامترهای OLR که نرخ یادیگری این فاز است معمولا مقدار بزرگی است (0.9) و در مرحله ی بعد که مرحله ی همگرایی است، TLR مقدار کوچکتری را دارا می‌باشد (0.02) تا با تغییرات کوچک در وزن‌ها به نوعی تنظیم نهایی و دقیق تری در وزن‌ها ایجاد می‌شود. برای آموزش این شبکه نیز از دستور train استفاده می‌شود.

چند مثال پیاده سازی از این نوع شبکه

در این بخش چند نمونه از پیاده سازی‌های انجام گرفته برای این شبکه با نرم افزاهای مختلف ارائه می‌شود، در ابتدا پیاده سازیی جامع در نرم افزار مطلب ارائه می‌گردد.

در ذیل واسط گرافیکی طراحی شده ارائه شده است.

همانگونه که در واسط آن مشخص است، از طریق این پیاده سازی می‌توان همه ی حالات قابل پیاده سازی در نرم افزار مطلب را به همراه پارامتر‌های مختلف آن آزمایش کرد و نتایج را به صورت گرافیکی مشاهده نمود، برای نمونه در ادامه یک مثال از اجرای آن ارائه می‌شود.

در اینجا نمونه‌های آموزشی به صورت ستاره‌های سبز رنگ و از طریق ماوس انتخاب شده اند، در ادامه با استفاده از دو روش مختلف دو شبکه ی مختلف را با استفاده از این نتایج آموزش می‌دهیم و سپس با توجه به مقدار وزن‌های نورون‌ها، مکان آنها را در تصویر مشخص می‌کنیم.

در ضمن، پارامترهای استفاده شده در شبکه‌های ایجاد شده همان‌هایی است که در واسط گرافیکی مشخص می‌باشند.

پیاده سازی دیگری که از این شبکه‌ها انجام گرفته است با استفاده از زبان و امکانات برنامه نویسی جاوا بوده، که مجموعه ی آن از طریق سایت www.Sourceforge.net قابل download می‌باشد. این پیاده سازی تحت نام javasom انجام گرفته است.

منابع

[1] Robert Hecht-Nielsen , NeuroComputing , Addison-Wesley Publishing Company, 1991

[2] راهنمای نرم افزار Matlab

لینک‌های مربوط

1- http://www.shef.ac.uk

2- http://www.gc.ssr.upm.es/inves/neural/ann1/unsupmod/CompetLe/kohonen.htm

3- http://www.gc.ssr.upm.es/inves/neural/ann1/abrtions.htm

4- http://www.ai-junkie.com

5- http://www.cs.usyd.edu.au/~irena/ai01/nn/som.html  (به همراه چند اپلت جاوا)

6- http://ai-depot.com/Tutorial/SomColour.html

 

دريافت اصل فايل

1 نظر در “آشنایی با شبکه‌های عصبی خودسازمان ده (Self Organization Map(SOM))”

  1. سلام
    ببخشین شما کد برنامه شبکه ماکس نت(Maxnet) جز زیرشبکه های شبکه عصبی خودسازمان ده رو در متلب به صورت پیاده سازی شده رو دارین؟

پیام بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

sixty one − 57 =