تبليغاتX
دنیای مجازی

شبكه عصبي چيست ؟

 

+ نوشته شده توسط امین حاجی علیزاده در دوشنبه نهم آبان 1384 و ساعت 14:25 |

مغز انسان حدود يکصد ميليارد سلول عصبی دارد که وظيفه پردازش و ذخيره کردن اطلاعات را بعهده دارند (نام اين سلولها نورون-Neuron است و فقط 10 درصد حجم مغز را تشکيل می دهند). اين 100 ميليارد سلول مثل 100 ميليارد CPU هستند که هر کدامشان به چندهزار CPU مجاور مثل شبکه متصل شده اند. اين مجموعه را ميشود با شبکه ای از کامپيوترهای متصل به اينترنت مقايسه کرد مننها تفاوت در اينست که کامپيوتری که ما با آن کار ميکنيم هم خيلي سريعتراست و هم حجم حافظه بيشتري دارد (مقايسه هر سلول با مثلاً يک CPU پنتيوم). علاوه بر اين، سلولهاي مغز ما در انجام کارهای مختلف هماهنگ با هم و در جهت يک هدف مشخص فعاليت ميکنند ولي کامپيوترهايي که من و شما و ديگران به اينترنت وصل کرده ايم هر کدام براي خودشان بصورت مستقل کار ميکنند و نه در جهت هدف مشترکي. در نتيجه با اينکه تک تک سلولهاي مغز ما از هر کدام از اين کامپيوترها ضعيفتر هستند ولي در مجموع پردازش موازي اطلاعات را به نحو بسيار قويتري انجام ميدهند. خيليها معتقند که تنها يک شبکه موازي از کامپيوترها قابليت اينرا خواهد داشت که عملکرد مغز انسان را شبيه سازي کند ولي اين امکان نيز وجود دارد که سرعت پردازش اطلاعات در کامپيوترها روزی آنقدر زياد شود که در عمل بتواند همه کارهايي که مغز انسان بصورت موازی انجام ميدهد را بصورت سريال انجام دهد و از نظر سرعت هم کم نياورد. بعنوان مثال، برنامه شطرنج بازي که کاسپاروف قهرمان جهان را شکست داد تقريباً بیشتر حالات ممکن بازي را در هر مرحله بصورت فوق العاده سريع محاسبه ميکرد در حاليکه مغز شطرنج باز از استراتژی استفاده ميکند و دنبال تمام حالتها نميرود چون خيلي از آنها اساساً بي ارزش هستند. استفاده از اين استراتژي کمتر وقت شطرنج بازرا ميگيرد ولي در مقابل، کامپيوتر چون سرعت پردازشش خيلي زياد شده، ميتواند اين اضافه کاري انجام محاسبات بيشتر را براحتي جبران کند و در آخر شايد حتي وقت اضافه هم بياورد.

اگر بخواهيم يک روبات درست کنيم که مغز آن مثل مغز آدم کار کند نميتوانيم 100 ميليارد CPU در آن بگذاريم. ما کارهايي مثل ديدن، شنيدن، لمس کردن، فکر کردن و غيره را ميتوانيم همزمان انجام دهيم چون سلولهاي مغزمان بصورت موازي کار ميکنند و هر کدام وظيفه خاصي دارند. ولي در انجام همين وظيفه ها نيز مغز ما سرعت نامحدود ندارد. همينجا است که يک پردازش گر خيلي سريع خواهد توانست اين کارها را به نوبت انجام دهد و در مجموع سرعتي مانند انسان از خود نشان دهد. مثلاً اول ببيند بعد بشنود بعد بو کند و غيره و تمام اينکارها را در کسري از ثانيه تمام کند. نتيجه کاراز نظر زماني درست مثل همان کارهايي خواهد بود که مغز انسان بصورت موازی انجام ميدهد.

+ نوشته شده توسط امین حاجی علیزاده در سه شنبه سوم آبان 1384 و ساعت 21:25 |
 كاربردهاي پردازش سيگنال ديجيتال، به خصوص در بحث فشرده‌سازي تصوير، طراحي فيلترهاي تطبيقي ديجيتال، قسمت مهمي از كار را تشكيل مي‌دهد.در مخابرات و ارتباطات ماهواره ای فشرده سازی و بازسازی تصاویر باعث کاهش حجم اطلاعات غیر ضروری میشود.در بسیاری از مراکز عمومی نیز فشرده سازی تصویر کاربرد دارد مثلا در یک بیمارستان که حجم عظیمی از حافظه کامپیوتر را تصاویر سی تی اسکن و MRI بیماران اشغال میکند باید بتوان داده های اضافی را تا حدی که به وضوح تصویر صدمه نخورد حذف کرد.با گذشت زمان و افزایش اطلاعات روز بروز روشهای مختلف و بهتری برای فشرده سازی تصاویر ارائه شد.آنچه که در تمامی روشهای فشرده سازی تصویر نیاز است استفاده از فیلترهای دیجیتال است که دارای سرعت بیشتر و خطای کمتری باشد.در این مقاله روشی برای تولید فیلترهای دیجیتال با حداقل خطا ارائه میشود.


کلید واژه ها: فیلتر FIR . فشرده سازی موجک . شبکه های عصبی . الگوریتم LMS .تراشه FPGA


1-مقدمه
در بحث پردازش سیگنال بالخصوص در فشرده سازی تصاویر استفاده از فیلترهای دیجیتال ضروری است. در اين زمينه افزايش سرعت و كاهش محاسبات، ثبات وزن فيلتر و كاهش خطا براي يك سيستم فشرده‌ساز، ضروري است. در اين مقاله با استفاده از الگوريتمی در شبکه های عصبی بنام LMS ، به وزن مناسب براي همگرايي و كاهش خطاي فيلترهاي تطبيقي مي‌رسيم و سپس طرحي براي پياده‌سازي این فیلتر بر روي FPGA ارائه مي‌شود كه حجم سخت‌افزاري آن را كاهش مي‌دهد.
2ـ فيلترهاي FIR
پاسخ فيلترهاي ديجيتال به FIR (Finite Impulse Response) پاسخ ضربه محدود و IIR (Infinite Impulse Response) پاسخ ضربه نامحدود، تقسيم مي‌شود. تبديل Z براي فيلترهاي ديجيتال را با معادله (1) مي‌توان نمايش داد :


(1)


 

