![]() |
آشنايي با شبکه هاي عصبي (Neural Networks)
شبکه عصبی چیست؟
شبكههاي عصبي را ميتوان با اغماض زياد، مدلهاي الكترونيكي از ساختار عصبي مغز انسان ناميد. مكانيسم فراگيري و آموزش مغز اساساً بر تجربه استوار است. مدلهاي الكترونيكي شبكههاي عصبي طبيعي نيز بر اساس همين الگو بنا شدهاند و روش برخورد چنين مدلهايي با مسائل، با روشهاي محاسباتي كه بهطور معمول توسط سيستمهاي كامپيوتري در پيش گرفته شدهاند، تفاوت دارد. ميدانيم كه حتي سادهترين مغزهاي جانوري هم قادر به حل مسائلي هستند كه اگر نگوييم كه كامپيوترهاي امروزي از حل آنها عاجز هستند، حداقل در حل آنها دچار مشكل ميشوند. به عنوان مثال، مسائل مختلف شناسايي الگو، نمونهاي از مواردي هستند كه روشهاي معمول محاسباتي براي حل آنها به نتيجه مطلوب نميرسند. درحاليكه مغز سادهترين جانوران بهراحتي از عهده چنين مسائلي بر ميآيد. تصور عموم كارشناسان IT بر آن است كه مدلهاي جديد محاسباتي كه بر اساس شبكههاي عصبي بنا ميشوند، جهش بعدي صنعت IT را شكل ميدهند. تحقيقات در اين زمينه نشان داده است كه مغز، اطلاعات را همانند الگوها (pattern) ذخيره ميكند. فرآيند ذخيرهسازي اطلاعات بهصورت الگو و تجزيه و تحليل آن الگو، اساس روش نوين محاسباتي را تشكيل ميدهند. اين حوزه از دانش محاسباتي (computation) به هيچ وجه از روشهاي برنامهنويسي سنتي استفاده نميكند و بهجاي آن از شبكههاي بزرگي كه بهصورت موازي آرايش شدهاند و تعليم يافتهاند، بهره ميجويد. یک شبکه عصبی مصنوعی (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. تحمل اشتباه بدون ایجاد وقفه در هنگام کد گذاری اطلاعات : خرابی جزئی یک شبکه منجر به تنزل کارایی متناظر با آن می شود اگر چه تعدادی از قابلیت های شبکه ممکن است حتی با خسارت بزرگی هم باقی بماند. تفاوتهاي شبكههاي عصبي با روشهاي محاسباتي متداول و سيستمهاي خبره گفتيم كه شبكههاي عصبي روش متفاوتي براي پردازش و آناليز اطلاعات ارائه ميدهند. اما نبايد اين گونه استنباط شود كه شبكههاي عصبي ميتوانند براي حل تمام مسائل محاسباتي مورد استفاده واقع شوند. روشهاي محاسباتي متداول همچنان براي حل گروه مشخصي از مسائل مانند امور حسابداري، انبارداري و محاسبات عددي مبتني بر فرمولهاي مشخص، بهترين گزينه محسوب ميشوند. جدول 1، تفاوتهاي بنيادي دو روش محاسباتي را نشان ميدهد. جدول 1 http://oonjaa.persiangig.com/image/aiii.JPG تلاشهايي كه براي اجرايي كردن سيستمهاي خبره به كار گرفته شدهاند، با مشكلات مشتركي مواجه بودهاند. با افزايش سطح پيچيدگي سيستمها، منابع كامپيوتري مورد نياز سيستم به شدت افزايش مييابند و سيستم با كندي بيش از حد روبرو ميشود. در حقيقت تجربه نشان داده است كه در وضعيت فعلي، سيستمهاي خبره تنها ميتوانند در مواقعي مفيد واقع شوند كه هدف محدود و مشخصي تعيين شده باشد. شبكههاي عصبي در مسيري گام برميدارند كه ابزارها توانايي فراگيري و برنامهريزي خود را داشته باشند. ساختارشبكههاي عصبي به گونهاي است كه قابليت حل مسئله را بدون كمك فرد متخصص و برنامهريزي خارجي داشته باشند. شبكههاي عصبي قادر به يافتن الگوهايي در اطلاعات هستند كه هيچكس، هيچگاه از وجود آنها اطلاع نداشته است. درحاليكه سيستمهاي خبره در عمل به موفقيتهاي بسياري دست يافتهاند، شبكههاي عصبي در كاربردهايي همچون ديد مصنوعي، تشخيص و توليد پيوسته گفتار، فراگيري ماشيني و نظاير آن با مشكلاتي روبرو بودهاند. در حال حاضر شبكههاي عصبي كاملاً وابسته به سرعت پردازنده سيستم اجرا كننده هستند. کاربردهای شبکه های عصبی : سیستم آنالیز ریسک کنترل هواپیما بدون خلبان ردیابی انحراف هواپیما شبیه سازی مسیر سیستم راهنمایی اتوماتیک اتومبیل سیستمهای بازرسی کیفیت آنالیز کیفیت جوشکاری پیش بینی کیفیت آنالیز کیفیت کامپیوتر آنالیز عملیاتهای آسیاب آنالیز طراحی محصول شیمیایی آنالیز نگهداری ماشین پیشنهاد پروژه مدیریت و برنامه ریزی کنترل سیستم فرایند شیمیایی و دینامیکی طراحی اعضای مصنوعی بهینه سازی زمان پیوند اعضا کاهش هزینه بیمارستان بهبود کیفیت بیمارستان آزمایش اتاق اورژانس اکتشاف روغن و گاز کنترل مسیر در دستگاههای خودکار , ربات , جراثقال سیستمهای بصری تشخیص صدا اختصار سخن کلاسه بندی صوتی آنالیز بازار سیستمهای مشاوره ای محاسبه هزینه موجودی اختصار اطلاعات و تصاویر خدمات اطلاعاتی اتوماتیک مترجم لحظه ای زبان سیستمهای پردازش وجه مشتری سیستمهای تشخیص ترمز کامیون زمانبندی وسیله نقلیه سیستمهای مسیریابی کلاسه بندی نمودارهای مشتری/بازار تشخیص دارو بازبینی امضا تخمین ریسک وام شناسایی طیفی ارزیابی سرمایه کلاسه بندی انواع سلولها , میکروبها و نمونه ها پیش بینی فروشهای آینده پیش بینی نیازهای محصول پیش بینی وضعیت بازار پیش بینی شاخصهای اقتصادی پیش بینی ملزومات انرژی پیش بینی واکنشهای دارویی پیش بینی بازتاب محصولات شیمیایی پیش بینی هوا پیش بینی محصول پیش بینی ریسک محیطی پیش بینی جداول داوری مدل کردن کنترل فرآیند آنالیز فعالیت گارانتی بازرسی اسناد تشخیص هدف تشخیص چهره انواع جدید سنسورها دستگاه کاشف زیر دریایی بوسیله امواج صوتی , رادار پردازش سیگنالهای تصویری شامل مقایسه اطلاعات پیگیری هدف هدایت جنگ افزارها تعیین قیمت وضعیت فعلی جلوگیری از پارازیت شناسایی تصویر /سیگنال چیدمان یک مدار کامل بینایی ماشین مدل کردن غیر خطی ترکیب صدا کنترل فرآیند ساخت آنالیز مالی پیش بینی فرآیندهای تولید ارزیابی بکارگیری یک سیاست بهینه سازی محصول تشخیص ماشین و فرآیند مدل کردن کنترل سیستمها مدل کردن ساختارهای شیمیایی مدل کردن سیستمهای دینامیکی مدل کردن سیگنال تراکم مدل کردن قالبسازی پلاستیکی مدیریت قراردادهای سهام مدیریت وجوه بیمه مدیریت سهام تصویب چک بانکی اکتشاف تقلب در کارت اعتباری ثبت نسیه بازبینی امضا از چکها پیش بینی ارزش نسیه مدیریت ریسک رهن تشخیص حروف و اعداد تشخیص بیماری |
آشنايي با شبكههاي عصبي (Neural Networks) - قسمت اول
http://www.shabakeh-mag.com/Data/Art.../1001624_b.jpg
اشاره : شبكههاي عصبي را ميتوان با اغماض زياد، مدلهاي الكترونيكي از ساختار عصبي مغز انسان ناميد. مكانيسم فراگيري و آموزش مغز اساساً بر تجربه استوار است. مدلهاي الكترونيكي شبكههاي عصبي طبيعي نيز بر اساس همين الگو بنا شدهاند و روش برخورد چنين مدلهايي با مسائل، با روشهاي محاسباتي كه بهطور معمول توسط سيستمهاي كامپيوتري در پيش گرفته شدهاند، تفاوت دارد. ميدانيم كه حتي سادهترين مغزهاي جانوري هم قادر به حل مسائلي هستند كه اگر نگوييم كه كامپيوترهاي امروزي از حل آنها عاجز هستند، حداقل در حل آنها دچار مشكل ميشوند. به عنوان مثال، مسائل مختلف شناسايي الگو، نمونهاي از مواردي هستند كه روشهاي معمول محاسباتي براي حل آنها به نتيجه مطلوب نميرسند. درحاليكه مغز سادهترين جانوران بهراحتي از عهده چنين مسائلي بر ميآيد. تصور عموم كارشناسان IT بر آن است كه مدلهاي جديد محاسباتي كه بر اساس شبكههاي عصبي بنا ميشوند، جهش بعدي صنعت IT را شكل ميدهند. تحقيقات در اين زمينه نشان داده است كه مغز، اطلاعات را همانند الگوها (pattern) ذخيره ميكند. فرآيند ذخيرهسازي اطلاعات بهصورت الگو و تجزيه و تحليل آن الگو، اساس روش نوين محاسباتي را تشكيل ميدهند. اين حوزه از دانش محاسباتي (computation) به هيچ وجه از روشهاي برنامهنويسي سنتي استفاده نميكند و بهجاي آن از شبكههاي بزرگي كه بهصورت موازي آرايش شدهاند و تعليم يافتهاند، بهره ميجويد. در ادامه اين نوشته به اين واژگان كه در گرايش شبكههاي عصبي، معاني ويژهاي دارند، بيشتر خواهيم پرداخت. شباهت با مغز اگرچه مكانيسمهاي دقيق كاركرد مغز انسان (يا حتي جانوران) بهطور كامل شناخته شده نيست، اما با اين وجود جنبههاي شناخته شدهاي نيز وجود دارند كه الهام بخش تئوري شبكههاي عصبي بودهاند. بهعنوان مثال، يكي ازسلولهاي عصبي، معروف به نرون (Neuron) است كه دانش بشري آن را بهعنوان سازنده اصلي مغز ميانگارد. سلولهاي عصبي قادرند تا با اتصال بهيكديگر تشكيل شبكههاي عظيم بدهند. گفته ميشود كه هر نرون ميتواند به هزار تا ده هزار نرون ديگر اتصال يابد (حتي در اين مورد عدد دويست هزار هم به عنوان يك حد بالايي ذكر شده است). قدرت خارقالعاده مغز انسان از تعداد بسيار زياد نرونها و ارتباطات بين آنها ناشي ميشود. ساختمان هر يك از نرونها نيز بهتنهايي بسيار پيچيده است. هر نرون از بخشها و زيرسيستمهاي زيادي تشكيل شده است كه از مكانيسمهاي كنترلي پيچيدهاي استفاده ميكنند. سلولهاي عصبي ميتوانند از طريق مكانيسمهاي الكتروشيميايي اطلاعات را انتقال دهند. برحسب مكانيسمهاي بهكاررفته در ساختار نرونها، آنها را به بيش از يكصدگونه متفاوت طبقهبندي ميكنند. در اصطلاح فني، نرونها و ارتباطات بين آنها، فرايند دودويي(Binary)، پايدار (Stable) يا همزمان (Synchronous) محسوب نميشوند. در واقع، شبكههاي عصبي شبيهسازي شده يا كامپيوتري، فقط قادرند تا بخش كوچكي از خصوصيات و ويژگيهاي شبكههاي عصبي بيولوژيك را شبيهسازي كنند. در حقيقت، از ديد يك مهندس نرمافزار، هدف از ايجاد يك شبكه عصبي نرمافزاري، بيش از آنكه شبيهسازي مغز انسان باشد، ايجاد مكانيسم ديگري براي حل مسائل مهندسي با الهام از الگوي رفتاري شبكههاي بيولوژيك است. روش كار نرونها http://www.shabakeh-mag.com/Data/Gal...e-asabi2_s.jpg در شكل يك، نماي ساده شدهاي از ساختار يك نرون بيولوژيك نمايش داده شده است. بهطور خلاصه، يك نرون بيولوژيك، پس از دريافت سيگنالهاي ورودي (به شكل يك پالس الكتريكي) از سلولهاي ديگر، آن سيگنالها را با يكديگر تركيب كرده و پس از انجام يك عمل (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 نيز گفته ميشود. http://www.shabakeh-mag.com/Data/Gal...e-asabi1_s.jpg زمانيكه از كنار هم قرار دادن تعداد بسيار زيادي از سلولهاي فوق يك شبكه عصبي بزرگ ساخته شود، شبكهاي در دست خواهيم داشت كه رفتار آن علاوه بر تابع خروجي f، كاملاً به مقادير w و b وابسته خواهد بود. در چنين شبكه بزرگي، تعداد بسيار زيادي از پارامترهاي w و b بايد توسط طراح شبكه مقداردهي شوند. اين پروسه از كار، در اصطلاح دانش شبكههاي عصبي، به فرآيند يادگيري معروف است. در واقع در يك آزمايش واقعي، پس از آنكه سيگنالهاي ورودي چنين شبكه بزرگي اتصال داده شدند، طراح شبكه با اندازهگيري خروجي و با انتخاب پارامترهايw و b بهگونهاي كه خروجي مطلوب بهدست آيد، شبكه را <آموزش> ميدهد. به اين ترتيب پس از آنكه چنين شبكه به ازاي مجموعهاي از وروديها براي ساختن خروجيهاي مطلوب <آموزش> ديد، ميتوان از آن براي حل مسائلي كه از تركيب متفاوتي از وروديها ايجاد ميشوند، بهره برد. تابع f ميتواند بر حسب كاربردهاي گوناگون بهطور رياضي، به شكل هاي متفاوتي انتخاب شود. در برخي از كاربردها، پاسخ مسائل از نوع دودويي است. مثلاً مسأله بهگونهاي است كه خروجي شبكه عصبي بايد چيزي مانند <سياه> يا <سفيد> (يا <آري> يا <نه>) باشد. در واقع چنين مسائلي نياز به آن دارند كه وروديهاي دنياي واقعي به مقادير گسسته مانند مثال فوق تبديل شوند. حتي ميتوان حالاتي را در نظر گرفت كه خروجي دودويي نباشد، اما همچنان گسسته باشد. به عنوان مثال، شبكهاي را در نظر بگيريد كه خروجي آن بايد يكي از حروف الفبا، مثلاً از بين كاراكترهاي اسكي (يا حتي يكي از پنجاه هزار كلمه متداول زبان انگليسي) باشد. در چنين كاربردهايي، روش حل مسئله نميتواند صرفاً بر جمع جبري سيگنالهاي ورودي تكيه نمايد. در اين كاربردها، ويژگيهاي خواسته شده فوق، در تابع خروجي يا تابع انتقال f گنجانيده ميشوند. مثلاً اگر قرار باشد خروجي فقط يكي از مقادير صفر يا يك را شامل شود، در اين صورت ميتوان تابع خروجي شبكه عصبي را به شكل بخش a شكل شماره 3 انتخاب كرد. در اين حالت، خروجي چنين شبكهاي فقط ميتواند بر حسب وروديهاي متفاوت، مقدار يك يا صفر باشد. http://www.shabakeh-mag.com/Data/Gal...e-asabi5_s.jpg شكل 3 در گروه ديگري از مسائلي كه حل آنها به شبكههاي عصبي واگذار ميشود، خروجي شبكه عصبي الزاماً بين مقادير معلوم و شناخته شده واقع نميشود. مسائلي از نوع شناسايي الگوهاي تصويري، نمونهاي از چنين مواردي محسوب ميشوند. شبكههاي عصبي در اين موارد، بايد بهگونهاي باشند كه قابليت توليد مجموعه نامتناهي از پاسخها را داشته باشند. رفتار حركتي يك روبات نمونهاي از <هوشي> است كه چنين شبكههاي عصبي ميتوانند فراهم آورند. اما در چنين شبكههايي هم لازم خواهد بود كه خروجي بين مقادير مشخصي محدود شده باشد (موضوع محدود شدن خروجي بين دو مقدار حدي ماكزيمم و مينيمم را در اينجا با موضوع قبلي اشتباه نگيريد. در اين مورد خروجي مسأله اساساً گسسته نيست و حتي در بين چنين مقادير حدي، ميتوان به تعداد نامتناهي خروجي دست يافت). اهميت اين موضوع زماني آشكار ميشود كه از مثال واقعي كمك گرفته شود. فرض كنيد قراراست از شبكه عصبي براي كنترل حركت بازوي يك روبات استفاده شود. در صورتيكه خروجي يك شبكه عصبي براي كنترل نيروي حركتي بهكار گرفته شود، طبيعي خواهد بود كه اگر خروجي شبكه محدود نشده باشد، ممكن است بازوي روبات بر اثر حركت بسيار سريع، به خود و يا محيط اطراف آسيب برساند. در چنين مواردي ممكن است از تابع انتقال بهشكل بخش b شكل شماره 3 استفاده شود. قبل از آنكه به بخش ديگري از موضوع شبكههاي عصبي بپردازيم، بايد يك نكته را يادآوري كنيم كه همانطور كه در ابتداي اين بخش تشريح شد، سلولهاي عصبي داراي وروديهاي متعددي هستند و خروجي آنها نيز الزاماً محدود به يك خروجي نيست. بر اين اساس زماني كه بخواهيم از مدلسازي رياضي براي مدل كردن يك سلول عصبي استفاده كنيم، بهجاي آنكه همانند شكل 2 از يك ورودي p و يك خروجي a استفاده كنيم، از يك بردار p و يك بردار a سخن ميگوييم. بدين ترتيب بدون آنكه نياز به اعمال تغييري در اين تصوير داشته باشيم، ميتوانيم از آن براي مدلسازي سلولي با n ورودي (p1,p2,p3 . . . pn) و به همين ترتيب m خروجي (a1,a2,am) استفاده كنيم. توجه داشته باشيد كه در اين صورت، تعداد عناصر b و w نيز به تناسب افزايش مييابند و هر يك به n عدد افزايش مييابند. پيادهسازيهاي الكترونيكي نرونهاي مصنوعي http://www.shabakeh-mag.com/Data/Gal...e-asabi3_s.jpg شكل 4 نرمافزارهايي كه در آنها از شبكههاي عصبي استفاده شده است، نرونهاي شبكه را المان پردازنده (Processing element) مينامند. بهطور معمول در محصولات نرمافزاري، المانهاي پردازنده قابليت بسيار بيشتري از نمونه سادهشدهاي كه در بخشهاي پيشين تشريح كرديم، دارند. در شكل شماره 4، نمايي با جزئيات بيشتر از يك نرون مصنوعي را نشان ميدهد. در اين مدل، وروديها در نخستين گام، در ضريب وزني (weighting factor) متناظر خود ضرب ميشوند. در مرحله بعد، وروديهايي كه تغيير مقياس دادهاند وارد واحدي ميشوند كه در آن سيگنالهاي ورودي با هم تركيب ميشوند. بهطور معمول عمل تركيب در اين واحد همان عمل جمع جبري است، اما در اصول، ميتوان در اين واحد، وروديها را به روشهاي ديگري علاوه بر عمل جمع معمولي نيز با يكديگر تركيب كرد. مثلاً ميتوان بهجاي عمل جمع، از عمل متوسط گيري، انتخاب بزرگترين، انتخاب كوچكترين، عمل OR يا AND منطقي هم استفاده كرد. در واقع هدف نهايي در اين واحد آن است كه از تعداد n ورودي، يك سيگنال خروجي براي ارائه به بخشهاي بعدي فرايند، بهدست آيد. انتخاب نوع <عمل> در اين واحد، موضوع دقيقي است كه كاملاً به كاربرد مسأله وابسته است. http://www.shabakeh-mag.com/Data/Gal...e-asabi4_s.jpg بهطور معمول در نرمافزارهاي تجاري، امكان انتخاب و حتي ساختن توابع گوناگون براي اين واحد، از طرف نرمافزار به كاربران داده ميشود. حتي ميتوان كاربردهايي يافت كه در آنها، عمل تركيب در اين واحد، وابسته به زمان باشد و در زمانهاي گوناگون پردازش مسأله، عمليات مختلفي براي تركيب كردن وروديها بهكار برده شوند. در هر صورت، پس از آنكه وروديها با يكديگر تركيب شدند، سيگنال حاصل به واحد ديگري كه در آن تابع انتقال يا Transfer Function به سيگنال اعمال ميشود، هدايت ميگردد. خروجي اين بخش، سيگنالهاي حقيقي خواهند بود. بدين ترتيب جعبهاي در دست خواهيم داشت كه تعداد n عدد سيگنال ورودي را به m عدد سيگنال خروجي تبديل ميكند. در عمل توابع انتقالي كه در بخش انتهايي نمودار شكل 4 بهكار برده ميشوند، معمولاً يكي از توابع سينوسي، تانژانت هذلولي، sigmoid و نظاير اينها است. در تصوير شماره 5، نمونهاي از يك تابع انتقال از نوع sigmoid نمايش داده شده است. همانطور كه در اين شكل مشاهده ميكنيد، اين تابع انتقال، سيگنال خروجي واحد تركيب را به سيگنال خروجي تبديل ميكند كه مقدار (يا اندازه آن) بين صفر و يك ميتواند باشد. در عمل، سيگنالِ خروجي يك المان پردازنده ميتواند برحسب نوع كاربرد، به المانهاي پردازشي ديگر و يا به اتصالات ديگر خارج از شبكه عصبي هدايت شود. در واقع تمامي شبكههاي عصبي بر اساس ساختار المانهاي پردازشي فوق كار ميكنند. |
عمليات شبكههاي عصبي - Neural Networks (قسمت دوم)
اشاره :
عمليات شبكههاي عصبي تا اينجا تمام توجه ما معطوف ساختار دروني يك نرون مصنوعي يا المان پردازشي بود. اما بخش مهم ديگري در مراحل طراحي يك شبكه عصبي نيز وجود دارد. در واقع هنر يك طراح شبكههاي عصبي ميتواند در چگونگي تركيب نرونها در يك شبكه (neuran Clustering)، متجلي شود. علوم بيولوژي نشان دادهاند كه كلاسترينگ نرونها در http://www.shabakeh-mag.com/Data/Gal..._Neural1_s.jpg شكل 1 شبكه عصبي مغز ما بهگونهاي است كه ما را قادر ميسازد تا اطلاعات را به صورتي پويا، تعاملي و خودسامان (Selforganizing) پردازش كنيم. در شبكههاي عصبي بيولوژيك، نرونها در ساختاري سه بعدي به يكديگر اتصال يافتهاند. اتصالات بين نرونها در شبكههاي عصبي بيولوژيك آنقدر زياد و پيچيدهاست كه به هيچ وجه نميتوان شبكه مصنوعي مشابهي طراحي كرد. تكنولوژي مدارات مجتمع امروزي به ما امكان ميدهد كه شبكههاي عصبي را در ساختارهاي دو بعدي طراحي كنيم. علاوه بر اين، چنين شبكههاي مصنوعي داراي تعداد محدودي لايه و اتصالات بين نرونها خواهند بود. بدين ترتيب، اين واقعيات و محدوديتهاي فيزيكي تكنولوژي فعلي، دامنه كاربردهاي شبكههاي عصبي مبتنيبر تكنولوژي سيليكوني را مشخص ميسازند. ساختار شبكههاي عصبي امروزي، از لايههاي نروني تشكيل شده است. در چنين ساختاري، نرونها علاوه بر آنكه در لايه خود به شكل محدودي به يكديگر اتصال داده شدهاند، از طريق اتصال بين لايهها نيز به نرونهاي طبقات مجاور ارتباط داده ميشوند. در شكل 1 نمونهاي از ساختار لايهاي يك شبكه عصبي مصنوعي نمايش داده شده است (تعداد اتصالات ممكن بين نرونها را در چنين ساختاري با تعداد اتصالات بين نرونهاي مغز انسان، مقايسه كنيد). در اين توپولوژي، گروهي از نرونها از طريق وروديهاي خود با جهان واقعي ارتباط دارند. گروه ديگري از نرونها نيز از طريق خروجيهاي خود، جهان خارج را ميسازند. در واقع اين <جهان خارج> تصويري است كه شبكه عصبي از ورودي خود ميسازد يا ميتوان چنين گفت كه جهان خارج <تصوري> است كه شبكه عصبي از ورودي خود دارد. خلاصه آنكه در توپولوژي فوق، مابقي نرونها از ديد پنهان هستند. تلاش محققان در زمينه شبكههاي عصبي نشان داده است كه شبكههاي عصبي، چيزي بيشتر از يك مشت نرون كه به يكديگر اتصال داده شدهاند، هستند. حتي گروهي از محققان سعي داشتهاند كه از اتصالات تصادفي براي ارتباط دادن نرون به يكديگر استفاده كنند كه در اين زمينه به نتايج جالب توجهي دست نيافتند. امروزه مشخص شده است كه در سادهترين مغزهاي بيولوژيك مانند مغز مارها هم ارتباطات بين نرونها بسيار ساختيافته است. در حال حاضر يكي از سادهترين روشهاي ارتباط دهي نرونها در شبكههاي عصبي، آن است كه ابتدا نرونها در گروههاي مشخصي به صورت لايههاي نروني سازماندهي ميشوند و پس از تامين ارتباطات بيننروني در هر لايه، ارتباطات بين لايهها نيز برقرار ميشوند. اگرچه در كاربردهاي مشخصي ميتوان با موفقيت از شبكههاي عصبي تك لايه استفاده كرد، اما رسم بر آن است كه شبكههاي عصبي حداقل داراي سه لايه باشند (همانطور كه قبلاً اشاره شد، لايه ورودي، لايه خروجي و نهايتاً لايه پنهان يا لايه مياني). در بسياري از شبكههاي عصبي، اتصالات بيننروني به گونهاي است كه نرونهاي لايههاي مياني، ورودي خود را از تمام نرونهاي لايه پاييني خود (به طور معمول لايه نرونهاي ورودي) دريافت ميكنند. بدين ترتيب در يك شبكه عصبي، سيگنالها به تدريج از يك لايه نروني به لايههاي بالاتر حركت ميكنند و در نهايت به لايه آخر و خروجي شبكه ميرسند. چنين مسير در اصطلاح فني feed forward ناميده ميشود. ارتباطات بيننروني در شبكههاي عصبي از اهميت بسيار زيادي برخوردار هستند و به نوعي قدرت يك شبكه عصبي را تعيين ميكنند. قاعده آن است كه ارتباطات بين نروني را به دو گروه تقسيمبندي ميكنند. يك نوع از ارتباطات بين نروني، بهگونهاي هستند كه باعث جمع شدن سيگنال در نرون بعدي ميشوند. گونه دوم ارتباطات بين نروني باعث تفريق سيگنال در نرون بعدي ميشوند. در اصطلاح محاورهاي گروهي از ارتباطات انگيزش ايجاد ميكنند و گروه ديگر ممانعت به عمل ميآورند. در مواردي، نرون مشخصي از شبكه عصبي تمايل دارد كه سيگنال ديگر نرونهاي لايه خود را ناديده بگيرد. چنين حالتي بهطور معمول در لايه خروجي ايجاد ميشود. به عنوان مثال، در كاربردهاي تشخيص متن (OCR)، فرض كنيد كه احتمال آنكه كاراكتر مورد شناسايي، حرف P باشد برابر با 85 درصد تعيين شده است و به همين ترتيب احتمال آنكه كاراكتر مورد نظر حرف F باشد، 65 درصد تخمين زده است. در اين وضعيت، سيستم بايد كاراكتري را برگزيند كه داراي درصد احتمال بزرگتر است. در نتيجه در اين شبكه عصبي، نرونهايي كه خروجي F را تجويز ميكنند، بايد ناديده گرفته شوند يا inhibit شوند. به چنين فرايندي، lateral inhibition گفته ميشود. http://www.shabakeh-mag.com/Data/Gal..._Neural2_s.jpg نوع ديگري از ارتباط بين نروني در شبكههاي عصبي به ارتباط بازخورد يا 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- کاربرد شبکه عصبی در پیش بینی نرخ ارز ( از مقالات دومین کنفرانس بین المللی مدیریت-1383) 2- كاهش رنگ تصاوير با استفاده از شبكه عصبي انتشار از روبرو( از سري مقالات سومين کنفرانس بين المللي فناوري اطلاعات و دانش) 3- پيش بيني كوتاه مدت توان توليدي توربين هاي بادي با استفاده ازشبكه هاي عصبي(از سري مقالات بيست و يکمين کنفرانس بين المللي برق!) موفق باشيد;) |
زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۰۸:۳۶ قبل از ظهر ميباشد. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.