شبکه های عصبی مصنوعی
استاد:
درس مربوطه :
نگارش:
پاییز 94
فهرست
مقدمه 4
هوش مصنوعی و هوش انسانی 4
شبکه های عصبی زیستی 5
تاریخچه شبکه های عصبی مصنوعی 5
شبکه عصبی 7
نورون مصنوعی 7
شبکه عصبی مصنوعی(ANN) 7
ساختار شبکه های عصبی 8
تقسیم بندی شبکه های عصبی 10
قابلیت های شبکه عصبی 11
کاربرد شبکه های عصبی 12
انواع شبکه عصبی 12
شبکه عصبی پرسپترون 13
پرسپترون تک لایه 13
یادگیری یک پرسپترون 13
توابع بولی و پرسپترون 14
شبکه عصبی هاپفیلد 16
شبکه عصبی همینگ 16
شبکه عصبی تا خیر زمانی 18
شبکه انتشار رو به عقب 19
معایب شبکه های عصبی 19
استفاده از شبکه های عصبی مصنوعی در تکمیل، انگیزش و طراحی مخازن نفت و گاز 20
روشهای شبکه عصبی برای پیش بینی تولید چاه نفت 21
شبکه های عصبی و کاربرد آنها در مهندسی کنترل 21
References 22
مقدمه
دهه های آغازین سده بیستم میلادی و دوران پیشرفت شگرف صنعتی ، همراه با تولید خودرو بود که انقلاب همه جانبه این درترابری ، افزایش شتاب جابجایی و صدها کار و پیشه جدید دررشته ها بازرگانی بوجود آورده است به نظر می رسد که سمبل دوران فراصنعتی و نماد فرآورده های بی همتای قرن آینده "هوش مصنوعی " است(Forbus, 1984) . امروزه موضوع هوش مصنوعی داغ ترین بحث میان کارشناسان دانش رایانه واطلاعات و دیگر دانشمندان و تصمیم گیرندگان است . در سراسرتاریخ تا به امروز انسان از جنبه تن و روان ، مرکز و محور بحث ها و پژوهش ها بوده است . ولی اکنون موجودی با رتبه ای پائین تر، بی جان و ساختگی می خواهد جانشین او شود، امری که بدون شک می توان ادعا نمود بیشتر انسان ها با آن مخالفند. هوش مصنوعی چنانچه به هدف های والای خود برسد، جهش بزرگی در راه دستیابی بشر به رفاه بیشتر و حتی ثروت افزون ترخواهد بود. هم اکنون نمونه های خوب و پذیرفتن از هوش مصنوعی در دنیای واقعی ما به کار افتاده است . چنین دستاوردهایی ، صرف منابع لازم در آینده را همچنان توجیه خواهد کرد. از سوی دیگر، منتقدین هوش مصنوعی چنین استدلال می کنند که صرف زمان و منابع ارزشمند دیگر در راه ساخت فراورده ای که پر از نقص و کاستی و دست آوردهای مثبت اندکی است ، مایه بدنام کردن و زیر پا گذاشتن توانمندی ها و هوشمندی های انسان می باشد. تلخ ترین انتقادها بر این باور است که هوش مصنوعی ، توهین آشکار به گوهر طبیعت و نقش انسان است . شبکه عصبی مصنوعی روشی عملی برای یادگیری توابع گوناگون نظیر توابع با مقادیر حقیقی، توابع با مقادیر گسسته و توابع با مقادیر برداری می باشد. یادگیری شبکه عصبی در برابر خطاهای داده های آموزشی مصون بوده و شبکه با موفقیت به مسائلی نظیر شناسائی گفتار، شناسائی و تعبیر تصاویر، و یادگیری روبات اعمال شده اند(Brooks, 1991).
هوش مصنوعی و هوش انسانی
برای شناخت هوش مصنوعی شایسته است تا تفاوت آن را با هوش انسانی به خوبی بدانیم مطالعه شبکه های عصبی مصنوعی تا حد زیادی از سیستم های یادگیر طبیعی نشآت گرفته است که در آنها یک مجموعه پیچیده از نرونهای به هم متصل درکاریادگیری دخیل هستند. مغز انسان از تعداد 1011 نرون تشکیل شده که هر نرون با تقریبا 104 نرون دیگر در ارتباط است. سرعت سوئیچنگ نرونها در حدود 10-3 ثانیه است آدمی قادر است در 0.1 ثانیه تصویر یک انسان را بازشناسائی نماید. مغز انسان از میلیاردها سلول یا رشته عصبی درست شده است و این سلول ها به صورت پیچیده ای به یکدیگرمتصل اند. شبیه سازی مغز انسان می تواند از طریق سخت افزار یا نرم افزارانجام گیرد. تحقیقات اولیه نشان داده است شبیه سازی مغز، کاری مکانیکی و ساده می باشد. برای مثال ، یک کرم دارای چند شبکه عصبی است . یک حشره حدود یک میلیون رشته عصبی دارد و مغز انسان ازهزار میلیارد رشته عصبی درست شده است . با تمرکز و اتصال رشته های عصبی مصنوعی می توان واحد هوش مصنوعی را درست کرد. هوش انسانی بسیار پیچیده تر و گسترده تر از سیستم های رایانه ای است و توانمندی های برجسته ای مانند: استدلال ، رفتار، مقایسه ، آفرینش و بکار بستن مفهوم ها را دارد. هوش انسانی توان ایجاد ارتباط میان موضوع ها و قیاس ونمونه سازیهای تازه را دارد. انسان همواره قانون های تازه ای می سازد و یا قانون پیشین را در موارد تازه بکار می گیرد. توانایی بشر در ایجاد مفهوم های گوناگون در دنیای پیرامون خود، از ویژگی های دیگر اوست . مفهوم های گسترده ای همچون روابط علت و معلولی ، زمان و یا مفهوم های ساده تری مانند گزینش وعده های خوراک (صبحانه ، ناهار و شام) را انسان ایجاد کرده است . اندیشیدن در این مفهوم ها و بکاربستن آنها، ویژه رفتار هوشمندانه انسان است .هوش مصنوعی در پی ساخت دستگاههایی است که بتوانند توانمندهای یاد شده (استدلال ، رفتار، مقایسه و مفهوم آفرینی ) را از خودبروز دهند. آنچه تاکنون ساخته شده نتوانسته است خود را به این پایه برساند، هر چند سودمندی های فراوانی به بار آورده است . نکته آخر اینکه ، یکی از علل رویارویی با مقوله هوش مصنوعی ، ناشی از نام گذاری نامناسب آن می باشد. چنانچه جان مک کارتی در سال 1956 میلادی آن را چیزی مانند "برنامه ریزی پیشرفته " نامیده بود شاید جنگ و جدلی در پیرامون آن رخ نمی داد. هوش مصنوعی به تعدادی میدانهای فرعی تقسیم شده است و سعی دارد تا سیستم ها و روشهایی را ایجاد کند که بطور تقلیدی مانند هوش ومنطق تصمیم گیرندگان عمل نماید(Russell & Norvig, 1995). در زیر به شبکه های عصبی میپردازیم.
شبکه های عصبی زیستی
شبکه های عصبی زیستی مجموعه ای بسیار عظیم از پردازشگرهای موازی به نام نورون اند که به صورت هماهنگ برای حل مسئله عمل می کنند و توسط سیناپس ها (ارتباط های الکترومغناطیسی) اطلاعات را منتقل می کنند. در این شبکه ها اگر یک سلول آسیب ببیند بقیه سلول ها می توانند نبود آن را جبران کرده و نیز در بازسازی آن سهیم باشند. این شبکه ها قادر به یاد گیری اند. مثلا با اعمال سوزش به سلول های عصبی لامسه، سلول ها یاد می گیرند که به طرف جسم داغ نروند و با این الگوریتم سامانه می آموزد که خطای خود را اصلاح کند. یاد گیری در این سامانه ها به صورت تطبیقی صورت می گیرد، یعنی با استفاده از مثال ها وزن سیناپس ها به گونه ای تغییر می کند که در صورت دادن ورودی های تازه سامانه پاسخ درستی تولید کند(Jain, Mao, & Mohiuddin, 1996).
تاریخچه شبکه های عصبی مصنوعی
از قرن نوزدهم به طور همزمان اما جداگانه از سویی نروفیزیولوزیست ها سعی کردند سامانه یادگیری و تجزیه و تحلیل مغز را کشف کنند و از سوی دیگر ریاضیدانان تلاش کردند تا مدل ریاضی بسازند که قابلیت فراگیری و تجزیه و تحلیل عمومی مسائل را دارا باشد. اولین کوشش ها در شبیه سازی با استفاده از یک مدل منطقی توسط مک کلوک و والتر پیتز انجام شد که امروزه بلوک اصلی سازنده اکثر شبکه های عصبی مصنوعی است. این مدل فرضیه هایی در مورد عملکرد نورون ها ارائه می کند. عملکرد این مدل مبتنی بر جمع ورودی ها و ایجاد خروجی است. چنانچه حاصل جمع ورودی ها از مقدار آستانه بیشتر باشد اصطلاحا نورون برانگیخته می شود. نتیجه این مدل اجرای توابع ساده مثل AND و OR بود.
نه تنها نروفیزیولوژیست ها بلکه روان شناسان و مهندسان نیز در پیشرفت شبیه سازی شبکه های عصبی تاثیر داشتند. در سال 1958 شبکه پرسپترون توسط روزنبلات معرفی گردید. این شبکه نظیر واحدهای مدل شده قبلی بود. پرسپترون دارای سه لایه به همراه یک لایه وسط که به عنوان لایه پیوند شناخته شده می باشد، است. این سامانه می تواند یاد بگیرد که به ورودی داده شده خروجی تصادفی متناظر را اعمال کند. سامانه دیگر مدل خطی تطبیقی نورون می باشد که در سال 1960 توسط ویدرو و هاف (دانشگاه استنفورد) به وجود آمد که اولین شبکه های عصبی به کار گرفته شده در مسائل واقعی Adalaline بودند. یک دستگاه الکترونیکی بود که از اجزای ساده ای تشکیل شده بود، روشی که برای آموزش استفاده می شد با پرسپترون فرق داشت.
در سال 1969 میسکی و پاپرت کتابی نوشتند که محدودیت های سامانه های تک لایه و چند لایه پرسپترون را تشریح کردند. نتیجه این کتاب پیش داوری و قطع سرمایه گذاری برای تحقیقات در زمینه شبیه سازی شبکه های عصبی بود. آنها با طرح اینکه طرح پرسپترون قادر به حل هیچ مساله جالبی نمی باشد، تحقیقات در این زمینه را برای مدت چندین سال متوقف کردند.
با وجود اینکه اشتیاق عمومی و سرمایه گذاری های موجود به حداقل خود رسیده بود، برخی محققان تحقیقات خود را برای ساخت ماشین هایی که توانایی حل مسائلی از قبیل تشخیص الگو را داشته باشند، ادامه دادند. از جمله گراسبگ که شبکه ای تحت عنوان Avalanch را برای تشخیص صحبت پیوسته و کنترل دست ربات مطرح کرد. همچنین او با همکاری کارپنتر شبکه های ART را بنا نهادند که با مدل های طبیعی تفاوت داشت. اندرسون و کوهونن نیز از اشخاصی بودند که تکنیک هایی برای یادگیری ایجاد کردند. ورباس در سال 1974 شیوه آموزش پس انتشار خطا را ایجاد کرد که یک شبکه پرسپترون چندلایه البته با قوانین نیرومندتر آموزشی بود.
پیشرفت هایی که در سال 1970 تا 1980 بدست آمد برای جلب توجه به شبکه های عصبی بسیار مهم بود. برخی فاکتورها نیز در تشدید این مساله دخالت داشتند، از جمله کتاب ها و کنفرانس های وسیعی که برای مردم در رشته های متنوع ارائه شد. امروز نیز تحولات زیادی در تکنولوژی ANN ایجاد شده است.(Basheer & Hajmeer, 2000)
شبکه عصبی1
در حالت کلی، یک شبکه عصبی زیستی از مجموعه یا مجموعه ای از نورون های به صورت فیزیکی به هم متصل یا از لحاظ عملکردی به هم وابسته تشکیل شده است. هر نورون می تواند به تعداد بسیار زیادی از نورون ها وصل باشد و تعداد کل نورون ها و اتصالات بین آن ها می تواند بسیار زیاد باشد. اتصالات، که به آن ها سیناپس گفته می شود، معمولاً از آکسون ها و دندریت ها تشکلیل شده اند. هوش مصنوعی و مدل سازی شناختی سعی بر این دارند که بعضی از خصوصیات شبکه های عصبی را شبیه سازی کنند. این دو اگرچه در روش هایشان به هم شبیه هستند اما هدف هوش مصنوعی حل مسائل مشخصی است در حالی که هدف مدل سازی شناختی ساخت مدل های ریاضی سامانه های نورونی زیستی است. روشی برای محاسبه است که بر پایه اتصال به هم پیوسته چندین واحد پردازشی ساخته میشود. شبکه از تعداد دلخواهی نرون تشکیل میشود که مجموعه ورودی را به خروجی ربط میدهند. هر نورون می تواند به تعداد بسیار زیادی از نرون ها وصل باشد و تعداد کل نرون ها و اتصالات بین آن ها می تواند بسیار زیاد باشد.(Hagan, Demuth, & Beale, 1996)
نورون مصنوعی
یک نورون مصنوعی سامانه ای است با تعداد زیادی ورودی و تنها یک خروجی. نورون دارای دو حالت می باشد، حالت آموزش و حالت عملکرد. در حالت آموزش نورون یاد می گیرد که در مقابل الگوهای ورودی خاص برانگیخته شود و یا در اصطلاح آتش کند. در حالت عملکرد وقتی یک الگوی ورودی شناسایی شده وارد شود، خروجی متناظر با آن ارائه می شود. اگر ورودی جزء ورودی های از پیش شناسایی شده نباشد، قوانین آتش برای بر انگیختگی یا عدم آن تصمیم گیری می کند.با کنار گذاشتن برخی از خواص حیاتی نورون ها و ارتباطات درونی آنها می توان یک مدل ابتدایی از نورون را به وسیله کامپیوتر شبیه سازی کرد.(Harmon, 1961)
شبکه عصبی مصنوعی2(ANN)
شبکه های عصبی مصنوعی () الگویی برای پردازش اطلاعات می باشند که با تقلید از شبکه های عصبی بیولوژیکی مثل مغز انسان ساخته شده اند.عنصر کلیدی این الگو ساختار جدید سیستم پردازش اطلاعات آن می باشد و از تعداد زیادی عناصر (نرون) با ارتباطات قوی داخلی که هماهنگ با هم برای حل مسائل مخصوص کار می کنند تشکیل شده اند. شبکه های عصبی مصنوعی با پردازش روی داده های تجربی، دانش یا قانون نهفته در ورای داده ها را به ساختار شبکه منتقل می کند که به این عمل یادگیری می گویند. اصولاً توانایی یادگیری مهمترین ویژگی یک سیستم هوشمند است. سیستمی که بتواند یاد بگیرد منعطف تر است وساده تر برنامه ریزی می شود، بنابراین بهتر میتواند در مورد مسایل و معادلات جدید پاسخگو باشد. انسانها از زمانهای بسیار دور سعی بر آن داشتند که بیوفیزیولوژی مغز را دریابند چون همواره مسئله هوشمندی انسان و قابلیت یادگیری، تعمیم، خلاقیت ،انعطاف پذیری و پردازش موازی در مغز برای بشر جالب بوده و بکارگیری این قابلیت ها در ماشینها بسیار مطلوب می نمود.روشهای الگوریتمیک برای پیاده سازی این خصایص در ماشین ها مناسب نمی باشند در نتیجه می بایست روشها مبتنی بر همان مدل های بیولوژیکی باشد.درست مثل انسان ها با استفاده از مثال ها آموزش می بیند ، همانطور که یک بچه با دیدن انواع مختلف از یک حیوان قادر به تشخیص آن می باشد.به عبارت دیگر شبکه عصبی مصنوعی یک سامانه پردازشی داده ها است که از مغز انسان ایده گرفته و پردازش داده ها را به عهده پردازنده های کوچک و بسیار زیادی سپرده که به صورت شبکه ای به هم پیوسته و موازی با یکدیگر رفتار می کنند تا یک مسئله را حل نمایند. در این شبکه ها به کمک دانش برنامه نویسی، ساختار داده ای طراحی می شود که می تواند همانند نورون عمل کند. که به این ساختارداده گره گفته می شود. بعد با ایجاد شبکه ای بین این گره ها و اعمال یک الگوریتم آموزشی به آن ، شبکه را آموزش می دهند. در این حافظه یا شبکه عصبی گره ها دارای دو حالت فعال (روشن یا 1) و غیرفعال (خاموش یا 0) اند و هر یال (سیناپس یا ارتباط بین گره ها) دارای یک وزن می باشد. یال های با وزن مثبت، موجب تحریک یا فعال کردن گره غیر فعال بعدی می شوند و یال های با وزن منفی، گره متصل بعدی را غیر فعال یا مهار (در صورتی که فعال بوده باشد) می کنند.(Harmon, 1961)
ساختار شبکه های عصبی
یک شبکه عصبی شامل اجزای سازنده لایه ها و وزن ها می باشد. رفتار شبکه نیز وابسته به ارتباط بین اعضا است. در حالت کلی در شبکه های عصبی سه نوع لایه نورونی وجود دارد:
1. لایه ورودی : دریافت اطلاعات خامی که به شبکه تغذیه شده است.
2. لایه های پنهان : عملکرد این لایه ها به وسیله ورودی ها و وزن ارتباط بین آنها و لایه های پنهان تعیین می شود. وزن های بین واحدهای ورودی و پنهان تعیین می کند که چه وقت یک واحد پنهان باید فعال شود.
3. لایه خروجی : عملکرد واحد خروجی بسته به فعالیت واحد پنهان و وزن ارتباط بین واحد پنهان و خروجی می باشد.
شبکه های تک لایه و چند لایه ای نیز وجود دارند که سازماندهی تک لایه که در آن تمام واحدها به یک لایه اتصال دارند بیشترین مورد استفاده را دارد و پتانسیل محاسباتی بیشتری نسبت به سازماندهی های چند لایه دارد. در شبکه های چند لایه واحدها به وسیله لایه ها شماره گذاری می شوند (به جای دنبال کردن شماره گذاری سراسری). هر دو لایه از یک شبکه به وسیله وزن ها و در واقع اتصالات با هم ارتباط می یابند. در شبکه های عصبی چند نوع اتصال و یا پیوند وزنی وجود دارد:
پیشرو : بیشترین پیوندها از این نوع است که در آن سیگنال ها تنها در یک جهت حرکت می کنند. از ورودی به خروجی هیچ بازخوردی (حلقه) وجود ندارد. خروجی هر لایه بر همان لایه تاثیری ندارد.
پسرو : داده ها از گره های لایه بالا به گره های لایه پایین بازخورانده می شوند. جانبی : خروجی گره های هر لایه به عنوان ورودی گره های همان لایه استفاده می شوند.
شبکه های عصبی در مقایسه با کامپیوترهای معمولی
یک شبکه عصبی به طور کلی با یک کامپیوتر در موارد زیر تفاوت دارد :
1. شبکه های عصبی دستورات را به صورت سری اجرا نکرده، شامل حافظه ای برای نگهداری داده و دستورالعمل نیستند.
2. به مجموعه ای از ورودی ها به صورت موازی پاسخ می دهند.
3. بیشتر با تبدیلات و نگاشت ها سروکار دارند تا الگوریتم ها و روش ها.
4. شامل ابزار محاسباتی پیچیده نبوده، از تعداد زیادی ابزارساده که اغلب کمی بیشتر از یک جمع وزن دار را انجام می دهند تشکیل شده اند.
شبکه های عصبی شیوه ای متفاوت برای حل مسئله دارند. کامپیوترهای سنتی از شیوه الگوریتمی برای حل مسئله استفاده می کنند که برای حل مسئله مجموعه ای از دستورالعمل های بدون ابهام دنبال می شود. این دستورات به زبان سطح بالا و سپس به زبان ماشین که سامانه قادر به تشخیص آن می باشد تبدیل می شوند. اگر مراحلی که کامپیوتر برای حل مسئله باید طی کند از قبل شناخته شده نباشند و الگوریتم مشخصی وجود نداشته باشد، سامانه توانایی حل مسئله را ندارد. کامپیوترها می توانند خیلی سودمندتر باشند اگر بتوانند کارهایی را که ما هیچ پیش زمینه ای از آنها نداریم انجام دهند. شبکه های عصبی و کامپیوترها نه تنها رقیب هم نیستند بلکه می توانند مکمل هم باشند. کارهایی وجود دارند که بهتر است از روش الگوریتمی حل شوند و همین طور کارهایی وجود دارند که جز از طریق شبکه عصبی مصنوعی قابل حل نمی باشند و البته تعداد زیادی نیز برای بدست آوردن بازده حداکثر، از ترکیبی از روش های فوق استفاده می کنند. به طور معمول یک کامپیوتر سنتی برای نظارت بر شبکه عصبی استفاده می شود. شبکه های عصبی معجزه نمی کنند، اگر به طور محسوس استفاده شوند کارهای عجیبی انجام می دهند. شبکه های عصبی با توانایی قابل توجه خود در استنتاج نتایج از داده های پیچیده می توانند در استخراج الگوها و شناسایی گرایش های مختلفی که برای انسان ها و کامپیوتر شناسایی آنها بسیار دشوار است استفاده شوند. از مزایای شبکه های عصبی می توان موارد زیر را نام برد:
1. یادگیری تطبیقی: توانایی یادگیری اینکه چگونه وظایف خود را بر اساس اطلاعات داده شده به آن و یا تجارب اولیه انجام دهد در واقع اصلاح شبکه را گویند.
2. خود سازماندهی: یک شبکه عصبی مصنوعی به صورت خودکار سازماندهی و ارائه داده هایی که در طول آموزش دریافت کرده را انجام دهد. نورون ها با قاعده یادگیری سازگار شده و پاسخ به ورودی تغییر می یابد.
3. عملگرهای بی درنگ: محاسبات در شبکه عصبی مصنوعی می تواند به صورت موازی و به وسیله سخت افزارهای مخصوصی که طراحی و ساخت آن برای دریافت نتایج بهینه قابلیت های شبکه عصبی مصنوعی است انجام شود.
4. تحمل خطا: با ایجاد خرابی در شبکه مقداری از کارایی کاهش می یابد ولی برخی امکانات آن با وجود مشکلات بزرگ همچنان حفظ می شود.
5. دسته بندی: شبکه های عصبی قادر به دسته بندی ورودی ها بر ای دریافت خروجی مناسب می باشند.
6. تعمیم دهی: این خاصیت شبکه را قادر می سازد تا تنها با برخورد با تعداد محدودی نمونه، یک قانون کلی از آن را به دست آورده، نتایج این آموخته ها را به موارد مشاهده از قبل نیز تعمیم دهد. توانایی که در صورت نبود آن سامانه باید بی نهایت واقعیت ها و روابط را به خاطر بسپارد.
7. پایداری ، انعطاف پذیری: یک شبکه عصبی هم به حد کافی پایدار است تا اطلاعات فراگرفته خود را حفظ کند و هم قابلیت انعطاف و تطبیق را دارد و بدون از دست دادن اطلاعات قبلی می تواند موارد جدید را بپذیرد.(Harmon, 1961)
تقسیم بندی شبکه های عصبی
بر مبنای روش آموزش به چهار دسته تقسیم می شوند:(Haykin, Haykin, Haykin, & Haykin, 2009)
1. وزن ثابت: آموزشی در کار نیست و مقادیر وزن ها به هنگام نمی شود.کاربرد آن در بهینه سازی اطلاعات ،کاهش حجم، تفکیک پذیری و فشرده سازی می باشد.
2. آموزش بدون سرپرست: وزن ها فقط بر اساس ورودی ها اصلاح می شوند و خروجی مطلوب وجود ندارد تا با مقایسه خروجی شبکه با آن و تعیین مقدار خطا وزن ها اصلاح شود. وزن ها فقط بر اساس اطلاعات الگوهای ورودی به هنگام می شوند. هدف استخراج مشخصه های الگوهای ورودی بر اساس راهبرد خوشه یابی و یا دسته بندی و تشخیص شباهت ها (تشکیل گروه هایی با الگوی مشابه) می باشد، بدون اینکه خروجی یا کلاس های متناظر با الگوهای ورودی از قبل مشخص باشد. این یاد گیری معمولاً بر پایه شیوه برترین هم خوانی انجام می گیرد. شبکه بدون سرپرست وزن های خود را بر پایه خروجی حاصل شده از ورودی تغییر می دهد تا در برخورد بعدی پاسخ مناسبی را برای این ورودی داشته باشد. در نتیجه شبکه یاد می گیرد چگونه به ورودی پاسخ بدهد. اصولا هدف این است که با تکنیک نورون غالب نورونی که بیشترین تحریک آغازین را دارد برگزیده شود. بنابر این در شبکه های بدون سرپرست یافتن نورون غالب یکی از مهمترین کارها است.
3. آموزش با سرپرست: به ازای هر دسته از الگوهای ورودی خروجی های متناظر نیز به شبکه نشان داده می شود و تغییر وزن ها تا موقعی صورت می گیرد که اختلاف خروجی شبکه به ازای الگوهای آموزشی از خروجی های مطلوب در حد خطای قابل قبولی باشد. در این روش ها یا از خروجی ها به وزن ها ارتباط وجود دارد یا خلا به صورت پس انتشار از لایه خروجی به ورودی توزیع شده است و وزن ها اصلاح می شوند. هدف طرح شبکه ای است که ابتدا با استفاده از داده های آموزشی موجود، آموزش ببیند و سپس با ارائه بردار ورودی به شبکه که ممکن است شبکه آن را قبلا فراگرفته یا نگرفته باشد کلاس آن را تشخیص دهد. چنین شبکه ای به طور گسترده برای کارهای تشخیص الگو به کار گرفته می شود.
4. آموزش تقویتی: کیفیت عملکرد سامانه به صورت گام به گام نسبت به زمان بهبود می یابد. الگوهای آموزشی وجود ندارد اما با استفاده از سیگنالی به نام نقاد بیانی از خوب و یا بد بودن رفتار سامانه بدست می آید (حالتی بین یادگیری با سرپرست و بدون سرپرست).
قابلیت های شبکه عصبی
از جمله قابلیت های شبکه های عصبی میتوان به موارد زیر اشاره کرد:(Beale, Hagan, & Demuth, 1992)
محاسبه یک تابع معلوم
تقریب یک تابع ناشناخته
شناسائی الگو
پردازش سیگنال
یادگیری
کاربرد شبکه های عصبی
شبکه های عصبی چه در بعد آنالیز وتوسعه ساختاری و چه در بعد پیاده سازی سخت افزاری از نظر کمی وکیفی در حال رشد و پیشرفت می باشد و تکنیک های مختلف محاسبات عصبی ازلحاظ تعداد همچنان در حال افزایش هستند. شبکه های عصبی مصنوعی دارای دامنه کاربرد وسیعی می باشند ازجمله می توان به موارد زیر اشاره کرد:(Murray, 1995)
1) هوا و فضا
2) امور مالی
3) صنعت
4) حمل ونقل
5) بانکداری
6) سرگرمی
7) امور دفاعی
8) الکترونیک
9) نفت وگاز
انواع شبکه عصبی
از انواع شبکه های عصبی می توان به موارد زیر اشاره کرد:
شبکه عصبی پرسپترون
شبکه عصبی هاپفیلد
شبکه عصبی همینگ
شبکه عصبی انتشار رو به عقب
شبکه عصبی تاخیر زمانی
شبکه عصبی پرسپترون
این شبکه عصبی برمبنای یک واحد محاسباتی به نام پرسپترون ساخته می شود.یک پرسپترون برداری از ورودیها با مقادیر حقیقی را گرفته و یک ترکیب خطی از ورودی ها را محاسبه می کند. اگر حاصل از یک مقدار آستانه بیشتر بود خروجی پرسپترون برابر با 1 و در غیر اینصورت معادل 1- خواهد بود.شبکه های عصبی پرسپترون، به ویژه پرسپترون چندلایه در زمره کاربردی ترین شبکه های عصبی می باشند، این شبکه ها قادرند باانتخاب مناسب تعدادلایه ها و سلول های عصبی، که اغلب هم زیاد نیستند، یک نگاشت غیر خطی را با دقت دلخواه انجام دهند(Widrow & Lehr, 1990).
پرسپترون تک لایه
نخستین شبکه ای که بررسی میکنیم پرسپترون تک لایه است که ساختار آن به صورت زیر است:
یادگیری یک پرسپترون
یادگیری پرسپترون عبارت است از پیدا کردن مقادیردرستی برایW بنابراین فضای فرضیه Hدریادگیری پرسپترون عبارت است ازمجموعه تمام مقادیرحقیقی ممکن برای بردارهای وزن.خروحی پرسپترون توسط رابطه زیرمشخص میشود:
1 if w0 + w1x1 + w2x2 + … + wnxn > 0
(x1,x2,…,xn) =
-1 otherwise
توابعی که پرسپترون قادر به یادگیری می باشد:
یک پرسپترون فقط قادر است مثالهائی را یاد بگیرد که بصورت خطی جداپذیر باشند.اینگونه مثالها مواردی هستند که بطور کامل توسط یک hyperplane قابل جداسازی میباشند.
خطی جدا نشدنی خطی جدا شدنی
توابع بولی و پرسپترون
یک پرسپترون می تواند بسیاری از توابع بولی را نمایش دهد نظیر AND , OR , NAND , NOR اما نمی تواند XOR را نمایش دهد. در واقع هر تابع بولی را می توان با شبکه ای دوسطحی از پرسپترون ها نشان داد.
شبکه های چند لایه
برخلاف پرسپترونها شبکه های چندلایه میتوانند برای یادگیری مسائل غیرخطی وهمچنین مسائلی با تصمیم گیری های متعدد بکار روند.
مثال:
یک سلول واحد:
برای اینکه بتوانیم فضای تصمیم گیری را بصورت غیر خطی از هم جدا بکنیم، لازم است تا هر سلول واحد را بصورت یک تابع غیر خطی تعریف نمائیم. مثالی از چنین سلولی میتواند یک واحد سیگموئید باشد:
شبکه عصبی هاپفیلد
شبکه هاپفیلد دارای معماری خاصی است که آن را از سایرشبکه ها جدا کرده است.صولا این نوع شبکه ها دارای یک لایه از نرون های ورودی به نرونهای ورودی است و به نوعی میتوان گفت نرون های ورودی همان نرونهای خروجی هستند.(Liao & Yu, 1997)
بر خلاف سایر شبکه ها این شبکه در الگوریتم تربیت وزن های خود را با تکرار معین نمی کند بلکه با فرمول خاصی این کار را انجام میدهد و در الگوریتم شناسایی،ورودی با تکرار،تغییر و به یک شکل معین می رسد.در این شبکه ها در هر زمان فقط یک نرون فعال و سایر نرون ها غیر فعال است به عبارتی چون یک نرون از سایر نرون ها ورودی میگیرد به همین دلیل آن نرون در حال تغییر و دیگر نرون ها ثابت هستند.از این نوع شبکه ها معمولا در برطرف کردن نویز از تصویر و یا هر الگوی دیگر استفاده می شود.
شبکه عصبی همینگ
این شبکه نخستین بار توسط اشتاین بوخ در سال 1961 مطرح شد و در سال های اخیر توسط کسانی چون لیپمن باز نگری شده است این شبکه اساساً جهت حل مسئله شناسایی الگو های باینری ( الگو های برداری که عنصرشان فقط دو مقدار 1 یا 1 – را بر قبول می کند) طراحی شده است . این شبکه هم در چار چوب شبکه های عصبی قرار می گیرد ، چون از یک سری نرون ها به مثابه گره ها و یک سری وزنه ها ی ارتبا طی بین گره ها تشکیل یافته است .(Hassoun, 1995)
هر گره یک سطح فعال دارد که خروجی نرون را می سازد . شبکه همینگ از هر دو ساختار پیشخور وپسخور تشکیل می شود.هدف اصلی در شبکه همینگ این است که تشخیص کدام الگوی مرجع بیشترین نزدیکی را به الگوی ورودی دارد و سپس آن را در خروجی شبکه ظاهر می کند .
شبکه همینگ از سه لایه تشکیل می شود:
لایه پیشخور : نخستین لایه پیشخور که با ماتریس وزن، بردار بایاس و تابع تبدیل خطی نمایندگی می شوند ، ضرب داخلی بین بردار های مرجع با بردار های ورودی را محاسبه می کند. ذخیره سازی الگو های مرجع در شبکه توسط ماتریس وزن به انجام می رسد
لایه برگشتی (WTA) : لایه میانی شبکه همینگ دارای ساختار برگشتی می باشد . این ساختار به ساختار رقابتی معروف است به همین خاطربه لایه میانی شبکه همینگ لایه رقابتی نیز می گویندپس از آنکه تعداد بردار های مرجع یا گنجایش ذخیره سازی شبکه توسط لایه اول همینگ محاسبه شدند زیر شبکه دوم وارد عمل شده ومقادیر خروجی لایه اول را به عنوان مقادیر اولیه خود در نظر می گیرد سپس باز خور خود را در هر تکرار از مقدار ورودی ها کاسته و این عمل را آنقدر تکرار می کند تا خروجی ها در تمام سلول ها به جزء سلول برنده (مشخص کننده بیشترین شباهت الگوی مرجع با بردار ورودی می باشد .) صفر شود در چنین شرایطی لایه میانی، به عبارتی کل شبکه همینگ ، به حالت ماندگار خود رسیده است و ادامه تکرار در لایه میانی بی فایده است به این گونه عملیات ، عملیات از نوع WTA گویند .نهایتاً در لایه میانی رقابت بین نرون ها آغاز می شود و یک نرون برنده شده و باقی نرون ها بازنده می شوند .
لایه سوم : این لایه در شبکه همینگ یک شبکه پیشخور با ماتریس وزنی و تابع تبدیل آـستانه ای متقارن دو مقداره است . وظیفه لایه سوم این است که پس از آنکه لایه دوم همگرا شد ، بردار مرجع ذخیره شده ، در خروجی شبکه ظاهر شود مثلاً در این مثال اگرلایه دوم نشان داد که الگوی مرجع سیب برای ورودی شناسایی می شود آنگاه لایه سوم بردار آن را به عنوان ورودی دریافت و بردار P را در خروجی شبکه ایجاد می کند .
شبکه عصبی تا خیر زمانی
نوعی از شبکه های عصبی چند لایه هستند که توانایی رویارویی با طبیعت دینامیکی داده های نمونه ای و سیگنال های ورودی را دارا می باشد.شبکه های عصبی چند لایه دارای ویژکی های زیر می باشند:
1- دارای چندین لایه بوده ودر هر لایه به تعداد کافی اتصال بین نرون ها موجود است، به طوری که شبکه توانایی یادگیری سطوح تصمیم گیری غیر خطی پیچیده داراست
2- رفتار شبکه نسبت به انتقال زمانی ویزگی های نمونه ها حساس می باشد .
3- روش یادگیری در شبکه نسبت به تطبیق زمانی دقیق نمونه های ورودی حساس است .
شبکه تاخیر زمانی (TDNN) اولین بار در سال 1988 توسط ویبل استفاده شد و تا کنون نیز کماکان به همان صورت باقیمانده است ، شامل سه لایه است که وزن های آن با سلول های تاخیر زمانی جفت شده اند.تابع محرک هرسلولTDNN تابع زیگموویداست و ارای ورودی وزن داده شده هستند.ساختار نرون ها در این شبکه در زیر مشاهده میشود: (Lang, Waibel, & Hinton, 1990)
در طراحی شبکه های عصبی و بخصوص شبکه عصبی تاخیر زمانی ، طراح با مسئله انتخاب شبکه ای مناسب برای طرح خود مواجه است . به طور کلی شبکه ای که با کمترین پیچیدگی و حداقل پارامتر ، بیشترین دقت را در شناسایی الگو های ورودی داشته باشد شبکه مناسب نامیده می شود . در تئوری اگر مسئله ای توسط شبکه ای خاص قابل حل باشد ، توسط شبکه های با اندازه بزرگتر نیزقابل حل است. ولی به خاطر عدم وجود جواب یگانه برای وزن های بهینه الگریتم های یادگیری برای شبکه بزرگتر معمولاً وزنهای مخالف0 را نتیجه می دهند از اینرو برای تشخیص آن یک شبکه با اندازه کوچکتر برای حل مسئله مورد نظر وجود دارد با اشکال مواجه می کند .اگر تعداد نرون های لایه های شبکه مورد استفاده در یک مسئله خاص را کم بگیریم شبکه قادر به یادگیری نخواهد بود زیرا تعداد فوق صفحات و در نتیجه فوق حجم های لازم برای تقسیم بندی فضای ورودی به کلاس های مختلف کافی نخواهد بود از طرف دیگر تعداد زیاد نرون های لایه های پنهان نیز به خاطر بالا رفتن حجم محاسبات ودر نتیجه طولانی شدن زمان تربیت شبکه مناسب نمی باشد علاوه بر این با توجه به آنکه تربیت شبکه بر اساس مجموعه محدودی از الگو های تربیتی صورت می گیرد اگر شبکه خیلی بزرگ باشد سعی در حفظ کردن دقیق الگو های تربیتی می نماید و این امر موجب کاسته شدن از قدرت تعمیم و درون یابی شبکه جهت تشخیص الگوهای جدید و خارج از مجموعه تربیتی می گردد از اینرو یک تعداد بحرانی برای لایه های پنهان وجود دارد که برای هر کاربرد خاص باید پیدا شود.تعداد نرون های لایه پنهانبا شبیه سازی شبکه های مختلف و اندازه گیری میزان دقت و درون یابی این شبکه ها روی الگو هایی که درمجموعه تربیتی آنها نبوده است.تعداد نرون های لایه خروجی شبکه ویا به عبارت دیگر نوع کدینگ در خروجی نیز بایستی برای حل یک مسئله خاص مناسب باشند.بهترین روش کدینگ کردن کلاس های خروجی استفاده از بردار های مقدماتی است .
شبکه انتشار رو به عقب
این شبکه برخلاف شبکه های قبلی از چند لایه تشکیل شده است و علاوه بر لایه های ورودی و خروجی شامل لایه ای موسوم به لایه پنهان است این شبکه به صورت نظارتی کار میکند و خودسازمانده نیست وی از خصوصیات برجسته ای که ان را از سایر شبکه ها جدا میکند این است کهمقادیر نرون های ورودی پیوسته است و ای بدان معنی است که میتوان مقادیر غیر باینری رابه عنوان ورودی به شبکه داد. این شبکه یکی از پرکاربردترین شبکه هاست چرا که میتواند مسایل به شدت غیر خطی و نظارتی را حل کند.(Zipser & Andersen, 1988)
معایب شبکه های عصبی
با وجود برتری هایی که شبکه های عصبی نسبت به سامانه های مرسوم دارند، معایبی نیز دارند که پژوهشگران این رشته تلاش دارند که آنها را به حداقل برسانند، از جمله :(Tu, 1996)
قواعد یا دستورات مشخصی برای طراحی شبکه جهت یک کاربرد اختیاری وجود ندارد.
در مورد مسائل مدل سازی، صرفاً نمی توان با استفاده از شبکه عصبی به فیزیک مساله پی برد. به عبارت دیگر مرتبط ساختن پارامترها یا ساختار شبکه به پارامترهای فرآیند معمولاً غیر ممکن است.
دقت نتایج بستگی زیادی به اندازه مجموعه آموزش دارد.
آموزش شبکه ممکن است مشکل ویا حتی غیر ممکن باشد.
پیش بینی عملکرد آینده شبکه (عمومیت یافتن) آن به سادگی امکان پذیر نیست.
کاربرد شبک ههای عصبی در مخازن نفت و گاز :
مدلهای شبکه عصبی هوشمند، نقش بسیار مهمی در تحقیقات انجام شده در زمینه های مختلف تخصصی مهندسی مخازن نفت و گاز از جمله : زمین شناسی، اجرا و تولید (Production & Performance) خصوصیات فیزیکی و شیمیایی محصول و … را داشته و نتایج حاصل و پیش بینی های صورت گرفته توسط این مدلها بسیار حائز اهمیت می باشد. تا حدی که بهره برداری از این نتایج در اجرا در مناطق مختلف نفت خیز دنیا کمک شایانی در پیشبرد اهداف متخصصین این امر داشته است . در همین رابطه در این اینجا مواردی از استفاده از مدلهای شبکه عصبی هوشمند در تحقیقات انجام شده در زمینه مهندسی مخازن نفت و گاز و شرح مختصر آنها ارائه می گردد. با توجه به تعداد و حجم زیاد مطالب، به ذکر مهمترین آنها پرداخته شده است :
استفاده از شبکه های عصبی مصنوعی در تکمیل، انگیزش و طراحی مخازن نفت و گاز
با توجه به اینکه روشهای بهینه سازی اغلب به دو دلیل مشکل می باشد: یکی تغییرات مربوط به کیفیت مخازن و دوم نواقص کلی به مفهوم پیچیدگی اثرات متقابل بین روشهای تحریک و تکمیل چاه و مخزن. لذا شبکه های عصبی مصنوعی میتوانند برای کمک به اصلاحات اقتصادی چاه مورد استفاده قرار گیرند . مدلهای ANN برای توجیه مخزن، چاه و اطلاعات تکمیلی که می تواند فرآوری انباشتگی چاه را با یک درجه قابل قبول دقت، پیش بینی کند، آموزش دیده می شو ند.
تکنولوژی ANN در چنین حوزه هایی که روشهای مهندسی مرسوم ایجاد نتایج غیرقابل قبول می کند مورد استفاده قرار می گیرد.
روشهای شبکه عصبی برای پیش بینی تولید چاه نفت
اطلاعات تاریخچه تولید چندین چاه برای آموزش و استقرار شبکه عصبی استفاده شده است. استقرار این شبکه می تواند برای پیش بینی تولید آینده از چاههای نفت مورد استفاده قرار گیرد. در چاه ی که هیچگونه اطلاعات و داده های مخزن که جهت استقرار شبکه عصبی نیاز است وجود نداشته باشد، این شبکه آموزش دیده می تواند اجرای تولید چاه را در غیاب اطلاعات مخزن پیش بینی کند . هر دو اطلاعات دینامیکی و استاتیکی در آموزش شبکه مورد استفاده قرار گرفته اند. در این روش پیش بینی های سری زمان و فضا با یکدیگر ترکیب شده اند .
شبکه های عصبی و کاربرد آنها در مهندسی کنترل
در عمل بسیاری از سیستم ها غیرخطی هستند، که در بسیاری از کارهای عملی سیستم با استفاده از یک تابع تبدیل خطی حول نقطه کار مدل می شود که در این صورت با استفاده از یک کنترل کننده خطی کنترل می-شود. اما باید توجه داشت که در بعضی سیستم ها به دلیل درجه غیرخطی گری بالای سیستم، با تغییر اندکی حول نقطه کار مدل خطی دیگر معتبر نبوده و کنترل کننده خطی در نقطه کار جدید با مشکل روبرو خواهد شد. برای حل این مشکل عموماً استفاده از یک مدل سازی معتبر و قابل قبول تر، حول نقطه کار مورد نظر ضروری به نظر می رسد. در اینجا استفاده از شبکه های عصبی به عنوان ابزارهایی که از انعطاف پذیری بالایی برخوردار هستند، مورد توجه قرار می گیرد. شبکه های عصبی از نورون ها با لایه های متعدد ساخته می شوند، در ساختار شبکه خروجی با استفاده از اعمال ساده ریاضی بدست می آید. در شکل زیر یک نورون شبکه عصبی نشان داده شده است. در علم مهندسی کنترل، شبکه های عصبی در دو کاربرد تخمین گرها و کنترل کننده ها مورد استفاده قرار می گیرند. در کاربردهایی که این شبکه به عنوان تخمین گر مورد استفاده قرار می گیرد، به تخمین و توصیف رفتار یک سیستم دینامیکی می پردازد. این کار با استفاده از الگوریتم های آموزش انجام می شود که بر روی داده هایی تحت عنوان "داده های آموزش" انجام می شود. در کاربرد کنترل کننده، این شبکه به صورت آنلاین عمل آموزش و کنترل را انجام می دهد. در زمینه تخمینگرهای عصبی، بحث بر روی مدل سازی شبکه در نقاط کاری متفاوت با حفظ بازدهی مناسب، به موضوعی داغ در راستای تحقیقات تبدیل شده است. با توجه به وابستگی شدید بازدهی شبکه به داده های ورودی، می توان گفت در بسیاری از ساختارها و سیستم ها، نحوه توزیع داده ورودی به منظور داده برداری، کیفیت و کارایی شبکه را تعیین می کند. در راستای استفاده از این شبکه به منظور اهداف کنترلی، در بسیاری از منابع علمی، در کنترل کننده های مبتنی بر مدل از این شبکه ها به عنوان مدل استفاده می شود که کارایی شبکه به دقت این مدل بستگی دارد(Bhat & McAvoy, 1990).
References
Basheer, I. A., & Hajmeer, M. (2000). Artificial neural networks: fundamentals, computing, design, and application. Journal of Microbiological Methods, 43(1), 3-31.
Beale, M., Hagan, M. T., & Demuth, H. B. (1992). Neural network toolbox. Neural Network Toolbox, The Math Works, 5, 25.
Bhat, N., & McAvoy, T. J. (1990). Use of neural nets for dynamic modeling and control of chemical process systems. Computers & Chemical Engineering, 14(4), 573-582.
Brooks, R. A. (1991). Intelligence without representation. Artificial Intelligence, 47(1), 139-159.
Forbus, K. D. (1984). Qualitative process theory. Artificial Intelligence, 24(1), 85-168.
Hagan, M. T., Demuth, H. B., & Beale, M. H. (1996). Neural network design. Pws Pub. Boston.
Harmon, L. D. (1961). Studies with artificial neurons, I: Properties and functions of an artificial neuron. Biological Cybernetics, 1(3), 89-101.
Hassoun, M. H. (1995). Fundamentals of artificial neural networks. MIT press.
Haykin, S. S., Haykin, S. S., Haykin, S. S., & Haykin, S. S. (2009). Neural networks and learning machines (Vol. 3). Pearson Education Upper Saddle River.
Jain, A. K., Mao, J., & Mohiuddin, K. M. (1996). Artificial neural networks: A tutorial. Computer, (3), 31-44.
Lang, K. J., Waibel, A. H., & Hinton, G. E. (1990). A time-delay neural network architecture for isolated word recognition. Neural Networks, 3(1), 23-43.
Liao, X., & Yu, J. (1997). Robust stability for interval Hopfield neural networks with time delay. IEEE Transactions on Neural Networks/a Publication of the IEEE Neural Networks Council, 9(5), 1042-1045.
Murray, A. F. (1995). Applications of neural networks. Springer.
Russell, S., & Norvig, P. (1995). Artificial intelligence: a modern approach.
Tu, J. V. (1996). Advantages and disadvantages of using artificial neural networks versus logistic regression for predicting medical outcomes. Journal of Clinical Epidemiology, 49(11), 1225-1231.
Widrow, B., & Lehr, M. (1990). 30 years of adaptive neural networks: perceptron, madaline, and backpropagation. Proceedings of the IEEE, 78(9), 1415-1442.
Zipser, D., & Andersen, R. A. (1988). A back-propagation programmed network that simulates response properties of a subset of posterior parietal neurons. Nature, 331(6158), 679-684.
1 Neural Network
2 Artificial Neural Network
—————
————————————————————
—————
————————————————————
21