در اين تبديل وقتي باشد، درجه سيستم افزايش يافته و پاسخ ضربه آن نامحدود خواهد شد بنابراين پاسخ سيستم IIR است. در حالي كه وقتي باشد پاسخ ضربه سيستم محدود شده و پاسخ سيستم FIR مي‌گردد. سيستم‌هاي گسسته داراي پاسخ زماني محدود هستند، در حالي كه پاسخ زماني محدود براي سيستم‌هاي پيوسته امكان‌پذير نيست. بدين دليل در يك سيستم فشرده‌ساز تصوير ديجيتال، استفاده از فيلتر FIR مرسوم است و براي كاهش خطا در عملكرد سيستم بايد ضرايب وزن اين فيلتر را بتوان توسط الگوريتمي كنترل و تصحيح كرد كه اين امر بالخصوص در ارتباطات مخابراتي مانند فشرده‌سازي تصاوير و ارسال آنها كاربرد بيشتري دارد.
3-تراشه های FPGA
یکی از بهترین روشهای فشرده سازی تصویر که اساس استاندارد فشرده سازی تصویر در سال 2000 میلادی شد تبدیل موجک است.این تبدیل استاندارد jpeg2000 را تولید کرد که هنوز روشی دیگر برآن برتری نیافته است.اساس فشرده‌سازي تصوير با تبديل موجك، فيلتركردن دو بعدي تصوير است.[2] اطّلاعات تصوير در يك حافظه جانبي RAM به صورت ديجيتال در دسترس قرار مي‌گيرند. مناسب‌ترين ابزار قابل برنامه‌ريزي منطقي كه انعطاف‌پذيري زيادي در طراحي و ساخت قطعات پيچيده دارد و کاربرد آن نیز روزبروز بیشتر میشود FPGA است.
يك FPGA شامل تعداد زيادي بلوك‌هاي آرايه منطقي (LAB) است كه در سطرها و ستون‌هايي منظم قرار گرفته‌اند و در موازي ساختن عملكرد مدار و افزايش سرعت نقش مهمي دارند.در یک تراشه FPGA تا یک میلیون عنصر منطقی وجود دارد و باعث شگفتی است که بدانیم سال به سال عناصر موجود در این تراشه از طریق کارخانه های سازنده افزایش میابد و طولی نخواهد کشید که کلیه عملکرد یک مدار پیچیده تنها بایک تراشه قابل پیاده سازی باشد.یک بلوک منطقی این تراشه در شکل (1) آمده است همانطور که دیده میشود این بلوک توانایی آن را دارد که هر عملیات ریاضی پیچیده ای را انجام دهد.[3]
توانایی این تراشه به دلیل وجود حافظه های SRAM در هریک از بلوکهای منطقی آن میباشد.مزیت این تراشه این است که میتوان به تعداد بیشمار بار آن را برنامه ریزی کرد.یعنی اگر طراح طرح اولیه خود را از طریق دستگاه برنامه ریزی بر روی این تراشه پیاده کرد و نتیجه مطلوب نبود قادر است که دوباره طرح خود را تغییر داده و آن را روی تراشه پیاده سازی کند.

 


 

در اين مقاله، براي ساخت يك فيلتر تطبيقي FIR بردارهاي وزن مناسبي براي فيلتر بدست خواهد آمد كه كنترل عملكرد فيلتر را به عهده دارد.این فیلتر تطبیقی نیز روی یک تراشه FPGA قابل پیاده سازی است.

4ـ الگوريتمLMS در شبکه عصبی
یکی از شاخه های علوم که روز بروز در صنعت در حال پیشرفت است علم کنترل اتوماتیک است که این علم از نظریه شبکه های عصبی بهره میبرد.یک شبکه عصبی از مجموعه ای سلول عصبی تشکیل شده است که عملکرد خود را با هماهنگی خاصی انجام میدهند.در این مجموعه اگر یک سلول آسیب ببیند بقیه سلولها میتوانند نبود آن سلول را جبران کرده و در بازسازی آن سهیم باشند.در سالهای گذشته دانشمندان بسیاری در تلاش بودند که مدل شبکه- های عصبی را بصورت مصنوعی ارائه کنند.بدیهی است که اگر مدل شبکه های عصبی را در یک سیستم بتوان پیاده- سازی کرد عملکرد آن سیستم دچار نقص نمیشود و علاوه بر آن توانایی یادگیری را مانند سلولهای عصبی پیدا میکند.تلاشهای دانشمندان بالاخره به نتیجه رسید و امروزه نظریه شبکه های عصبی در بسیاری از سیستمهای خبره پیاده شده است.از مهمترین کسانی که در زمینه شبکه های عصبی بسیار تلاش کرد فردی بنام(ویدرو هوف)بود.او نظریه ای ارائه کرد که باعث تحولی در شبکه های عصبی شد.او الگوریتمLMS را عنوان کرد. این نظریه هرچند که در نظر اول ساده به نظر میرسد ولی دقت را در یک سیستم خبره بالا میبرد.اساس این الگوریتم یک فیدبک از خروجی شبکه به ورودی آن بود.او بیان کرد که در یک سیستم میتوان خطای حاصل از خروجی دلخواه و خروجی تولید شده از شبکه را بدست آورد و آن را به صورت فیدبکی به ورودی اعمال کرد در این صورت ورودی دائما در حال تغییر است و خروجی شبکه به سمت خطای کمتر میل میکند.این باعث میشود که شبکه به نوعی آموزش ببیند.آموزش برای سلولهای عصبی با هر تغییری ایجاد میشود.مثلا با اعمال سوزش به سلولهای عصبی لامسه سلولها یاد میگیرند که به طرف جسم داغ نروند.با این الگوریتم نیز شبکه میآموزد که خطای خود را اصلاح کند.یادگیری در یک شبکه عصبی مصنوعی با بردار وزن تعریف میشود.همانطور که سلولهای عصبی بدن ما در طی فرایند یادگیری با تارهای بلندی بنام سیناپس با هم ارتباط بیشتری برقرار می کنند در یک سیستم عصبی مصنوعی هرچه باعث یادگیری شود با افزایش بردار وزن مدل میشود.
معيار الگوريتمLMS استفاده از ميانگين مربعات خطا (MSE) است، به طوري كه سيگنال‌هاي خطا پس از اعمال بردارهاي ورودي به شبکه محاسبه مي‌‌گردند. در اين الگوريتم، وزن يادگيري با پارامتر ، سيگنال ورودي و خطاي حاصل از سيگنال خروجي واقعي و خروجي دلخواه فيلتر، تصحيح مي‌شوند.[4]
4ـ1ـ معادله LMS
تصحيح ضرايب فيلتر، از مجموع ضرايب وزنی كنوني فيلتر w [n] با پارامتر ، در ورودي x[n] و خطاي خروجي e [n] حاصل مي‌شود. در اين حالت ضرايب تصحيح شده فيلتر بدست مي‌آيد. از تفاضل خروجي فيلتر y [n] با مقدار دلخواه d [n] ترم e [n] (خطا) حاصل مي‌شود. بنابراين روابط زير را داريم :

