شنبه ۲۹ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

مبانی هوش مصنوعی - سیستم‌های خبره

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

سیستم‌های خبره چیست؟

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

ویژگی‌های سیستم‌های خبره

  • کارایی بالا
  • قابل فهم
  • قابل اعتماد
  • پاسخگویی بسیار سریع

قابلیت‌های سیستم‌های خبره

سیستم‌های خبره قادر به −

  • مشاوره
  • دستور دادن و کمک به انسان در تصمیم‌گیری
  • نمایش دادن
  • یافتن راه حل
  • تشخیص دادن
  • توضیح دادن
  • تفسیر کردن ورودی
  • پیش‌بینی نتایج
  • توجیه کردن نتیجه
  • پیشنهاد دادن گزینه‌های جایگزین به یک مسئله

هستند.

آنها قادر به −

  • جایگزینی تصمیم‌گیران انسانی نیستند
  • دارای قابلیت‌های انسانی نیستند
  • تولید خروجی دقیق برای پایگاه دانش ناکافی نیستند
  • دانش خود را بهبود نمی‌دهند

اجزای سیستم‌های خبره

اجزای یک سیستم خبره عبارتند از −

  • پایگاه دانش
  • موتور استنتاج
  • رابط کاربری

بیایید به تفصیل هر کدام را بررسی کنیم −

سیستم خبره

پایگاه دانش

این پایگاه دانش شامل دانش خاص حوزه و با کیفیت بالا است.

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

دانش چیست؟

داده مجموعه‌ای از حقایق است. اطلاعات به عنوان داده‌ها و حقایق در مورد حوزه وظیفه ، سازماندهی می‌شوند. داده، اطلاعات، و تجربیات گذشته با هم به عنوان دانش شناخته می‌شوند.

اجزای پایگاه دانش

پایگاه دانش یک سیستم خبره ، ذخیره‌سازی دانش واقعی و هیوریستیک است.

  • دانش واقعی − اطلاعاتی است که توسط مهندسان دانش و دانشمندان حوزه وظیفه به عنوان صحیح شناخته شده‌اند.

  • دانش هیوریستیک − در مورد عمل، ارزیابی دقیق، توانایی ارزیابی و حدس زدن فرد است.

نمایش دانش

این روشی است که برای سازماندهی و فرمالیزه کردن دانش در پایگاه دانش استفاده می‌شود. این به شکل قوانین IF-THEN-ELSE است.

یادگیری دانش

موفقیت هر سیستم خبره به طور عمده به کیفیت، کمال و دقت اطلاعات ذخیره شده در پایگاه دانش بستگی دارد.

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

او اطلاعات را از متخصص موضوع با ضبط، مصاحبه و مشاهده در حال کار، و غیره به دست می‌آورد. سپس اطلاعات را به شکل معنی‌دار و به شکل قوانین IF-THEN-ELSE دسته‌بندی و سازماندهی می‌کند تا توسط ماشین استنتاج استفاده شود. مهندس دانش نیز پیشرفت سیستم خبره را نظارت می‌کند.

موتور استنتاج

استفاده از روش‌ها و قوانین کارآمد توسط موتور استنتاج در استنتاج یک راه حل صحیح و بی‌نقص ضروری است.

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

در مورد سیستم‌های خبره مبتنی بر قوانین، این −

  • قوانین را به حقایق که از برنامه قبلی حاصل شده‌اند، اعمال می‌کند.

  • اگر لازم باشد دانش جدید را به پایگاه دانش اضافه می‌کند.

  • هنگامی که چندین قانون برای یک مورد خاص قابل اعمال باشند، اختلافات قوانین را حل می‌کند.

برای پیشنهاد یک راه حل، موتور استنتاج از استراتژی‌های زیر استفاده می‌کند −

  • پیشروی گام به گام (Forward Chaining)
  • پسروی گام به گام (Backward Chaining)

پیشروی گام به گام

این استراتژی یک سیستم خبره برای پاسخ به سوال «چه اتفاقی ممکن است بیفتد؟» استفاده می‌شود.

در اینجا، موتور استنتاج زنجیره شرایط و استنتاجات را دنبال می‌کند و در نهایت به نتیجه می‌رسد. تمام حقایق و قوانین را در نظر می‌گیرد و مرتب می‌کند پیش از اینکه به یک راه حل نهایی برسد.

این استراتژی برای کار روی استنتاج، نتیجه یا اثر انجام می‌شود. به عنوان مثال، پیش‌بینی وضعیت بازار سهام به عنوان یک اثر تغییرات نرخ.

پیشروی گام به گام

پسروی گام به گام

با این استراتژی، یک سیستم خبره پاسخ به سوال «چرا این اتفاق افتاد؟» را پیدا می‌کند.

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

پسروی گام به گام

رابط کاربری

رابط کاربری ارتباط بین کاربر سیستم خبره و خود سیستم خبره فراهم می‌کند. این عموماً پردازش زبان طبیعی است تا توسط کاربری که در حوزه وظیفه ماهر است استفاده شود. کاربر سیستم خبره لازم نیست الزاماً یک متخصص در هوش مصنوعی باشد.

توضیحات سیستم خبره زمانی که به یک توصیه خاص رسیده است ممکن است به یکی از این اشکال ظاهر شود −

  • زبان طبیعی که روی صفحه نمایش نشان داده شود.
  • توضیحات شفاهی به زبان طبیعی.
  • لیست شماره‌های قوانین که روی صفحه نمایش داده شده‌اند.

