Quantcast
Channel: نفت و گاز ایران
Viewing all articles
Browse latest Browse all 381

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

$
0
0

دوستان شبکه عصبی یه موضوعی بسیار جذاب برای تحقیق و نیاز مبرم برای موسسه های تحقیقاتی می باشد به طوری دوستانی که تجربه اپلای کردن دارند حسرت اینکه چرا روی این زمینه تحقیاتی کار نکرده اند را همیشه می خورند

چکیده

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

مقدمه

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

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

قواعد يادگيري شبكه‌هاي عصبي مصنوعي

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

در يادگيري نظارتي به شبكه آموخته مي‌شود كه بين داده‌هاي آموزشي و خروجي‌هاي مربوط ارتباط برقرار كند در واقع يك معلم وجود دارد كه در مرحله يادگيري به شبكه مي‌گويد چقدر خوب كار مي‌كند (تقويت يادگيري) يا مي‌گويد رفتار صحيح چه بايد باشد (يادگيري كاملا نظارتي). در يادگيري بدون نظارت شبكه خودكار عمل مي‌كند. شبكه در اين حالت فقط به داده‌هايي كه به آن داده مي‌شود، نگاه مي‌كند، سپس بعضي از ويژگي‌هاي مجموعه داده‌ها را پيدا كرده و ياد مي‌گيرد كه اين ويژگي‌ها را در خروجي خود منعكس كند اينكه اين خصوصيات دقيقا چه هستند، به مدل خاص شبكه و روش يادگيري بستگي دارد. نوع ديگر طبقه‌بندي براساس توپولوژي سلول به يكديگر در داخل شبكه است كه به دو دسته تقسيم مي‌شوند شبكه‌هاي با تغذيه پيشرو و شبكه‌هاي با تغذيه برگشتي. در شبكه پيشرو اطلاعات ورودي (Input) را وارد كرده و به لايه‌ مياني (Hidden) و در نهايت به لايه خروجي (output) مي‌رود كه جواب ما در آنجا مشاهده مي‌شود كه در اين نوع توپولوژي لايه‌ها عينا به هم متصل هستند و حتما بايد يك پل ارتباطي بين آنها وجود داشته باشد و پرسشي نداريم و هميشه جهت اطلاعات از ورودي به خروجي است در حالي كه در شبكه برگشتي جهت جريان به‌صورت يك طرفه نيست بلكه چرخشي است كه اكثر شبكه‌هاي عصبي امروز مورد استفاده از نوع اول يعني تغذيه پيشرو است.



معرفي روش پس انتشار

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

مراحل الگوريتم پس انتشار را مي‌توان به صورت زير بيان كرد:

شبكه يك مثال آموزشي را دريافت مي‌كند و با استفاده از اوزان موجود در شبكه كه در ابتدا به‌صورت تصادفي مقداردهي مي‌شود، خروجي‌ها را محاسبه مي‌كند.

خطا يعني اختلاف بين نتيجه محاسبه شده (خروجي) و مقدار مورد انتظار محاسبه مي‌شود.

خطا درون شبكه منتشر مي‌شود و اوزان براي حداقل كردن خطا از نو تنظيم مي‌شوند.

مهمترين بخش تنظيم اوزان است كه پس از محاسبه خطاي پيشگويي براي نمونه اول ورودي به سيستم، وزن‌ها از آخرين لايه به سوي نخستين لايه به تدريج طوري تغيير مي‌كنند كه خطاي پيشگويي كمتر مي‌شود. در واقع BP سرشكن كردن خطا بر روي سلول‌هاي (گره‌هاي) يك لايه و نيز لايه بعدي است پس از اين اطلاعات نمونه دوم به شبكه خوانده مي‌شود مسلما با همان وزن‌ها نمونه جديد مجددا خطا خواهد داشت. بنابراين روش توزيع معكوس مجددا دست به كار شده و وزن‌ها را طوري تغيير مي‌دهد كه كمترين خطا را (هم براي اين نمونه و هم براي نمونه قبلي) ايجاد كند به اين ترتيب پس از خواندن تعداد نمونه كافي به ورودي شبكه، اصطلاحا شبكه Converge يا همگرا شده يعني ميزان خطا به حداقل تعداد خود مي‌رسد. اين به معناي موفقيت در مرحله يادگيري است و شبكه آماده است تا براي مرحله پيشگويي به‌كار ‌رود.

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



تفاوت روش محاسباتي متداول با روش محاسباتي شبكه‌هاي عصبي

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


Viewing all articles
Browse latest Browse all 381

Trending Articles