4ـ2ـ انتخاب ضريب
در الـگوريتم LMS رابطه ريـاضي خـاصي براي محاسبه وجود ندارد بـلكه محدوديت در رابـطه است كه باعـث همگرايـي سيـستم مي‌شود. مـاكزيمـم مقـدار ويژه ماتريس بردارهای ورودي است.[4]
5ـ ساختار فيلتر FIR براساس الگوريتم LMS
یک فیلتر در صورتی عملکرد مناسبی دارد که باندهای فرکانسی دلخواهی که ما میخواهیم جدا کند در غیر اینصورت درست فیلتر نخواهد کرد.در شکل (2) دو نوع فیلتر نشان داده شده است.فیلتر با عرض باند وسیع و فیلتر با عرض کم.

 


هرچه یک فیلتر خطای کمتری داشته باشد بدین معناست که فرکانسهای اضافی را کمتر عبور میدهد.ما میخواهیم با شبکه عصبی فیلتری طراحی کنیم که خطای کمتری داشته باشد.بهترین روش استفاده از الگوریتم LMS است .به شکل (3)توجه کنید.
این شکل استفاده از شبکه عصبی را برای یک فیلتر نشان میدهد . از خروجی برای بدست آوردن خطا و استفاده از آن به عنوان فیدبک نمونه برداری شده است.



قبل از پیاده سازی بر روی تراشه باید با استفاده از قطعات منطقی که در FPGA قرار دارد بتوانیم عملکرد یک فیلتر را طراحی کنیم.یک فیلتر بسته به فرکانس کاری خود از تعدادی واحد تاخیر ایجاد شده است .واحد تاخیر در حوزه زمان باعث ایجاد تاخیر و در حوزه فرکانس به فرکانس تبدیل میشود.بلوک فیلتر در شکل (4) آمده است.
ساختار کلی تر اين طراحي در شكل (5) نشان داده شده است.
اجزاء اصلي فيلتر شامل m واحد تأخير و 1+m واحد وزن اصلاح شده است. هر واحد تأخير مي‌تواند يك ثبات D فليپ فلاپ باشد.همانطور که دیده میشود ورودی ها با فیدبکی که از خروجی به ورودی اعمال میشود دائما در حال تغییر و اصلاح هستند. قطعات مورد نیاز نیز در داخل تراشه موجود است.



هر عنصر وزن نيز ضرايب فيلتر را طبق معادله (2) اصلاح مي‌كند. خروجي فيلتر، تفاضل سيگنال دلخواه از سيگنال خطاي ايجاد شده است. سيگنال خطا يك بافر است كه به صورت فيدبك به واحد وزن براي تعيين ضريب فيلتر بعدي، اعمال مي‌شود. طبق معادله (2) اين عملكرد شامل دو ضرب و يك تفريق است. تعداد واحدهاي تأخير به فيلتر مورد نظر بستگي دارد. به اين ترتيب حجم سخت‌افزار زياد مي‌شود. اگر از يك واحد ضرب و انباره (MAC) استفاده كنيم براي كمتر ساختن حجم سخت‌افزار بسيار كارآمدتر است. ورودي MAC بوسيله يك واحد كنترل‌كننده انتخاب مي‌شود. شكل (6) بلوك دياگرام آن را نشان مي‌دهد. در اين طراحي به دو پالس ساعت نياز داريم. يك پالس براي كنترل اطلاعات ورودي و تعيين فركانس داده مورد نظر است. پالس ساعت ديگر براي واحد كنترلر و وزن تصحيح‌كننده فيلتر استفاده مي‌شود.به این ترتیب قادر هستیم حجم سخت افزار را کاهش دهیم.هرچند که تراشهFPGA به اندازه مورد نیاز بلوک منطقی دارد ولی ما باید حتی المکان در بکار بردن امکانات در طراحی صرفه- جوئی کنیم.

 


به منظور كم شدن حجم سخت‌افزار و بهبود مدار بهتر است كه از FPGA مدل Altera استفاده شود. در سري 780 F25S1EP بلوكي به نام بلوك پردازش سيگنال ديجيتال به ساختار داخلي FPGA اضافه شده است. طرح داخل FPGA در شكل (7) آمده است.
هر بلوک داخلی طرحی مطابق شکل 1 دارد.اضافه شدن بلوک پردازش سیگنال کار آرایی و راحتی استفاده ازFPGA را بالاتر میبرد.

 

 

‌5ـ1ـ تراشه‌هاي Stratix
خانواده گروه Stratix جديدترين خانواده از تراشه‌هاي قابل برنامه‌ريزي Altera هستند. اين تراشه‌ها علاوه بر بلوك‌هاي (Logic Array Block) LAB و بلوك ورودي خروجي (IOB) بلوك‌هاي ديگري به نام (Digital Signal Processing) DSP دارند كه ساختار داخلي اين بلوك در شكل (8) آمده است. هر بلوك پردازش سيگنال، حاوي دو ثبات و يك بلوك جمع، تفريق و ضرب است.[5]

 


6ـ نتيجه گیری
در اين مقاله، پياده‌سازي سخت‌افزاري فيلترها براي فشرده‌سازي تصوير بر روي تراشه FPGA بررسي شد. اين پياده‌سازي بر طراحي فيلترهاي FIR نشان‌ داده شده در شكل (1) استوار است. در اين طراحي از الگوريتم LMS در شبكه عصبي استفاده شده است كه باعث ثبات در وزن ماتريسي فيلترها و كمتر شدن خطاي خروجي مي‌گردد. براي كاهش حجم سخت‌افزاري واحدهايي به نام MAC بسيار كارآمد است. سپس FPGA هاي سري Stratix معرّفي شدند كه با داشتن بلوك‌هاي پردازش سيگنال، روند طراحي را هموارتر مي‌سازند.


منابع و مراجع

[1]-Alan V.Oppenheim,Ronald W.Schafer,John R.Buck.Discrete Time Signal Processing .Prentice Hall International Edition
[2]-Rafael C. Gonzalez,Richard E.Woods.Digital Image Processing.
Translated by:M.Khademi (ph.D), D.Jafari. Ferdowsi University of Mashhad
[3]-http://www.xillinx.com/
[4]-Mohammad Bagher Menhaj (ph.D).Neural Network.Computer
Science Department. Amir Kabir University.Tehran.Iran
[5]-Altera Data Sheet (2004)