رابط کاربری امکان پیگیری قابلیت اطمینان از استنتاج‌ها را فراهم می‌کند.

نیازهای رابط کاربری کارآمد سیستم‌های خبره

  • باید به کاربران کمک کند تا با کوتاه‌ترین راه ممکن اهداف خود را دست‌یابی کنند.

  • باید طراحی شده باشد تا برای روش‌های کاری موجود یا مطلوب کاربر کار کند.

  • فناوری آن باید قابل تطبیق با نیازهای کاربر باشد؛ نه برعکس.

  • باید از ورودی کاربر به بهترین نحو استفاده کند.

محدودیت‌های سیستم‌های خبره

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

  • محدودیت‌های فناوری
  • یادگیری دانش دشوار
  • نگهداری دشوار سیستم‌های خبره
  • هزینه‌های توسعه بالا

کاربردهای سیستم‌های خبره

جدول زیر نشان می‌دهد که سیستم‌های خبره کجا می‌توانند به کار گرفته شوند.

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

تکنولوژی سیستم‌های خبره

چندین سطح از فناوری‌های سیستم‌های خبره وجود دارد. فناوری‌های سیستم‌های خبره شامل −

  • محیط توسعه سیستم خبره − محیط توسعه سیستم خبره شامل سخت‌افزار و ابزارها است. آنها −

    • ایستگاه‌های کاری، مینی‌کامپیوترها، مین‌فریم‌ها.

    • زبان‌های برنامه‌نویسی سطح بالا مانند LISt Programming (LISP) و PROgrammation en LOGique (PROLOG).

    • پایگاه‌های داده بزرگ.

  • ابزارها − تلاش و هزینه مربوط به توسعه یک سیستم خبره را به حد زیادی کاهش می‌دهند.

    • ویرایشگرهای قدرتمند و ابزارهای اشکال‌زدایی با چند پنجره.

    • پروتوتایپ‌سازی سریع فراهم می‌کنند.

    • تعاریف توده‌ای مدل، نمایش دانش و طراحی استنتاجی دارند.

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

    • پوسته سیستم خبره جاوا (JESS) که یک API جاوا کاملاً توسعه یافته برای ایجاد یک سیستم خبره فراهم می‌کند.

    • ویدوان، یک پوسته که در مرکز ملی فناوری نرم‌افزار مومبای در سال 1993 توسعه داده شده‌است. این اجازه را می‌دهد که دانش به شکل قوانین IF-THEN کد گذاری شود.

توسعه سیستم‌های خبره: گام‌های عمومی

فرآیند توسعه سیستم‌های خبره (ES) به صورت مکرر انجام می‌شود. گام‌های توسعه ES شامل موارد زیر هستند −

شناسایی حوزه مسئله

  • مشکل باید مناسب برای یک سیستم خبره باشد تا آن را حل کند.
  • کارشناسان حوزه وظیفه را برای پروژه سیستم خبره پیدا کنید.
  • اقتصادی بودن سیستم را تأیید کنید.

طراحی سیستم

  • شناسایی فناوری سیستم خبره

  • درک و تأیید درجه ادغام با سایر سیستم‌ها و پایگاه‌های داده.

  • درک کنید که چگونه مفاهیم می‌توانند دانش حوزه را بهتر نمایند.

توسعه نمونه کارکرد (پروتوتایپ)

از پایگاه دانش: مهندس دانش کار می‌کند تا −

  • دانش حوزه را از کارشناس به دست آورد.
  • آن را به صورت قوانین IF-THEN-ELSE نمایش دهد.

آزمایش و بهبود نمونه کارکرد (پروتوتایپ)

  • مهندس دانش از موارد نمونه برای آزمایش پروتوتایپ برای هر نقصان در عملکرد استفاده می‌کند.

  • کاربران نهایی پروتوتایپ‌های سیستم‌های خبره را آزمایش می‌کنند.

توسعه و به پایان رساندن سیستم خبره

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

  • پروژه سیستم خبره را به خوبی مستند سازی کنید.

  • کاربر را آموزش دهید تا از سیستم خبره استفاده کند.

نگهداری سیستم

  • اطمینان حاصل کنید که پایگاه دانش با بازبینی و به‌روزرسانی منظم به‌روز است.

  • برای واسطه‌های جدید با سایر سیستم‌های اطلاعاتی که آن سیستم‌ها تکامل می‌کنند، مرتب کنید.

مزایای سیستم‌های خبره

  • دسترسی − به دلیل تولید گسترده نرم‌افزار، به راحتی دسترسی پیدا می‌کنند.

  • هزینه تولید کمتر − هزینه تولید معقول است. این باعث می‌شود که قابل انجام باشند.

  • سرعت − سرعت بالایی ارائه می‌دهند. میزان کاری که یک فرد انجام می‌دهد را کاهش می‌دهند.

  • نرخ خطا کمتر − نرخ خطا کمتر است نسبت به خطاهای انسانی.

  • کاهش خطر − می‌توانند در محیط‌هایی که برای انسان‌ها خطرناک است کار کنند.

  • پاسخ پایدار − آنها بدون حالت هیجانی، تنش و خستگی به طور پایدار کار می‌کنند.