اطلاعیه

Collapse
No announcement yet.

کلیات شبکهآ‌های عصب

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    کلیات شبکهآ‌های عصب

    عملیات شبکهآ‌های عصبی
    تا اینجا تمام توجه ما معطوف ساختار درونی یک نرون مصنوعی یا المان پردازشی بود. اما بخش مهم دیگری در مراحل طراحی یک شبکه عصبی نیز وجود دارد. در واقع هنر یک طراح شبکهآ‌های عصبی میآ‌تواند در چگونگی ترکیب نرونآ‌ها در یک شبکه (neuran Clustering)، متجلی شود. علوم بیولوژی نشان دادهآ‌اند که کلاسترینگ نرونآ‌هاشبکهآ‌های عصبی را میآ‌توان با اغماض زیاد، مدلآ‌های الکترونیکی از ساختار عصبی مغز انسان نامید. مکانیسم فراگیری و آموزش مغز اساساً بر تجربه استوار است. مدلآ‌های الکترونیکی شبکهآ‌های عصبی طبیعی نیز بر اساس همین الگو بنا شدهآ‌اند و روش برخورد چنین مدلآ‌هایی با مسائل، با روشآ‌های محاسباتی که بهآ‌طور معمول توسط سیستمآ‌های کامپیوتری در پیش گرفته شدهآ‌اند، تفاوت دارد. میآ‌دانیم که حتی سادهآ‌ترین مغزآ‌های جانوری هم قادر به حل مسائلی هستند که اگر نگوییم که کامپیوترهای امروزی از حل آنها عاجز هستند، حداقل در حل آنها دچار مشکل میآ‌شوند. به عنوان مثال، مسائل مختلف شناسایی الگو، نمونهآ‌ای از مواردی هستند که روشآ‌های معمول محاسباتی برای حل آنها به نتیجه مطلوب نمیآ‌رسند. درحالیآ‌که مغز سادهآ‌ترین جانوران بهآ‌راحتی از عهده چنین مسائلی بر میآ‌آید. تصور عموم کارشناسان IT بر آن است که مدلآ‌های جدید محاسباتی که بر اساس شبکهآ‌های عصبی بنا میآ‌شوند، جهش بعدی صنعت IT را شکل میآ‌دهند. تحقیقات در این زمینه نشان داده است که مغز، اطلاعات را همانند الگوآ‌ها (pattern) ذخیره میآ‌کند. فرآیند ذخیرهآ‌سازی اطلاعات بهآ‌صورت الگو و تجزیه و تحلیل آن الگوآ‌، اساس روش نوین محاسباتی را تشکیل میآ‌دهند. این حوزه از دانش محاسباتی (computation) به هیچ وجه از روشآ‌های برنامهآ‌نویسی سنتی استفاده نمیآ‌کند و بهآ‌جای آن از شبکهآ‌های بزرگی که بهآ‌صورت موازی آرایش شدهآ‌اند و تعلیم یافتهآ‌اند، بهره میآ‌جوید. در ادامه این نوشته به این واژگان که در گرایش شبکهآ‌های عصبی، معانی ویژهآ‌ای دارند، بیشتر خواهیم پرداخت


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

    روش کار نرونآ‌ها

    (Neural Networks)

    در شکل یک، نمای ساده شدهآ‌ای از ساختار یک نرون بیولوژیک نمایش داده شده است. بهآ‌طور خلاصه، یک نرون بیولوژیک، پس از دریافت سیگنالآ‌های ورودی (بهآ‌ شکل یک پالس الکتریکی) از سلولآ‌های دیگر، آن سیگنالآ‌ها را با یکدیگر ترکیب کرده و پس از انجام یک عمل (operation) دیگر بر روی سیگنال ترکیبی، آن را بهآ‌صورت خروجی ظاهر میآ‌سازد.
    همانآ‌طور که در تصویر مشاهده میآ‌کنید، نرونآ‌ها از چهار بخش اصلی ساخته شدهآ‌اند. دندریتآ‌ها (Dendrite)، سوما (Soma)، اکسان (Axon) و بالاخره، سیناپس (synapse) دندریتآ‌ها، همان اجزایی هستند که بهآ‌شکل رشتهآ‌های طویل از مرکز سلول به اطراف پراکنده میآ‌شوند. دندریتآ‌ها نقش کانالآ‌های ارتباطی را برای انتقالآ‌دادن سیگنالآ‌های الکتریکی به مرکز سلول بر عهده دارند. در انتهای دندریتآ‌ها، ساختار بیولوژیکی ویژهآ‌ای بهآ‌نام سیناپس واقع شده است که نقش دروازهآ‌های اتصالی کانالآ‌های ارتباطی را ایفا میآ‌کند. در واقع سیگنالآ‌های گوناگون از طریق سیناپسآ‌ها و دندریتآ‌ها به مرکز سلول منتقل میآ‌شوند و در آنجا با یکدیگر ترکیب میآ‌شوند. عمل ترکیب که به آن اشاره کردیم، میآ‌تواند یک عمل جمع جبری ساده باشد. اصولاً اگر چنین نیز نباشد، در مدلآ‌سازی ریاضی میآ‌توان آنرا یک عمل جمع معمولی در نظر گرفت که پس از آن تابع ویژهآ‌ای بر روی سیگنال اثر داده میآ‌شود و خروجی به شکل سیگنال الکتریکی متفاوتی از طریق اکسان (و سیناپس آن) به سلولآ‌های دیگر انتقال داده میآ‌شود.
    البته تحقیقات جدید نمایانگر این واقعیت هستند که نرونآ‌های بیولوژیک بسیار پیچیدهآ‌تر از مدل آ‌سادهآ‌ای هستند که در بالا تشریح شد. اما همین مدل ساده میآ‌تواند زیربنای مستحکمی برای دانش شبکهآ‌های عصبی مصنوعی (Artificial Neural Network = ANN) تلقی گردد و متخصصان گرایش شبکهآ‌های عصبی یا هوش مصنوعی میآ‌توانند با پیگیری کارهای دانشمندان علوم زیستآ‌شناسی، به بنیانآ‌گذاری ساختارآ‌های مناسبآ‌تری در آینده دست بزنند.

    مدل ریاضی
    در متون فنی برای نمایش مدل سادهآ‌ای که در بالاآ‌ تشریح گردید، بهآ‌طور معمول از شکلی مشابه شکل 2 استفاده میآ‌شود. در این شکل کلاسیک، از علامت p برای نشان دادن یک سیگنال ورودی استفاده میآ‌شود. در واقع در این مدل، یک سیگنال ورودی پس از تقویت (یا تضعیف) شدن به اندازه پارامتر w، بهآ‌صورت یک سیگنال الکتریکی با اندازه pw وارد نرون میآ‌شود. بهآ‌جهات سادهآ‌سازی مدل ریاضی، فرض میآ‌شود که در هسته سلول عصبی، سیگنال ورودی با سیگنال دیگری به اندازه b جمع میآ‌گردد. در واقع سیگنال b خود به معنی آن است که سیگنالی به اندازه واحد در پارامتری مانند b ضرب (تقویت یا تضعیف) میآ‌شود. مجموع حاصل، یعنی سیگنالی به اندازه pw + b، قبل از خارج شدن از سلول تحت عمل یا فرآیند دیگری واقع میآ‌شود که در اصطلاح فنی به آن تابع انتقال (Transfer Function) میآ‌گویند. این موضوع در شکل بهآ‌وسیله جعبهآ‌ای نمایش داده شده است که روی آن علامت f قرار داده شده است. ورودی این جعبه همان سیگنال pw + b است و خروجی آن یا همان خروجی سلول، با علامت a نشانه گذاری شده است. در ریاضی، بخش آخر مدلآ‌سازی توسط رابطه (a = f(pw + b نمایش داده میآ‌شود. پارامتر w یا همان ضریبی که سیگنال ورودی p در آن ضرب میآ‌شود، در اصطلاح ریاضی به نام پارامتر وزن یا weight نیز گفته میآ‌شود.

    زمانیآ‌که از کنار هم قرار دادن تعداد بسیار زیادی از سلولآ‌های فوق یک شبکه عصبی بزرگ ساخته شود، شبکهآ‌ای در دست خواهیم داشت که رفتار آن علاوه بر تابع خروجی f، کاملاً به مقادیر w و b وابسته خواهد بود. در چنین شبکه بزرگی، تعداد بسیار زیادی از پارامترهای w و b باید توسط طراح شبکه مقداردهی شوند. این پروسه از کار، در اصطلاح دانش شبکهآ‌های عصبی، به فرآیند یادگیری معروف است. در واقع در یک آزمایش واقعی، پس از آنآ‌که سیگنالآ‌های ورودی چنین شبکهآ‌ بزرگی اتصال داده شدند، طراح شبکه با اندازهآ‌گیری خروجی و با انتخاب پارامترهایw و b بهآ‌گونهآ‌ای که خروجی مطلوب بهآ‌دست آید، شبکه را <آموزش> میآ‌دهد. به این ترتیب پس از آنکه چنین شبکه به ازای مجموعهآ‌ای از ورودیآ‌ها برای ساختن خروجیآ‌های مطلوب <آموزش> دید، میآ‌توان از آن برای حل مسائلی که از ترکیب متفاوتی از ورودیآ‌ها ایجاد میآ‌شوند، بهره برد.
    تابع f میآ‌تواند بر حسب کاربردهای گوناگون بهآ‌آ‌طور ریاضی، به شکل آ‌های متفاوتی انتخاب شود. در برخی از کاربردها، پاسخ مسائل از نوع دودویی است. مثلاً مسأله بهآ‌گونهآ‌ای است که خروجی شبکه عصبی باید چیزی مانند <سیاه> یا <سفید> (یا <آری> یا <نه> باشد. در واقع چنین مسائلی نیاز به آن دارند که ورودیآ‌های دنیای واقعی به مقادیر گسسته مانند مثال فوق تبدیل شوند. حتی میآ‌توان حالاتی را در نظر گرفت که خروجی دودویی نباشد، اما همچنان گسسته باشد. به عنوان مثال، شبکهآ‌ای را در نظر بگیرید که خروجی آن باید یکی از حروف الفبا، مثلاً از بین کاراکترهای اسکی (یا حتی یکی از پنجاه هزار کلمه متداول زبان انگلیسی) باشد. در چنین کاربردهایی، روش حل مسئله نمیآ‌تواند صرفاً بر جمع جبری سیگنالآ‌های ورودی تکیه نماید. در این کاربردها، ویژگیآ‌های خواسته شده فوق، در تابع خروجی یا تابع انتقال f گنجانیده میآ‌شوند. مثلاً اگر قرار باشد خروجی فقط یکی از مقادیر صفر یا یک را شامل شود، در این صورت میآ‌توان تابع خروجی شبکه عصبی را به آ‌شکل بخش a شکل شماره 3 انتخاب کرد. در این حالت، خروجی چنین شبکهآ‌ای فقط میآ‌تواند بر حسب ورودیآ‌های متفاوت، مقدار یک یا صفر باشد.

    در گروه دیگری از مسائلی که حل آنآ‌ها به شبکهآ‌های عصبی واگذار میآ‌شود، خروجی شبکه عصبی الزاماً بین مقادیر معلوم و شناخته شدهآ‌ واقع نمیآ‌شود. مسائلی از نوع شناسایی الگوآ‌های تصویری، نمونهآ‌ای از چنین مواردی محسوب میآ‌شوند. شبکهآ‌های عصبی در این موارد، باید بهآ‌گونهآ‌ای باشند که قابلیت تولید مجموعه نامتناهی از پاسخآ‌ها را داشته باشند. رفتار حرکتی یک روبات نمونهآ‌ای از <هوشی> است که چنین شبکهآ‌های عصبی میآ‌توانند فراهم آورند. اما در چنین شبکهآ‌هایی هم لازم خواهد بود که خروجی بین مقادیر مشخصی محدود شده باشد (موضوع محدود شدن خروجی بین دو مقدار حدی ماکزیمم و مینیمم را در اینجا با موضوع قبلی اشتباه نگیرید. در این مورد خروجی مسأله اساساً گسسته نیست و حتی در بین چنین مقادیر حدی، میآ‌توان به تعداد نامتناهی خروجی دست یافت). اهمیت این موضوع زمانی آشکار میآ‌شود که از مثال واقعی کمک گرفته شود. فرض کنید قراراست از شبکه عصبی برای کنترل حرکت بازوی یک روبات استفاده شود. در صورتیآ‌که خروجی یک شبکه عصبی برای کنترل نیروی حرکتی بهآ‌کار گرفته شود، طبیعی خواهد بود که اگر خروجی شبکه محدود نشده باشد، ممکن است بازوی روبات بر اثر حرکت بسیار سریع، به خود و یا محیط اطراف آسیب برساند. در چنین مواردی ممکن است از تابع انتقال بهآ‌شکل بخش b شکل شماره 3 استفاده شود.
    قبل از آنکه به بخش دیگری از موضوع شبکهآ‌های عصبی بپردازیم، باید یک نکته را یادآوری کنیم که همانآ‌طور که در ابتدای این بخش تشریح شد، سلولآ‌های عصبی دارای ورودیآ‌های متعددی هستند و خروجی آنها نیز الزاماً محدود به یک خروجی نیست. بر این اساس زمانی که بخواهیم از مدلآ‌سازی ریاضی برای مدل کردن یک سلول عصبی استفاده کنیم، بهآ‌جای آنآ‌که همانند شکل 2 از یک ورودی p و یک خروجی a استفاده کنیم، از یک بردار p و یک بردار a سخن میآ‌گوییم. بدین ترتیب بدون آنکه نیاز به اعمال تغییری در این تصویر داشته باشیم، میآ‌توانیم از آن برای مدلآ‌سازی سلولی با n ورودی (p1,p2,p3 . . . pn) و به همین ترتیب m خروجی (a1,a2,am) استفاده کنیم. توجه داشته باشید که در این صورت، تعداد عناصر b و w نیز به تناسب افزایش میآ‌یابند و هر یک به n عدد افزایش میآ‌یابند

    #2
    پاسخ : کلیات شبکهآ‌های عصب


    پیادهآ‌سازیآ‌های الکترونیکی نرونآ‌های مصنوعی
    نرمآ‌افزارهایی که در آنآ‌ها از شبکهآ‌های عصبی استفاده شده است، نرونآ‌های شبکه را المان پردازنده (Processing element) میآ‌نامند. بهآ‌طور معمول در محصولات نرمآ‌افزاری، المانآ‌های پردازنده قابلیت بسیار بیشتری از نمونه سادهآ‌شدهآ‌ای که در بخشآ‌های پیشین تشریح کردیم، دارند. در شکل شماره 4، نمایی با جزئیات بیشتر از یک نرون مصنوعی را نشان میآ‌دهد.
    در این مدل، ورودیآ‌ها در نخستین گام، در ضریب وزنی (weighting factor) متناظر خود ضرب میآ‌شوند. در مرحله بعد، ورودیآ‌هایی که تغییر مقیاس دادهآ‌اند وارد واحدی میآ‌شوند که در آن سیگنالآ‌های ورودی با هم ترکیب میآ‌شوند. بهآ‌طور معمول عمل ترکیب در این واحد همان عمل جمع جبری است، اما در اصول، میآ‌توان در این واحد، ورودیآ‌ها را به روشآ‌های دیگری علاوه بر عمل جمع معمولی نیز با یکدیگر ترکیب کرد. مثلاً میآ‌توان بهآ‌جای عمل جمع، از عمل متوسط گیری، انتخاب بزرگترین، انتخاب کوچکآ‌ترین، عمل OR یاآ‌ AND منطقی هم استفاده کرد. در واقع هدف نهایی در این واحد آن است که از تعداد n ورودی، یک سیگنال خروجی برای ارائه به بخشآ‌های بعدی فرایند، بهآ‌دست آید. انتخاب نوع <عمل> در این واحد، موضوع دقیقی است که کاملاً به کاربرد مسأله وابسته است

    بهآ‌طور معمول در نرمآ‌افزارهای تجاری، امکان انتخاب و حتی ساختن توابع گوناگون برای این واحد، از طرف نرمآ‌افزار به کاربران داده میآ‌شود. حتی میآ‌توان کاربردهایی یافت که در آنها، عمل ترکیب در این واحد، وابسته به زمان باشد و در زمانآ‌های گوناگون پردازش مسأله، عملیات مختلفی برای ترکیب کردن ورودیآ‌ها بهآ‌کار برده آ‌شوند.
    در هر صورت، پس از آنکه ورودیآ‌ها با یکدیگر ترکیب شدند، سیگنال حاصل به واحد دیگری که در آن تابع انتقال یا Transfer Function به سیگنال اعمال میآ‌شود، هدایت میآ‌گردد. خروجی این بخش، سیگنالآ‌های حقیقی خواهند بود. بدین ترتیب جعبهآ‌ای در دست خواهیم داشت که تعداد n عدد سیگنال ورودی را به m عدد سیگنال خروجی تبدیل میآ‌کند. در عمل توابع انتقالی که در بخش انتهایی نمودار شکل 4 بهآ‌کار برده میآ‌شوند، معمولاً یکی از توابع سینوسی، تانژانت هذلولی، sigmoid و نظایر اینآ‌ها است. در تصویر شماره 5، نمونهآ‌ای از یک تابع انتقال از نوع sigmoid نمایش داده شده است. همانطور که در این شکل مشاهده میآ‌کنید، این تابع انتقال، سیگنال خروجی واحد ترکیب را به سیگنال خروجی تبدیل میآ‌کند که مقدار (یا اندازه آن) بین صفر و یک میآ‌تواند باشد.
    در عمل، سیگنالِ خروجی یک المان پردازنده میآ‌تواند برحسب نوع کاربرد، به المانآ‌های پردازشی دیگر و یا به اتصالات دیگر خارج از شبکه عصبی هدایت شود. در واقع تمامی شبکهآ‌های عصبی بر اساس ساختار المانآ‌های پردازشی فوق کار میآ‌کنند. در قسمت بعدی این مقاله به تشریح عملیات در شبکهآ‌های عصبی و آموزش این شبکهآ‌ها میآ‌پردازیم


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

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

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

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

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

    در مواردی، نرون مشخصی از شبکه عصبی تمایل دارد که سیگنال دیگر نرونآ‌های لایه خود را نادیده بگیرد. چنین حالتی بهآ‌طور معمول در لایه خروجی ایجاد میآ‌شود. به عنوان مثال، در کاربردهای تشخیص متن (OCR)، فرض کنید که احتمال آنکه کاراکتر مورد شناسایی، حرف P باشد برابر با 85 درصد تعیین شده است و به همین ترتیب احتمال آنکه کاراکتر مورد نظر حرف F باشد، 65آ‌ درصد تخمین زده است. در این وضعیت، سیستم باید کاراکتری را برگزیند که دارای درصد احتمال بزرگآ‌تر است. در نتیجه در این شبکه عصبی، نرونآ‌هایی که خروجی F را تجویز میآ‌کنند، باید نادیده گرفته آ‌شوند یا inhibit شوند. به چنین فرایندی، lateral inhibition گفته میآ‌شود.
    نوع دیگری از ارتباط بین نرونی در شبکهآ‌های عصبی به ارتباط بازخورد یا feedback معروف است. در این نوع از ارتباطات، خروجی یک لایه نرونی به لایه قبلی (یا به لایهآ‌ای که چند مرحله پایینتر است) اتصال داده میآ‌شود. در شکل 2 نمونهآ‌ای از یک شبکه عصبی نمایش داده شده که در آن از ارتباط بازخوردی استفاده شده است. در نرمآ‌افزارهای پیشرفته شبکهآ‌های عصبی، کاربر و طراح شبکه عصبی میآ‌تواند نوع ارتباطات بین نرونآ‌ها و لایهآ‌های آنها را تعیین کند.

    آموزش شبکهآ‌های عصبی


    تا اینجا از ساختار شبکهآ‌های عصبی صحبت کردیم. گفتیم که شبکهآ‌های عصبی میآ‌توانند بر اساس طراحی خود سیگنالآ‌های ورودی را پردازش کنند و به سیگنالآ‌های خروجی مورد نظر تبدیل نمایند. به طور معمول، پس از آنکه یک شبکه عصبی طراحی و پیادهآ‌سازی شد، باید پارامترهای w و b (که قبلاً معرفی کردیم) به ازای مجموعهآ‌هایی از سیگنالآ‌های ورودی، بهآ‌گونهآ‌ای تنظیم شوند که سیگنالآ‌های خروجی شبکه خروجی مطلوب را تشکیل دهند. چنین فرایندی را آموزش دیدن شبکه عصبی میآ‌نامند (در نخستین مرحله آموزش، مقادیر w و b بهآ‌طور تصادفی انتخاب میآ‌شوند. زیرا تا این پارامترها مقدار نداشته باشند، شبکه عصبی قابل استفاده نخواهد بود) در حین آموزش دیدن شبکه عصبی (یعنی به تدریج همزمان با افزایش دفعاتی که مقادیر پارامترها برای رسیدن به خروجی مطلوبآ‌تر، تنظیم میآ‌شوند) مقدار پارامترآ‌آ‌ها به مقدار حقیقی و نهایی خود نزدیکآ‌تر میآ‌شوند.
    بهآ‌طور کلی دو روش برای آموزش دادن شبکهآ‌های عصبی وجود دارد. روش supervised و روش unsupervised. روش نخست، شامل مراحلی است که در بخش قبل، بهآ‌طور مختصر تشریح شد. اما در روش unsupervised، شبکه عصبی باید بدون کمک گرفتن از جهان خارج، بتواند کار آموزش را انجام دهد.
    واقعیت آن است که در عمل از روش supervised و یا حداکثر از روشآ‌های ترکیبی استفاده میآ‌شود و فرایند آموزش unsupervised به شکل خالص تنها وعدهآ‌ای است که شاید در آینده بتواند تحقق یابد.
    در حال حاضر و در کاربردهای پیشرفته، از روش آموزش unsupervised برای ایجاد تنظیمات اولیه بر روی سیگنالآ‌های ورودی شبکهآ‌های عصبی استفاده میآ‌شود و باقی مراحل آموزش شبکه به روش supervised ادامه میآ‌یابد.
    همانآ‌طور که قبلاً اشاره کردیم، در روش معمول آموزش شبکهآ‌های عصبی، از مجموعهآ‌ شناختهآ‌شدهآ‌ای از دادهآ‌های ورودی و خروجیآ‌های متناظر آنها (training set data) برای آموزش دادن شبکه استفاده میآ‌شود. در چنین فرایندی، پس از اعمال مجموعهآ‌های دادهآ‌های آموزشی، پارامترهای شبکه به تدریج به سمت مقادیر نهایی خود همگرا میآ‌شوند.

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

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

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

    در این زمینه یکی از محققان شبکهآ‌های عصبی، به نام Tuevo Kohonen (از دانشگاه هلسینکی) فعالیتی جدی دارد. کوهنن با تحقیقات در ساختارهای عصبی غیرمتعارف، به پژوهش در این زمینه ادامه میآ‌دهد. کوهنن، نرونآ‌های شبکهآ‌عصبی را فیلدهای مختلفی تقسیمآ‌بندی میآ‌کند. در روش کوهنن، نرونآ‌های هر فیلد <مرتب توپولوژیک> یا Topologically ordered محسوب میآ‌شوند (توپولوژی نام شاخهآ‌ای از ریاضیات است که در آن نگاشت از یک فضا به فضای دیگر بدون تغییر مشخصهآ‌های هندسی، مورد بررسی قرار میآ‌گیرد). گروهآ‌بندیآ‌های سهآ‌بعدی که در ساختار مغز پستانداران یافت شده است، نمونهآ‌ای از مرتبآ‌سازی توپولوژیک محسوب میآ‌شوند. کوهنن معتقد است که فقدان ملاحظات توپولوژیک در مدلآ‌های عصبی امروزی، باعث میآ‌شود که شبکهآ‌های عصبی امروزی، مدلآ‌های ساده شدهآ‌ای از شبکهآ‌های عصبی واقعی موجود در مغز محسوب شوند. در هر صورت این حوزه از مبحث شبکهآ‌های عصبی، هنوز در مرحله تحقیقات آزمایشگاهی قرارداد و کاربرد واقعی نیافته است.


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

    روش پردازش ترتیبی موازی
    توابع منطقی (left brained) ز (estault (right brained
    روش فراگیری به کمک قواعد (didactically) با مثال (Socratically)
    کاربرد حسابداری، واژه پردازی، ریاضیات پردازش حسگرها، تشخیص گفتار، نوشتار

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

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

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


    منبع : ماهنامه شبکه

    دیدگاه

    لطفا صبر کنید...
    X