+ نوشته شده توسط امین حاجی علیزاده در سه شنبه سوم آبان 1384 و ساعت 21:24 |
 همانگونه كه پيشتر و در طی اين سلسله مقالات ديديم آنچه كه عموما و در طبيعت به نام هوشمندی شناخته میشود خصلتی پيوندگرا (Connectionism) دارد، بدين معنی كه اطلاعات كاملا به صورت موازی و نيز توزيع شده پردازش میشوند.

   شبكههای عصبی مصنوعی(ANN: Artificial Neural Networks) درواقع از ساختار درهم و تودهای مغز پستانداران الهام گرفته شده است، كه در آن ميليونها سلول عصبی (نورون) از طريق ارتباطاتی كه با يكديگر دارند (سيناپسها)، به حل مسائل يا ذخيرهسازی اطلاعات میپردازند. اين شبكهها مجموعهای از مدلهای متفاوتند كه توسط رياضيدانان و مهندسين برای شبيهسازی بخشی از عملكرد مغز پيشنهاد شدهاند. ساختار اصلی شبكههای عصبی مصنوعی بر اساس دو جزء اصلی گرهها (نورونها) و ارتباطات وزندار(سيناپسها) میباشد(شكل 1).

    يادگيری در سيستمهای طبيعی به صورت تطبيقی اتفاق میافتد. بدين معنی كه در اثر يادگيري، در سيناپسها تغييراتی رخ میدهد. عين همين مسئله نيز در مورد شبكههای عصبی مصنوعی نيز صادق است. در اين شبكهها يادگيری از طريق مثال انجام میشود(Learning By Example). بدين معنی كه اغلب(و نه همواره) مجموعهای از ورودی و خروجیهای درست به شبكه عصبی داده میشود و شبكه عصبی با استفاده ازين مثالها، وزن(Weight) ارتباطات خود را به گونهای تغيير میدهد كه در صورت دادن ورودیهای جديد پاسخهای درستی را توليد كند. در واقع دانش شبكه عصبی در وزن ارتباطات آن ذخيره میشود.

   شبكههای عصبی از دهه 50 شناخته شده بودند اما تنها در اواسط دهه 80 بود كه الگوريتمها و روشهای مربوط به شبكههای عصبی مصنوعی به درجهای از پيشرفت رسيد كه در حل مسائل واقعی از آنها استفاده شد.

   امروزه شبكههای عصبی در كاربردهای مختلفی نظير مسائل تشخيص الگو(Pattern Recognition) كه خود شامل مسائلی مانند تشخيص خط(Character Recognition)، شناسايی گفتار(Speech Recognition)، پردازش تصوير(Image Processing) و مسائلی ازاين دست میشود و نيز مسائل دستهبندي(Classification) مانند دستهبندی(Classification Problems) متون و يا تصاوير، به كار میروند. در كنترل يا مدلسازی سيستمهايی كه ساختار داخلی ناشناخته يا بسيار پيچيدهای دارند نيز به صورت روز افزون از شبكههای عصبی مصنوعی استفاده میشود. به عنوان مثال میتوان در كنترل ورودی يك موتور از يك ANN استفاده نمود كه در اين صورت شبكه عصبی خود تابع كنترل را ياد خواهد گرفت.

   مزيت اصلی استفاده از شبكه عصبی در هريك از مسائل فوق قابليت فوقالعاده شبكه عصبی در يادگيری و نيز پايداری شبكه عصبی در مقابل اغتشاشات ناچيز وروداست. به عنوان مثال اگر از روشهای عادی برای تشخيص دست خط يك انسان استفاده كنيم ممكن است در اثر كمی لرزش دست اين روشها به تشخيص غلطی برسند در حالی كه يك شبكه عصبی كه به صورت مناسب آموزش داده شده است حتی در صورت چنين اغتشاشی نيز به پاسخ درست خواهد رسيد.

   به صورت خلاصه میتوان گفت كه شبكههای عصبی در حل سه گروه از مسائل بيشترين كاربرد را يافتهاند: مسائلی كه دارای راه حل الگوريتميك نيستند، مسائلی كه راه حل الگوريتميك بسيار پيچيدهای دارند و نيز مسائلی كه انسان در حل آنها موفقتر از ماشين عمل میكند.

   در حال حاضر تعداد بسيار زيادی از انواع مختلف شبكههای عصبی مصنوعی وجود دارند كه به صورت خلاصه عبارتند از: شبكههای پرسپترون چند لايه (Multi Layer Perceptron)، كوهونن، هاپفيلد... كه اين شبكهها نيز خود با روشهای مختلفی آموزش میبينند مانند روش پسخورد خطا (Error Back propagation).

   میتوان شبكههای عصبی را بر اساس شيوه پردازش اطلاعات در آنها، به دو گروه شبكههای Feed Forward و نيز شبكههای Recurrent (كه در آنها از فيدبك خروجی استفاده شده است) تقسيم كرد.

   نوع يادگيری در اين شبكههای نيز میتواند يك معيار برای دستهبندی آنها باشد. يادگيری در برخی ازين شبكهها با نظارت(Supervised) میباشد و در برخی ديگر به صورت متكی به خود(Self Organizing). در ادامه به شرح هر يك ازين مفاهيم خواهيم پرداخت.

ايده اصلی شبكههای عصبی

   يكی از مهمترين تفاوتهای حافظه انسان با حافظه كامپيوتر در نوع آدرس دهی اين دو نوع حافظه میباشد. در حافظه كامپيوتر اساس كار بر پايه آدرس خانههای حافظه يا آدرس اطلاعات بر روی حافظه دائم میباشد. به عنوان مثال برای دستيابی به يك تصوير يا متن خاص، بايد آدرس حافظه يا فايل مربوط به آن تصوير يا متن را داشته باشيد. اما با داشتن خود تصوير يا متن نمیتوانيد به سادگی آدرس حافظه مربوطه را بيابيد (البته به اين معنی كه اين كار با يك قدم قابل انجام نيست، وگرنه میتوانيد تصوير يا متن مورد نظر را با تمام موارد موجود در حافظه مقايسه كرده و در صورت تطبيق آدرس را بيابيد. ناگفته پيداست كه انجام چنين كاری بسيار زمان بر و پر هزينه میباشد).

   اما به سازوكار همين عمل در ذهن انسان دقت كنيد. با ديدن يك تصوير ناقص اغلب بلافاصله كامل آنرا به خاطر میآوريد يا با ديدن تصوير يك شخص سريعا نام او را میگوييد، يا با خواندن يك متن سريعا تمامی مطالب مربوط به آن را به ذهن میآوريد. در واقع ذهن انسان يك نوع حافظه آدرسدهی شده بر اساس محتواست (Content Addressable Memory). همانگونه كه از اين نام مشخص است در اين نوع حافظه، با دادن محتوای يك خانه حافظه، بلافاصله آدرس آن به عنوان خروجی داده میشود.

   حال ببينيم كه داشتن چنين حافظهای اصولا به چه كار میآيد. فرض كنيد كه حرف "A" قرار است توسط ماشين از ميان مجموعهای از حروف شناسايی شود. در حالت بسيار ساده فرض بر اين است كه شكل تمامی حروف الفبا در حافظه ماشين موجود است. بنابراين ماشين خيلی ساده با مقايسه ورودی فعلی با اشكال موجود در حافظه تشخيص میدهد كه حرف ورودی جاری "A" هست يا خير. اما همانگونه كه پيشتر گفتيم در صورتی كه الگوهای حروف موجود در حافظه بسيار زياد باشد، مقايسه ورودی با تكتك الگوهای ذخيره شده عملا بسيار زمان بر است و مقدور نيست، بنابراين نياز به حافظه آدرسدهی شده بر اساس محتوا خواهيم داشت به اين ترتيب كه اين حافظه الگوی جاری را گرفته و بلافاصله پاسخ میدهد كه آيا اين الگو در حافظه موجود است يا خير.

   اندكی دقت در مثال اخير نشان دهنده پيچيدگی مسائلی از اين دست است. تشخيص حرف "A" حتی به صورت چاپی هم توسط ماشين اساسا كار سادهای نيست. دقت كنيد به تنوع اشكال اين حرف، سايز، خميدگیها، دقت چاپگرها، .... و پيچيدگی مسئله، زمانی چند برابر میشود كه كار به تشخيص دستنويس حروف كشيده شود. حال اگر حافظه آدرسدهی شده بر اساس محتوای ما، دارای اين توانايی باشد كه حتی اگر شكل حرف "A" كمی هم دچار اعوجاج شده باشد باز هم آنرا تشخيص دهد، حل مسئله تا حدود زيادی سادهتر شده است. شبكههای عصبی دارای چنين خصلتی هستند.

