کاربرد شبکه های عصبی مصنوعی در مهندسی نفت
برای مشاهده این مقاله بر روی ادامه مطلب کلیک نمایید :
دوستان شبکه عصبی یه موضوعی بسیار جذاب برای تحقیق و نیاز مبرم برای موسسه های تحقیقاتی می باشد به طوری دوستانی که تجربه اپلای کردن دارند حسرت اینکه چرا روی این زمینه تحقیاتی کار نکرده اند را همیشه می خورند
چکیده
امروزه استفاده از شبکههای عصبی مصنوعی در رشتههای مهندسی در حال افزایش است بهطوری که برای یک مهندس نحوه استفاده و عملکرد آن ضروری است. در این مقاله ابتدا به توضیح مختصری درباره شبکههای عصبی مصنوعی میپردازد و در نهایت به برخی از کاربردهای آن در مهندسی نفت اشاره میکنیم. شبکههای عصبی برای حل مسائلی بهکار میروند که فرمول حل آنها ناشناخته است و مدل علت و معلولی یا برای آنها وجود ندارد و یا ابهام قابل ملاحظهای در آن دیده میشود، علت نبود روابط ریاضی لازم برای تشریح چنین مسائلی این است که حتی خود مسئله بهطور کامل و بدون ابهام شناخته شده است. در مهندسی نفت از شبکههای عصبی در زمینههای مختلفی از قبیل اکتشاف، تخمین هیدروکربور درجا، نمودارگیری و .... استفاده شده است، شبکه عصبی در مهندسی نفت هم چند کاربرد مخصوص هم دارد. کلمات کلیدی: شبکههای عصبی مصنوعی، نرون، نفت، اکتشاف، تخمین هیدروکربور درجا، نمودار.
مقدمه
فرض کنید شما به عنوان یک مهندس نفت بر روی میزان نفوذپذیری سنگهای مخزن کار میکنید. تصور کنید که اطلاعاتی از قبیل تخلخل، جنس دانهها، سیال پرکننده حفرات، محیط رسوبی و فشار منفذی را در مورد چند نمونه سنگ که توسط مغزهگیری بهدست آمده دارید و نیز میزان نفوذپذیری این چند نمونه را هم با استفاده از روشهای آزمایشگاهی مکانیک سنگ و معیارهای مختلف در دسترس، محاسبه کردهاید ولی هیچگونه اطلاعی در مورد نحوه تاثیر این پارامترها بر میزان نفوذپذیری سنگها نداریم پس ما این اطلاعات و میزان نفوذپذیری را به یک برنامه کامپیوتری میدهیم حال کار این برنامه تجزیه و تحلیلهای مشکلی است که در نهایت منجر به یک مدل ریاضی میشود که ما میتوانیم اطلاعات مربوط به یک سنگ جدید را به برنامه داده و برنامه به راحتی میزان نفوذپذیری آن را به ما تحویل دهد، این روند اساس کار شبکههای عصبی مصنوعی است.
شبکههای عصبی مصنوعی در واقع از ساختارهای بسیار پیچیده مغز انسان الهام گرفته شده است که در آن میلیونها سلول عصبی از طریق ارتباطی که با هم دارند به حل مسائل یا ذخیرهسازی اطلاعات میپردازند. وظیفه شبکه عصبی یادگیری است. در واقع شبکه عصبی همانند کودک خردسالی است که در ابتدا هیچ چیز نمیداند. در این فرآیند ابتدا از طریق آموزش یا همان مرحله کسب تجربه که به کمک یکسری دادههای ورودی و خروجی مطلوب انجام میپذیرد، اجرا میشود به این صورت که مجموعهای از ورودیها و خروجیهای درست به شبکه داده میشود و شبکه عصبی با استفاده از این ورودیها (مثالها) مول ریاضی پیچیدهای میسازد که در صورت دادن ورودیهای جدید، پاسخ درستی را تولید کند
قواعد یادگیری شبکههای عصبی مصنوعی
در حال حاضر تعداد بسیار زیادی قاعده یادگیری برای شبکههای عصبی وجود دارد. هیچکس دقیقا تعداد آنها را نمیداند طبقهبندیهای مختلفی برای شبکههای عصبی وجود دارد اول باید بدانیم که زمانی به پروانه یادگیری نیاز است که اطلاعات کامل در مورد اهداف موجود نباشد، جایی که میدانیم به علت عدم قطعیت در شرایط محیطی، سیستمی که دارای خواص یا پارامترهای ثابت باشد بهطور کامل عمل کند رفتار سیستمهای یادگیری توسط الگوریتمهای بازگشتی بیان میشود به همین خاطر در این الگوریتمها که قوانین یادگیری اطلاق میشود و عموما توسط معادلات دیفرانسیلی بیان میشود به پروسه یادگیری نیاز است چون اطلاعات ارتباط ورودی و خروجی کاملا مشخص نیستند. میدانیم که تجربهها در مسیر زمان حاصل میشوند به عبارت دیگر هیچکس آینده خود را تجربه نکرده است میزان یادگیری ما به درجه کامل بودن اطلاعات قبلی ما بستگی دارد در حالت کلی دو نوع یادگیری موجود است تحت نظارت و بدون نظارت.
در یادگیری نظارتی به شبکه آموخته میشود که بین دادههای آموزشی و خروجیهای مربوط ارتباط برقرار کند در واقع یک معلم وجود دارد که در مرحله یادگیری به شبکه میگوید چقدر خوب کار میکند (تقویت یادگیری) یا میگوید رفتار صحیح چه باید باشد (یادگیری کاملا نظارتی). در یادگیری بدون نظارت شبکه خودکار عمل میکند. شبکه در این حالت فقط به دادههایی که به آن داده میشود، نگاه میکند، سپس بعضی از ویژگیهای مجموعه دادهها را پیدا کرده و یاد میگیرد که این ویژگیها را در خروجی خود منعکس کند اینکه این خصوصیات دقیقا چه هستند، به مدل خاص شبکه و روش یادگیری بستگی دارد. نوع دیگر طبقهبندی براساس توپولوژی سلول به یکدیگر در داخل شبکه است که به دو دسته تقسیم میشوند شبکههای با تغذیه پیشرو و شبکههای با تغذیه برگشتی. در شبکه پیشرو اطلاعات ورودی (Input) را وارد کرده و به لایه میانی (Hidden) و در نهایت به لایه خروجی (output) میرود که جواب ما در آنجا مشاهده میشود که در این نوع توپولوژی لایهها عینا به هم متصل هستند و حتما باید یک پل ارتباطی بین آنها وجود داشته باشد و پرسشی نداریم و همیشه جهت اطلاعات از ورودی به خروجی است در حالی که در شبکه برگشتی جهت جریان بهصورت یک طرفه نیست بلکه چرخشی است که اکثر شبکههای عصبی امروز مورد استفاده از نوع اول یعنی تغذیه پیشرو است.
معرفی روش پس انتشار
رایجترین تکنیک آموزش نظارتی، الگوریتم پس انتظار خطا است. یادگیری این الگوریتم بر پایه قانون تصحیح خطا بنا شده است که میتوان آن را تعمیم الگوریتم مرسوم به حداقل میانگین مربعات دانست. یادگیری از طریق این روش (پس انتشار) دو مرحله دارد: مرحله پیشروی و مرحله بازگشت. در مرحله پیشروی ورودیها به صورت لایه به لایه در شبکه پیش میرود و در پایان یکسری خروجی بهعنوان جواب حقیقی شبکه بهدست میآید، در این مرحله توازن اتصال ثابت است. در مرحله بازگشت، اوزان اتصال بر اساس قانون تصحیح خطا، تغییر میکند. تفاضل پاسخ حقیقی شبکه و پاسخ مورد انتظار که خطا نامیده میشود در جهت مخالف اتصالات در شبکه منتشر میشود و اوزان بهگونهای تغییر مییابد که پاسخ حقیقی شبکه به پاسخ مطلوب نزدیکتر شود.
مراحل الگوریتم پس انتشار را میتوان به صورت زیر بیان کرد:
شبکه یک مثال آموزشی را دریافت میکند و با استفاده از اوزان موجود در شبکه که در ابتدا بهصورت تصادفی مقداردهی میشود، خروجیها را محاسبه میکند.
خطا یعنی اختلاف بین نتیجه محاسبه شده (خروجی) و مقدار مورد انتظار محاسبه میشود.
خطا درون شبکه منتشر میشود و اوزان برای حداقل کردن خطا از نو تنظیم میشوند.
مهمترین بخش تنظیم اوزان است که پس از محاسبه خطای پیشگویی برای نمونه اول ورودی به سیستم، وزنها از آخرین لایه به سوی نخستین لایه به تدریج طوری تغییر میکنند که خطای پیشگویی کمتر میشود. در واقع BP سرشکن کردن خطا بر روی سلولهای (گرههای) یک لایه و نیز لایه بعدی است پس از این اطلاعات نمونه دوم به شبکه خوانده میشود مسلما با همان وزنها نمونه جدید مجددا خطا خواهد داشت. بنابراین روش توزیع معکوس مجددا دست به کار شده و وزنها را طوری تغییر میدهد که کمترین خطا را (هم برای این نمونه و هم برای نمونه قبلی) ایجاد کند به این ترتیب پس از خواندن تعداد نمونه کافی به ورودی شبکه، اصطلاحا شبکه Converge یا همگرا شده یعنی میزان خطا به حداقل تعداد خود میرسد. این به معنای موفقیت در مرحله یادگیری است و شبکه آماده است تا برای مرحله پیشگویی بهکار رود.
توجه به این نکته اهمیت دارد که اگر تعداد نرونها و لایه پنهان مورد استفاده، بیش از حد معمول باشد، سیستم به جای تجزیه و تحلیل دادهها آنها را حفظ میکند و اصطلاحا دچار over Training (over Fitting Oscillation) میشود. در این حالت مدل بهدست آمده قادر خواهد بود که دادههای مشابهی را که در مرحله یادگیری مورد استفاده قرار گرفته را دقیقا پیشبینی کند. اما اگر دادههای جدیدی که در مرحله آموزش از آنها استفاده شده، بهکار گرفته شود، سیستم عملکرد بسیار بدی را خواهد داشت و خطای پیشبینی زیاد خواهد شد. بهمنظور جلوگیری از این پدیده از روش اعتبارسنجی متقاطع استفاده میشود در این تکنیک مجموعه دادههای اولیه به سه دسته آموزش، تست و اعتبار تقسیمبندی میشوند اعتبار شبکه همزمان با آموزش در هر دور سنجیده میشود و درست وقتی که خطا روی دادههای اعتبار شروع به بالا رفتن میکند، آموزش شبکه قطع میشود.
تفاوت روش محاسباتی متداول با روش محاسباتی شبکههای عصبی
در روشهای معمولی، گامهای محاسباتی از پیش تعیین شده و دارای توالی منطقی هستند، در مقایسه ANNها نه توالی دارند و نه الزاما از پیش تعیین شده هستند در این حالت پردازشگرهای پیچیده مرکزی وجود ندارند، بلکه تعداد زیادی پردازشگر ساده وجود دارد که کاری جز گرفتن جمع وزنی ورودیهایشان از دیگر پردازشگرها ندارند. مدلسازی کلاسیک از نخستین قدم خطای بزرگی را مرتکب میشود که فقط در سیستمهای ساده (خطی یا نزدیک به خطی) قابل صرفنظر است. نخستین قدم در روش کلاسیک برای بررسی دادهها، بررسی شاخصهایی مثل میانگین، انحراف معیار و... است. از این مرحله به بعد در روش کلاسیک، کاری با تکتک نمونهها نداریم و اهمیت فردی آنها از بین میرود. در واقع روش کلاسیک با عملی شبیه همگن کردن دادهها، پیچیدگی روابط آنها را محو میکند و به این دلیل از کشف این پیچیدگیها باز میماند. به این دلیل ترتیب سیستم کلاسیک در استخراج معنی از دادههای ضعیف و با بازده پایین عمل میکند و در بسیاری از موارد از کشف روابط بین دادهها ناکام میماند. اگر میتوانستیم سیستمی داشته باشیم که با اهمیت دادن به فردفرد دادهها آنها را تجزیه و تحلیل کند و نیز بدون پیشداوری در مورد شکل تابع هر پارامتر (خطی یا غیرخطی بدون تابع) آن را ذخیره و ارزیابی کند، چنین سیستمی میتوانست نتایج بیشتری را از عمق دادهها بیرون بکشد. شبکههای عصبی مصنوعی این قابلیت را دارند و به همین خاطر بسیار مورد توجه قرار گرفتهاند.