حال ببينيم كه ايده اصلی عملكرد اين شبكهها چگونه است؟

   هاپفيلد (HopField) در 1982 طرح اصلی حافظهای را ارائه كرد كه دارای خصوصيات فوقالذكر باشد. اين حافظه يا شبكه عصبی دارای دو عنصر گره و يال میباشد. هر گره دارای دو وضعيت فعال و غيرفعال است(صفر يا يك) و هر يال نيز دارای يك وزن میباشد (شكل 2). يالهای با وزن مثبت بين دو گره تا گره فعال ديگری را تحريك میكنند و يالهای با وزن منفی بين دو گره، گره فعال ديگری را غير فعال میسازند.

   نحوه عملكرد شبكه بدين صورت است كه ابتدا يك گره به تصادف انتخاب میشود. اگر يك يا بيشتر از همسايههای آن گره فعال بودند جمع وزندار يالهای منتهی به آن گرهها حساب میشود. اگر اين جمع مثبت بود گره فعال میشود و در غير اين صورت گره مذكور غيرفعال باقی خواهد ماند. سپس مجددا يك گره ديگر به تصادف انتخاب شده و همين عمليات آنقدر تكرار میشود تا شبكه به يك حالت پايدار برسد. بعنوان مثال اگر شبكه شكل 2 شروع به كار كند گره پايين سمت چپ گره بالايی خود را فعال خواهد كرد و اين گره نيز به نوبه خود خواهد كوشيد تا گره بالاتر از خود را فعال كند اما گره بالايی به دليل سيگنال توقيفی (Inhibitory) ارسالی از گره بالای سمت راست تحريك نخواهد شد و اين سيكل همينطور تا رسيدن به حالت پايدار ادامه میيابد.

   نكته در اينجا است كه اين شبكه بيش از چهار حالت پايدار ندارد (شكل 3). يعنی از هر حالت ابتدايی كه شروع كنيم نهايتا شبكه به يكی از اين چهار حالت ميل خواهد كرد. تز اصلی هاپفيلد نيز در واقع همين بود كه از هر حالت ابتدايی و با هر وزنی از يالها كه شروع كنيم، شبكه در نهايت به حالت پايدار خواهد رسيد.

               

             -شکل شماره 2                                                                                                                    - شکل شماره 3

   با دقت در كل ايده اين شبكه میتوان گفت كه در واقع اين شبكه به صورت نوعی حافظه عمل میكند، حافظهای كه اين چهار الگو را در خود ذخيره كرده است. علاوه بر اين شبكه فوق يك حافظه آدرسدهی شده بر اساس محتواست. به اين معنی كه اگر از يكی ازين چهار حالت به صورت ناقص شروع به كار كنيم شبكه به سوی شبيهترين حالت ميل خواهد كرد و اين به اين معناست كه شبكه قادر به شناسايی يك الگوی ناقص است.

   شكل 4 نشان میدهد كه اين شبكه در صورتی كه از الگوی ناقص سمت چپ شروع به كار كند در نهايت به الگوی كامل سمت راست خواهد رسيد(به خاطر داريد كه هدف ما يافتن روشی بود كه ما را از شكل پر اغتشاش حرف "A" به خود آن حرف برساند).

                                          

-شکل شماره 4

+ نوشته شده توسط امین حاجی علیزاده در سه شنبه سوم آبان 1384 و ساعت 21:19 |

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

یک روش مهندسی

یک سلول عصبی ساده

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

قوانین فعال سازی

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

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

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

بعنوان مثال ، یک سلول عصبی با 3 ورودی در نظر بگیرید که آموزش یافته تا خروجی 1 را زمانی بدهد که ورودی (x1 ،x2 وx3) 111 یا 101 است و خروجی 0 را زمانی داشته باشد که ورودی 000و001 است. پس قبل از اعمال قانون فعال سازی ، جدول درستی به صورت زیر است:

X1:

0

0

0

0

1

1

1

1

X2:

0

0

1

1

0

0

1

1

X3:

0

1

0

1

0

1

0

1

OUT:

0

0

0/1

0/1

0/1

1

0/1

1

010 را بعنوان مثالی که در آن قوانین فعال سازی اعمال می شود در نظر بگیرید. این ورودی با ورودی 000 در یک عنصر و با ورودی001 در دو عنصر متفاوت است ، با 101 در سه عنصر وبا 111 در دو عنصر متفاوت است . بنابر این نزدیکترین الگو به آن 000 است که به الگوهای آموزشی با حاصل0 تعلق دارد . در نتیجه قوانین فعال سازی لازم می داند زمانی که ورودی 001 است تا سلول عصبی فعالیتی نکند . از طرف دیگر ، 011 در فاصله ای برابر بین در دسته الگو های آموزشی است که دارای خروجی های متفاوتی هستند بنابراین خروجی این الگو بدون تعریف می ماند (1/0).

با اعمال قوانین فعال سازی تمام ستون های جدول درستی زیر به دست آمده است:

X1:

0

0

0

0

1

1

1

1

X2:

0

0

1

1

0

0

1

1

X3:

0

1

0

1

0

1

0

1

OUT:

0

0

0

0/1

0/1

1

1

1

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

الگوشناسی- یک مثال

یکی از کاربردهای شبکه های عصبی تشخیص الگو است.الگوشناسی با استفاده از شبکه های عصبی که ازپیش (مانند شکل 1) تغذیه شده اند و مطابق با موضوع پرورش یافته اند قابل اجرا است.وقتی از شبکه استفاده می کنیم خودش الگو های ورودی را شناسایی می کند و سعی می کند تا خروجی متناسب با آن الگو را بدهد . توان شبکه های عصبی زمانی خودش را نشان می دهد که الگویی به عنوان ورودی به آن داده شود که از قبل خروجی مرتبط با آن را نداشته ، در یان وضعیت خروجی متناسب است با یک الگوی ورودی که داری حداقل اختلاف با الگوی داده شده است.

بعنوان مثال:

شبکه عصبی در شکل 1 برای شناسایی الگوهای حروف T وH آموزش داده شده اند.همانگونه که شکل نشان می دهد الگوهای مرتبط بترتیب تماما سیاه و تماما سفید هستند .

اگر ما مربع های سیاه را با 0 و مربع های سفید را با با 1 نمایش دهیم بنابراین جدول درستی برای سه سلول عصبی بعد از عمومیت دادن (با قانون فعال سازی ) به صورت زیر است.

X11:

0

0

0

0

1

1

1

1

X12:

0

0

1

1

0

0

1

1

X13:

0

1

0

1

0

1

0

1

OUT:

0

0

1

1

0

0

1

1

خروجی سلول بالایی

X21:

0

0

0

0

1

1

1

1

X22:

0

0

1

1

0

0

1

1

X23:

0

1

0

1

0

1

0

1

OUT:

1

0/1

1

0/1

0/1

0

0/1

0

خروجی سلول میانی

X21:

0

0

0

0

1

1

1

1

X22:

0

0

1

1

0

0

1

1

X23:

0

1

0

1

0

1

0

1

OUT:

1

0

1

1

0

0

1

0

خروجی سلول پایینی

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

در این مورد ، این کاملا واضح است که خروجی می تواند تماما سیاه باشد زمانی که الگوی ورودی تقریبا شبیه الگوی T است.

این جا هم کاملا آشکار است که خروجی کاملا سفید خواهد بود زمانی که الگوی ورودی تقریبا شبیه الگوی H است.

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

یک سلول عصبیی کمی پیچده تر

سلول عصبی قبلی کاری که کامپیوتر های متعارف انجام ندهند را انجام نمی دهد . سلول عصبی کمی پیچیده تر مدل McCulloch و Pitts (MCP)است. فرق آن با مدل قبلی این است که ورودی ها وزن دار هستند، تاثیری که هر ورودی در گرفتن تصمیم دارد بستگی به وزن یک ورودی خاص دارد.وزن یک ورودی عددی است ، زمانی که این عدد در وردی ضرب می شود ورودی وزندار را می دهد. این ورودی های وزندار سپس با هم جمع می شود و اگر مجموع آنها از ارزش آستانه ای از پیش تنظیم شده تجاوز کند سلول فعال می شود . در موارد دیگر سلول فعال نمی شود.

(شکل 2)

به بیان ریاضی ، سلول عصبی فعال می شود اگر و فقط اگر:

X1W1 + X2W2 + X3W3 + ... > T

افزایش وزن های ورودی و بوسیله ی آستانه ارزش این سلول عصبی را یک سلول منعطف و قدرتمند می کند . سلول ها MCP قابلیت سازگاری با وضعیتی خاص را بکمک تغییر وزن ها و یا آستانه ارزش، دارد. الگوریتم های گوناگونی وجود دارد که سبب سازگاری سلول عصبی می شود ، پر استفاده ترین آنها قانون دلتا( Delta )است و روش پخش اشتباه گذشته(back error propagation)است . قالبی که در شبکه های از پیش تغذیه شده وبعد از آن در شبکه های بازخوردی استقاده شده است.

معماری شبکه های عصبی

شبکه های عصبی از قبل تغذیه شده

شبکه های از قبل تغدیه شده (شکل 1) به سیگنال ها اجازه می دهند تنها از مسیر یکطرفه عبور کنند، یعنی از ورودی تا خروجی. بنابراین باز خوردی( حلقه ها) وجود ندارد به این معنی که خروجی هر لایه تاثیری بر همان لایه ندارد . این گونه سازماندهی ازپایین به بالا واز بالا به پایین هم نام برده می شوند.

شبکه های عصبی بازخوردی

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

Figure 4.1 An example of a simple feedforward network

Figure 4.2 An example of a complicated network

2 نوشته شده در  دوشنبه بيست و پنجم مهر 1384ساعت 12:18  توسط روزبه ابرازی |  یک نظر
NEURAL NETWORKS 1

شبکه های عصبی(neural networks)

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

http://www.doc.ic.ac.uk/~nd/surprise_96/journal/vol4/cs11/report.html


چکیده مطلب:

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

 مقدمه

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

یک شبکه عصبی مصنوعی (Artificial Neural Network (ANN))  ایده ای است برای پردازش اطلاعات که از سیستم عصبی زیستی الهام گرفته شده و مانند مغز به پردازش اطلاعات می پردازد . عنصر کلیدی این ایده ، ساختار جدید سیستم پردازش اطلاعات است. این سیستم از شمار زیادی عناصر پردازشی فوق العاده بهم پیوسته تشکیل شده(neurons)که برای حل یک مسأله با هم هماهنگ عمل می کند.ANN ها ،نظیر انسانها ، با مثال یاد می گیرند . یک ANN برای انجام وظیفهای مشخص  ، مانند شناسایی الگو ها و دسته بندی اطلاعات ، در طول یک پروسه یاد گیری ، تنظیم می شود . در سیستم های زیستی  یاد گیری  با تنظیماتی در اتصالات سیناپسی که بین اعصاب قرار دارد همراه است . این  روش ANN ها هم می باشد.

 

سابقه تاریخی

به نظر می آید شبیه سازی های شبکه عصبی  یکی از پیشرفت های اخیر باشد . اگرچه این  موضوع پیش از ظهور  کامپیوتر ها بنیان گذاری شده  و  حداقل یک مانع بزرگ تاریخی  و  چندین دوره مختلف را پشت سر گذاشته است.

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

اولین سلول عصبی مصنوعی در سال 1943 بوسیله یک neurophysiologist به نلمWarren McCulloch ویک منطق دان به نام Walter Pits ساخته شد . اما محدودیتهای تکنولوژی  در آن زمان اجازه کار بیشتر به آنها نداد.

چرا از شبکه های عصبی استفاده می کنیم

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

مزیتهای دیگر آن شامل موارد زیر می شود :

  1. یادگیری انطباق پذیر: قابلیت یاد گیری نحوه انجام وظایف بر پایه اطلاعات داده شده برای تمرین وتجربه های مقدماتی .
  2. سازماندهی توسط خود: یک ANN می تواند سازماندهی یا ارائه اش را ، برای اطلا عاتی  که در طول دوره یادگیری در یافت می کند، خودش ایجاد کند.
  3. عملکرد بهنگام(Real time ) : محاسبات  ANN  می تواند بصورت موازی انجام شود، و سخت افزارهای مخصوصی طراحی و  ساخته شده است که می تواند از این قابلیت استفاده کند.
  4. تحمل اشتباه بدون ایجاد وقفه در هنگام کد گذاری اطلاعات : خرابی جزئی یک شبکه منجر به تنزل کارایی متناظر با آن می شود اگر چه تعدادی از قابلیت های شبکه ممکن است حتی با خسارت بزرگی هم باقی بماند.

شبکه های عصبی در مقابل کامپیوتر های معمولی

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

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

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

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

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

انسلن  و سلول های عصبی مصنوعی- در جستجوی شباهت ها

چگونه مغز انسان می آموزد ؟

مسائل زیادی راجع به این که مغز چگونه خود را برای پردازش اطلاعات آموزش می دهد، نا شناخته باقی مانده است بنابر این تئوری های فراوانی وجود دارد. در مغز انسان یک سلول سیگنال ها را از دیگران  از طریق  یک گروه از ساختار های ریز به نام dendrites   جمع آوری می کند سلول عصبی جهش سریع فعالیت  الکتریکی را در طول یک پایه بلند و نازک که axon نامیده  میشود ، می فرستد که به داخل هزاران شاخه گسترش می یابد و کشیده می شود . در انتهای هر شاخه ، ساختاری که synapse نامیده می شود این فعالیت را ازaxon به اثرات الکتریکی تبدیل می کند که فعالیت یکaxon به صورت  اثرات الکتریکی  فعال کننده  یا غیر فعال کننده تبدیل  می شود که این کار باعث برانگیخته شدن  یا آرام شدن سلول های عصبی مرتبط  می شود. وقتی یک سلول عصبی پیام های فعال کننده را در یافت می کند، که بطور قانع کننده و وسیعی با پیام های ورودی غیر فعال کننده اش مقایسه شده باشد ،در این زمان این سلول نیز یک جهش از فعالیت الکتریکی را به داخل axon خودش می فرستد.

               The synapse

یاد گیر ی با تغییر تاثیر synapses اتفاق می افتد در نتیجه تاثیر یک سلول بر دیگران تغییر میکند.

 Components of a neuron                

از سلول های عصبی انسانی تا سلول های  عصبی مصنوعی

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

               

+ نوشته شده توسط امین حاجی علیزاده در سه شنبه سوم آبان 1384 و ساعت 21:13 |

همگام با رشد شبکه های کامپیوتری، خطرات و تهدیدات امنیتی در برابر شبکه ها نیز افزایش یافته است. هرچه خدمات، مزایا و استفاده از شبکه ها فراگیرتر می شود مباحث امنیتی این سیستم ها نیز اهمیت بیشتری می یابد. از جمله راه کارهایی که در راستای امن سازی سیستم ها و شبکه های کامپیوتری به وجود آمده است سیستم های تشخیص تهاجم است. سیستم های تشخیص ناهنجاری که در کنار سیستم های تشخیص سوء استفاده مطرح است نوعی خاص از این سیستم ها است که هدفش شناسایی حملات جدید و ناشناخته با مطالعه رفتارهای عادی و طبیعی است و امروزه تحقیقات وسیعی پیرامون آن در حال انجام است. در طراحی این سیستم ها عموماً از تکنیک های مطرح شده در شاخه هوش مصنوعی مانند شبکه های عصبی، الگوریتم های ژنتیکی، داده کاوی و سیستم های فازی استفاده می شود. هدف عمده در این تحقیقات طراحی سیستمی است که خطای کم و تشخیصی دقیق داشته باشد. محور اصلی تشخیص در این سیستم ها تحلیل گر آنها است. به نظر می رسد اگر ورودی تحلیل گر این سیستم ها متغیرهای زبانی باشد و تشخیص نهایی با استنتاج فازی صورت گیرد نتایج تحلیل بهتر شده، تشخیص دقیق تری صورت پذیرد. در این رویکرد می توان علاوه بر کاهش خطا اطلاعات مفید و قابل درکی نیز در قالب قوانین فازی به مسئوول امنیتی سیستم ارائه داد. هدف این پایان نامه طراحی و ارزیابی یک سیستم تشخیص تهاجم است که موتور تحلیل آن سیستمی فازی ژنتیکی باشد. در واقع در سیستم پیشنهادی، طراحی تحلیل گر آن که سیستمی فازی است به کمک الگوریتم های ژنتیکی صورت می گیرد. الگوریتم های ژنتیکی با قابلیت جستجوی فراگیر و انعطالف پذیر خود می توانند به منظور یادگیری بهینه پایگاه قوانین سیستم فازی به کار روند. تمركز تحقيقاتي اين پايان‌ نامه بر استفاده بهينه از اين الگوريتم ها در طراحي سیستمی فازی مذكور است كه با مناسب سازي هر يك از مراحل الگوريتم براي كاربرد مورد نظر حاصل مي‌ شود. تحليلگر فازي سيستم در كنار واسط ورودي كه معيارهاي مناسب و داده‌هاي لازم را در اختيار آن قرار دهد سيستم تشخيص نهايي را تشكيل مي‌دهد. منبع داده‌اي كه در سيستم پيشنهادي مورد استفاده و بررسي قرار گرفته است مبتني بر اتصالات شبكه مي‌باشد.

 


كلمات كليدي :
          سیستم تشخیص تهاجم- تشخیص ناهنجاری- تشخیص سوء استفاده- سیستم فازی- الگوریتم ژنتیک- شبکه عصبی
+ نوشته شده توسط امین حاجی علیزاده در سه شنبه سوم آبان 1384 و ساعت 21:10 |
از بدو مطرح شدن هوش مصنوعي به عنوان يک Dicipline در علوم رايانه، دو طرز تفکر در تحقق سيستم هاي هوشمند مطرح بوده است، شايد بتوان آن دو را در پردازش نمادين و پردازش عددي تعريف نمود. براي درک پردازش نمادين مي توانيم به يک مثال اشاره داشته باشيم. فرض کنيد از يک نوازنده پيانو سوال مي کنيم که چگونه پيانو مي نوازي؟! اين نوازنده با استفاده از يک سري بيانات و شايد حرکات، روش کار خود را به ما نشان مي دهد و به احتمال زياد شيوه عمل او را هم درک مي کنيم و اگر کمي جديت به خرج دهيم شايد حتي بتوانيم چند نت را هم به گونهء جميع تکرار نماييم. حال فرض کنيد، مي خواهيم اين رفتار را با استفاده از يک فرمول رياضي( پردازش عددي) مدل کرده و مثلا با استفاده از يک ربات تکرار کنيم. سوال اين خواهد بود که آيا مدل رياضي که منحصر به روابط بين يک سري کيفيتهاي رقمي است، قادر به انجام اين عمل خواهد بود؟ فکر مي کنم جواب شما منفي باشد. در ادامه به يک وضعيت ديگر اشاره مي کنم. فرض کنيد مي خواهيد از يک خيابان که ماشين ها با سرعت عبور مي کنند، بگذريد. آيا روش تصميم گيري شما در رابطه با عبور کردن بر مبناي پردازش يک سري اندازه گيري انجام شده است؟ براي مثال آيا سرعت ماشين را تخمين زده و با در نظر گرفتن عرض خيابان، سرعت خود را محاسبه مي کنيد؟ به احتمال زياد در اين صورت مطمئناً شانس رسيدن شما به آن طرف خيابان بسيار پايين مي باشد و يا زمان بسيار زيادي طول خواهد کشيد که تصميم به عبور از خيابان را به مرحله اجرا در آوريد. در اين گونه شرايط ، روش برخورد ما به اين صورت خواهد بود که: " به نظر مي رسد ماشين آهسته حرکت مي کند؛ به آن طرف خيابان خواهم رسيد" در اين نوع پردازش انسان مواجه با تعداد زيادي نماد symbols مي باشد و با استفاده از اين نمادها براي تصميم گيري اقدام مي کند. اين نوع تصميم گيريها به طور واضح در رفتار آدمي مشاهده مي شود و طبيعي است که پردازش نمادين از جايگاهي ويژه در علم هوش مصنوعي برخوردار است. در کنار پردازش نمادين در انسان مي دانيم که مغز انسان از يک مجموع منسجم سلول هاي عصبي تشکيل شده است و مدل هاي ارائه شده براي اين سيستم عصبي بر مبناي پردازش عددي عمل مي کند. چگونگي عمل سيستم طبيعي عصبي به طور واضح براي انسان مشخص نشده است و از آنجا که مدل هاي ارائه شده ، از قابليتهاي بسيار بالايي برخوردار هستند و در کاربردهاي زيادي از خود کارآيي خوبي ارائه کرده اند، به نظر مي رسد از واقعيت امر زياد دور نباشند. بنا براين، شايد بتوان گفت، انسان به طور کلي در سطح بالاي تصميم گيري از پردازش نمادين استفاده مي کند و در سطوح حسی و واکنشهای عصبی خود يک نوع پردازش عددي را به کار مي گيرد. بنابراين، رفتار هوشمندانه آدمي ناشي از يک روش نمادين تفکر در کنار محاسبات عصبي مغز مي باشد. همانگونه که مطرح شد، اين دو محور در هوش انسان از بدو پيدايش هوش مصنوعي، به صورت دو ديدگاه معرفي شده اند. از يک ديد، هدف ساختن مغز مصنوعي(شبکه هاي عصبي مصنوعي) است که در صورت وجود اين سخت افزار مي توان توقع داشت ماشيني که به اين وسيله مجهز شود، رفتار هوشمندانه از خود نشان دهد. از ديدگاه دوم، هدف، مدل سازي روش تفکر انسان است که با استفاده از آن انسان تصميم گيريهاي هوشمندانه مي کند. در دهه هاي 50 و 60 محور اول به عنوان محور اصلي در مخلوقات هوش مصنوعي مطرح بوده است ولي در دهه 70، پردازش نمادين به عنوان فهم روش تفکر در طراحي سيستم هاي هوشمندان مطرح شد. خوشبختانه، در ده سال اخير محققان به اين نتيجه رسيده اند که براي ساختن يک سيستم هوشمند که بتواند در حوزه هاي (Domains) مختلف عمل کند، و با يک مساله پيچيده را حل کند، اعتماد کردن به يک روش(يا بينش) کافي نخواهد بود و از اينرو فلسفه هوش مصنوعي ترکيبي (Hybrid Artificial Intelligence) مطرح شده است. به طور کلي سه روش ترکيب تکنيکهاي هوش مصنوعي در جهت ساخت يک سيستم هوشمند ارائه شده است که در ذيل به اختصار به آنها مي پردازيم. در روش اول از يک تکنيک خاص جهت اجراي يک function در يک تکنيک ديگر هوش مصنوعي استفاده مي کنيم. براي مثال در طراحي يک سيستم کنترلي فازي چندين بلوک وجود دارد که هر کدام کار مشخصي را انجام مي دهند. يکي از اين بلوکها جهت انجام Fuzzification طراحي مي شود. در يک سيستم ترکيبي مي توان از شبکه هاي عصبي در انجام اين کار استفاده نمود. البته در اينجا در مورد مزايا يا معايب اين ترکيب سخني گفته نخواهد شد. در يک مثال ديگر مي توان به کاربرد روشهاي ژنتيکي در امر يادگيري شبکه هاي عصبي اشاره نمود. در روش دوم جهت ساخت يک سيستم پيچيده، آن سيستم را تجزيه نموده( به زير سيستم هاي کوچکتر تقسيم نموده) و بعد از آن هر زير سيستم را با يک روش مناسب هوشمند پياده سازي مي کنيم. براي مثال جهت کنترل يک فرآيند پيچيده صنعتي از شبکه هاي عصبي جهت پيشگويي و مدل سازي يک سري از پارامترهاي کليدي استفاده مي شود و نتايج به دست آمده جهت تصميم گيريهاي کلي به يک سيستم خبره داده مي شود. سيستم خبره در اصل حکم يک مدير پروسه متخصص را دارد که با استفاده از پارامترهاي توليد شده در سطح پايين تر تصميم گيري مي کند. بسياري از مسائل پيچيده از اين طبيعت برخوردار هستند و شکستن آن به مسائل کوچکتر و به کارگيري روش مناسب براي حل هر کدام به صورت مجزا و در نهايت ادغام کردن نتايج به دست آمده، به حل درست مساله اصلي کمک خواهد نمود. روش آخر استفاده از يک روش هوشمند در پياده سازي يک روش ديگر مي باشد. براي مثال مي توان به پياده سازي يک سيستم خبره با استفاده از شبکه هاي عصبي اشاره نمود. در اينجا هر نرون در شبکه عصبي يک قانون در پايگاه دانش مي باشد و با استفاده از محاسبات عصبي روش استنتاج را پياده مي کنيم. مثال ديگر به کارگيري گرامرها در تحليل و نمايش دانش آموخته شده در شبکه هاي عصبي مي باشد. البته توجه به اين نکته لازم مي باشد که يک سيستم ترکيبي هوشمند نبايد الزا ما از روشهاي هوشمند در پياده سازي استفاده کند. در پياده سازي يک سيستم شايد نياز به بکارگيري روشهاي آماري، رياضي و تحليلي... نيز وجود داشته باشد.
+ نوشته شده توسط امین حاجی علیزاده در سه شنبه سوم آبان 1384 و ساعت 21:2 |