بسم الله الرحمن الرحیم
کاربردهای هوش مصنوعی در زمینه های علمی
سال 92
دانشکده صنعت کرمان
مقدمه
بطور کلی ماهیت وجودی هوش به مفهوم جمع آوری اطلاعات، استقرا و تحلیل تجربیات به منظور رسیدن به دانش و یا ارایه تصمیم می باشد. در واقع هوش به مفهوم به کارگیری تجربه به منظور حل مسائل دریافت شده تلقی می شود. هوش مصنوعی علم و مهندسی ایجاد ماشینهایی با هوش با به کارگیری از کامپیوتر و الگوگیری از درک هوش انسانی و یا حیوانی و نهایتاً دستیابی به مکانیزم هوش مصنوعی در سطح هوش انسانی می باشد.
در مقایسه هوش مصنوعی با هوش انسانی می توان گفت که انسان قادر به مشاهده و تجزیه و تحلیل مسایل در جهت قضاوت و اخذ تصمیم می باشد در حالی که هوش مصنوعی مبتنی بر قوانین و رویه هایی از قبل تعبیه شده بر روی کامپیوتر می باشد. در نتیجه علی رغم وجود کامپیوترهای بسیار کارا و قوی در عصر حاضر ما هنوز قادر به پیاده کردن هوشی نزدیک به هوش انسان در ایجاد هوشهای مصنوعی نبوده ایم.
بطور کلّی، هوش مصنوعی را می توان از زوایای متفاوتی مورد بررسی و مطالعه قرار داد. مابین هوش مصنوعی به عنوان یک هدف، هوش مصنوعی به عنوان یک رشته تحصیلی دانشگاهی، و یا هوش مصنوعی به عنوان مجموعه فنون و راه کارهایی که توسط مراکز علمی مختلف و صنایع گوناگون تنظیم و توسعه یافته است باید تفاوت قائل بود.
ایجاد و ابداع فنون و تکنیک های لازم برای مدیریّت پیچیدگی را باید به عنوان هستهٔ بنیادین تلاش های علمی و پژوهشی گذشته، حال، و آینده، در تمامی زمینه های علوم رایانه، و به ویژه، در هوش مصنوعی معرّفی کرد. شیوه ها و تکنیک های هوش مصنوعی، در واقع، برای حل آن دسته از مسائل به وجود آمده است که به طور سهل و آسان توسط برنامه نویسی تابعی (Functional programming) ، یا شیوه های ریاضی قابل حلّ نبوده اند.
هوش مصنوعی به هوشی که یک ماشین از خود نشان میدهد و یا به دانشی در کامپیوترکه سعی در ایجاد آن دارد گفته می شود. جان مک کارتی "پدر علم و دانش ماشینهای هوشمند" ، واژه هوش مصنوعی را در سال 1956 به کار برد . تحقیقات و جستجوهای انجام شده برای رسیدن به ساخت چنین ماشینهائی مرتبط با بسیاری از علوم دیگر مانند رایانه ، روان شناسی ، فلسفه ، عصب شناسی ، علوم ادراکی ، تئوری کنترل ، احتمالات ، بهینه سازی و منطق می باشد .
هنوز تعریف دقیقی برای هوش مصنوعی ارائه نشده است که مورد قبول همه ی دانشمندان صاحب نظر در این زمینه باشد و این خود به علت آن است که اساس این موضوع یعنی هوش مورد جنجال و اختلاف است و تعریف جامعی درباره آن وجود ندارد.
امروزه دانش مدرن هوش مصنوعی به دو دسته تقسیم می شود :
ا) هوش مصنوعی سمبلیک یا نمادین ( Symbolic Ai )
2) هوش غیر سمبلیک یا پیوندگرا ( Connection Ai )
هوش مصنوعی سمبلیک از رهیافتی مبتنی بر محاسبات آماری پیروی می کند و اغلب تحت عنوان "یادگیری ماشین" یا Machine Learning طبقه بندی می شود. هوش سمبلیک می کوشد سیستم و قواعد آن را در قالب سمبل ها بیان کند و با نگاشت اطلاعات به سمبل ها و قوانین به حل مسئله بپردازد. در میان معروف ترین شاخه های هوش مصنوعی سمبلیک می توان به سیستم های خبره (Expert Systems) و شبکه هایBayesian اشاره کرد. اما هوش پیوندگرا متکی بر یک منطق استقرایی است و از رهیافت "آموزش/ بهبود سیستم از طریق تکرار" بهره می گیرد. این آموزش ها نه بر اساس نتایج و تحلیل های دقیق آماری، بلکه مبتنی بر شیوه آزمون و خطا و "یادگیری از راه تجربه" است. در هوش مصنوعی پیوندگرا، قواعد از ابتدا در اختیار سیستم قرار نمی گیرد، بلکه سیستم از طریق تجربه، خودش قوانین را استخراج می کند. متدهای ایجاد شبکه های عصبی (Network Neural) و نیز به کارگیری منطق فازی (Fuzzy Logic) در این دسته قرار می گیرد.
در بسیاری از موارد، با پوشانیدن و پنهان ساختن جزئیّات فاقد اهمّیّت است که بر پیچیدگی فائق می آییم و می توانیم بر روی بخش هایی از مسئله متمرکز شویم که مهم تر است. تلاش اصلی در واقع، ایجاد و دستیابی به لایه ها و ترازهای بالاتر از هوشمندی تجرید را نشانه می رود، تا آنجا که، سرانجام برنامه های کامپوتری درست در همان سطحی کار خواهند کرد که خود انسان ها رسیده اند.
به یاری پژوهش های گسترده دانشمندان علوم مرتبط، هوش مصنوعی تاکنون راه بسیاری پیموده است. در این راستا، تحقیقاتی که بر روی توانایی آموختن زبانها انجام گرفت و همچنین درک عمیق از احساسات، دانشمندان را در پیشبرد این دانش کمک زیادی کرده است. یکی از اهداف متخصصین، تولید ماشینهایی است که دارای احساسات بوده و دست کم نسبت به وجود خود و احساسات خود آگاه باشند. این ماشین باید توانایی تعمیم تجربیات قدیمی خود در شرایط مشابه جدید را داشته و به این ترتیب اقدام به گسترش دامنه دانش و تجربیاتش کند.
برای نمونه روباتیی هوشمند که بتواند اعضای بدن خود را به حرکت درآورد، این روبات نسبت به این حرکت خود آگاه بوده و با آزمون و خطا، دامنه حرکت خود را گسترش می دهد و با هر حرکت موفقیت آمیز یا اشتباه، دامنه تجربیات خود را وسعت بخشیده و سر انجام راه رفته و یا حتی می دود و یا به روشی برای جابجا شدن دست می یابد، که سازندگانش برای او متصور نبوده اند.
هر چند نمونه بالا ممکن است کمی آرمانی به نگر برسد، ولی به هیچ عنوان دور از دسترس نمی باشد. دانشمندان، عموماً برای تولید چنین ماشینهایی، از وجود مدلهای زنده ای که در طبیعت وجود، به ویژه آدمی نیز سود برده اند.
هوش مصنوعی اکنون در خدمت توسعه علوم رایانه نیز می باشد. زبانهای برنامه نویسی پیشرفته، که توسعه ابزارهای هوشمند را ممکن ساخته اند، پایگاههای داده ای پیشرفته، موتورهای جستجو، و بسیاری نرم افزارها و ماشینها از نتایج پژوهش هایی در راستای هوش مصنوعی بوده اند.
تاریخچه
هوش مصنوعی علمی است جوان با قدمتی کمی بیش از نیم قرن . مباحث هوش مصنوعی پیش از بوجود آمدن علوم الکترونیک، توسط فلاسفه و ریاضی دانانی نظیر بول (Boole) که اقدام به ارائه قوانین و نظریه هایی در باب منطق نمودند، مطرح شده بود. در سال ۱۹۴۳، با اختراع رایانه های الکترونیکی، هوش مصنوعی، دانشمندان را به چالشی بزرگ فراخواند. بنظر می رسید، فناوری در نهایت قادر به شبیه سازی رفتارهای هوشمندانه خواهد بود.
با وجود مخالفت گروهی از متفکرین با هوش مصنوعی که با دیده تردید به کارآمدی آن می نگریستند تنها پس از چهار دهه، شاهد تولد ماشینهای شطرنج باز و دیگر سامانه های هوشمند در صنایع گوناگون هستیم.
نام هوش مصنوعی در سال ۱۹۶۵ میلادی به عنوان یک دانش جدید ابداع گردید. البته فعالیت درزمینه این علم از سال ۱۹۶۰ میلادی شروع شده بود.
بیش از نیم قرن پیش، هنگامی که هنوز هیچ تراشه سیلیکونی ای ساخته نشده بود، آلن تورینگ یکی از بحث بر انگیزترین پرسش های فلسفی تاریخ را پرسید. او گفت: آیا ماشین می تواند فکر کند ؟
و اندکی بعد کوشید به پیروی از این قاعده که هر ادعای علمی باید از بوته آزمایش سربلند بیرون بیاید، پرسش فلسفی خود را با یک آزمایش ساده و در عین حال پیچیده جایگزین کند. او پرسید:
آیا یک ماشین یک کامپیوتر می تواند بازی تقلید را با موفقیت پشت سر بگذارد؟
آیا ماشین می تواند از انسان چنان تقلید کند که در یک آزمون محاوره ای نتوانیم تفاوت انسان و ماشین را تشخیص دهیم؟
او در سال ۱۹۵۰ براساس محاسباتی تخمین زد که ۵۰ سال بعد کامپیوتری با یک میلیارد بیت حافظه خواهد توانست به موفقیت هایی در این زمینه دست پیدا کند. اکنون که در نیمه سال ۲۰۰۸ میلادی هستیم، حتی هشت سال بیشتر از زمانی که او لازم دانسته بود، هنوز هیچ ماشینی نتوانسته است از بوته آزمون تورینگ با موفقیت خارج شود. در سال ۲۰۰۰ مفهوم هوش مصنوعی برای هیچ کس غیر قابل باور نبود .
یکی از جالب ترین و هیجان انگیزترین پرسش هایی که تاکنون تاریخ فلسفه به خود دیده این پرسش است که آلن تورینگ فیلسوف و ریاضیدان انگلیسی در سال ۱۹۵۰ طی مقاله ای به نام: Computing Machinery and Intelligence ( ماشین محاسباتی و هوشمند ) مطرح کرد او پرسید آیا ماشین می تواند فکر کند. خود تورینگ نتوانست پاسخ قطعی این پرسش را پیدا کند. اما برای یافتن پاسخ مناسب در آینده یک راهبرد خلاقانه پیشنهاد کرد.
او آزمونی طراحی کرد که خود، آن را بازی تقلید نامید. او آزمون بازی تقلید را چنین شرح داد: یک پرسشگر- یک انسان- همزمان در حال گفت وگو با دو نفر است. هر یک از این دو نفر در اتاق های جداگانه قرار گرفته اند و پرسشگر نمی تواند هیچیک از آنها را ببیند یکی از این دو نفر انسان است و دیگری یک ماشین یعنی یک کامپیوتر. پرسشگر باید با این دو نفر شروع به گفت وگو کند و بکوشد بفهمد کدا میک از این دو، انسان است و کدامیک ماشین. اگر کامپیوتر بتواند طوری جواب دهد که پرسشگر نتواند انسان را از ماشین تمیز دهد آنگاه می توان ادعا کرد که این ماشین هوشمند است. تورینگ برای آسان کردن شرایط این آزمون و پرهیز از پیچیدگی های اضافی آن را به محاوره ای متنی و روی کاغذ محدود کرد تا مجبور به درگیر شدن با مسائل انحرافی مانند تبدیل متن به گفتار شفاهی و تنظیم تن صدا و لهجه نباشیم.
البته چند سال بعد ، در سال ۱۹۶۸ آرتور سرکلارک ، در رمان معروف خود ، یعنی اودیسه فضایی ۲۰۰۱ اصطلاح " آزمون تورینگ " را به جای " بازی تقلید " سر زبان ها انداخت . از زمانی که تورینگ این فرضیه را مطرح کرده است ، هزاران دانشمند با هدف ساختن ماشینی که بتواند آزمون تورینگ را با موفقیت تمام کند ، دست به کار شده اند . اما هنوز کسی موفق نشده است چنین ماشینی بسازد و پیش بینی تورینگ هم درست از آب در نیامده است.
او همچنین بر اساس یک سری محاسبات پیش بینی کرد که ۵۰ سال بعد یعنی در سال ۲۰۰۰ انسان قادر خواهد بود کامپیوترهایی بسازد که در یک گفت وگوی پنج دقیقه ای، فقط ۷۰درصد پرسشگرها بتوانند کشف کنند که در حال گفت وگو با یک انسان هستند یا یک ماشین. او برخورداری از یک میلیارد بیت حافظه (۱۲۵ میلیون بایت- حدود ۱۲۰ مگابایت) را یکی از مشخصه های اصلی این کامپیوتر دانست.
تورینگ همچنین در این مقاله یک سری استدلال های مخالف با نظریه و آزمون خود را مطرح کرد و کوشید به آنها پاسخ دهد، تصور اینکه ماشین های هوشمندی ساخته شوند که بتوانند فکر کنند وحشتناک است. تورینگ در پاسخ می گوید این نکته ای انحرافی است، زیرا بحث اصلی او بایدها و نبایدها نیست بلکه بحث درباره ممکن هاست.
دیگر اینکه، ادعا می شود محدودیت هایی درباره نوع پرسش هایی که می توان از کامپیوتر پرسید وجود دارد، زیرا کامپیوتر از منطق خاصی پیروی می کند. اما تورینگ در پاسخ می گوید: خود انسان هنگام گفت وگو پرغلط ظاهر می شود و نمی توان گفتار هر انسانی را لزوما منطقی کرد. او پیش بینی کرد که منشا اصلی هوشمندی ماشین فرضی او، حافظه بسیار زیاد و سریعی است که یک کامپیوتر می تواند داشته باشد . بنابراین از نگاه تورینگ، ماشین همچون کامپیوتر Deep Blue که کاسپاروف، قهرمان شطرنج را شکست داد، می تواند یک ماشین هوشمند تلقی شود. در عین حال تورینگ این نظر را که – آزمون مورد بحث معتبر نیست، زیرا انسان دارای احساسات است و مثلا موسیقی دراماتیک می سازد- رد کرد و گفت: هنوز هیچ سند قابل قبولی وجود ندارد که ثابت کند فقط ما انسان ها دارای احساسات هستیم، زیرا مشخص نیست مفهوم دقیق این واژه به لحاظ علمی چیست .
در سال ۱۹۵۶ جان مک کارتی، یکی از نظریه پردازان پیشگام این نظریه در آن زمان، اصطلاح (هوش مصنوعی) را برای اولین بار در نخستین کنفرانسی که به این موضوع اختصاص یافته بود، به کار برد . دانشمندان بعدا این تاریخ را به عنوان تاریخ تولد علم هوش مصنوعی انتخاب کردند. البته علاقمندی مک کارتی به مقوله هوش مصنوعی به قبل از این دوران برمی گردد. وی در سال 1948 از کارهای جان فون نویمان (پدر منطق کامپیوترهای امروزی) مطلع می شود به آن علاقمند می گردد . این نظریه نقش موثری در پیشبرد جنبه های نظری و علمی هوش مصنوعی داشت . ولیکن آنچه وی به آن می اندیشید آن بود که می توان یافته های فون نویمان را به نحوی به کار بست که بتوان هوش انسانی را روی ماشین شبیه سازی نمود. او در اواسط دهه پنجاه میلادی با کمک مالی بنیاد راکفلر، کار روی شبیه سازی هوش انسانی را آغاز کرد و بدین ترتیب هوش مصنوعی زاده شد.
در سال 1956، مک کارتی با همکاری کلود شانون و ماروین مینسکی یک کارگاه آموزشی را با موضوع هوش مصنوعی برگزار می کند و این موضوع را در آنجا مطرح می نماید. پس از آن که موضوع هوش مصنوعی به طور جدی مطرح می گردد، مک کارتی کار روی بازی های هوشمندانه ماشینی را آغاز می کند و از حاصل این کار، زبان LISP پدیدار می گردد، زبانی برای توصیف خواسته های هوشمندانه از ماشین. این زبان در سال 1958 در دانشگاه MIT توسعه داده شد. مک کارتی در آن زمان معتقد بود که می توان کاری کرد که ماشین نیز هوشی همانند هوش انسانی داشته باشد و LISP زبانی است که می تواند این هوش را توصیف کند . زبان LISP به جای آن که از منطق ریاضی و کار روی اعداد استفاده کند، علامات و سمبل ها را به اشیاء تغییر می دهد، یعنی از تعدادی لیست برای توصیف منطق کاری برنامه بهره می برد و در نهایت، خروجی این زبان تعدادی جمله یا عبارت توصیفی خواهد بود. البته امروزه هم از شکل های تازه تری از زبان LISP در سیستم های خبره (Expert) و برنامه های پردازش زبان طبیعی(NLP) استفاده می شود. این زبان به قدری سطح بالا بود که تازه در اواخر دهه هشتاد میلادی کامپیوترهایی پدید آمدند که توان کامل پردازش دستورات این زبان را داشتند.
همه کسانی که نخستین گام ها را در راه معرفی هوش مصنوعی برداشتند، یک هدف را در سرداشتند و آن رساندن سطح هوش ماشینی به سطح هوش انسانی بود. اما امروزه می دانیم که مطالعه در زمینه هوش و درک عملکرد آن، بسیار پیچیده و دشوار است. اکنون موضوع هوش را می توان از دو جنبه بررسی نمود. جنبه نخست آن است که آگاهی از جهان اطراف چگونه به دست می آید و چگونه می توان از یافته ها، و حقایق نتیجه گیری هوشمندانه نمود. یک سیستم هوشمند نیازمند دریافت دانسته ها، تئوری هایی تخمینی و غیرمشخص از اطراف است. ولیکن از چیزهایی که به طور دقیق و نامشخص تعریف شده اند، بایستی نتایج دقیقی استنتاج گردد. جنبه دیگر این بررسی، حالت کشف و شهود هوشمندانه است . یعنی باید به طریقه کشف و شهود، راهی به سمت مقصد یافت که این راه از میان هزاران راه ممکن و غیرممکن بایستی انتخاب گردد . این موضوعات هنوز هم دلمشغولی های مک کارتی هستند و راه حل های دقیقی برای حل آن ها یافت نشده است.
تفاوت های شبکه های عصبی با روش های محاسباتی متداول و سیستم های خبره
گفتیم که شبکه های عصبی روش متفاوتی برای پردازش و آنالیز اطلاعات ارائه می دهند. اما نباید این گونه استنباط شود که شبکه های عصبی می توانند برای حل تمام مسائل محاسباتی مورد استفاده واقع شوند. روش های محاسباتی متداول همچنان برای حل گروه مشخصی از مسائل مانند امور حسابداری، انبارداری و محاسبات عددی مبتنی بر فرمول های مشخص، بهترین گزینه محسوب می شوند. جدول 1، تفاوت های بنیادی دو روش محاسباتی را نشان می دهد.
مشخصه
روش محاسباتی متداول
)شامل سیستم های خبره(
شبکه های عصبی مصنوعی
روش پردازش
ترتیبی
موازی
توابع
منطقی (left brained)
estault (right brained
روش فراگیری
به کمک قواعد (didactically)
با مثال (Socratically)
کاربرد
حسابداری، واژه پردازی، ریاضیات،
ارتباطات دیجیتال
پردازش حسگرها، تشخیص گفتار، نوشتار، الگو
جدول1
سیستم های خبره، انشعابی از روش محاسباتی متداول محسوب می شود و در مواردی هم به آن نسل پنجم محاسبات نام داده اند (نسل اول از کلید و سیم بندی استفاده می کرد، نسل دوم با اختراع ترانزیستور ایجاد شد، نسل سوم از فناوری مدارات مجتمع استفاده می کرد، نسل چهارم با به وجود آمدن زبان های سطح بالا آغاز شد و نسل پنجم شامل هوش مصنوعی می شود). به طور معمول، یک سیستم خبره شامل دو بخش عمده می شود. یک بخش یا موتور استنتاجی و یک پایگاه دانایی (Knowledge base). موتور استنتاجی، بخشی است که رابط کاربر را مدیریت می کند و بر فایل ها و دسترسی به برنامه ها و برنامه ریزی کنترل دارد. پایگاه دانایی شامل اطلاعاتی در ارتباط با یک مسئله مشخص است. این پایگاه به متخصصان اجازه می دهد که قواعد فرایند مشخصی را تعریف نماید. چنین متخصصی نیازی به دانستن روش های برنامه نویسی نخواهد داشت. او تنها باید کاری که از کامپیوتر می خواهد را درک کند و شناخت کافی از روش عمل سیستم داشته باشد. درواقع پوسته سیستم بخشی است که به کامپیوتر می گوید چه کار باید انجام دهد. برنامه لازم برای حل مسئله توسط خود سیستم تولید خواهد شد.
تلاش هایی که برای اجرایی کردن سیستم های خبره به کار گرفته شده اند، با مشکلات مشترکی مواجه بوده اند. با افزایش سطح پیچیدگی سیستم ها، منابع کامپیوتری مورد نیاز سیستم به شدت افزایش می یابند و سیستم با کندی بیش از حد روبرو می شود. در حقیقت تجربه نشان داده است که در وضعیت فعلی، سیستم های خبره تنها می توانند در مواقعی مفید واقع شوند که هدف محدود و مشخصی تعیین شده باشد.
شبکه های عصبی در مسیری گام برمی دارند که ابزارها توانایی فراگیری و برنامه ریزی خود را داشته باشند. ساختارشبکه های عصبی به گونه ای است که قابلیت حل مسئله را بدون کمک فرد متخصص و برنامه ریزی خارجی داشته باشند. شبکه های عصبی قادر به یافتن الگوهایی در اطلاعات هستند که هیچ کس، هیچ گاه از وجود آنها اطلاع نداشته است.
درحالی که سیستم های خبره در عمل به موفقیت های بسیاری دست یافته اند، شبکه های عصبی در کاربردهایی همچون دید مصنوعی، تشخیص و تولید پیوسته گفتار، فراگیری ماشینی و نظایر آن با مشکلاتی روبرو بوده اند. در حال حاضر شبکه های عصبی کاملاً وابسته به سرعت پردازنده سیستم اجرا کننده هستند.
بینایی ماشین
از میان همه شاخه های هوش مصنوعی، شاید کاربردی ترین آن ها کامپیوتری و مکانیزه کردن سیستم های بینایی باشد. دامنه کاربرد این شاخه از فناوری در حال رشد، بسیار وسیع است و از کاربردهای عادی و معمولی مثل کنترل کیفیت خط تولید و نظارت ویدئویی گرفته تا تکنولوژی های جدید مثل اتومبیل های بدون راننده را دربرگرفته است. دامنه کاربردهای این تکنولوژی براساس تکنیک های مورد استفاده در آن ها تغییر می کند. ما سعی داریم به شما نشان دهیم که سیستم های بینایی ماشین چگونه کار می کنند و مروری کوتاه بر اهداف، تکنیک ها و تکنولوژی های موجود داشته باشیم و سعی داریم با نحوه کار بینایی ماشین و پیشرفت آن ها که مطابق با سیستم بینایی انسان است، آشنا شویم. در این متن، بررسی خود را با دو مثال انجام می دهیم. اولی سیستم کنترل کیفیت خط تولید است که شامل نحوه عکس برداری و ذخیره و شیوه تفسیر عکس های گرفته شده به صورت خودکار است و دیگری به عنوان یک مثال پیچیده تر، چگونگی بینایی یک ربات را توضیح می دهد.
کنترل کیفیت خط تولید
شکل 12- نمای ساده شده ای از یک سیستم بینایی کنترل کیفیت خط تولید غیرواقعی
یکی از کاربردهای بینایی ماشین در کنترل کیفیت خروجی کارخانه ها می باشد. شکل 12 مثالی بسیار ساده از چنین سیستمی است. اجناس تولید شده در کارخانه که برروی یک نوار نقاله قرار گرفته اند و توسط یک دوربین CCD برای آزمایش دیده می شوند و محصولات با کیفیتِ مناسب اجازه عبور پیدا خواهندکرد. چنانچه محصولی دارای استانداردهای مناسب نباشد از ادامه مسیر حذف می شود. معیار این استانداردها می تواند لبه های زائد، خراشیدگی و بادکردگی و تورم روی فلزات و بسیاری چیزهای دیگر باشد. در این مثال ما در پی یافتن مکانیزم خط تولید نیستیم و فقط می خواهیم ببینیم که یک شی تولیدشده چگونه استاندارد تشخیص داده شده و اجازه عبور می یابد و برعکس چگونه به بعضی از اشیاء اجازه عبور و ادامه دادن داده نمی شود.
عکس برداری
در این مثال ما سعی در مکانیزه کردن فرآیندی یکنواخت داریم که به صورت معمول و تکراری توسط انسان انجام می شود . اولین مساله و مشکل ما این است که چگونه عکس های تهیه شده از اشیایی که در حال حرکت بر روی نوار نقاله هستند را تبدیل به داده های قابل فهم و تفسیر برای سیستم نماییم، که این مشکل توسط دوربین CCD حل می شود. عملکرد این دوربین را می توان به عملکرد چشم انسان که قادر است سطوح مختلف نور را تشخیص دهد تشبیه نمود.
چشم انسان
چشم انسان که در شکل 13 نشان داده شده است، تقریباً یک عدسی کروی با قطر 5/2 سانتی متر می باشد که از چندین لایه مختلف که درونی ترین آن ها شبکیه نام دارد تشکیل شده است. ماهیچه های اطراف چشم اندازه لنز را تنظیم می کنند که این کار چشم را قادر به زوم (Zoom) کردن روی اشیاء می کند.
شکل 13- نمای داخلی چشم انسان
وظیفه عدسی چشم، فرم و شکل دادن به تصویری است که توسط میلیون ها سلول گیرنده مخروطی (Cone) و میله ای (Rod) گرفته شده و برروی پرده شبکیه افتاده است، می باشد. سلول های میله ای به یک عصب معمولی که از انتها به شبکیه ختم می شود و فقط در سطح نور پایین فعال است متصلند و سلول های مخروطی هر کدام به یک عصب اتصال دارند. آن ها در نورهای شدیدتر، بیشتر فعالند و میزان درک ما از رنگ ها را نوع فعالیت این مخروط ها مشخص می کند.
در میان شبکیه ناحیه ای به نام نقطه کور وجود دارد که در آن هیچ گیرنده ای موجود نیست. در این ناحیه اعصاب به صورت جداگانه به عصب بینایی که سیگنال های دریافت شده را به قشر بینایی مخ انتقال می دهند، وصل می شود.
دوربین CCD
CCD از جهت عملکرد تقریباً مانند چشم انسان کار می کند. نور از طریق یک عدسی وارد دوربین و برروی یک پرده مخصوص تصویر می شود که تحت عنوان تراشه CCD شناخته می شود. تراشه Coupled Device Charge(CCD) که تصاویر با استفاده از آن گرفته می شوند از تعداد زیادی سلول تشکیل شده که همگی در یک تراشه با الگوی خاصی مرتب شده اند و تحت عنوان پیکسل (Pixels) شناخته می شوند.
شکل14- تصویر وسط یک نمای نزدیک از چشم ماهی را نمایش می دهد و نشان می دهد که هر قسمت از یک تصویر چگونه با تعدادی مقادیر عددی ذخیره می شود. به تعداد داده های عددی مورد نیاز برای ذخیره یک فضای کوچک از تصویر توجه کنید.
زمانی که تراشه CCD این اطلاعات را دریافت می کند، آن ها را به شکل سیگنال های دیجیتالی از طریق کابل هایی به سیستم دریافت کننده می فرستد و بعد تصاویر در این سیستم به صورت مجموعه ای از اعداد ذخیره می شوند. همان طور که در شکل 14 می بینید هر عدد نماینده یک پیکسل است.
درک تصویر
با هر تصویر، چه با دوربین گرفته شود و چه با چشم انسان، مقداری تحریف و تغییر شکل و به عبارتی "نویز (Noise) " وجود دارد. البته در مورد مثال ما در سیستم خط تولید این مساله چندان اهمیت ندارد اما در موقعیت هایی که نیاز به دقت بالا وجود دارد باید از نورپردازی خاصی برای تصویربرداری استفاده شود.
شکل 15- ترسیم لبه. شکل اول تصویر اصلی می باشد. در شکل وسط نویزها با فیلترنمودن ا ز بین رفته است. در نهایت شکل 3، تصویر حاصل از به کار بردن الگوریتم ترسیم لبه می باشد.
انسان برای درک تصاویری که می بیند نیازی ندارد هیچ کاری در مورد فیلتر کردن و از بین بردن نویزهای یک تصویر انجام دهد. مثلاً در یک روز ابری که مه همه جا را فرا گرفته، دید ما به شدت ضعیف و دچار مشکل می شود. اما هر آنچه را که قادر به دیدنش باشیم درک می کنیم. یعنی برای درک اشیاء نیازی به حذف نویزهای تصویر نیست. مثلاً اگر در این روز در حال رانندگی در یک جاده باشید و تصویر مبهمی از یک ماشین را مقابل خود ببینید، بالطبع عکس العمل نشان می دهید و به عبارتی سرعت خود را کم می کنید.
و این یعنی ما هنوز تصویر ماشین را علیرغم وجود مه می توانیم تشخیص دهیم و در مقابل آن عکس العمل نشان دهیم. و یا مثلاً زمانی که دچار سرگیجه می شوید، علیرغم این که تصاویر اطراف خود را تار و مبهم می بینید اما قادر به درک و تشخیص وسایل و تصاویر اطراف خود هستید. یعنی ابتدا صبر نمی کنید تا سرگیجه تان به پایان برسد و بعد تصاویر را تشخیص دهید و این یعنی با قدرت بینایی انسان، علیرغم خراب شدن تصاویر اطراف، می توانیم متوجه فضای اطراف خود بشویم. اما برای بینایی ماشین ابتدا باید این نویزها طی فرآیندی که تصفیه کردن یا فیلترینگ نامیده می شود، از بین برود و بعد هر آنچه برای پردازش عکس لازم است انجام شود.
خوشبختانه در حال حاضر تکنیک هایی برای انجام این کار وجود دارد. از بین بردن نویزها به صورت نرمال توسط تعدادی از توابع ریاضی یا الگوریتم هایی که تحت عنوان 'Treshholding' یا 'Quantizing' نامیده می شود انجام می گردد. این فرآیند بسیار حرفه ای و پیچیده ای است و نیاز به دانش و پشتوانه بالای ریاضی دارد. زمانی که خرابی ها از بین رفت، می توانیم پردازش عکس ها را ادامه دهیم که این کار با استخراج صورت ها و حالت ها از یک تصویر انجام می شود. یک شیوه معمول که غالباً مورد استفاده قرار می گیرد استخراج لبه ها که در شکل 15 دیده می شود، می باشد.
در مورد مثال ما در سیستم خط تولید، وظیفه اصلی یک اپراتور کنترل کیفیت این است که به سرتاسر محصول تولید شده نگاه کرده و با مقایسه آن با استانداردهای مورد قبول، برای محصول تولید شده جواز عبور یا عدم عبور صادر کنند.
اگر این کار با استفاده از بینایی ماشین صورت گیرد باید عکس گرفته شده از محصول تولید شده با عکسی که از یک محصول استاندارد وجود دارد مقایسه شود. یکی از روش های انجام این کار به این صورت است:
برای انجام این کار، یک تصویر از محصول استاندارد در کامپیوتر ذخیره می شود و سپس از محصولا تی که از خط تولید عبور می کنند. تصویر گرفته می شود و به عنوان نقشه لبه ذخیره می شود. و بعد سیستم، تصویر گرفته شده را از چپ به راست و از بالا به پایین به گونه ای که در هر زمان فقط یک رقم عبور کند، می لغزاند و عدد ظاهر شده در هر موقعیت را با عدد همان موقعیت در تصویر اصلی مقایسه می کند و در صورت تفاوت آن را اعلا م می نماید.
لذا عملیات بینایی کامپیوتر در حقیقت مقایسه دو مجموعه عدد است که اگر تفاوت این دو مجموعه از یک محدوده خاص فرارتر برود، از پذیرفتن محصول امتناع شده و در غیر این صورت محصول پذیرفته می شود یک مثال پیچیده تر
در مثال قبل سیستم مورد مطالعه بسیار محدود بود و فقط یک تصویر دو بعدی از یک محصول را با تصویر اصلی و ایده آل مقایسه می کرد و احتیاجی به بررسی مقادیر اندازه و زاویه نبود.
در این مثال می خواهیم به سیستم بینایی که برای یک ربات خانگی که قادر به تمیز کردن خانه، پختن غذا و … طراحی شده نگاهی بیاندازیم. این مثال بسیار پیچیده تر از مثال قبلی است و نیاز به آگاهی از تغییرات محیط دارد. به عبارت بهتر نیاز به یک سیستم هوشمندتر داریم. قبلاً دیدیم که تصاویر چگونه ذخیره و تفسیر می شوند. غالب تکنیک های گذشته دوباره در این مثال به کار گرفته می شوند. تفاوت اصلی در تفسیر تصاویر گرفته شده است. در مثال قبلی فضای سیستم بینایی فقط متشکل از یک سری محصول بود، اما در این مثال ربات باید از همه آنچه در اطرافش می گذرد باخبر بوده و این یعنی با دنیای وسیع تر و بزرگ تری روبروست. بدین منظور نیاز به تکنیک های تشخیص پیچیده تری وجود دارد.
یعنی در این مثال، یک صحنه فرضی شامل ده ها یا حتی صدها شی مختلف در معرض دید است. این اشیاء در اندازه ها و تحت زوایای مختلف که متاثر از نوع نورپردازی هم هستند به نمایش درمی آیند و به همین دلیل برای تشخیص این اشیاء نیاز به تکنیک های هوش مصنوعی (Ai) می باشد.
پردازش اطلاعات در مغز
شکل 16 – تصویر به نظر دو مثلث می آید که در جهت عکس هم و برروی هم قرار داده شده اند، ولی از نظر ریاضی هیچ مثلثی رسم نشده است و فقط سه دسته از خطوط وجود دارند.
در مورد بینایی انسان متذکر شدیم که شاید یکی از قسمت هایی از مغز که بیشتر فعالیت درک تصویر را انجام می دهد ناحیه Visual Cortex باشد. همان طور که دیده ایم، این جا ناحیه ای است که اطلاعات منتقل شده در طول عصب بینایی در آن پردازش می شود. البته این را هم مدنظر داشته باشید که قسمتی از فعالیت پردازش اطلاعات در ناحیه شبکیه چشم قبل از این که اطلاعات به مغز برسند، انجام می شود.
البته خود ناحیه شبکیه به عنوان قسمتی از مغز شمرده می شود. در ضمن این مساله هم قبلاً مشخص شده است که نواحی مختلف قشر بینایی مخ در مقابل تصاویر مختلف عکس العمل نشان می دهد. به عبارت دیگر هر قسمت از این ناحیه مربوط به یک حالت خاص است. مثلاً نواحی معین و مشخصی در مقابل رنگ های متفاوت عکس العمل نشان می دهند و یا مثلاً نواحی وجود دارند که سلول هایشان در مقابل جزییات دقیق موجود در یک تصویر عکس العمل نشان می دهند. مثلاً در شکل 5 شما می توانید یک مثلث سفید که به طور واضح سه راس آن مشخص نشده است را ببیند،
علیرغم این که به طور واضح و مجزا این مثلث مشخص نشده است. اما سلول های موجود در قشر بینایی می توانند تکه های این خطوط را کنار هم گذاشته و از آن یک مثلث استنتاج کنند.
زمانی که اطلاعات مربوط به چیزی که دیده می شود را دریافت کردیم، مثل شکل ظاهری، لبه ها و غیره، مغز نیاز به رمزگشایی و کشف اطلاعات به دست آمده دارد تا دقیقاً نتیجه گیری کند که آنچه در صحنه می گذرد چیست. اینجا قسمتی است که ما خیلی کم در رابطه با آن می دانیم و مشخص نیست که دقیقاً مغز چگونه این کار را انجام می دهد. اما مساله مشخص این است که سیستم بینایی ما چندان مبرا از خطا نیست و به راحتی دچار اشتباه می شود. موارد بسیار زیادی وجود دارد که اطلاعات کسب شده می توانند مبهم و یا حتی اشتباه باشند، مانند مثال هایی که در شکل 17 و 18 مشاهده می کنید.
شکل 18- خطای دید: در شکل سمت چپ علیرغم نحوه ظهور خطوط همه آن ها با هم موازیند. در شکل سمت راست که به خطای Muller-Lyer معروف است دو خط ظاهر شده به نظر دارای طول های متفاوت می آیند. اما در حقیقت هم اندازه اند.
به طور خلاصه، با توجه به این که سیستم بینایی انسان در بسیاری موارد دچار خطا می شود، نیاز به درنظرگرفتن شیوه ای متفاوت برای بینایی ماشین هستیم.
با استفاده از تکنیک هایی که قبلاً ذکر کردیم، ربات می تواند شناسایی ترکیبات و صورت های گوناگون موجود در اطراف خود را با استفاده از شیوه همانند سازی الگو انجام دهد . هر چند تعداد زیادی صورت و ترکیبات گوناگون (Template Matching) دیگر وجود دارند که نیاز به اخذ شیوه های متفاوت دیگری برای نمایش آن ها وجود دارد. و در این جاست که نیاز به استفاده از تکنیک های هوش مصنوعی مطرح می شود.
نمایش دانش
متخصصین هوش مصنوعی انواع سیستم ها را با استفاده از برنامه های معمول کامپیوتری و تفاوت قایل شدن بین پردازش اطلاعات (Information) و پردازش دانش (Knowledge)، شناسایی می کنند. این کار منجر به ایجاد سیستم های مبتنی بر دانش که کاربرد بسیار زیادی در هوش مصنوعی دارد می شود.
شکل 19- یک شبکه معنایی برای نمایش قسمتی از آشپزخانه.
ربات ما نیاز به داشتن اطلاعات یا "دانش" از دنیای اطراف خود دارد تا سیستم بینایی اش به درستی عمل کند. ما به طور خلاصه بعضی تکنیک هایی که توسط مهندسین دانش (Knowledgc Engineer) برای نمایش و پردازش این اطلاعات به کار می رود را آزمایش می کنیم.
یک شبکه معنایی (Semantic Network) یک تکنیک خوش ساخت برای نمایش اشیاء یا ماهیت موجود در یک دنیا و ارتباطاتی که بین شان موجود است، می باشد. مثلاً قسمتی از دنیای ربات ما آشپزخانه است.
استفاده از یک شبکه معنایی می تواند راه مناسبی برای نمایش اطلاعات باشد. بدین ترتیب آشپزخانه را تحت عنوان یک سری از اشیاء و روابط بین شان فرض کنیم. یک شبکه می تواند جزییات موجود را به خوبی نمایش داده و ما را قادر به کاوش بیشتر و بهتر در روابط موجود بین اشیاء کند. برای مثال، همان طور که از شکل شماره 8 می توان دید، گوشت های سرد در یخچال نگهداری می شوند. این آیتم ها تحت عنوان غذاها می توانند دسته بندی شوند. اگر چه همه غذاها در یخچال نگهداری نمی شوند، اما همه محصولات گوشتی ملزم به نگهداری یخچال هستند.
مشخص است که این شبکه باید برای نمایش دنیای اطراف ربات ما به خوبی گسترش یابد و نیاز به نمایش دقیق تر و جزیی تری از اشیاء و ارتباطات وجود دارد و همچنین این شبکه باید اتاق ها، افراد، اشیاء موجود و غیره را هم نمایش دهد.پس از ساخته شدن شبکه معنایی ما قادر به ساخت یک پایگاه داده از دانش حاصل از شبکه معنایی در مورد اشیاء موجود در دنیای مربوطه هستیم. در مورد مثال ما، ورودی های مناسب می تواند به شکل زیر باشد:
(سیب – شکل – گرد) (سیب – رنگ – قرمز) (سیب – نما – براق)
(همبرگر- شکل – گرد) (همبرگر- رنگ – قهوه ای) (همبرگر نما – گوشتی)
(یخچال – شکل – مستطیل) (یخچال – رنگ- سفید) (یخچال – نما – فلزی)
(ظرف میوه – شکل – بیضی) (ظرف میوه – رنگ- نقره ای) (ظرف میوه – نما – فلزی)
((میوه) نگهداری – در (ظرف میوه))
((سیب) هست – یک (خوردنی))
توجه کنید که ورودی های این پایگاه دانش باید به گونه ای باشد که منجر به سردرگمی ماشین نشود. مثلاً در مورد مثال ما، سیب یک شی براق قرمز گرد معرفی شده است. اشیاء زیادی هستند که ممکن است چنین مشخصه ای داشته باشند و اگر مثلاً شما ربات خود را بفرستید که برای شما یک سیب تازه بیاورد امکان دارد ربات با یک توپ نزد شما باز گردد.
این پایگاه دانش تحت عنوان حافظه کاریِ سیستم شناخته می شود. به منظور استفاده کارا و مناسب از اطلاعات موجود در این پایگاه، سیستم نیاز به داشتن تعدادی قانون دارد. بدین ترتیب پس از ساخت پایگاه دانش نیاز به ساخت یک پایگاه از قوانین برای برخورد مناسب با اطلاعات موجود در پایگاه دانش هستیم. اگر شما از قبل با زبان های برنامه نویسی آشنایی داشته باشید، با عبارتی مثل If Statement Then آشنا هستید مثلا If Cold Then Wear Coat ما از چنین ساختاری برای ایجاد پایگاه قوانین استفاده می کنیم. قسمت If عبارت تحت عنوان راس قانون و قسمت عملیات یعنی قسمت Then تحت عنوان بدنه قانون شناخته می شوند.
و بدین ترتیب ربات مثلاً می داند که یک سیب چیست و در کجا قرار دارد. مثلاً فرض کنید یکی از کارهایی که قرار است ربات انجام دهد رفتن به سمت یخچال و برداشتن چیزی از یخچال است، در این صورت می توانیم مجموعه ای از قوانین را به این منظور بسازیم.
اکنون هم دانش و هم قوانین مربوطه را داریم که نیاز به روش هایی برای تفسیرشان داریم. این کار توسط سیستم مفسر انجام می شود. مفسر برنامه ای است که قوانین را پردازش می کند. وظیفه آن خواندن هر قانون و بررسی این که موقعیت ها با هم همخوانی دارند یا نه می باشد. اگر همخوانی داشتند عمل موردنظر را انجام می دهد. این عمل آن قدر انجام می شود تا به عملی که دستور پایان داده است، برسد.
گفتیم برای استفاده از تکنیک همسان سازی الگو (Template Matching) نیاز به ذخیره مقادیر بسیار زیادی از دانش در رابطه با هر آیتم موجود در دنیای ربات وجود دارد. با استفاده از قوانین می توانیم استفاده از این اطلاعات را از بین ببریم و دیگر نیازی به آن ها حس نمی شود. مثلاً در مورد یک صندلی، به جای ذخیره یک صندلی از تعدادی زوایا و اندازه ها می توانیم اطلاعاتی راجع به برخی خواص و ظواهر صندلی نظیر جنس، دسته ها، پایه ها و … که یک سیستم مبتنی بر دانش از آن ها به منظور تشخیص صندلی استفاده می کند، ذخیره کنیم. یک صندلی دارای چهار پایه، یک نشیمنگاه و یک تکیه گاه است.
از طرف دیگر میز هم چهار پایه و یک رویه دارد. بدین ترتیب به جای ذخیره تعداد زیادی عدد برای هر شی، از خواص آن شی برای توصیفش استفاده کنیم. بدین ترتیب نیاز به یک پایگاه دانش هست که چیزهایی نظیر اجزا (دسته ها، پایه ها، دیواره ها و…) خواصی که این اجزا را توصیف می کند (ظاهر و غیره)، و حقایقی در رابطه با اشیایی که توسط این اجزا ساخته می شوند (آشپزخانه چهار دیوار و یک در دارد و غیره) و همچنین یک سری قوانین به منظور پردازش این اطلاعات را نگهداری نماید.
همان طور که دیدیم، عملیات زیادی باید به منظور پردازش اطلاعات تصویری انجام شود. تصاویر غالباً دارای نویز هستند که باعث خرابی و تحریفشان می شود. هر چند این مشکل چندان حادی برای سیستم بینایی انسان به حساب نمی آید اما برای سیستم های بینایی ماشین این نویزها به طور کامل باید فیلتر و پاکسازی شوند که این عمل با استفاده از تعدادی الگوریتم انجام می شود.
همچنین دیدیم که اشیاء چگونه با استفاده از تکنیک همسا ن سازی الگو دیده می شوند هر چند پس از این که اشیاء داخل صحنه توسط سیستم بینایی مشخص شدند هنوز کار تمام شده است. اطلاعات حاصل باید به یک نمایش دانش مناسب ترجمه شوند به طوری که قابل پردازش باشند.
سیستم های بینایی اولیه روز به روز در حال گسترش هستند و هر روز کاربرد جدیدی برای آن ها یافت می شود. با توسعه این سیستم ها، کاربردهایی برای سایر محیط ها نظیر توسعه پردازش نیز یافت می شود. سیستم های بینایی مصنوعی از کاربردهای پزشکی و نظامی گرفته تا کاربردهای ساده و معمول روزمره مورد استفاده هستند. و این شاخه از هوش مصنوعی از کاربردی ترین شاخه ها می باشد که هنوز مسایل حل نشده زیادی در خود دارد.
الگوریتم ژنتیک
الگوریتم های ژنتیک، به عنوان یکی از راه حل های یافتن جواب مسئله در بین روش های مرسوم در هوش مصنوعی مطرح است. در حقیقت بدین روش می توانیم در فضای حالت مسئله حرکتی سریع تر برای یافتن جواب های احتمالی داشته باشیم؛ یعنی می توانیم با عدم بسط دادن کلیه حالات، به جواب های مورد نظر برسیم.
در جهان اطراف ما همه ارگانیزم های حیاتی از ساختارهای قانونمندی تشکیل شده اند. ساختارهایی که از سوی آفریدگار هستی در بطن مخلوقات قرار داده شده است. همه این ارگانیزم ها از بلوک های پایه ای از زندگی به نام سلول تشکیل به وجود آمده اند. قوانین مزبور در قالب ژن ها به صورت کد شده در هر ارگانیزم وجود دارند. از به هم وصل شدن این ژن ها، رشته هایی طولانی به نام کروموزوم تولید می شود. هر ژن نمایانگر یکی از خصوصیات آن ارگانیزم است.
مانند رنگ چشم یا رنگ مو و البته هر ژن می تواند دارای مقادیر مختلفی باشد. مثلاً در رابطه با رنگ چشم می توانیم دارای مقادیری متناظر با مشکی، قهوه ای و آبی و سبز و… باشیم. هنگامی که دو ارگانیزم به تولید مثل می پردازند، در حقیقت ژن های خود را با یکدیگر ترکیب می کنند. بدین صورت که ارگانیزم تولید شده که در این متن از این بعد آن را نوزاد می نامیم، دارای نیمی از ژن های یک والد و نیم دیگر از والد دیگری است. این عمل را ترکیب می نامیم. گاهی اوقات بعضی از ژن ها دارای جهش می شوند. این جهش تغییری در ساختار کروموزوم ایجاد نمی کند، اما با توجه به این که مقدار جدیدی به یک ژن تخصیص می یابد، موجب بروز خصوصیت جدیدی می شود. از این اتفاق با نام جهش یاد می کنیم.
برای استفاده از الگوریتم ژنتیک در برنامه هایتان ابتدا باید راهی بیابید تا حالات جواب مسئله خود را به صورت کد شده در قالب رشته ای از اعداد صحیح یا در فرم کلاسیک تر آن به صورت رشته ای از بیت ها نمایش دهید (هر رشته از بیت ها معادل یک کروموزوم یا یک ارگانیزم طبیعی است و هدف این است که به ارگانیزم بهتری، یعنی کرومزوم بهتری دست پیدا کنیم). بدین ترتیب جواب های شما به یکی از اشکال زیر خواهد بود. برای شروع فعالیت الگوریتم ژنتیک نیازمند جمعیتی از کروموزوم ها به صورت تصادفی هستیم. یعنی در ابتدا به عنوان قدم اول، تعدادی کروموزوم به صورت تصادفی ایجاد می کنیم. فرض کنید N کروموزوم و این N را جمعیت آغازین می نامیم.
در ادامه تابعی به نام تابع ارزش تشکیل می دهیم که این تابع به عنوان ورودی یک کرومزوم را دریافت می کند (یک جواب مسئله) و به عنوان خروجی عددی را مبتنی بر میزان بودن کرومزوم نسبت به جواب نهایی بر می گرداند. در حقیقت این تابع میزان خوب بودن جواب را مشخص می کند. برای همه نمونه های جمعیت مقدار تابع ارزش را حساب می کنیم.
در ادامه به صورت تصادفی دو نمونه از کرومزوم ها را انتخاب می کنیم. باید توجه داشته باشیم که سیستم به گونه ای طراحی شود که شانس انتخاب هر کرومزوم متناسب با مقدار تابع ارزش آن کروموزوم باشد. یعنی اگر کرومزومی دارای مقدار تابع ارزشی بهتری بود، شانس انتخاب شدن آن بیشتر باشد (بدین وسیله سعی می کنیم بیشتر روی پاسخ های بهتر مسئله پردازش انجام دهیم) این عمل دقیقاً معادل انتخاب طبیعت در داستان ماست (موجودات قوی تر شانس بیشتری برای بقا دارند).
بعد از انتخاب دو کرومزوم، اکنون نوبت به ترکیب می رسد. برای انجام عمل ترکیب، باید یک نقطه (نقطه شکست) در جفت کروموزوم خود را به صورت تصادفی انتخاب کنیم. هر کرومووزم را به دو پاره تقسیم می کنیم و در ادامه کمی جای هر پاره از هر کروموزوم را با دیگری عوض می کنیم. مانند شکل زیر:
شکل 20
بدین ترتیب دو کرومزوم جدید تولید می شود (دو جواب جدید). راه دیگری نیز برای انجام عمل ترکیب وجود دارد و آن انتخاب چند نقطه شکست است. مثلاً به شکل زیر برای 2 نقطه شکست توجه کنید.
در هر حال ما باید یک روش را انتخاب کنیم و در طول پروژه عمل ترکیب خود را مبتنی بر آن روش انجام دهیم. بعد از انجام عملیات انتخاب و ترکیب، نوبت به عمل جهش ژن ها می رسد. عمل جهش باید با احتمال پایین رخ دهد. یعنیدر اکثر مواقع نباید دارای جهش باشیم، اما احتمال آن نیز نباید صفر باشد. بنابراین اگر کرومزوم به دست آمده از عملگر ترکیب دچار جهش شود، باید یکی از بیت های آن که متناظر با ژن های آن هستند، به صورت تصادفی انتخاب شود و سپس مقدار آن تغییر کند. اگر بخواهیم این موضوع را به صورت کلاسیک نشان دهیم، به صورت زیر خواهد بود:
اکنون یک مرحله را انجام دادیم و یک کرومزوم جدید (جواب جدید) برای مسئله ایجاد کردیم. در ادامه دو مرتبه دو کرومزوم از جمعیت اولیه انتخاب می کنیم و همه اعمال گفته شده را روی آن انجام می دهیم تا کرومزوم دیگری ایجاد شود و این کار را به قدری تکرار می کنیم تا به تعداد کرومزوم های جمعیت اولیه، کرومزوم جدید داشته باشیم و این مجموعه کرومزوم جدید در حقیقت نسل جدید ما خواهند بود و ما این کار را به قدری ادامه می دهیم تا نسل های بهتر و بهتری را ایجاد کنیم و هنگامی جواب نهایی به دست میآید که تابع ارزشی ما، مقدار مطلوب ما را به ازای مقدار مورد نظر ما از کروموزوم ها برگرداند.
نکات مهم در الگوریتم های ژنتیک
1- شرایط جمعیت اولیه می تواند در سرعت رسیدن به جواب بسیار تاثیرگذار باشد. یعنی اگر جمعیت اولیه مناسب تر باشد، بسیار سریع تر به جواب می رسیم. بنابراین گاهی در بعضی از مسئله ها به جای آن که جمعیت اولیه به صورت تصادفی ایجاد شود، از اعمال شرایط خاص مسئله به جمعیت اولیه نیز استفاده می شود.
2- با توجه به وجود پارامترهای تصادفی در الگوریتم مسئله حتی در صورت استفاده از جمعیت اولیه یکسان ممکن است در اجراهای مختلف الزاماً جواب های یکسان به دست نیاید و البته در صورت استفاده از جمعیت اولیه متناوت این پدیده ملموس تر خواهد بود.
3- تابع ارزش در این گونه از الگوریتم ها از اهمیت بسزایی برخوردار است؛ چرا که معمولاً در اکثر مسائل در اثر ترکیب، حالت هایی رخ می دهد که منطبق بر شرایط مسئله نیست و حتی فاقد معنی و مفهوم است. بنابراین تابع ارزش باید به گونه ای طراحی شود که به ازای این حالات مقادیر بسیار کمی برگرداند و از طرفی باید برای نزدیک شدن به هدف بسیار خوب تخمین بزند.
4- یکی از پدیده های جالب این است که ممکن است در نسل های میانی نمونه هایی بروز کنند که از نظر تابع ارزش و خوب بودن بسیار مناسب باشند. یک روش این است که اینگونه موارد را شناسایی کنیم و در نسل بعدی نیز از آن ها استفاده کنیم. به این تکنیک نخبه گرایی می گویند که عملاً تاثیر بسزایی در رسیدن به جواب مسئله دارد.
الگوریتم های ژنتیک الگوریتم هایی هستند که دارای قدرت بسیار زیادی در یافتن جواب مسئله هستند، اما باید توجه داشت که شاید بتوان کاربرد اصلی این الگوریتم ها را در مسائلی در نظر گرفت که دارای فضای حالت بسیار بزرگ هستند و عملاً بررسی همه حالت ها برای انسان در زمان های نرمال (در حد عمر بشر) ممکن نیست. از طرفی باید توجه داشت که حتماً بین حالات مختلف مسئله باید دارای پیوستگی مناسب و منطقی باشیم. در نهایت الگوریتم های ژنتیک این امکان را به ما می دهد که دارای حرکتی سریع در فضای مسئله به سوی هدف باشیم. به گونه ای که می توانیم تصور کنیم که در فضای حالات مسئله به سوی جواب مشغول پرواز هستیم.
همه کسانی که نخستین گام ها را در راه معرفی هوش مصنوعی برداشتند، یک هدف را در سرداشتند و آن رساندن سطح هوش ماشینی به سطح هوش انسانی بود. اما امروزه می دانیم که مطالعه در زمینه هوش و درک عملکرد آن، بسیار پیچیده و دشوار است. اکنون موضوع هوش را می توان از دو جنبه بررسی نمود. جنبه نخست آن است که آگاهی از جهان اطراف چگونه به دست می آید و چگونه می توان از یافته ها، و حقایق نتیجه گیری هوشمندانه نمود. یک سیستم هوشمند نیازمند دریافت دانسته ها، تئوری هایی تخمینی و غیرمشخص از اطراف است. ولیکن از چیزهایی که به طور دقیق و نامشخص تعریف شده اند، بایستی نتایج دقیقی استنتاج گردد. جنبه دیگر این بررسی، حالت کشف و شهود هوشمندانه است . یعنی باید به طریقه کشف و شهود، راهی به سمت مقصد یافت که این راه از میان هزاران راه ممکن و غیرممکن بایستی انتخاب گردد . این موضوعات هنوز هم دلمشغولی های مک کارتی هستند و راه حل های دقیقی برای حل آن ها یافت نشده است.
هوش مصنوعی چیست؟
هوش مصنوعی (Artificial Intelligence) را باید عرصهٔ پهناور تلاقی و ملاقات بسیاری از دانشها، علوم، و فنون قدیم و جدید دانست. ریشه ها و ایده های اصلی آن را باید در فلسفه، زبان شناسی، ریاضیات، روان شناسی، نورولوژی، و فیزیولوژی نشان گرفت و شاخه ها، فروع، و کاربردهای گونه گونه و فراوان آن را در علوم رایانه، علوم مهندسی، علوم زیست شناسی و پزشکی، علوم ارتباطات و زمینه های بسیار دیگر.
هوش مصنوعی را به عنوان کوششهائی در پی ساختن رایانه های نظام مند ( سخت افزار و نرم افزار ) که رفتاری شبیه انسان داشته باشند ، بیان می کنند . یک سیستم هوش مصنوعی به راستی نه مصنوعی است و نه هوشمندبلکه دستگاهی است هدف گرا که مسائل را به روش مصنوعی حل می کند ، این سیستم ها بر پایه دانش ، تجربه و الگوهای استدلالی انسان به وجود آمده اند .
هدف هوش مصنوعی بطور کلی ساخت ماشینی است که بتواند "فکر" کند. اما برای دسته بندی و تعریف ماشینهای متفکر، می بایست به تعریف "هوش" پرداخت. همچنین به تعاریفی برای "آگاهی" و "درک" نیز نیازمندیم و در نهایت به معیاری برای سنجش هوش یک ماشین نیازمندیم.
هنوز تعریف دقیقی که مورد قبول همهٔ دانشمندان این علم باشد برای هوش مصنوعی ارائه نشده است، و این امر، به هیچ وجه مایهٔ تعجّب نیست. چرا که مقولهٔ مادر و اساسی تر از آن، یعنی خود هوش هم هنوز بطور همه جانبه و فراگیر تن به تعریف نداده است. در واقع، می توان نسل هایی از دانشمندان را سراغ گرفت که تمام دوران زندگی خود را صرف مطالعه و تلاش در راه یافتن جوابی به این سوال عمده نموده اند که: هوش چیست؟
اما اکثر تعریف هایی که در این زمینه ارایه شده اند بر پایه یکی از چهار باور زیر قرار می گیرند:
* سیستم هایی که به طور منطقی فکر می کنند
* سیستم هایی که به طور منطقی عمل می کنند
* سیستم هایی که مانند انسان فکر می کنند
* سیستم هایی که مانند انسان عمل می کنند
شاید بتوان هوش مصنوعی را این گونه توصیف کرد:"هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را می توان وادار به کارهایی کرد که در حال حاضر انسان ها آنها رابهتر انجام می دهند"
تعریف دیگری که از هوش مصنوعی می توان ارائه داد به قرار زیر است:
" هوش مصنوعی، شاخه ایست از علم کامپیوتر که ملزومات محاسباتی اعمالی همچون ادراک (Perception) ، استدلال (Reasoning) و یادگیری (Learning) را بررسی کرده و سیستمی جهت انجام چنین اعمالی ارائه می دهد."
و در نهایت تعریف سوم هوش مصنوعی از قرار زیر است:
"هوش مصنوعی، مطالعه روش هایی است برای تبدیل کامپیوتر به ماشینی که بتواند اعمال انجام شده توسط انسان را انجام دهد."
بطور کلی ماهیت وجودی هوش به مفهوم جمع آوری اطلاعات, استقرا و تحلیل تجربیات به منظور رسیدن به دانش و یا ارایه تصمیم میباشد . در واقع هوش به مفهوم به کارگیری تجربه به منظور حل مسایل دریافت شده تلقی میشود. هوش مصنویی علم و مهندسی ایجاد ماشینهایی با هوش با به کارگیری از کامپیوتر و الگوگیری از درک هوش انسانی و نهایتا دستیابی به مکانیزم هوش مصنوعی در سطح هوش انسانی میباشد.
در مقایسه هوش مصنوعی با هوش انسانی می توان گفت که انسان قادر به مشاهده و تجزیه و تحلیل مسایل در جهت قضاوت و اخذ تصمیم میباشد در حالی که هوش مصنوعی مبتنی بر قوانین و رویه هایی از قبل تعبیه شده بر روی کامپیوتر میباشد. در نتیجه علی رغم وجود کامپیوترهای بسیار کارا و قوی در عصر حاضر ما هنوز قادر به پیاده کردن هوشی نزدیک به هوش انسان در ایجاد هوشهای مصنوعی نبوده ایم.
روش شناسی ( Methodology ) هوش مصنوعی هنوز به عنوان یک نقطه ضعف مورد انتقاد بسیاری از صاحبنظران است ، از نظر برخی از آنان این ضعف یک شکل تکاملی است که به تاریخچه کوتاه علم رایانه مربوط است .
روش های هوش مصنوعی روش هائی هستند که به درد مسائلی می خورند که به خوبی تعریف شده اند ، به طور مثال بسیاری از مسائل محاسباتی معمولی از محاسبات فیزیک گرفته تا محاسبه حقوق و دستمزد از این دسته مسئل هستند که برای آنها الگوریتم مشخصی وجود دارد و نیازی به جستجو برای یافتن حل مساله نیست .
دانشمندان هوش مصنوعی و به طور کلی دانشمندان رشته های مختلف ، اکنون مایلند با مدل هائی کار کنند که آنها را " مدل مولف " می نامند.
آنها بدنبال ساخت ماشینی مقلد هستند، که بتواند با شبیه سازی رفتارهای میلیونها یاخته مغز انسان، همچون یک موجود متفکر به اندیشیدن بپردازد.
در بسیاری از موارد، با پوشانیدن و پنهان ساختن جزئیّات فاقد اهمّیّت است که بر پیچیدگی فائق می آییم، و می توانیم بر روی بخش هایی از مسئله متمرکز شویم که مهم تر است. تلاش اصلی، در واقع، ایجاد و دستیابی به لایه ها و ترازهای بالاتر است ، تا آنجا که ، سر انجام برنامه های کامپوتری درست در همان سطحی کار خواهند کرد که خود انسان ها به کار مشغولند.
به یاری پژوهش های گسترده دانشمندان علوم مرتبط، هوش مصنوعی از آغاز پیدایش تاکنون راه بسیاری پیموده است. در این راستا، تحقیقاتی که بر روی توانایی آموختن زبانها انجام گرفت و همچنین درک عمیق از احساسات، دانشمندان را در پیشبرد این علم، یاری کرده است. یکی از اهداف متخصصین، تولید ماشینهایی است که دارای احساسات بوده و دست کم نسبت به وجود خود و احساسات خود آگاه باشند. این ماشین باید توانایی تعمیم تجربیات قدیمی خود در شرایط مشابه جدید را داشته و به این ترتیب اقدام به گسترش دامنه دانش و تجربیاتش کند.
برای نمونه به رباتی هوشمند بیاندیشید که بتواند اعضای بدن خود را به حرکت درآورد، او نسبت به این حرکت خود آگاه بوده و با سعی و خطا، دامنه حرکت خود را گسترش می دهد، و با هر حرکت موفقیت آمیز یا اشتباه، دامنه تجربیات خود را وسعت بخشیده و سر انجام راه رفته و یا حتی می دود و یا به روشی برای جابجا شدن، دست می یابد، که سازندگانش، برای او، متصور نبوده اند.
هر چند مثال ما در تولید ماشینهای هوشمند، کمی آرمانی است، ولی به هیچ عنوان دور از دسترس نیست. دانشمندان، عموماً برای تولید چنین ماشینهایی، از تنها مدلی که در طبیعت وجود دارد، یعنی توانایی یادگیری در موجودات زنده بخصوص انسان، بهره می برند.
هوش مصنوعی که همواره هدف نهایی دانش رایانه بوده است، اکنون در خدمت توسعه علوم رایانه نیز است. زبانهای برنامه نویسی پیشرفته، که توسعه ابزارهای هوشمند را ممکن می سازند، پایگاههای داده ای پیشرفته، موتورهای جستجو، و بسیاری نرم افزارها و ماشینها از نتایج پژوهش های هوش مصنوعی بهره می برند.
سیستمی که عاقلانه فکر کند. سامانه ای عاقل است که بتواند کارها را درست انجام دهد. در تولید این سیستم ها نحوه اندیشیدن انسان مد نظر نیست. این سیستم ها متکی به قوانین و منطقی هستند که پایه تفکر آنها را تشکیل داده و آنها را قادر به استنتاج و تصمیم گیری می نماید. آنها با وجودی که مانند انسان نمی اندیشند، تصمیماتی عاقلانه گرفته و اشتباه نمی کنند. این ماشینها لزوما درکی از احساسات ندارند. هم اکنون از این سیستم ها در تولید عامل ها در نرم افزارهای رایانه ای، بهره گیری می شود. عامل تنها مشاهده کرده و سپس عمل می کند.
چالش های بنیادین هوش مصنوعی
البته امروزه هوش مصنوعی به واقعیت نزدیک شده است و تقریباً می توان گفت وجود دارد، اما دلایل اساسی متعددی وجود دارند که نشان می دهند چرا هنوز شکل تکامل یافته هوشی که تورینگ تصور می کرد، به وقوع نپیوسته است. به طور کلی خود نظریه تورینگ مخالفانی جدی دارد. بعضی از این منتقدان اصلا ً هوش ماشینی را قبول ندارند و برخی دیگر صرفاً کارآمدی آزمون تورینگ را برای اثبات هوشمندی زیر سوال می برند. یکی از مهم ترین مباحث مطرح در این زمینه، موضوع شبیه سازی است. غالباً پرسیده می شود آیا صرف این که ماشینی بتواند نحوه صحبت کردن انسان را شبیه سازی کند، به معنی آن است که هوشمند است؟ به عنوان مثال، شاید شما هم درباره روبات های نرم افزاری که می توانند چت کنند (Chatter Bots) چیزهایی شنیده باشید. این روبات ها از روش های تقلیدی استفاده می کنند و به تعبیری، نمونه مدرن و اینترنتی آزمون تورینگ هستند.
مثلاً روبات ELIZA یکی از این هاست. این روبات را ژوزف وایزن بام، یکی دیگر از پژوهشگران نامدار این حوزه اختراع کرد. الیزا در برخی مکالمات ساده می تواند طرف مقابل خود را به اشتباه بیندازد. طوری که مخاطب ممکن است فکر کند درحال گپ زدن با یک انسان است. البته الیزا هنوز نتوانسته است آزمون تورینگ را با موفقیت پشت سر بگذارد. با این حال تکنیک های شبیه سازی مورد انتقاد گروهی از دانشمندان است. یکی از مشهورترین انتقادات در این زمینه را فیلسوفی به نام جان سیرل (John Searle) مطرح کرده است. او معتقد است بحث هوشمندی ماشین های غیربیولوژیک اساساً بی ربط است و برای اثبات ادعای خود مثالی می آورد که در مباحث تئوریک هوش مصنوعی <بحث اتاق چینی> نامیده می شود. سیرل ابتدا نقد خود درباره هوش ماشینی را در 1980 مطرح کرد و سپس آن در مقاله کامل تری که در 1990 منتشر کرد، بسط داد.
ماجرای اتاق چینی به این صورت است: فرض کنید داخل اتاقی یک نفر نشسته است و کتابی از قواعد سمبول های زبان چینی در اختیار دارد. برای این فرد عبارات – سمبول های – چینی روی کاغذ نوشته می شود و از زیر درِ اتاق به داخل فرستاده می شود. او باید با مراجعه به کتاب قواعد پاسخ مناسب را تهیه کند و روی کاغذ پس بفرستد. اگر فرض کنیم کتاب مرجع مورد نظر به اندازه کافی کامل است، این فرد می تواند بدون این که حتی معنی یک نماد از سمبول های زبان چینی را بفهمد، به پرسش ها پاسخ دهد. آیا می توان به این ترتیب نتیجه گرفت که پاسخ دهنده هوشمند است؟
استدلال اصلی این منتقد و دیگر منتقدان موضوع شبیه سازی این است که می توان ماشینی ساخت (مثلاً یک نرم افزار لغتنامه) که عبارات و اصطلاحات را ترجمه کند. یعنی ماشینی که کلمات و سمبول های ورودی را دریافت و سمبول ها و کلمات خروجی را تولید کند؛ بدون این که خود ماشین معنی و مفهوم این سمبول ها را درک کند. بنابراین آزمون تورینگ
حتی در صورت موفقیت نیز نمی تواند ثابت کند که یک ماشین هوشمند است .
ماشین ها بتوانند با دنیای پیرامون خود کنش و واکنش داشته باشند، آنگاه می توانند فکر کنند. منظور این است که کامپیوترها نیز مانند ما دارای حس بینایی، شنوایی، لامسه و حس های دیگر باشند. در این صورت، ترکیب همزمان " پاسخ های تقلیدی " با " واکنش مناسب به محیط " یعنی همان " هوشمندی " اتفاقاً کسی مانند جان سیرل نیز تفکرات مشابهی دارد؛ با این تفاوت که به طور خاص او شکل ایده آل کنش و واکنش مورد نیاز را همان تعامل بیولوژیکی می داند.
انتقادات دیگری نیز به آزمون تورینگ وارد می شود. ازجمله این که ممکن است یک ماشین هوشمند باشد، ولی نتواند همچون انسان ارتباط برقرار کند. دیگر این که، در آزمون تورینگ فرض می شود که انسان مورد آزمایش – یکی از دو نفری که داخل اتاق در بسته به سوالات پاسخ می دهد – به اندازه کافی هوشمند است. در حالی که با استناد به استدلال خود تورینگ می توان نتیجه گرفت که خیلی از افراد مانند بچه ها و افراد بیسواد در این آزمون مردود می شوند؛ نه به دلیل هوشمندی ماشین، بلکه به دلیل نداشتن مهارت کافی در ارتباط گیری از طریق مکاتبه.
مسئله دیگری که در بحث هوش مصنوعی اهمیت دارد، موضوع <قالب و محتوا> است. منظور از قالب یا Context در اینجا، ظرفی است که محتوا داخل آن قرار می گیرد.
یکی از پایه های هوشمندی انسان توجهی است که او به قالب محتوا – و نه صرفاً خود محتوا – دارد. به عنوان مثال، وقتی می گوییم "شیر"، این کلمه به تنهایی معانی متفاوتی دارد، ولی هنگامی که همین واژه داخل یک جمله قرار می گیرد، فقط یک معنی صحیح دارد. انسان می تواند معانی کلمات را نه فقط به صورت مجرد، بلکه با دنبال کردن نحوه وابستگیشان به جمله تشخیص دهد. مشابه همین هوشمندی، در تمام حس های پنجگانه انسان وجود دارد. به عنوان مثال، از نظر علمی ثابت شده است که گوش انسان می تواند هنگام توجه به صحبت های یک انسان دیگر در محیطی شلوغ، کلمات و عباراتی را که نمی شنود، خودش تکمیل کند یا چشم انسان می تواند هنگام مشاهده یک تصویر، قسمت های ناواضح آن را با استفاده از دانسته های بصری قبلی خود تکمیل کند.
از این رو کارشناسان معتقدند، دانش پیش زمینه یا " آرشیو ذهنی" یک موجود هوشمند نقش موثری در هوشمندی او بازی می کند. در حقیقت منشا پیدایش برخی از شاخه های مدرن و جدید دانش هوش مصنوعی همچون " سیستم های خبره " و " شبکه های عصبی " همین موضوع است و اساسا با این هدف پدید آمده اند که بتوانند به ماشین قدرت آموختن و فراگیری بدهند؛ هرچند که هر یک از این شاخه ها، از پارادایم متفاوتی برای آموزش به ماشین استفاده می کنند و همین تفاوت ها مبنا و اساس دو جریان فکری عمده در محافل علمی مرتبط با هوش مصنوعی را پدید آورده اند.
شاخه های علم هوش مصنوعی
امروزه دانش مدرن هوش مصنوعی به دو دسته اصلی تقسیم می شود: یکی هوش مصنوعی سمبولیک یا نمادین (Symbolic AI) و دیگری هوش غیرسمبولیک که پیوندگرا (Connection AI) نیز نامیده می شود.
هوش مصنوعی سمبولیک از رهیافتی مبتنی بر محاسبات آماری پیروی می کند و اغلب تحت عنوان "یادگیری ماشین" یا (Machine Learning) طبقه بندی می شود. هوش سمبولیک می کوشد سیستم و قواعد آن را در قالب سمبول ها بیان کند و با نگاشت اطلا عات به سمبول ها و قوانین به حل مسئله بپردازد. در میان معروف ترین شاخه های هوش مصنوعی سمبولیک می توان به سیستم های خبره (Expert Systems) و شبکه های Bayesian اشاره کرد.
یک سیستم خبره می تواند حجم عظیمی از داده ها را پردازش نماید و بر اساس تکنیک های آماری، نتایج دقیقی را تهیه کند. شبکه های Bayesian یک تکنیک محاسباتی برای ایجاد ساختارهای اطلاعاتی و تهیه استنتاج های منطقی از روی اطلاعاتی است که به کمک روش های آمار و احتمال به دست آمده اند. بنابراین در هوش سمبولیک، منظور از "یادگیری ماشین" استفاده از الگوریتم های تشخیص الگوها، تحلیل و طبقه بندی اطلاعات است.
این گرایش هوش مصنوعی ، بیشتر بر مدل سازی شناخت اعمال تاکید دارد و چندان خود را به قابلیت تعمق در بیولوژیک سیستم های ارائه شده مقید نمی کند.Case-Based Reasoning یکی از گرایش های فعال در این شاخه می باشد . به عنوان مثال روند استدلال توسط یک پزشک هنگام تشخیص یک بیماری کاملاً شبیه به CBR می باشد به این ترتیب که پزشک در ذهن خود تعداد بسیاری زیادی از شواهد بیماریهای شناخته شده را دارد و تنها باید مشاهدات خود را با نمونه های موجود در ذهن خویش تطبیق داده ، شبیه ترین نمونه را به عنوان بیماری بیابد . به این ترتیب مشخصات ، نیازمندی ها و توانائیهای CBR به عنوان یک چارچوب کلی پژوهش در هوش مصنوعی مورد توجه قرار گرفته است.
اما هوش پیوندگرا متکی بر یک منطق استقرایی است و از راه حل "آموزش/ بهبود سیستم از طریق تکرار" بهره می گیرد. این آموزش ها نه بر اساس نتایج و تحلیل های دقیق آماری، بلکه مبتنی بر شیوه آزمون و خطا و <یادگیری از راه تجربه> است. در هوش مصنوعی پیوندگرا، قواعد از ابتدا در اختیار سیستم قرار نمی گیرد، بلکه سیستم از طریق تجربه، خودش قوانین را استخراج می کند. متدهای ایجاد شبکه های عصبی (Neural Networks) و نیز به کارگیری منطق فازی (Fuzzy Logic) در این دسته قرار می گیرند.
پیوندگرایی (Connectionism) هوشمندی را تنها حاصل کار موازی و هم زمان و در عین حال تعامل تعداد بسیار زیادی اجزای کاملاً ساده به هم مرتبط می داند.
شبکه های عصبی که از مدل شبکه عصبی ذهن انسان الهام گرفته اند امروزه دارای کاربردهای کاملاً علمی و گسترده تکنولوژیک شده اند و کاربرد آن در زمینه های متنوعی مانند سیستم های کنترلی، رباتیک، تشخیص متون، پردازش تصویر،… مورد بررسی قرار گرفته است.
علاوه بر این کار بر روی توسعه سیستم های هوشمند با الهام از طبیعت (هوشمندی های ـ غیر از هوشمندی انسان) اکنون از زمینه های کاملاً پرطرفدار در هوش مصنوعی است.
الگوریتم ژنیتک که با استفاده از ایده تکامل داروینی و انتخاب طبیعی پیشنهاد شده روش بسیار خوبی برای یافتن پاسخ به مسائل بهینه سازیست. به همین ترتیب روش های دیگری نیز مانند استراتژی های تکاملی نیز (Evolutionary Algorithms) در این زمینه پیشنهاد شده اند.
دراین زمینه هر گوشه ای از سازو کار طبیعت که پاسخ بهینه ای را برای مسائل یافته است مورد پژوهش قرار می گیرد. زمینه هایی چون سیستم امنیتی بدن انسان (Immun System) که در آن بیشمار الگوی ویروس های مهاجم به صورتی هوشمندانه ذخیره می شوند و یا روش پیدا کردن کوتاه ترین راه به منابع غذا توسط مورچگان (Ant Colony) همگی بیانگر گوشه هایی از هوشمندی بیولوژیک هستند.
برای درک بهتر تفاوت میان این دو شیوه به یک مثال توجه کنید. فرض کنید می خواهیم یک سیستم OCR بسازیم. سیستم OCR نرم افزاری است که پس از اسکن کردن یک تکه نوشته روی کاغذ می تواند متن روی آن را استخراج کند و به کاراکترهای متنی تبدیل نماید.
بدیهی است که چنین نرم افزاری به نوعی هوشمندی نیاز دارد. این هوشمندی را از دو طریق متفاوت می توان فراهم کرد. اگر از روش سمبولیک استفاده کنیم ، قاعدتاً باید الگوی هندسی تمام حروف و اعداد را در حالت های مختلف در بانک اطلاعاتی سیستم تعریف کنیم و سپس متن اسکن شده را با این الگوها مقایسه کنیم تا بتوانیم متن را استخراج نماییم. در اینجا الگوهای حرفی- عددی یا همان سمبول ها پایه و اساس هوشمندی سیستم را تشکیل می دهند.
روش دوم یا متد " پیوندگرا "این است که یک سیستم هوشمند غیرسمبولیک درست کنیم و متن های متعددی را یک به یک به آن بدهیم تا آرام آرام آموزش ببیند و سیستم را بهینه کند. در اینجا سیستم هوشمند می تواند مثلا ً یک شبکه عصبی یا مدل مخفی مارکوف باشد. در این شیوه سمبول ها پایه هوشمندی نیستند، بلکه فعالیت های سلسله اعصاب یک شبکه و چگونگی پیوند میان آن ها مبنای هوشمندی را تشکیل می دهند.
در طول دهه های 1960 و 1970 به دنبال ابداع اولین برنامه نرم افزاری موفق در گروه سیستم های مبتنی بر دانش(Knowledge-Based) توسط جوئل موزس، سیستم های هوش سمبولیک به یک جریان مهم تبدیل شد. ایده و مدل شبکه های عصبی ابتدا در دهه 1940 توسط Warren McCulloch و Walter Pitts معرفی شد.
سپس در دهه 1950 کارهای روزنبالت (Rosenblatt) درمورد شبکه های دولایه مورد توجه قرارگرفت. در 1974 الگوریتم Back Propagation توسط Paul Werbos معرفی شد، ولی متدولوژی شبکه های عصبی عمدتاً از دهه 1980 به این سو رشد زیادی پیدا کرد و مورد استقبال دانشمندان قرار گرفت. منطق فازی ابتدا توسط پروفسور لطفی زاده، در 1965 معرفی شد و از آن زمان به بعد توسط خود او و دیگر دانشمندان دنبال شد.
در دهه 1980 تلاش های دانشمندان ژاپنی برای کاربردی کردن منطق فازی به ترویج و معرفی منطق فازی کمک زیادی کرد. مثلاً طراحی و شبیه سازی سیستم کنترل فازی برای راه آهن Sendai توسط دو دانشمند به نام هایYasunobu و Miyamoto در 1985، نمایش کاربرد سیستم های کنترل فازی از طریق چند تراشه مبتنی بر منطق فازی در آزمون " پاندول معکوس " توسط Takeshi Yamakawa در همایش بین المللی پژوهشگران منطق فازی در توکیو در 1987 و نیز استفاده از سیستم های فازی در شبکه مونو ریل توکیو و نیز و معرفی سیستم ترمز ABS مبتنی بر کنترلرهای فازی توسط اتومبیل سازی هوندا در همین دهه تاثیر زیادی در توجه مجدد دانشمندان جهان به این حوزه از علم داشت.
البته هنگامی که از گرایش های آینده سخن می گوییم، هرگز نباید از گرایش های ترکیبی غفلت کنیم. گرایش هایی که خود را به حرکت در چارچوب شناختی یا بیولوژیک یا منطقی محدود نکرده و به ترکیبی از آنها می اندیشند. شاید بتوان پیش بینی کرد که چنین گرایش هایی فرا ساختارهای (Meta -Structure) روانی را براساس عناصر ساده بیولوژیک بنا خواهند کرد.
کاربردهای هوش مصنوعی
سیستم های خبره (Expert Sytems)
در یک تعریف کلی می توان گفت سیستم های خبره، برنامه های کامپیوتری ای هستند که نحوه تفکر یک متخصص در یک زمینه خاص را شبیه سازی می کنند. در واقع این نرم افزارها، الگوهای منطقی ای را که یک متخصص بر اساس آن ها تصمیم گیری می کند، شناسایی می نمایند و سپس بر اساس آن الگوها، مانند انسان ها تصمیم گیری می کنند.
یکی از اهداف هوش مصنوعی، فهم هوش انسانی با شبیه سازی آن توسط برنامه های کامپیوتری است. البته بدیهی است که "هوش " را می توان به بسیاری از مهارت های مبتنی بر فهم، از جمله توانایی تصمیم گیری، یادگیری و فهم زبان تعمیم داد و از این رو واژه ای کلی محسوب می شود.
بیشتر دستاوردهای هوش مصنوعی در زمینه تصمیم گیری و حل مسئله بوده است که اصلی ترین موضوع سیستم های خبره را شامل می شوند. به آن نوع از برنامه های هوش مصنوعی که به سطحی از خبرگی می رسند که می توانند به جای یک متخصص در یک زمینه خاص تصمیم گیری کنند، Expert Systems یا سیستم های خبره گفته می شود. این سیستم ها برنامه هایی هستند که پایگاه دانش آن ها انباشته از اطلاعاتی است که انسان ها هنگام تصمیم گیری درباره یک موضوع خاص، براساس آن ها تصمیم می گیرند. روی این موضوع باید تاکید کرد که هیچ یک از سیستم های خبره ای که تا کنون طراحی و برنامه نویسی شده اند، همه منظوره نبوده اند و تنها در یک زمینه محدود قادر به شبیه سازی فرآیند تصمیم گیری انسان هستند.
به محدوده اطلاعاتی از الگوهای خِبرگی انسان که به یک سیستم خبره منتقل می شود Task Domain گفته می شود. این محدوده، سطح خبرگی یک سیستم خبره را مشخص می کند و نشان می دهد که آن سیستم خبره برای چه کارهایی طراحی شده است. سیستم خبره با این Task ها یا وظایف می تواند کارهایی چون برنامه ریزی، زمانبندی، و طراحی را در یک حیطه تعریف شده انجام دهد.
به روند ساخت یک سیستم خبره، Knowledge Engineering یا مهندسی دانش گفته می شود. یک مهندس دانش باید اطمینان حاصل کند که سیستم خبره طراحی شده، تمام دانش مورد نیاز برای حل یک مسئله را دارد. طبیعتاً در غیراین صورت، تصمیم های سیستم خبره قابل اطمینان نخواهند بود.
کاربرد های هوش مصنوعی
یا بشر قادر خواهد بود موجودی هوشمند همانند خود به وجود آورد؟ آیا زمانی فرا خـــواهد رسید که روباتها به خانه ما رفت و آمد کنند؛ کنار ما بنشینند و با ما به تبادل نظر بپردازند؟ شاید سوالاتی این چنین را بتوان زمینه ساز ظهور دانشی نوین، با عنوان هوش مصنوعی دانست. نخستین جرقههای هوش مصنوعی به سالهای بعد از جنگ جهانی دوم باز میگردد.زمانی که آلن تورینگ در سال ۱۹۵۰م. آزمایشی مبنی بر این که آیا ماشین قادر است بـــــــــا فرآیندهای مغز انسان رقابت نماید، مطرح کرد.
جالب است بدانید مباحث هوش مصنوعی پیش از بوجود آمدن علـــــــــوم الکترونیک، توسط فلاسفه وریاضی دانانی نظیر بول مطرح شده بود که اقدام به ارائه قوانین و نظریه هایی در باب منطق نمودند. هوش مصنوعی، شاخهای از علم کامپیوتر است و در واقع تلفیقی از سه فناوری و گرایش مطرح؛ یعنی شبکههای عصبی، سیستمهای استدلال فازی و الگوریتم تکاملی میباشد.
در مقایسه هوش مصنوعی با هوش انسانی می توان گفت که انسان قادر به مشاهده و تجزیه و تحلیل مسایل در جهت قضاوت و اخذ تصمیم میباشد در حالی که هوش مصنوعی مبتنی بر قوانین و رویه هایی از قبل تعبیه شده بر روی کامپیوتر میباشد
هدف هوش مصنوعی
نزدیک نمودن رفتار و پاسخ یک سیستم کامپیوتری به الگوهایی است که انسان براساس آن ها رفتار می کند و پاسخ می دهد.گاه سیستم هایی طراحی می شوند که قدرت تجزیه و تحلیل آن ها از انسان بیشتر است. ولی باز از الگوهای ما استفاده می کنند.
از اهداف متخصصین،تولید ماشینهایی است که دارای احساسات بوده و دست کم نسبت به وجود خود و احساسات خود آگاه باشند. این ماشین باید توانایی تعمیم تجربیات قدیمی خود در شرایط مشابه جدید را داشته و به این ترتیب اقدام به گسترش دامنه دانش و تجربیاتش کند.
● در مورد شاخه ها و کاربردهای هوش مصنوعی
این واقعیتی هست بیشتر افراد با شنیدن عبارت "هوش مصنوعی"، بیـــــــاد روباتهای فیلمهای علمی – تخیلی و بازیهای کامپیوتری و به خصوص شطرنج می افتند.
در حالی که هوش مصنوعی در مدت زمان کوتاهی از عمر خود، توانسته است از حد توسعه بازیها به سوی دنیایی از مسائل شگفت آوری همچون سیستمهای خبره، بینایی ماشین و… گام بردارد.
امروزه ردپایی از هوش مصنوعی را میتوان در علوم مختلفی اعم از پزشکی، علوم هوافضا، اکتشافات ، تسلیحات نظامی ، پیش بینی وضع هوا، نقشه برداری و شناسایی عوارض، تشخیص صدا، تشخیص گفتار ؛ دست خط ؛ بـــــازی ها و نرم افزارهای رایانه ای مشاهده کرد. از این رو، متخصصان هوش مصنوعی، با توجه به کاربردهای گوناگون این علم، آن را در شاخههای متنوعی دنبال نموده اند
از جمله :
▪ شبکه های عصبی (Neural Networks)
این شبکه ها که با الهام از مدل شبکه عصبی ذهن انسان طراحی میشوند و امروزه کاربردهای فراوان و گستردهای داشته، در زمینههای متنوعی چون سیستمهای کنترلی، روباتیک، تشخیص متون، پردازش تصویر و… مورد استفاده قرار میگیرند.
▪ پردازش زبان طبیعی (Natural Language Processing)
در این شاخه، سیستمها برای فهم زبان انسان برنامهریزی میشوند.
▪ روباتیک (Robotics)
این شاخه از هوش مصنوعی سعی دارد روباتها را طوری برنامهریزی کند که اعمالی هوشمندانه، چون توانایی دیدن، شنیدن و نشان دادن عکسالعمل به محرکهای محیطی را انجام دهد.
▪ انجام مسابقات (Game Playing)
در این شاخه ؛ کامپیوترها برای شرکت در مسابقاتی چون شطرنج برنامه ریزی می شوند . که در سال 1997 میلادی کامپیوتر شطرنج باز ؛ قهرمان شطرنج جهان را شکست داد . یا نشستن یک روبات بر روی کره مریخ با موفقیت انجام شد .روبوکاپ اولین قدمهای خود را با برپایی مسابقات روباتهای فوتبالیست برداشت.
با هدف سمبلیک که در سال ۲۰۵۰م. تیمی متشکل از روباتهای انساننمای هوشمند بتوانند قهرمان فوتبال جهان را در زمین فوتبال واقعی شکست دهند(ظاهرا ما اون بازی رو نمی بینیم!)
سیستمهای خبره
در این شاخه، کامپیوترها برای تصمیمگیری در شرایط واقعی زندگی برنامهریزی میشوند. نمونهای از سیستمهای خبره، سیستمهای تشخیص بیماری هستند.در این سیستمها، اطلاعات یک یا چند متخصص به همراه اطلاعات دریافتی از مراجعان به کامپیوتر داده میشود؛ سپس کامپیوتر با پرسش سوالاتی از مراجعهکننده و تطبیق آن با بانک اطلاعاتی خود، بیماری شخص را تشخیص خواهد داد.
هر چند این سیستمها خبره هستند، اما تنها از اطلاعاتی که به آنها داده شده، استفاده میکنند. برای نزدیک شدن به هوشمندی انسان، ماشین بایستی بتواند کارکرد خود را اصلاح نماید. به عبارتی دیگر، ماشین، بایستی دارای قدرت یادگیری باشد.
▪ یادگیری ماشین (Machine Learning)
این شاخه به این معناست که ماشین بتواند برنامه، ساختار یا دادههایش را بر اساس ورودیها یا در پاسخ به اطلاعات خارجی، به نحوی تغییر دهد که رفتارش به آن چه از او انتظار میرود، نزدیکتر شود ( یعنی قدرت تجزیه تحلیل داشته).
▪ استراتژیهای تکاملی الگوریتم ژنتیک) (Evolutionary Algorithms)
در این زمینه بیشتر به هوشمندیهایی غیر از هوشمندی انسان پرداخته میشود. در حقیقت این گرایش سعی دارد مسائل بهینهسازی را با کمک روشهایی که در طبیعت انتخاب شده است، حل نماید. به طور مثال، روش یافتن کوتاهترین راه به منابع غذا، توسط مورچگان، بیانگر گوشهای از هوشمندی بیولوژیک هستند.
▪ تشخیص گفتار (Speech Recognition)
این گونه سیستمها معمولاً به عنوان ابزارهای بیومتریک و تشخیص هویت با کمک صدا در مکانهایی مثل بانکها، فرودگاهها، آزمایشگاههای تحقیقاتی و… برای ایجاد امنیت و کنترل ورود و خروج افراد مورد استفاده قرار میگیرند.
▪ بینایی ماشین (Machine Vision)
هدف از بینایی ماشین شبیهسازی، عملکرد سیستم بینایی انسان میباشد.در این شاخه، ردگیری و تعقیب حرکات چشم، یکی از زمینههای خاص و پرطرفدار در میان متخصصان هوش مصنوعی محسوب میشود. مثالهایی از کاربــردهای چنــــین سیستمی مثل : تعقیب حرکات چشم شخصی خاص در میان جمعیت، بررسی افراد مشکوک، تشخیص میزان هوشیاری رانندگان با توجه به وضعیت و حالات چشم وی،ایجاد ارتباط معلولین جسمی با کامپیوتر از طریق فرامین چشمی ؛ ایجاد نظم در ترافیک جادهای و کنترل نامحسوس
کاربردهای هوش مصنوعی در کشاورزی
استفاده برای استخراج اطلاعات کشاورزی و نقشه های سطح زمین٬ وضعیت آبی و زراعی زمین٬ وضعیت جنگلها و مراتع و … خودکار سازی سیستم های ماشینی کاشت٬ داشت٬ برداشت و عرضه محصول و کنترل کیفیت آن نظیر سیستم های خودکار برداشت و بسته بندی چای و…
کاربردهای هوش مصنوعی در صنعت
کلیه سیستم های خودکار جهت برش قطعات مختلف٬ سرهم کردن و فیکس کردن قطعات داخل هم٬ اتصال آنها به هم . سیستم کنترل کوره ها٬ رباتهای مختلفی که در برشکاری ورق٬ اتصال و جوشکاری استفاده می شود و همچنین سیستم های هوشمند بینایی که در کنترل کیفیت انواع محصولات بکار می رود نام برد
کاربردهای هوش مصنوعی در بازیها
در بازی های کامپیوتری دو نوع هوش بیشتر از همه استفاده می شوند که به صورت خلا صه عبارتند از:
هوش مصنوعی رویدادگرا: از معمول ترین نوع هوش مصنوعی است. رویداد می تواند شامل هر چیزی اعم از اتفاقات بازی تا دستوراتی باشد که کاربر به شخصیت مجازی خود می دهد. براساس هر رویدادی که در بازی انجام می شود، یک واکنش هوشمندانه نیز روی می دهد. در بازی کانتر دشمن شما نسبت به صدا حساس است و صدای دویدن شما را هم می شنود. از این رو بسته به موقعیت خود، یا به آهستگی پنهان می شود، یا برمی گردد و از راه دیگری به سوی شما می آید یا به سوی شما می آید و شلیک می کند.
هوش مصنوعی هدف گرا: از رویدادگرا مستقل است. ولی هوش مصنوعی رویدادگرا می تواند در طراحی یک بازی، هدف های موتور هوش مصنوعی هدف گرا را تامین کند. در این نوع هوش مصنوعی، هدف ؛؛؛ با ارزش بیشتر را انتخاب می کنه و آن را با تقسیم به زیرهدف های کوچک تر، پردازش می کند
از نظر کاربرد هوش مصنوعی در بازی دو نوع وجود دارد :
بازیهای کلاسیک / شطرنج – مار – پازل و …
بازیهای مدرن / سیمس 2 – کانتر – جی تی ای – مکس پین و …
در این گروه از بازیها موفقیت های چشمگیری بدست آمده است. برای نمونه در بازی سیمس 2 شخصیت های بازی نیازهای اولیه گرسنگی و تشنگی را دارند و اگر در طول بازی به آنها غذا نرسد می میرند …
انتخاب سطح هوشمندی در بازی فوتبال ؛ ضربات در چارچوب ، پاس ؛ هوشمندی گلر ! در نتیجه / روند نزدیکی هوش مصنوعی و بازی باعث شده است که بازی کنان خود را جزئی از بازی بدانند. از این رو تولیدکنندگان برنامه های بازی تلاش می کنند دیوار بین بازیکن و برنامه بازی کوتاهتر شود بطوری که بازی کن خود را در قالب یکی از شخصیت بازی بداند.
در مورد تازه های هوش مصنوعی
اگر سری به صفحات اینترنتی اخبار تکنولوژی بزنیم، متوجه انبوهی از محصولات جدید هوشمند خواهیم شد.نمونههای زیر، تنها گوشهای از کاربردهای هوش مصنوعی در صنایع مختلف میباشند..
▪ لباسهای هوشمند
با توسعه نانوتکنولوژی و استفاده از مواد مولکولی سبک، امکان ساخت لباسهای هوشمند فراهم شده است. این گونه لباسها:
قابلیت تغییر رنگ جهت استتار در محیطهای مختلف را داشته،
شخص را در برابر سلاحهای بیولوژیکی و شیمیایی محافظت میکنند.
امکان مجهز نمودن این گونه لباسها به تجهیزات مخابراتی،
انتقال علائم حیاتی جهت درمان از راه دور در مناطق جنگی و یا آسیبدیده، از دیگر مزایای این لباسها به شمار میآیند.
همچنین در صورت بروز حادثه برای کاربر، پیامی به تلفن همراه یا پست الکترونیکی مشخصی ارسال میگردد.
▪ آجر و ساختمانهای هوشمند
ساختمانهای هوشمند این قابلیت را دارند که با تغییر شرایط محیطی، نسبت به تغییرات، عکسالعمل نشان داده، امنیت و آرامش را برای ساکنان خانه فراهم نمایند.
یک ساختمان هوشمند، دارای سیستمهای اتوماتیک گرمایشی، تهویه مطبوع، اعلام حریق، آتشنشانی، سیستمهای امنیتی، مدیریت انرژی و سیستمهای روشنایی خودکار میباشد.
آجرهای هوشمند که همانند آجرهای معمولی در ساختمانها به کار میروند، مجهز به حسگرهای الکترونیکی هستند که با اتصال به یک سیستم کامپیوتری، دما، لرزش و حرکت ساختمان را کنترل میکنند و سبب ایمنتر شدن ساختمان میشوند. به کارگیری چند آجر در محلهای مختلف یک ساختمان، میتواند به صورت یک شبکه عمل کرده، تصویری کلی از ثبات ساختمان ارائه دهد.
▪ کیف هوشمند
به کمک یک سنسور یا حسگر، به یادآوری محتویات درون کیف پرداخته، از گم شدن اشیای داخل کیف جلوگیری میکند
▪ شیر آب هوشمند
به محض نزدیک شدن دست یا هر جسم دیگری در محدوده دید حسگر دستگاه، سبب جاری شدن آب میشود. شیر مذکور، به محض خروج دست از محدوده دید، آب را قطع میکند.
سیستمهای حمل و نقل هوشمند
به معنی استفاده و به کارگیری تکنولوژیهای نوین، همچون الکترونیک، ارتباطات و سیستمهای کنترلی است. کاربردهای این گونه سیستمها عبارتند از:
راهنمای الکترونیکی مسیر، کنترل ترافیک شهری، سیستمهای اعلام خطر، تنظیم چراغهای راهنما، شناسایی موقعیت تصادف و در نهایت پردازش اطلاعات مربوط به جابهجایی کالا و مسافر , …
▪ تسلیحات نظامی هوشمند
نقش انسان در لحظات بحرانی جنگ، بسیار کمرنگتر از گذشته شده است؛ به طوری که جنگهای امروزی در حقیقت نبرد کامپیوترهای ما با کامپیوترهای دشمن خواهد بود.
سیستمهای شلیک بعد از هشدار کامپیوتر،حضور ماشینهایی با قابلیتهای انسانی، مانند بینایی، خلبان اتوماتیک، استفاده از انواع روباتها جهت شناسایی، تخریب و پاکسازی مناطق جنگی و…، تنها نمونه هایی از کاربردهای نظامی هوش مصنوعی محسوب میگردند.
– میکروروباتهای جراح که همراه با نوشیدن آب و از راه دهان به درون بدن انسان فرستاده میشوند، با کمک کنترل از راه دور، به کاوش در محیط بدن پرداخته، عکسبرداری و انجام عمل جراحی را امکانپذیر میسازند،
-استفاده از برچسپهای هوشمند برای ردیابی زندانیان،
– سیستمهای هوشمند اعلام زمان مصرف دارو،
– کارتهای شناسایی هوشمند و تراشههای هوشمند با ابعاد نصف یک دانه شن که در زیر پوست قرار میگیرند و جایگزینی برای کارتهای اعتباری خواهند بود و…، نمونه های دیگری از کاربردهای وسایل هوشمند هستند.
هدف نهایی هوش مصنوعی،ساخت نوعی انسان مصنوعی است و در حقیقت، ساخت برنامه نرمافزاری که بتواند همانند انسان فکر کند. چنین ماشینی با ترکیب تکنیکهای استنباطی پیشرفته و استفاده از توانایی تحلیلگران، مهندسان، سیاستمداران، تصمیم گیرندههای شرایط بحرانی و سایر دانشمندان و بر پایه حجم عظیمی از منابع اطلاعاتی، میتواند بهترین تصمیم را در شرایط بحرانی اتخاذ نماید.
تعریف هوش مصنوعی
هوش مصنوعی راهوش مصنوعی تکنیکی برای خلق کردن ماشین هایی است که قادر به فکر کردن بدون نیاز به انسان ها می باشند. هوش مصنوعی بطور خلاصه ترکیبی از علوم کامپیوتر، فیزیولوژی و فلسفه است. این شاخه از علوم بسیار گسترده و متنوع است و از موضوعات و رشته های مختلف علوم و فناوری، مانند مکانیزم ساده در ماشین ها شروع شده و به سیستم های بسیار خبره ختم می شود. هدف هوش مصنوعی به طور کلی ساخت ماشینی است که بتواند فکر کند.
می توانیم از زوایای مختلف بررسی کنیم:
* مطالعه , بررسی و نحوه شبیه سازی هوش مصنوعی به کارهایی که انسان در ان ماهر تر از سیستم هاست.
* بخشی از علم کامپیوتر که مربوط به طراحی سیستم های هوشمند کامپیوتری است.این سیستم ها از موجودات هوشمند از جمله انسان الگوبرداری شده اند.
* مجموعه از مفاهیم فکری و یا راه حلی برای مشکلات با روشی خاص
* انچه هوش مصنوعی را از سایر علوم کامپیوتری و مهندسی متمایز می کند روش اکتشافی حل مسایل و مشکلات است.
تاریخچه هوش مصنوعی
علم هوش مصنوعی,علمی است کاملا جوان.شاید بتوان شروع ان را از سال 1950 دانست زمانی که الن تورینگ مقاله خود را در مورد چگونگی ساخت ماسین هوشمند منتشر کرد.این روش بیشتر شبیه یک بازی بود.از جمله دانشمندانی که در زمینه هوش مصنوعی فعالیت داشتند و ان را گسترش دادند می توان به الن تورینگ,جان مک کارتی,ماروین مینسکی و … اشاره کرد.
کاربرد های هوش مصنوعی
هوش مصنوعی تنها به روبات ها,بازی شطرنج,فیلم های تخیلی و … محدود نمی شود بلکه امروزه توانسته در مسایل بسیاری همچون پردازش زبان طبیعی,سیستم های خبره,سیستم های عصبی,بینایی ماشین,…گام بردارد و موفقیت های بسیاری کسب کند.
امروزه در هر علمی می توان رد پایی از هوش مصنوعی و کاربرد های ان پیدا کرد,از جمله پزشکی,هوا فضا,تسلیحات نظامی,تشخیص صدا و گفتار,و.. بسیاری از علوم مختلف دیگر.حال نمونه های از کابرد هوش مصنوعی را در علوم دیگر بررسی میکنیم:
شبکه های عصبی (NEURAL NETWORKING)
این شبکه ها از طریق الگو سازی بر اساس ذهن انسان انجام می شوند و در زمینه های متفاوتی چون پردازش تصویر,تشخیص متون,سیستم های کنترلی,روباتیک و غیره استفاده می شود.
پردازش زبان طبیعی (NATURAL LANGUAGE PROCESSING)
در این محدوده بر روی سیستم ها برای فهم زبان انسان برنامه ریزی می کنند.
روباتیک (ROBOTICS)
کار متخصصان هوش مصنوعی در حیطه روباتیک,طراحی روبات های هوشمندی است که دارای قابلیت های دیدن,شنیدن,عکس العمل نشان دادن به محرک های محیطی باشند.
انجام مسابقات(GAME PLAYING)
در این شاخه سیستمهای کامپیوتری برای شرکن در مسابقاتی مانند شطرنج یا فوتبال.. آماده می شوند.
سیستم های خبره
در این شاخه سیستم ها برای تصمیم گیری در شرایط شبیه به زندگی ما طراحی می شوند. برای مثال می توان از سیسنم های تشخیص بیماری نام برد.در این سیستم ها اطلاعات چند متخصص به همراه اطلاعات و وضعیت مراجع کننده به سیستم داده می شود,سپس کامپیوتر با پرسش سوالاتی از مراجعه کننده و رفع ابهام در اطلاعات ورودی خود,وضعیت بیمار را با اطلاعات ذخیره شده تطبیق میدهد و بیماری فرد را تشخیص می دهد.هر چند این سیستم ها خبره هستند اما تنها از اطلاعاتی که متخصص به انها داده است استفاده می کنند.
یادگیری ماشین(MACHIN LEARNING)
برای نزدیک شدن ماشین به هوشمندی انسان,ماشین باید داری قدرت یادگیری باشد و بتواند کارکرد خود را اصلاح کند و قابلیت خود را بالا ببرد.به عبارت دیگر ماشین باید بتواند برنامه,ساختار و یا داده هایش را بر اساس ورودی ها و یا در پاسخ به اطلاعات خروجی به نحو مناسبی تغییر دهد و یا به عبارت دیگر دارای قدرت تجزیه و تحلیل باشد.
استراتژی تکاملی الگویتم ژنتیک(EVOLUTIONARY ALGORITHMS)
در این زمینه بیشتر به هوشمندی هایی غیر از هوشمندی انسان توجه می شود.در واقع این گرایش سعی دارد مسایل بهینه سازی را با استفاده از روش های موجود در طبیعت حل کند.
برای مثال روش دستیابی به از طریق کوتاه ترین راه توسط مورچه ها,نمونه از هوشمندی بیولوژیک است.
تشخیص گفتار(SPEECH RECOGNITIOM)
اینگونه سیستم ها معمولا به عنوان ابزارهای بیومتریک و تشخیص هویت از طریق صدا در مکان هایی مثل فرودگاه,ازمایشگاه ها و .. استفاده میشود.
همچنین برای ایجاد امنیت و کنترل ورود و خروج هم می توان از ان استفاده کرد.
بینایی ماشین (MACHINE VISION)
هدف این شاخه شبیه سازی سیستم بینایی انسان است.در این حیطه رد گیری و تعقیب حرکات چشم یکی از موارد جذاب و پرطرفدار در بین متخصصان هوش مصنوعی است.در مورد مثال های دیگر از بینایی ماشین میتوان به موارد ذیل اشاره کرد: تعقیب حرکات شخصی خاص در بین جمعیت,بررسی افراد مشکوک از طریق حرکات چشم,ایجاد ارتباط بین معلولین جسمی و حرکتی از طریق فرامین چشمی و حرکت های چشم با کامپیوتر,کنترل نا محسوس و ایجاد نظم در ترافیک ها جاده ای…
کاربرد های هوش مصنوعی در کشاورزی
کاربرد های هوش مصنوعی در کشاورزی موارد متنوعی از جمله نقشه برداری از سطح زمین,استخراج اطلاعات کشاورزی,وضعیت ابی و زراعی زمین,وضعیت مراتع…همچنین یکی از پرکاربرد ترین استفاده های هوش مصنوعی در کشاورزی خود کار سازی سیستم های کاشت,داشت و برداشت و عرضه محصول و بسته بندی کردن ان و ..میباشد.
کاربرد هوش مصنوعی در صنعت
کلیه سیسنم های خودکار جهت برش قطعات مختلف,سرهم کردن و فیکس کردن قسمت های مختلف در بخش صنعت قرار می گیرد.سیستم های کنترل کوره ها,سیستم های هوشمند بینایی در کنترل کیفیت انواع محصولات..
کاربرد هوش مصنوعی در بازیها
در بازیها از دو نوع هوش مصنوعی استفاده میشود:
* هوش مصنوعی هدف گرا
* هوش مصنوعی رویدادگرا
هدف هوش مصنوعی
از هدف های هوش مصنوعی می توان به نزدیک نمودن رفتار و پاسخ یک سیستم کامپیوتری به الگو ها و رفتار های انسان اشاره کرد.گاه سیستم هایی طراحی می شوند که قدرت تجزیه و تحلیل قوی تری از ما دارند اما باز هم بر اساس الگوی های رفتاری ما انسان ها رفتار می کنند.
و یا می توان گفت هوش مصنوعی ساخت انسان مصنوعی است و به عبارت دیگر ساخت برنامه ای هوشمند است که بتواند همانند انسان فکر کند.
این روزها هوش مصنوعی، یادگیری ماشین، یادگیری عمیق و اصطلاحاتی این چنین در خلال اخبار دنیای فناوری بسیار به گوش می رسند، چراکه بسیاری از کمپانی های رده بالا و پیشتاز در دنیای فناوری، هوش مصنوعی را قدم بعدی بزرگ برای اضافه کردن قابلیت یادگیری به رایانه ها عنوان کرده اند.
در ساده ترین تعریف ممکن، یادگیری ماشین به معنای تغذیه ی الگوریتم های محاسباتی با استفاده از در اختیار گذاشتن مجموعه ای از اطلاعات در قالب دیتاسِت است که در مرحله ی بعد رایانه باید با استفاده از این دیتاسِت به سوالات پرسیده شده پاسخ دهد. برای مثال می توان به تهیه ی مجموعه ای از تصاویر اشاره کرد که هر یک با توضیح "این یک گربه است" یا "این یک گربه نیست" همراه شده است. پس از آنکه این مجموعه ی تصاویر در اختیار الگوریتم قرار گرفت، می توان با نمایش تصاویری به رایانه از آن خواست تا تشخیص دهد که آیا تصویر مربوط به گربه است یا خیر؟
اما فرآیند آموزش به مجموعه ی اولی که در اختیار رایانه قرار گرفته محدود نمی شود؛ با پرسیدن هر سوال که در واقع یک تصویر در آن نمایش داده می شود، فارغ از اینکه الگوریتم صحیح پاسخ دهد یا خیر، عکس مورد نظر به دیتاست اضافه شده و در نتیجه دانش هوش مصنوعی به مرور زمان بهبود می یابد.
در ادامه ۱۰ کاربرد اصلی هوش مصنوعی برای حل مشکلات و چالش های دنیای فناوری را از نظر می گذرانیم.
۱. امنیت داده ها
بدافزارها یکی از مشکلات کاربران و کمپانی ها در فضای آنلاین است که قدمت آن به روزهای ابتدایی شکل گیری اینترنت بازمی گردد. در سال ۲۰۱۴، موسسه ی کسپراسکی اعلام کرد که روزانه بیش از ۳۲۵٫۰۰۰ بدافزار کشف می کند. براساس اطلاعات ارائه شده توسط موسسه ی تحقیقاتی Deep Instinct، اغلب بدافزار های جدید از کد مشابهی که در بدافزار های پیشین مورد استفاده قرار گرفته، بهره می برند، حال آنکه دامنه ی تغییرات اعمال شده بین ۲ تا ۱۰ درصد است. تحقیقات انجام شده نشان از این دارد که مدل یادگیری مورد استفاده در هوش مصنوعی قادر است تغییرات ۲ تا ۱۰ درصدی در کد پیاده سازی شده را شناسایی کرده و تشخیص دهد که کدام فایل ها بدافزار هستند. همچنین باید به این نکته اشاره کرد که الگوریتم های یادگیری ماشین می توانند الگوی های مربوط به رد و بدل شدن اطلاعات در سرورهای ابری را تحت نظر گرفته و موارد مشکوک را که احتمالا منجر به سوءاستفاده های امنیتی خواهند شد، شناسایی کنند.
۲. امنیت در دنیای واقعی
این روزها گیت های امنیتی در تمام مکان ها نظیر فرودگاه ها یا شماری از گردهمایی ها که حساسیت امنیتی وجود دارد، دیده می شوند. یادگیری ماشین نشان داده که قادر است روند کنترل امنیتی را تسریع کرده و دقت این فرآیند را افزایش دهد. با استفاده از یادگیری ماشین می توان از ایجاد هشدارهای اشتباه پیشگیری کرده و مواردی را تشخیص داد که اسکنرهای معمولی قادر به شناسایی آن ها نیستند. از این سیستم می توان در فرودگاه ها، کنسرت ها، استادیوم ها و سایر مواردی که تعداد زیادی از افراد در آن حضور دارند، استفاده کرد.
۳. مبادلات مالی
بسیاری از افراد تمایل دارند تا قیمت سهام کمپانی ها در روزهای آینده را در صورت حاکم شدن شرایط مشخص، پیش بینی کنند. استفاده از یادگیری ماشین در کنار کلان داده درصدد تحقق این امر است. بسیاری از کمپانی های خرید و فروش کننده ی سهام از سیستم های اختصاصی توسعه یافته برای پیش بینی قیمت و انجام خرید و فروش براساس نتایج به دست آمده استفاده می کنند. بسیاری از سیستم های توسعه یافته مبتنی بر علم احتمالات است، اما یک معامله که شاید احتمال کمی برای سوددهی داشته باشد، در صورتی که حجم بالایی داشته و با وجود احتمال پایین یک معامله ی موفق باشد، می تواند سود سرشاری را به همراه بیاورد. به قطع یقین زمانی که حجم داده هایی که باید پردازش شوند، افزایش یافت، انسان ها نمی توانند در برابر قدرت پردازشی رایانه ها حرفی برای گفتن داشته باشند، از این رو تجهیز سیستم ها به قدرت محاسباتی هوش مصنوعی و یادگیری ماشین می تواند در این خصوص بسیار راهگشا باشد.
۴. سرویس های سلامتی و مراقبت های بهداشتی
الگوریتم های مبتنی بر یادگیری ماشین می توانند اطلاعات بسیار زیادی را پردازش کرده و الگوهای بسیاری را در مقایسه با انسان ها از میان داده های بسیار استخراج کنند. در یک مطالعه، محققان از یک سیستم تشخیص رایانه ای برای بازبینی نتایج ماموگرافی زنانی استفاده کرده اند که بعدها به بیماری سرطان سینه مبتلا شده اند. براساس اطلاعات ارائه شده این سیستم رایانه ای موفق شده تا با بررسی نتایج ماموگرافی های یک سال پیش در ۵۲ درصد موارد، سرطان سینه را در بیماران پیش از تشخیص پزشکان، پیش بینی کند. علاوه بر تشخیص بیماری بصورت موردی برای هر فرد براساس نتایج آزمایش، یادگیری ماشین می تواند با بررسی عوامل خطرناک برای بیماری جمعی، آن را پیش از همه گیر شدن شناسایی کند. کمپانی Medecision الگوریتمی را توسعه داده که با استفاده از می توان با شناسایی هشت فاکتور در بیماران دیابتی، نیاز به بستری شدن در بیمارستان را تشخیص داد.
۵. بازاریابی
هراندازه که درک و شناخت شما از کاربرانتان بیشتر باشد، بهتر می توانید به آن ها سرویس بدهید و در نتیجه فروش بهتری را نیز تجربه خواهید کرد. این نگرش را باید بنیان استفاده از یادگیری ماشین و هوش مصنوعی در بازاریابی خواند. شاید شما این تجربه را دارید که پس از جستجو برای یک محصول و یافتن آن، از خرید پشیمان شده یا به هر دلیلی کالای مورد نظر را خریداری نکرده اید، اما در روزهای بعد در اغلب صفحات وب با آگهی هایی روبرو شده اید که کالای جستجو شده توسط شما را نمایش می دهند. این نوع بازاریابی را باید تنها بخش کوچکی از قابلیت هایی بدانیم که با استفاده از یادگیری ماشین می توان انجام داد. ایمیل های شخصی سازی شده ارسالی برای کاربران از جمله ی دیگر کاربردهای یادگیری ماشین در بازاریابی است.
۶. جلوگیری از تقلب
توانایی یادگیری ماشین در زمینه ی شناسایی و جلوگیری از تقلب در سرویس های مختلف روز به روز افزایش پیدا می کند که این توانایی در حوزه های مختلف قابل استفاده است. برای مثال می توان به سیستم پی پال اشاره کرد که از یادگیری ماشین برای مبارزه با پولشویی از طریق پی پال استفاده می کند. این کمپانی قادر است با بهره گیری از یادگیری ماشین میلیون ها تراکنش انجام شده را تحلیل کرده و موارد مشکوک به پولشویی را که بین خریداران و فروشندگان اتفاق می افتد، پیش بینی کند.
۷. سیستم ارائه ی پیشنهاد
سرویس هایی نظیر آمازون و نتفلیکس با استفاده از فعالیت های کاربران در سرویس هایشان، پیشنهاداتی را در اختیار افراد قرار می دهند. الگوریتم های مبتنی بر یادگیری ماشین با تحلیل و بررسی فعالیت یک کاربر مشخص و مقایسه ی آن با میلیون ها کاربر دیگر، لیستی از پیشنهادات را تهیه می کنند که احتمالا کاربر در نوبت بعدی به خرید کالا یا برنامه ی پیشنهادی علاقه نشان دهد. این پیشنهادات که برگرفته از سیستم های هوشمند هستند، رفته رفته باهوش تر شده و می توانند درک کنند که شما چه کالاهایی را برای هدیه دادن و چه کالاهایی را برای استفاده ی شخصی خریداری می کنید. در مورد سرویس هایی نظیر نتفلیکس، این سیستم ها با افزایش هوش می توانند تمایلات اعضای مختلف یک خانواده را از هم تفکیک کنند.
۸. جستجوی آنلاین
به جرات می توان جستجوی اینترنتی را شناخته شده ترین نمونه از کاربرد یادگیری ماشین خواند. گوگل و رقبای این کمپانی همواره در حال بهبود نتایج جستجو هستند. هر زمانی که کاربر جستجویی را در گوگل انجام می دهد، الگوریتم گوگل نحوه ی واکنش شما با نتایج نمایش داده شده را تحت نظر می گیرد. در صورتی که کاربر روی نتایج اولیه ی جستجو کلیک کند و به صفحه ی وب مورد نظر مراجعه کند، الگوریتم گوگل به این نتیجه می رسد که کاربر نتیجه ی مدنظر خود را یافته است. در صورتی که کاربر بدون کلیک روی هیچ یک از نتایج به صفحه ی دوم مراجعه کند یا عبارت دیگری را برای جستجو وارد کند، گوگل به این نتیجه می رسد که کاربر به مواردی که در نظر داشته، دست نیافته است. الگوریتم هوشمند مبتنی بر یادگیری ماشین قادر است با دریافت اطلاعات این چنینی، نتایج جستجو را در مقایسه با گذشته بهبود دهد.
۹. تشخیص گفتار
تشخیص گفتار طبیعی یا Natural language Processing که به اختصار NLP خوانده می شود، قابلیت استفاده در کاربردهای مختلفی را دارد. با استفاده یادگیری ماشین و تشخیص گفتار طبیعی می توان کاربران یا مشتریان را با سرعت بیشتری به سمت اطلاعاتی که مدنظر وی است، هدایت کرد. از جمله ی کاربردهای دیگر این سیستم می توان به ساده سازی مفاد یک قرارداد که اصطلاحات پیچیده ی حقوقی دارد و همچنین خلاصه کردن تمام اطلاعاتی که یک وکیل مدافع باید آن ها را مطالعه کند، اشاره کرد.
۱۰. خودروهای هوشمند
IBM اخیرا تحقیقی انجام داده که براساس آن بیش از ۷۴ درصد متخصصان در حوزه ی خودرو از پیش بینی خود برای عرضه ی تجاری خودروهای هوشمند تا سال ۲۰۲۵ سخن گفته اند. یک خودروی هوشمند نه تنها با استفاده از مفهوم اینترنت اشیا قادر است با خودروهای دیگر و تابلوهای کنار جاده ارتباط برقرار کند، بلکه قادر است تا با یادگیری ماشین، عادت های کاربر یا به بیان راننده را نیز بشناسد. این عادات شامل دمای داخلی خودرو، تنظیمات سیستم صوتی و وضعیت صندلی است. خودرو قادر است با تکیه بر قابلیت های هوشمند تنظیمات را تغییر داده و در صورت بروز مشکل، خود مساله را حل کند. همچنین باید به ارائه ی پیشنهاد در مورد مسیر رسیدن به مقصد براساس داده های ترافیکی و وضعیت جاده نیز اشاره کرد.
هوش مصنوعی یا هوش ماشینی (به انگلیسی: Artificial Intelligence) هوش مصنوعی به هوشی که یک ماشین در شرایط مختلف از خود نشان می دهد، گفته می شود. به عبارت دیگر هوش مصنوعی به سیستم هایی گفته می شود که می توانند واکنش هایی مشابه رفتارهای هوشمند انسانی از جمله درک شرایط پیچیده، شبیه سازی فرایندهای تفکری و شیوه های استدلالی انسانی و پاسخ موفق به آنها، یادگیری و توانایی کسب دانش و استدلال برای حل مسایل را داشته باشند. بیشتر نوشته ها و مقاله های مربوط به هوش مصنوعی، آن را به عنوان "دانش شناخت و طراحی عامل های هوشمند"[۲] تعریف کرده اند.
هوش مصنوعی را باید عرصهٔ پهناور تلاقی و ملاقات بسیاری از دانش ها، علوم، و فنون قدیم و جدید دانست. ریشه ها و ایده های اصلی آن را باید در فلسفه،زبان شناسی، ریاضیات، روان شناسی، عصب شناسی، فیزیولوژی، تئوری کنترل، احتمالات و بهینه سازی جستجو کرد و کاربردهای گوناگون و فراوانی در علوم رایانه، علوم مهندسی، علوم زیست شناسی و پزشکی، علوم اجتماعی و بسیاری از علوم دیگر دارد.
از زبان های برنامه نویسی هوش مصنوعی می توان به لیسپ، پرولوگ، کلیپس و ویپی اکسپرت اشاره کرد.
یک "عامل هوشمند" سیستمی است که با شناخت محیط اطراف خود، شانس موفقیت خود را پس از تحلیل و بررسی افزایش می دهد.[۳] جان مکارتی که واژه هوش مصنوعی را در سال ۱۹۵۶۶ استفاده نمود، آن را "دانش و مهندسی ساخت ماشین های هوشمند" تعریف کرده است.
هوش مصنوعی در علم پزشکی امروزه به دلیل گسترش دانش و پیچیده تر شدن فرایند تصمیم گیری، استفاده از سیستم های اطلاعاتی به خصوص سیستم های هوش مصنوعی در تصمیم گیری، اهمیت بیشتری یافته است. هوش مصنوعی گسترش دانش در حوزهٔ پزشکی و پیچیدگی تصمیمات مرتبط با تشخیص و درمان – به عبارتی حیات انسان – توجه متخصصین را به استفاده از سیستم های پشتیبان تصمیم گیری در امور پزشکی جلب نموده است. به همین دلیل، استفاده از انواع مختلف سیستم های هوشمند در پزشکی رو به افزایش است، به گونه ای که امروزه تاثیر انواع سیستم های هوشمند در پزشکی مورد مطالعه قرار گرفته است..
محتویات
[نهفتن]
* ۱تاریخچه
* ۲کاربردها
* ۳آزمون تورینگ
* ۴تعریف و طبیعت هوش مصنوعی
* ۵فلسفه هوش مصنوعی
* ۶اتاق چینی
* ۷مدیریت پیچیدگی
* ۸تکنیک ها و زبان های برنامه نویسی هوش مصنوعی
* ۹عامل های هوشمند
* ۱۰سیستم های خبره
* ۱۱جستارهای وابسته
* ۱۲منابع
* ۱۳پیوند به بیرون
تاریخچه[ویرایش]
نمونه ای از مدل شبکه عصبی مصنوعی
هوش مصنوعی توسط فلاسفه و ریاضی دانانی نظیر جرج بول که اقدام به ارائهٔ قوانین و نظریه هایی در مورد منطق نمودند، مطرح شده بود. با اختراع رایانه های الکترونیکی در سال ۱۹۴۳۳، هوش مصنوعی، دانشمندان آن زمان را به چالشی بزرگ فراخواند. دراین شرایط، چنین به نظر می رسید که این فناوری قادر به شبیه سازی رفتارهای هوشمندانه خواهد بود.
با وجود مخالفت گروهی از متفکّرین با هوش مصنوعی که با تردید به کارآمدی آن می نگریستند تنها پس از چهار دهه، شاهد تولد ماشینهای شطرنج باز و دیگرسامانه های هوشمند در صنایع گوناگون شدیم.
نام هوش مصنوعی در سال ۱۹۶۵ میلادی به عنوان یک دانش جدید ابداع گردید. البته فعالیت در این زمینه از سال ۱۹۶۰ میلادی شروع شد. (مرجع۱) بیشتر کارهای پژوهشی اولیه در هوش مصنوعی بر روی انجام ماشینی بازی ها و نیز اثبات قضیه های ریاضی با کمک رایانه ها بود. در آغاز چنین به نظر می آمد که رایانه ها قادر خواهند بود چنین فعالیت هایی را تنها با بهره گرفتن از تعداد بسیار زیادی کشف و جستجو برای مسیرهای حل مسئله و سپس انتخاب بهترین روش برای حل آن ها به انجام رسانند.
اصطلاح هوش مصنوعی برای اولین بار توسط جان مکارتی (که از آن به عنوان پدر علم و دانش تولید ماشین های هوشمند یاد می شود) استفاده شد. وی مخترع یکی از زبان های برنامه نویسی هوش مصنوعی به نام لیسپ (به انگلیسی: lisp) است. با این عنوان می توان به هویت رفتارهای هوشمندانه یک ابزار مصنوعی پی برد. (ساختهٔ دست بشر، غیرطبیعی، مصنوعی) حال آنکه هوش مصنوعی به عنوان یک اصطلاح عمومی پذیرفته شده که شامل محاسبات هوشمندانه و ترکیبی (مرکب از مواد مصنوعی) است.
از اصطلاح "Strong and Weak AI" می توان تا حدودی برای معرفی رده بندی سیستم ها استفاده کرد.
کاربردها[ویرایش]
کاربردهای هوش مصنوعی چنان گسترده و فراگیر شده اند که بسیاری از این کاربردها دیگر با نام هوش مصنوعی شناخته نمی شوند و نام تخصصی خود را دارند. تاثیر هوش مصنوعی را اکنون می توان در همه جهات و نقاط زندگی مردم دید. آیفونی که قادر به تشخیص اعضای خانه است یا تلویزیونی که نور صفحه نمایش دلخواه را با تعداد افراد تنظیم می کند، همه و همه کاربردهای هوش مصنوعی هستند.
کاربردهای عملی آن دسته از کاربردهای هوش مصنوعی هستند که عملیات خاصی را انجام داده و عمل یا تاثیر آن به وضوح توسط کاربر احساس خواهد شد. برای مثال جست و جوی خودکار گوگل که از الگوریتم ها و متدهای پیچیده هوش مصنوعی استفاده می کند، پس از انجام یک عملیات پرهزینه و البته سریع نتایج مرتبط را به شما نشان خواهد داد. ماشین هایی که قادر هستند خودشان را کنترل کنند. ربات های پرنده و یا قایق های هوشمند نمونه ای بارز و موفق از این نوع کاربردها هستند.
نیاز به تحلیل و استخراج الگو از داده های ترافیک شهری، دریافتی کارکنان و جابه جایی پول در یک بانک برای جلوگیری از اختلاس یک عملیات نیست و تاثیر یا خود عمل به وضوح توسط کاربر لمس نخواهد شد؛ اما در مقابل یک تحلیل هوشمند و خودکار است که کاربرد تحلیلی هوش مصنوعی به حساب می آید.
آزمون تورینگ[ویرایش]
آزمون تورینگ[۴] آزمونی است که توسط آلن تورینگ در سال ۱۹۵۰ در نوشته ای به نام "محاسبات ماشینی و هوشمندی" مطرح شد. در این آزمون شرایطی فراهم می شود که شخصی با ماشینی تعامل برقرار کند و پرسش های کافی برای بررسی اقدامات هوشمندانهٔ ماشین، از آن بپرسد. چنانچه در پایان آزمایش نتواند تشخیص دهد که با انسان و یا با ماشین در تعامل بوده است، آزمون با موفقیت انجام شده است. تا کنون هیچ ماشینی از این آزمون با موفقیت بیرون نیامده است. کوشش این آزمون برای تشخیص درستی هوشمندی یک سیستم است که سعی در شبیه سازی انسان دارد.
تعریف و طبیعت هوش مصنوعی[ویرایش]
هنوز تعریف دقیقی برای هوش مصنوعی که مورد توافق دانشمندان این علم باشد ارائه نشده است و این به هیچ وجه مایهٔ تعجب نیست. چرا که مقولهٔ مادر و اساسی تر از آن، یعنی خود هوش هم هنوز بطور همه جانبه و فراگیر تن به تعریف نداده است. در واقع می توان نسل هایی از دانشمندان را سراغ گرفت که تمام دوران زندگی خود را صرف مطالعه و تلاش در راه یافتن جوابی به این سوال عمده نموده اند که: هوش چیست؟
اما اکثر تعریف هایی که در این زمینه ارایه شده اند بر پایه یکی از ۴ باور زیر قرار می گیرند:
1.
1. سیستم هایی که به طور منطقی فکر می کنند
2. سیستم هایی که به طور منطقی عمل می کنند
3. سیستم هایی که مانند انسان فکر می کنند
4. سیستم هایی که مانند انسان عمل می کنند (مرجع۱)
شاید بتوان هوش مصنوعی را این گونه توصیف کرد: "هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را می توان وادار به کارهایی کرد که در حال حاضر انسان ها آنها را صحیح یا بهتر انجام می دهند" (مرجع۲). هوش مصنوعی به هوشی که یک ماشین از خود نشان می دهد و یا به دانشی در کامپیوتر که سعی در ایجاد آن دارد گفته می شود. بیشتر نوشته ها و مقاله های مربوط به هوش مصنوعی آن را "دانش شناخت و طراحی عامل های هوشمند" تعریف کرده اند. یک عامل هوشمند، سیستمی است که با شناخت محیط اطراف خود، شانس موفقیت خود را بالا می برد.
اینکه هوش مصنوعی چیست و چه تعریفی می توان از آن بیان نمود؟ مبحثی است که تاکنون دانشمندان به یک تعریف جامع در آن نرسیده اند و هریک تعریفی را ارائه نموده اند که در زیر نمونه ای از این تعاریف آمده است.
*
* هنر ایجاد ماشینهایی که وظایفی را انجام می دهند که انجام آنها توسط انسانها نیاز به هوش دارد (کورزویل- ۱۹۹۰)
* مطالعهٔ استعدادهای ذهنی از طیق مدل های محاسباتی (کارنیاک و مک درموت – ۱۹۸۵)
* مطالعهٔ اینکه چگونه کامپیوترها را قادر به انجام اعمالی کنیم که در حال حاضر، انسان آن اعمال را بهتر انجام می دهد. (ریچ و نایت -۱۹۹۱)
* خودکارسازی فعالیت هایی که ما آنها را به تفکر انسانی نسبت می دهیم. فعالیت هایی مثل تصمیم گیری، حل مسئله، یادگیری و … (بلمن -۱۹۷۸)
* تلاشی نو و مهیج برای اینکه کامپیوترها را قادر به فکر کردن کنیم. ماشین هایی با فکر و حس تشخیص واقعی (هاگلند-۱۹۸۵)
* یک زمینهٔ تخصصی که به دنبال توضیح و شبیه سازی رفتار هوشمندانه بوسیله فرایندهای کامپیوتری است. (شالکوف -۱۹۹۰)
* مطالعه محاسباتی که درک، استدلال و عمل کردن را توسط ماشین ها را ممکن می سازد. (وینستون – ۱۹۹۲)
* توانایی دست یافتن به کارایی در حد انسان در همهٔ امور شناختی توسط رایانه (آلن تورینگ – ۱۹۵۰)
* هوش مصنوعی دانش و مهندسی ساخت ماشین های هوشمند و به خصوص برنامه های رایانه ای هوشمند است. هوش مصنوعی با وظیفه مشابه استفاده از کامپیوترها برای فهم چگونگی هوش انسان مرتبط است، اما مجبور نیست خودش را به روش هایی محدود کند که بیولوژیکی باشند. (جان مک کارتی – ۱۹۸۰)
* هوش مصنوعی علم طراحی سیستم هایی رایانه ای ویا الکترونیکی است که تلاش می نماید تا رفتار انسان گونه را بازسازی نماید." به عبارت دیگر: هوش مصنوعی علم و مهندسی ایجاد ماشین هایی با هوش با به کارگیری از کامپیوتر و الگوگیری از درک هوش انسانی و یا حیوانی و نهایتاً دستیابی به مکانیزم هوش مصنوعی در سطح هوش انسانی می باشد. (مسعود مولوی-۲۰۰۶)
هوشمندی مفهومی نسبی دارد و نمی توان محدوده صحیحی را برای ارائه تعریف از آن مشخص نمود. رفتاری که از نظر یک فرد هوشمند به نظر می رسد؛ ممکن است برای یک فرد دیگر اینگونه به نظر نرسد. اما در مجموع خصوصیات زیر قابلیت های ضروری برای هوشمندی است:
*
* پاسخ به موقعیت های از قبل تعریف نشده با انعطاف بسیار بالا و بر اساس بانک دانش
* معنا دادن به پیام های نادرست یا مبهم
* درک تمایزها و شباهت ها
* تجزیه و تحلیل اطلاعات و نتیجه گیری
* توانمندی آموختن و یادگرفتن
* برقراری ارتباط دوطرفه
به فرض اینکه تعاریف بالا را از هوشمندی بپذیریم، موارد زیر فهرستی است از وظایفی که از یک سیستم هوشمند انتظار می رود و تقریباً اکثر دانشمندان هوش مصنوعی بر آن توافق نظر دارند به شرح زیر است:
*
* تولید گفتار
* تشخیص و درک گفتار (پردازش زبان طبیعی انسان)
* دستور پذیری و قابلیت انجام اعمال فیزیکی در محیط طبیعی و مجازی
* استنتاج و استدلال
* تشخیص الگو و بازشناسی الگو برای پاسخ گویی به مسائل بر اساس دانش قبلی
* شمایلی گرافیکی و یا فیزیکی جهت ابراز احساسات و عکس العمل های ظریف
* سرعت عکس العمل بالا
فلسفه هوش مصنوعی[ویرایش]
نوشتار اصلی: فلسفه هوش مصنوعی
بطور کلی ماهیت وجودی هوش به مفهوم جمع آوری اطلاعات، استقراء و تحلیل تجربیات به منظور رسیدن به دانش و یا ارایه تصمیم است. در واقع هوش به مفهوم به کارگیری تجربه به منظور حل مسائل دریافت شده تلقی می شود. هوش مصنوعی علم و مهندسی ایجاد ماشین هایی هوشمند با به کارگیری از کامپیوتر و الگوگیری از درک هوش انسانی و یا حیوانی و نهایتاً دستیابی به مکانیزم هوش مصنوعی در سطح هوش انسانی است.
در مقایسهٔ هوش مصنوعی با هوش انسانی می توان گفت که انسان قادر به مشاهده و تجزیه و تحلیل مسایل در جهت قضاوت و اخذ تصمیم است در حالی که هوش مصنوعی مبتنی بر قوانین و رویه هایی از قبل تعبیه شده بر روی کامپیوتر است. در نتیجه علی رغم وجود کامپیوترهای بسیار کارا و قوی در عصر حاضر ما هنوز قادر به پیاده کردن هوشی نزدیک به هوش انسان در ایجاد هوش های مصنوعی نبوده ایم.
بطور کلّی، هوش مصنوعی را می توان از زوایای متفاوتی مورد بررسی و مطالعه قرار داد. مابین هوش مصنوعی به عنوان یک هدف، هوش مصنوعی به عنوان یک رشتهٔ تحصیلی دانشگاهی، و یا هوش مصنوعی به عنوان مجموعهٔ فنون و راه کارهایی که توسط مراکز علمی مختلف و صنایع گوناگون تنظیم و توسعه یافته است باید تفاوت قائل بود.
اتاق چینی[ویرایش]
اتاق چینی بحثی است که توسط جان سیرل در ۱۹۸۰ مطرح شد در این راستا که یک ماشین نمادگرا هرگز نمی تواند دارای ویژگی هایی مانند مغز و یا فهمیدن باشد. صرف نظر از اینکه چقدر از خود هوشمندی نشان دهد.
مدیریت پیچیدگی[ویرایش]
ایجاد و ابداع فنون و تکنیک های لازم برای مدیریت پیچیدگی را باید به عنوان هستهٔ بنیادین تلاش های علمی و پژوهشی گذشته، حال و آینده در تمامی زمینه های علوم رایانه و به ویژه در هوش مصنوعی معرفی کرد. شیوه ها و تکنیک های هوش مصنوعی در واقع، برای حل آن دسته از مسائل به وجود آمده است که به طور سهل و آسان توسط برنامه نویسی تابعی یا شیوه های ریاضی قابل حلّ نبوده اند.
در بسیاری از موارد، با پوشانیدن و پنهان ساختن جزئیّات فاقد اهمیت است که بر پیچیدگی فائق می آییم و می توانیم بر روی بخش هایی از مسئله متمرکز شویم که مهم تر است. تلاش اصلی در واقع، ایجاد و دستیابی به لایه ها و ترازهای بالاتر از هوشمندی انتزاع را نشانه می رود تا آنجا که سرانجام، برنامه های کامپیوتری درست در همان سطحی کار خواهند کرد که خود انسان ها رسیده اند.
به یاری پژوهش های گستردهٔ دانشمندان علوم مرتبط، هوش مصنوعی تاکنون راه بسیاری پیموده است. در این راستا، تحقیقاتی که بر روی توانایی آموختن زبان ها انجام گرفت و همچنین درک عمیق از احساسات، دانشمندان را در پیشبرد این دانش کمک زیادی کرده است. یکی از اهداف متخصصین، تولید ماشینهایی است که دارای احساسات بوده و دست کم نسبت به وجود خود و احساسات خود آگاه باشند. این ماشین باید توانایی تعمیم تجربیات قدیمی خود در شرایط مشابه جدید را داشته و به این ترتیب اقدام به گسترش دامنه دانش و تجربیاتش کند.
برای نمونه ربات هوشمندی که بتواند اعضای بدن خود را به حرکت درآورد، نسبت به این حرکت خود آگاه بوده و با آزمون و خطا، دامنه حرکت خود را گسترش می دهد و با هر حرکت موفقیت آمیز یا اشتباه، دامنه تجربیات خود را وسعت بخشیده و سر انجام راه رفته و یا حتی می دود و یا به روشی برای جابجا شدن دست می یابد که سازندگانش برای او متصور نبوده اند.
هر چند نمونه بالا ممکن است کمی آرمانی به نظر برسد، ولی به هیچ عنوان دور از دسترس نیست. دانشمندان عموماً برای تولید چنین ماشینهایی از وجود مدلهای زنده ای که در طبیعت وجود به ویژه آدمی نیز سود برده اند.
هوش مصنوعی اکنون در خدمت توسعه علوم رایانه نیز هست. زبان های برنامه نویسی پیشرفته، که توسعه ابزارهای هوشمند را ممکن ساخته اند، پایگاه های داده ای پیشرفته، موتورهای جستجو، و بسیاری نرم افزارها و ماشین ها از نتایج پژوهش هایی در راستای هوش مصنوعی بوده اند.
از زبان های برنامه نویسی هوش مصنوعی می توان به لیسپ، پرولوگ، کلیپس و ویپی اکسپرت می باشد.
تکنیک ها و زبان های برنامه نویسی هوش مصنوعی[ویرایش]
عملکرد اولیهٔ برنامه نویسی هوش مصنوعی ایجاد ساختار کنترلی مورد لزوم برای محاسبهٔ سمبولیک است. زبان های برنامه نویسی لیسپ و پرولوگ علاوه بر اینکه از مهمترین زبان های مورد استفاده در هوش مصنوعی هستند خصوصیات نحوی و معنایی آنها باعث شده که آنها شیوه ها و راه حل های قوی برای حل مسئله ارایه کنند. تاثیر قابل توجه این زبان ها بر روی توسعه هوش مصنوعی از جمله توانایی های آنها به عنوان ابزارهای فکرکردن است. در حقیقت همان طور که هوش مصنوعی مراحل رشد خود را طی می کند، زبان های لیسپ و پرولوگ بیشتر مطرح می شوند که این زبان ها کار خود را در محدودهٔ توسعه سیستم های هوش مصنوعی در صنعت و دانشگاه ها دنبال می کنند و طبیعتاً اطلاعات در مورد این زبان ها به عنوان بخشی از مهارت هر برنامه نویس هوش مصنوعی است.
*
* پرولوگ: یک زبان برنامه نویسی منطقی است. یک برنامهٔ منطقی دارای یک سری ویژگی های قانون و منطق است. در حقیقت خود این نام از برنامه نویسی PRO در LOGIC می آید. در این زبان یک مفسر برنامه را بر اساس یک منطق می نویسد. ایدهٔ استفادهٔ توصیفی محاسبهٔ اولیه برای بیان خصوصیات حل مسئله یکی از محوریت های پرولوگ است که برای علم کامپیوتر به طور کلی و بطور جزئی برای زبان برنامه نویسی هوشمند مورد استفاده قرار می گیرند.
* لیسپ: اصولاً یک زبان کامل است که دارای عملکردها و لیست های لازمه برای توصیف عملکردهای جدید، تشخیص تناسب و ارزیابی معانی است. لیسپ به برنامه نویس قدرت کامل برای اتصال به ساختارهای اطلاعاتی را می دهد. گر چه لیسپ یکی از قدیمی ترین زبان های محاسباتی است که هنوز فعال است ولی دقت کافی در برنامه نویسی و طراحی توسعه باعث شده است که این یک زبان برنامه نویسی فعال باقی بماند. در حقیقت این مدل برنامه نویسی طوری موثر بوده است که تعدادی از دیگر زبان ها مانند اف پی، ام ال و اسکیم براساس عملکرد برنامه نویسی آن بنا شده اند. یکی از مهمترین برنامه های مرتبط با لیسپ برنامهٔ اسکیم است که یک تفکر دوباره در بارهٔ زبان در آن وجود دارد که بوسیله توسعه هوش مصنوعی وبرای آموزش و اصول علم کامپیوتر مورد استفاده قرار می گیرد.
عامل های هوشمند[ویرایش]
نوشتار اصلی: کارگزار هوشمند
عامل ها (Agents) قادر به شناسایی الگوها و تصمیم گیری بر اساس قوانین فکر کردن خود هستند. قوانین و چگونگی فکر کردن هر عامل در راستای دستیابی به هدفش، تعریف می شود. این سیستم ها بر اساس قوانین خاص خود فکر کرده و کار خود را به درستی انجام می دهند. پس عاقلانه رفتار می کنند، هر چند الزاماً مانند انسان فکر نمی کنند.
در بحث هوشمندی اصطلاح پیس (به انگلیسی: PEAS) سرنام واژه های "کارایی (Performance)"، "محیط (Environment)"، "اقدام گر (Agent)" و "حسگر (Sensor)" است.
سیستم های خبره[ویرایش]
نوشتار اصلی: سیستم های خبره
سیستم های خبره زمینه ای پرکاربرد در هوش مصنوعی و مهندسی دانش است که با توجه به نیاز روزافزون جوامع بر اتخاذ راه حل ها و تصمیمات سریع در مواردی که دانش های پیچیده و چندگانهٔ انسانی مورد نیاز است و بر اهمیت نقش آنها نیز افزوده می شود. سیستم های خبره به حل مسائلی می پردازند که به طور معمول نیازمند تخصص های کاردانان و متخصّصان انسانی است. به منظور توانایی بر حل مسائل در چنین سطحی (ترازی)، دسترسی هرچه بیشتر اینگونه سامانه ها به دانش موجود در آن زمینه خاص ضروری می گردد.
جستارهای وابسته[ویرایش]
آیا بشر قادر خواهد بود موجودی هوشمند همانند خود به وجود آورد؟ آیا زمانی فرا خـــواهد رسید که روباتها به خانه ما رفت و آمد کنند؛ کنار ما بنشینند و با ما به تبادل نظر بپردازند؟
شاید سوالاتی این چنین را بتوان زمینهساز ظهور دانشی نوین، با عنوان هوش مصنوعی دانست. نخستین جرقههای هوش مصنوعی به سالهای بعد از جنگ جهانی دوم باز میگردد.
زمانی که آلن تورینگ در سال ۱۹۵۰م. آزمایشی مبنی بر این که آیا ماشین قادر است بـــــــــا فرآیندهای مغز انسان رقابت نماید، مطرح کرد.
جالب بدونید مباحث هوش مصنوعی پیش از بوجود آمدن علـــــــــوم الکترونیک، توسط فلاسفه وریاضی دانانی نظیر بول مطرح شده بود که اقدام به ارائه قوانین و نظریه هایی در باب منطق نمودند.
هوش مصنوعی، شاخهای از علم کامپیوتر است و در واقع تلفیقی از سه فناوری و گرایش مطرح؛ یعنی شبکههای عصبی، سیستمهای استدلال فازی و الگوریتم تکاملی میباشد.
-در مقایسه هوش مصنوعی با هوش انسانی می توان گفت که انسان قادر به مشاهده و تجزیه و تحلیل مسایل در جهت قضاوت و اخذ تصمیم میباشد در حالی که هوش مصنوعی مبتنی بر قوانین و رویه هایی از قبل تعبیه شده بر روی کامپیوتر میباشد
هدف هوش مصنوعی
نزدیک نمودن رفتار و پاسخ یک سیستم کامپیوتری به الگوهایی است که انسان براساس آن ها رفتار می کند و پاسخ می دهد.
گاه سیستم هایی طراحی می شوند که قدرت تجزیه و تحلیل آن ها از انسان بیشتر است. ولی باز از الگوهای ما استفاده می کنند.
از اهداف متخصصین،
تولید ماشینهایی است که دارای احساسات بوده و دست کم نسبت به وجود خود و احساسات خود آگاه باشند. این ماشین باید توانایی تعمیم تجربیات قدیمی خود در شرایط مشابه جدید را داشته و به این ترتیب اقدام به گسترش دامنه دانش و تجربیاتش کند.
● در مورد شاخه ها و کاربردهای هوش مصنوعی
این واقعیتی هست بیشتر افراد با شنیدن عبارت "هوش مصنوعی"، بیـــــــاد روباتهای فیلمهای علمی – تخیلی و بازیهای کامپیوتری و به خصوص شطرنج می افتند.
در حالی که هوش مصنوعی در مدت زمان کوتاهی از عمر خود، توانسته است از حد توسعه بازیها به سوی دنیایی از مسائل شگفتآوری همچون سیستمهای خبره، بینایی ماشین و… گام بردارد.
امروزه ردپایی از هوش مصنوعی را میتوان در علوم مختلفی اعم از پزشکی، علوم هوافضا، اکتشافات ، تسلیحات نظامی ، پیش بینی وضع هوا، نقشه برداری و شناسایی عوارض، تشخیص صدا، تشخیص گفتار ؛ دست خط ؛ بـــــازی ها و نرم افزارهای رایانه ای مشاهده کرد. از این رو، متخصصان هوش مصنوعی، با توجه به کاربردهای گوناگون این علم، آن را در شاخههای متنوعی دنبال نمودهاند
از جمله :
▪ شبکه های عصبی (Neural Networks)
این شبکهها که با الهام از مدل شبکه عصبی ذهن انسان طراحی میشوند و امروزه کاربردهای فراوان و گستردهای داشته، در زمینههای متنوعی چون سیستمهای کنترلی، روباتیک، تشخیص متون، پردازش تصویر و… مورد استفاده قرار میگیرند.
▪ پردازش زبان طبیعی (Natural Language Processing)
در این شاخه، سیستمها برای فهم زبان انسان برنامهریزی میشوند.
▪ روباتیک (Robotics)
این شاخه از هوش مصنوعی سعی دارد روباتها را طوری برنامهریزی کند که اعمالی هوشمندانه، چون توانایی دیدن، شنیدن و نشان دادن عکسالعمل به محرکهای محیطی را انجام دهد.
▪ انجام مسابقات (Game Playing)
در این شاخه ؛ کامپیوترها برای شرکت در مسابقاتی چون شطرنج برنامه ریزی می شوند . که در سال 1997 میلادی کامپیوتر شطرنج باز ؛ قهرمان شطرنج جهان را شکست داد .
یا نشستن یک روبات بر روی کره مریخ با موفقیت انجام شد .روبوکاپ اولین قدمهای خود را با برپایی مسابقات روباتهای فوتبالیست برداشت.
با هدف سمبلیک که در سال ۲۰۵۰م. تیمی متشکل از روباتهای انساننمای هوشمند بتوانند قهرمان فوتبال جهان را در زمین فوتبال واقعی شکست دهند(ظاهرا ما اون بازی رو نمی بینیم!)
سیستمهای خبره
در این شاخه، کامپیوترها برای تصمیمگیری در شرایط واقعی زندگی برنامهریزی میشوند. نمونهای از سیستمهای خبره، سیستمهای تشخیص بیماری هستند.در این سیستمها، اطلاعات یک یا چند متخصص به همراه اطلاعات دریافتی از مراجعان به کامپیوتر داده میشود؛ سپس کامپیوتر با پرسش سوالاتی از مراجعهکننده و تطبیق آن با بانک اطلاعاتی خود، بیماری شخص را تشخیص خواهد داد.
هر چند این سیستمها خبره هستند، اما تنها از اطلاعاتی که به آنها داده شده، استفاده میکنند.
برای نزدیک شدن به هوشمندی انسان، ماشین بایستی بتواند کارکرد خود را اصلاح نماید. به عبارتی دیگر، ماشین، بایستی دارای قدرت یادگیری باشد.
▪ یادگیری ماشین (Machine Learning)
این شاخه به این معناست که ماشین بتواند برنامه، ساختار یا دادههایش را بر اساس ورودیها یا در پاسخ به اطلاعات خارجی، به نحوی تغییر دهد که رفتارش به آن چه از او انتظار میرود، نزدیکتر شود ( یعنی قدرت تجزیه تحلیل داشته).
▪ استراتژیهای تکاملی الگوریتم ژنتیک) (Evolutionary Algorithms)
در این زمینه بیشتر به هوشمندیهایی غیر از هوشمندی انسان پرداخته میشود. در حقیقت این گرایش سعی دارد مسائل بهینهسازی را با کمک روشهایی که در طبیعت انتخاب شده است، حل نماید.
به طور مثال، روش یافتن کوتاهترین راه به منابع غذا، توسط مورچگان، بیانگر گوشهای از هوشمندی بیولوژیک هستند.
▪ تشخیص گفتار (Speech Recognition)
این گونه سیستمها معمولاً به عنوان ابزارهای بیومتریک و تشخیص هویت با کمک صدا در مکانهایی مثل بانکها، فرودگاهها، آزمایشگاههای تحقیقاتی و…
برای ایجاد امنیت و کنترل ورود و خروج افراد مورد استفاده قرار میگیرند.
▪ بینایی ماشین (Machine Vision)
هدف از بینایی ماشین شبیهسازی، عملکرد سیستم بینایی انسان میباشد.در این شاخه، ردگیری و تعقیب حرکات چشم، یکی از زمینههای خاص و پرطرفدار در میان متخصصان هوش مصنوعی محسوب میشود. مثالهایی از کاربــردهای چنــــین سیستمی مثل : تعقیب حرکات چشم شخصی خاص در میان جمعیت، بررسی افراد مشکوک، تشخیص میزان هوشیاری رانندگان با توجه به وضعیت و حالات چشم وی،ایجاد ارتباط معلولین جسمی با کامپیوتر از طریق فرامین چشمی ؛ ایجاد نظم در ترافیک جادهای و کنترل نامحسوس
کاربردهای هوش مصنوعی در کشاورزی
استفاده برای استخراج اطلاعات کشاورزی و نقشه های سطح زمین٬ وضعیت آبی و زراعی زمین٬ وضعیت جنگلها و مراتع و …
خودکار سازی سیستم های ماشینی کاشت٬ داشت٬ برداشت و عرضه محصول و کنترل کیفیت آن نظیر سیستم های خودکار برداشت و بسته بندی چای و…
;کاربردهای هوش مصنوعی در صنعت
کلیه سیستم های خودکار جهت برش قطعات مختلف٬ سرهم کردن و فیکس کردن قطعات داخل هم٬ اتصال آنها به هم .
سیستم کنترل کوره ها٬ رباتهای مختلفی که در برشکاری ورق٬ اتصال و جوشکاری استفاده می شود و همچنین سیستم های هوشمند بینایی که در کنترل کیفیت انواع محصولات بکار می رود نام برد
کاربردهای هوش مصنوعی در بازیها
در بازی های کامپیوتری دو نوع هوش بیشتر از همه استفاده می شوند که به صورت خلا صه عبارتند از:
هوش مصنوعی رویدادگرا: از معمول ترین نوع هوش مصنوعی است. رویداد می تواند شامل هر چیزی اعم از اتفاقات بازی تا دستوراتی باشد که کاربر به شخصیت مجازی خود می دهد. براساس هر رویدادی که در بازی انجام می شود، یک واکنش هوشمندانه نیز روی می دهد.
در بازی کانتر دشمن شما نسبت به صدا حساس است و صدای دویدن شما را هم می شنود. از این رو بسته به موقعیت خود، یا به آهستگی پنهان می شود، یا برمی گردد و از راه دیگری به سوی شما می آید یا به سوی شما می آید و شلیک می کند.
هوش مصنوعی هدف گرا: از رویدادگرا مستقل است. ولی هوش مصنوعی رویدادگرا می تواند در طراحی یک بازی، هدف های موتور هوش مصنوعی هدف گرا را تامین کند. در این نوع هوش مصنوعی، هدف ؛؛؛ با ارزش بیشتر را انتخاب می کنه و آن را با تقسیم به زیرهدف های کوچک تر، پردازش می کند
از نظر کاربرد هوش مصنوعی در بازی دو نوع وجود داره :
بازیهای کلاسیک / شطرنج – مار – پازل و …
بازیهای مدرن / سیمس 2 – کانتر – جی تی ای – مکس پین و …
در این گروه از بازیها موفقیت های چشمگیری بدست آمده است. برای نمونه در بازی سیمس 2 شخصیت های بازی نیازهای اولیه گرسنگی و تشنگی را دارند و اگر در طول بازی به آنها غذا نرسد می میرند …
انتخاب سطح هوشمندی در بازی فوتبال ؛ ضربات در چارچوب ، پاس ؛ هوشمندی گلر !
در نتیجه / روند نزدیکی هوش مصنوعی و بازی باعث شده است که بازی کنان خود را جزئی از بازی بدانند.
از این رو تولیدکنندگان برنامه های بازی تلاش می کنند دیوار بین بازیکن و برنامه بازی کوتاهتر شود بطوری که بازی کن خود را در قالب یکی از شخصیت بازی بداند.
در مورد تازههای هوش مصنوعی
اگر سری به صفحات اینترنتی اخبار تکنولوژی بزنیم، متوجه انبوهی از محصولات جدید هوشمند خواهیم شد.نمونههای زیر، تنها گوشهای از کاربردهای هوش مصنوعی در صنایع مختلف میباشند..
▪ لباسهای هوشمند
با توسعه نانوتکنولوژی و استفاده از مواد مولکولی سبک، امکان ساخت لباسهای هوشمند فراهم شده است. این گونه لباسها:
قابلیت تغییر رنگ جهت استتار در محیطهای مختلف را داشته،
شخص را در برابر سلاحهای بیولوژیکی و شیمیایی محافظت میکنند.
امکان مجهز نمودن این گونه لباسها به تجهیزات مخابراتی،
انتقال علائم حیاتی جهت درمان از راه دور در مناطق جنگی و یا آسیبدیده، از دیگر مزایای این لباسها به شمار میآیند.
همچنین در صورت بروز حادثه برای کاربر، پیامی به تلفن همراه یا پست الکترونیکی مشخصی ارسال میگردد.
▪ آجر و ساختمانهای هوشمند
ساختمانهای هوشمند این قابلیت را دارند که با تغییر شرایط محیطی، نسبت به تغییرات، عکسالعمل نشان داده، امنیت و آرامش را برای ساکنان خانه فراهم نمایند.
یک ساختمان هوشمند، دارای سیستمهای اتوماتیک گرمایشی، تهویه مطبوع، اعلام حریق، آتشنشانی، سیستمهای امنیتی، مدیریت انرژی و سیستمهای روشنایی خودکار میباشد.
آجرهای هوشمند که همانند آجرهای معمولی در ساختمانها به کار میروند، مجهز به حسگرهای الکترونیکی هستند که با اتصال به یک سیستم کامپیوتری، دما، لرزش و حرکت ساختمان را کنترل میکنند و سبب ایمنتر شدن ساختمان میشوند. به کارگیری چند آجر در محلهای مختلف یک ساختمان، میتواند به صورت یک شبکه عمل کرده، تصویری کلی از ثبات ساختمان ارائه دهد.
▪ کیف هوشمند
به کمک یک سنسور یا حسگر، به یادآوری محتویات درون کیف پرداخته، از گم شدن اشیای داخل کیف جلوگیری میکند
▪ شیر آب هوشمند
به محض نزدیک شدن دست یا هر جسم دیگری در محدوده دید حسگر دستگاه، سبب جاری شدن آب میشود. شیر مذکور، به محض خروج دست از محدوده دید، آب را قطع میکند.
سیستمهای حمل و نقل هوشمند
به معنی استفاده و به کارگیری تکنولوژیهای نوین، همچون الکترونیک، ارتباطات و سیستمهای کنترلی است.
کاربردهای این گونه سیستمها عبارتند از:
راهنمای الکترونیکی مسیر، کنترل ترافیک شهری، سیستمهای اعلام خطر، تنظیم چراغهای راهنما، شناسایی موقعیت تصادف و در نهایت پردازش اطلاعات مربوط به جابهجایی کالا و مسافر , …
▪ تسلیحات نظامی هوشمند
نقش انسان در لحظات بحرانی جنگ، بسیار کمرنگتر از گذشته شده است؛ به طوری که جنگهای امروزی در حقیقت نبرد کامپیوترهای ما با کامپیوترهای دشمن خواهد بود.
سیستمهای شلیک بعد از هشدار کامپیوتر،
حضور ماشینهایی با قابلیتهای انسانی، مانند بینایی، خلبان اتوماتیک، استفاده از انواع روباتها جهت شناسایی، تخریب و پاکسازی مناطق جنگی و…، تنها نمونههایی از کاربردهای نظامی هوش مصنوعی محسوب میگردند.
– میکروروباتهای جراح که همراه با نوشیدن آب و از راه دهان به درون بدن انسان فرستاده میشوند، با کمک کنترل از راه دور، به کاوش در محیط بدن پرداخته، عکسبرداری و انجام عمل جراحی را امکانپذیر میسازند،
-استفاده از برچسپهای هوشمند برای ردیابی زندانیان،
– سیستمهای هوشمند اعلام زمان مصرف دارو،
– کارتهای شناسایی هوشمند و تراشههای هوشمند با ابعاد نصف یک دانه شن که در زیر پوست قرار میگیرند و جایگزینی برای کارتهای اعتباری خواهند بود و…، نمونههای دیگری از کاربردهای وسایل هوشمند هستند.
هدف نهایی هوش مصنوعی،
ساخت نوعی انسان مصنوعی است و در حقیقت، ساخت برنامه نرمافزاری که بتواند همانند انسان فکر کند.
چنین ماشینی با ترکیب تکنیکهای استنباطی پیشرفته و استفاده از توانایی تحلیلگران، مهندسان، سیاستمداران، تصمیم گیرندههای شرایط بحرانی و سایر دانشمندان و بر پایه حجم عظیمی از منابع اطلاعاتی، میتواند بهترین تصمیم را در شرایط بحرانی اتخاذ نماید
هوش مصنوعی چیست؟
هوش مصنوعی (Artificial Intelligence) را باید عرصهٔ پهناور تلاقی و ملاقات بسیاری از دانشها، علوم، و فنون قدیم و جدید دانست. ریشه ها و ایده های اصلی آن را باید در فلسفه، زبان شناسی، ریاضیات، روان شناسی، نورولوژی، و فیزیولوژی نشان گرفت و شاخه ها، فروع، و کاربردهای گونه گونه و فراوان آن را در علوم رایانه، علوم مهندسی، علوم زیست شناسی و پزشکی، علوم ارتباطات و زمینه های بسیار دیگر.
هوش مصنوعی را به عنوان کوششهائی در پی ساختن رایانه های نظام مند ( سخت افزار و نرم افزار ) که رفتاری شبیه انسان داشته باشند ، بیان می کنند . یک سیستم هوش مصنوعی به راستی نه مصنوعی است و نه هوشمندبلکه دستگاهی است هدف گرا که مسائل را به روش مصنوعی حل می کند ، این سیستم ها بر پایه دانش ، تجربه و الگوهای استدلالی انسان به وجود آمده اند .
هدف هوش مصنوعی بطور کلی ساخت ماشینی است که بتواند "فکر" کند. اما برای دسته بندی و تعریف ماشینهای متفکر، می بایست به تعریف "هوش" پرداخت. همچنین به تعاریفی برای "آگاهی" و "درک" نیز نیازمندیم و در نهایت به معیاری برای سنجش هوش یک ماشین نیازمندیم.
هنوز تعریف دقیقی که مورد قبول همهٔ دانشمندان این علم باشد برای هوش مصنوعی ارائه نشده است، و این امر، به هیچ وجه مایهٔ تعجّب نیست. چرا که مقولهٔ مادر و اساسی تر از آن، یعنی خود هوش هم هنوز بطور همه جانبه و فراگیر تن به تعریف نداده است. در واقع، می توان نسل هایی از دانشمندان را سراغ گرفت که تمام دوران زندگی خود را صرف مطالعه و تلاش در راه یافتن جوابی به این سوال عمده نموده اند که: هوش چیست؟
اما اکثر تعریف هایی که در این زمینه ارایه شده اند بر پایه یکی از چهار باور زیر قرار می گیرند:
* سیستم هایی که به طور منطقی فکر می کنند
* سیستم هایی که به طور منطقی عمل می کنند
* سیستم هایی که مانند انسان فکر می کنند
* سیستم هایی که مانند انسان عمل می کنند
شاید بتوان هوش مصنوعی را این گونه توصیف کرد:"هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را می توان وادار به کارهایی کرد که در حال حاضر انسان ها آنها رابهتر انجام می دهند"
تعریف دیگری که از هوش مصنوعی می توان ارائه داد به قرار زیر است:
" هوش مصنوعی، شاخه ایست از علم کامپیوتر که ملزومات محاسباتی اعمالی همچون ادراک (Perception) ، استدلال (Reasoning) و یادگیری (Learning) را بررسی کرده و سیستمی جهت انجام چنین اعمالی ارائه می دهد."
و در نهایت تعریف سوم هوش مصنوعی از قرار زیر است:
"هوش مصنوعی، مطالعه روش هایی است برای تبدیل کامپیوتر به ماشینی که بتواند اعمال انجام شده توسط انسان را انجام دهد."
بطور کلی ماهیت وجودی هوش به مفهوم جمع آوری اطلاعات, استقرا و تحلیل تجربیات به منظور رسیدن به دانش و یا ارایه تصمیم میباشد . در واقع هوش به مفهوم به کارگیری تجربه به منظور حل مسایل دریافت شده تلقی میشود. هوش مصنویی علم و مهندسی ایجاد ماشینهایی با هوش با به کارگیری از کامپیوتر و الگوگیری از درک هوش انسانی و نهایتا دستیابی به مکانیزم هوش مصنوعی در سطح هوش انسانی میباشد.
در مقایسه هوش مصنوعی با هوش انسانی می توان گفت که انسان قادر به مشاهده و تجزیه و تحلیل مسایل در جهت قضاوت و اخذ تصمیم میباشد در حالی که هوش مصنوعی مبتنی بر قوانین و رویه هایی از قبل تعبیه شده بر روی کامپیوتر میباشد. در نتیجه علی رغم وجود کامپیوترهای بسیار کارا و قوی در عصر حاضر ما هنوز قادر به پیاده کردن هوشی نزدیک به هوش انسان در ایجاد هوشهای مصنوعی نبوده ایم.
روش شناسی ( Methodology ) هوش مصنوعی هنوز به عنوان یک نقطه ضعف مورد انتقاد بسیاری از صاحبنظران است ، از نظر برخی از آنان این ضعف یک شکل تکاملی است که به تاریخچه کوتاه علم رایانه مربوط است .
روش های هوش مصنوعی روش هائی هستند که به درد مسائلی می خورند که به خوبی تعریف شده اند ، به طور مثال بسیاری از مسائل محاسباتی معمولی از محاسبات فیزیک گرفته تا محاسبه حقوق و دستمزد از این دسته مسئل هستند که برای آنها الگوریتم مشخصی وجود دارد و نیازی به جستجو برای یافتن حل مساله نیست .
دانشمندان هوش مصنوعی و به طور کلی دانشمندان رشته های مختلف ، اکنون مایلند با مدل هائی کار کنند که آنها را " مدل مولف " می نامند.
آنها بدنبال ساخت ماشینی مقلد هستند، که بتواند با شبیه سازی رفتارهای میلیونها یاخته مغز انسان، همچون یک موجود متفکر به اندیشیدن بپردازد.
در بسیاری از موارد، با پوشانیدن و پنهان ساختن جزئیّات فاقد اهمّیّت است که بر پیچیدگی فائق می آییم، و می توانیم بر روی بخش هایی از مسئله متمرکز شویم که مهم تر است. تلاش اصلی، در واقع، ایجاد و دستیابی به لایه ها و ترازهای بالاتر است ، تا آنجا که ، سر انجام برنامه های کامپوتری درست در همان سطحی کار خواهند کرد که خود انسان ها به کار مشغولند.
به یاری پژوهش های گسترده دانشمندان علوم مرتبط، هوش مصنوعی از آغاز پیدایش تاکنون راه بسیاری پیموده است. در این راستا، تحقیقاتی که بر روی توانایی آموختن زبانها انجام گرفت و همچنین درک عمیق از احساسات، دانشمندان را در پیشبرد این علم، یاری کرده است. یکی از اهداف متخصصین، تولید ماشینهایی است که دارای احساسات بوده و دست کم نسبت به وجود خود و احساسات خود آگاه باشند. این ماشین باید توانایی تعمیم تجربیات قدیمی خود در شرایط مشابه جدید را داشته و به این ترتیب اقدام به گسترش دامنه دانش و تجربیاتش کند.
برای نمونه به رباتی هوشمند بیاندیشید که بتواند اعضای بدن خود را به حرکت درآورد، او نسبت به این حرکت خود آگاه بوده و با سعی و خطا، دامنه حرکت خود را گسترش می دهد، و با هر حرکت موفقیت آمیز یا اشتباه، دامنه تجربیات خود را وسعت بخشیده و سر انجام راه رفته و یا حتی می دود و یا به روشی برای جابجا شدن، دست می یابد، که سازندگانش، برای او، متصور نبوده اند.
هر چند مثال ما در تولید ماشینهای هوشمند، کمی آرمانی است، ولی به هیچ عنوان دور از دسترس نیست. دانشمندان، عموماً برای تولید چنین ماشینهایی، از تنها مدلی که در طبیعت وجود دارد، یعنی توانایی یادگیری در موجودات زنده بخصوص انسان، بهره می برند.
هوش مصنوعی که همواره هدف نهایی دانش رایانه بوده است، اکنون در خدمت توسعه علوم رایانه نیز است. زبانهای برنامه نویسی پیشرفته، که توسعه ابزارهای هوشمند را ممکن می سازند، پایگاههای داده ای پیشرفته، موتورهای جستجو، و بسیاری نرم افزارها و ماشینها از نتایج پژوهش های هوش مصنوعی بهره می برند.
سیستمی که عاقلانه فکر کند. سامانه ای عاقل است که بتواند کارها را درست انجام دهد. در تولید این سیستم ها نحوه اندیشیدن انسان مد نظر نیست. این سیستم ها متکی به قوانین و منطقی هستند که پایه تفکر آنها را تشکیل داده و آنها را قادر به استنتاج و تصمیم گیری می نماید. آنها با وجودی که مانند انسان نمی اندیشند، تصمیماتی عاقلانه گرفته و اشتباه نمی کنند. این ماشینها لزوما درکی از احساسات ندارند. هم اکنون از این سیستم ها در تولید عامل ها در نرم افزارهای رایانه ای، بهره گیری می شود. عامل تنها مشاهده کرده و سپس عمل می کند.
چالش های بنیادین هوش مصنوعی
البته امروزه هوش مصنوعی به واقعیت نزدیک شده است و تقریباً می توان گفت وجود دارد، اما دلایل اساسی متعددی وجود دارند که نشان می دهند چرا هنوز شکل تکامل یافته هوشی که تورینگ تصور می کرد، به وقوع نپیوسته است. به طور کلی خود نظریه تورینگ مخالفانی جدی دارد. بعضی از این منتقدان اصلا ً هوش ماشینی را قبول ندارند و برخی دیگر صرفاً کارآمدی آزمون تورینگ را برای اثبات هوشمندی زیر سوال می برند. یکی از مهم ترین مباحث مطرح در این زمینه، موضوع شبیه سازی است. غالباً پرسیده می شود آیا صرف این که ماشینی بتواند نحوه صحبت کردن انسان را شبیه سازی کند، به معنی آن است که هوشمند است؟ به عنوان مثال، شاید شما هم درباره روبات های نرم افزاری که می توانند چت کنند (Chatter Bots) چیزهایی شنیده باشید. این روبات ها از روش های تقلیدی استفاده می کنند و به تعبیری، نمونه مدرن و اینترنتی آزمون تورینگ هستند.
مثلاً روبات ELIZA یکی از این هاست. این روبات را ژوزف وایزن بام، یکی دیگر از پژوهشگران نامدار این حوزه اختراع کرد. الیزا در برخی مکالمات ساده می تواند طرف مقابل خود را به اشتباه بیندازد. طوری که مخاطب ممکن است فکر کند درحال گپ زدن با یک انسان است. البته الیزا هنوز نتوانسته است آزمون تورینگ را با موفقیت پشت سر بگذارد. با این حال تکنیک های شبیه سازی مورد انتقاد گروهی از دانشمندان است. یکی از مشهورترین انتقادات در این زمینه را فیلسوفی به نام جان سیرل (John Searle) مطرح کرده است. او معتقد است بحث هوشمندی ماشین های غیربیولوژیک اساساً بی ربط است و برای اثبات ادعای خود مثالی می آورد که در مباحث تئوریک هوش مصنوعی <بحث اتاق چینی> نامیده می شود. سیرل ابتدا نقد خود درباره هوش ماشینی را در 1980 مطرح کرد و سپس آن در مقاله کامل تری که در 1990 منتشر کرد، بسط داد.
ماجرای اتاق چینی به این صورت است: فرض کنید داخل اتاقی یک نفر نشسته است و کتابی از قواعد سمبول های زبان چینی در اختیار دارد. برای این فرد عبارات – سمبول های – چینی روی کاغذ نوشته می شود و از زیر درِ اتاق به داخل فرستاده می شود. او باید با مراجعه به کتاب قواعد پاسخ مناسب را تهیه کند و روی کاغذ پس بفرستد. اگر فرض کنیم کتاب مرجع مورد نظر به اندازه کافی کامل است، این فرد می تواند بدون این که حتی معنی یک نماد از سمبول های زبان چینی را بفهمد، به پرسش ها پاسخ دهد. آیا می توان به این ترتیب نتیجه گرفت که پاسخ دهنده هوشمند است؟
استدلال اصلی این منتقد و دیگر منتقدان موضوع شبیه سازی این است که می توان ماشینی ساخت (مثلاً یک نرم افزار لغتنامه) که عبارات و اصطلاحات را ترجمه کند. یعنی ماشینی که کلمات و سمبول های ورودی را دریافت و سمبول ها و کلمات خروجی را تولید کند؛ بدون این که خود ماشین معنی و مفهوم این سمبول ها را درک کند. بنابراین آزمون تورینگ
حتی در صورت موفقیت نیز نمی تواند ثابت کند که یک ماشین هوشمند است .
ماشین ها بتوانند با دنیای پیرامون خود کنش و واکنش داشته باشند، آنگاه می توانند فکر کنند. منظور این است که کامپیوترها نیز مانند ما دارای حس بینایی، شنوایی، لامسه و حس های دیگر باشند. در این صورت، ترکیب همزمان " پاسخ های تقلیدی " با " واکنش مناسب به محیط " یعنی همان " هوشمندی " اتفاقاً کسی مانند جان سیرل نیز تفکرات مشابهی دارد؛ با این تفاوت که به طور خاص او شکل ایده آل کنش و واکنش مورد نیاز را همان تعامل بیولوژیکی می داند.
انتقادات دیگری نیز به آزمون تورینگ وارد می شود. ازجمله این که ممکن است یک ماشین هوشمند باشد، ولی نتواند همچون انسان ارتباط برقرار کند. دیگر این که، در آزمون تورینگ فرض می شود که انسان مورد آزمایش – یکی از دو نفری که داخل اتاق در بسته به سوالات پاسخ می دهد – به اندازه کافی هوشمند است. در حالی که با استناد به استدلال خود تورینگ می توان نتیجه گرفت که خیلی از افراد مانند بچه ها و افراد بیسواد در این آزمون مردود می شوند؛ نه به دلیل هوشمندی ماشین، بلکه به دلیل نداشتن مهارت کافی در ارتباط گیری از طریق مکاتبه.
مسئله دیگری که در بحث هوش مصنوعی اهمیت دارد، موضوع <قالب و محتوا> است. منظور از قالب یا Context در اینجا، ظرفی است که محتوا داخل آن قرار می گیرد.
یکی از پایه های هوشمندی انسان توجهی است که او به قالب محتوا – و نه صرفاً خود محتوا – دارد. به عنوان مثال، وقتی می گوییم "شیر"، این کلمه به تنهایی معانی متفاوتی دارد، ولی هنگامی که همین واژه داخل یک جمله قرار می گیرد، فقط یک معنی صحیح دارد. انسان می تواند معانی کلمات را نه فقط به صورت مجرد، بلکه با دنبال کردن نحوه وابستگیشان به جمله تشخیص دهد. مشابه همین هوشمندی، در تمام حس های پنجگانه انسان وجود دارد. به عنوان مثال، از نظر علمی ثابت شده است که گوش انسان می تواند هنگام توجه به صحبت های یک انسان دیگر در محیطی شلوغ، کلمات و عباراتی را که نمی شنود، خودش تکمیل کند یا چشم انسان می تواند هنگام مشاهده یک تصویر، قسمت های ناواضح آن را با استفاده از دانسته های بصری قبلی خود تکمیل کند.
از این رو کارشناسان معتقدند، دانش پیش زمینه یا " آرشیو ذهنی" یک موجود هوشمند نقش موثری در هوشمندی او بازی می کند. در حقیقت منشا پیدایش برخی از شاخه های مدرن و جدید دانش هوش مصنوعی همچون " سیستم های خبره " و " شبکه های عصبی " همین موضوع است و اساسا با این هدف پدید آمده اند که بتوانند به ماشین قدرت آموختن و فراگیری بدهند؛ هرچند که هر یک از این شاخه ها، از پارادایم متفاوتی برای آموزش به ماشین استفاده می کنند و همین تفاوت ها مبنا و اساس دو جریان فکری عمده در محافل علمی مرتبط با هوش مصنوعی را پدید آورده اند.
شاخه های علم هوش مصنوعی
امروزه دانش مدرن هوش مصنوعی به دو دسته اصلی تقسیم می شود: یکی هوش مصنوعی سمبولیک یا نمادین (Symbolic AI) و دیگری هوش غیرسمبولیک که پیوندگرا (Connection AI) نیز نامیده می شود.
هوش مصنوعی سمبولیک از رهیافتی مبتنی بر محاسبات آماری پیروی می کند و اغلب تحت عنوان "یادگیری ماشین" یا (Machine Learning) طبقه بندی می شود. هوش سمبولیک می کوشد سیستم و قواعد آن را در قالب سمبول ها بیان کند و با نگاشت اطلا عات به سمبول ها و قوانین به حل مسئله بپردازد. در میان معروف ترین شاخه های هوش مصنوعی سمبولیک می توان به سیستم های خبره (Expert Systems) و شبکه های Bayesian اشاره کرد.
یک سیستم خبره می تواند حجم عظیمی از داده ها را پردازش نماید و بر اساس تکنیک های آماری، نتایج دقیقی را تهیه کند. شبکه های Bayesian یک تکنیک محاسباتی برای ایجاد ساختارهای اطلاعاتی و تهیه استنتاج های منطقی از روی اطلاعاتی است که به کمک روش های آمار و احتمال به دست آمده اند. بنابراین در هوش سمبولیک، منظور از "یادگیری ماشین" استفاده از الگوریتم های تشخیص الگوها، تحلیل و طبقه بندی اطلاعات است.
این گرایش هوش مصنوعی ، بیشتر بر مدل سازی شناخت اعمال تاکید دارد و چندان خود را به قابلیت تعمق در بیولوژیک سیستم های ارائه شده مقید نمی کند.Case-Based Reasoning یکی از گرایش های فعال در این شاخه می باشد . به عنوان مثال روند استدلال توسط یک پزشک هنگام تشخیص یک بیماری کاملاً شبیه به CBR می باشد به این ترتیب که پزشک در ذهن خود تعداد بسیاری زیادی از شواهد بیماریهای شناخته شده را دارد و تنها باید مشاهدات خود را با نمونه های موجود در ذهن خویش تطبیق داده ، شبیه ترین نمونه را به عنوان بیماری بیابد . به این ترتیب مشخصات ، نیازمندی ها و توانائیهای CBR به عنوان یک چارچوب کلی پژوهش در هوش مصنوعی مورد توجه قرار گرفته است.
اما هوش پیوندگرا متکی بر یک منطق استقرایی است و از راه حل "آموزش/ بهبود سیستم از طریق تکرار" بهره می گیرد. این آموزش ها نه بر اساس نتایج و تحلیل های دقیق آماری، بلکه مبتنی بر شیوه آزمون و خطا و <یادگیری از راه تجربه> است. در هوش مصنوعی پیوندگرا، قواعد از ابتدا در اختیار سیستم قرار نمی گیرد، بلکه سیستم از طریق تجربه، خودش قوانین را استخراج می کند. متدهای ایجاد شبکه های عصبی (Neural Networks) و نیز به کارگیری منطق فازی (Fuzzy Logic) در این دسته قرار می گیرند.
پیوندگرایی (Connectionism) هوشمندی را تنها حاصل کار موازی و هم زمان و در عین حال تعامل تعداد بسیار زیادی اجزای کاملاً ساده به هم مرتبط می داند.
شبکه های عصبی که از مدل شبکه عصبی ذهن انسان الهام گرفته اند امروزه دارای کاربردهای کاملاً علمی و گسترده تکنولوژیک شده اند و کاربرد آن در زمینه های متنوعی مانند سیستم های کنترلی، رباتیک، تشخیص متون، پردازش تصویر،… مورد بررسی قرار گرفته است.
علاوه بر این کار بر روی توسعه سیستم های هوشمند با الهام از طبیعت (هوشمندی های ـ غیر از هوشمندی انسان) اکنون از زمینه های کاملاً پرطرفدار در هوش مصنوعی است.
الگوریتم ژنیتک که با استفاده از ایده تکامل داروینی و انتخاب طبیعی پیشنهاد شده روش بسیار خوبی برای یافتن پاسخ به مسائل بهینه سازیست. به همین ترتیب روش های دیگری نیز مانند استراتژی های تکاملی نیز (Evolutionary Algorithms) در این زمینه پیشنهاد شده اند.
دراین زمینه هر گوشه ای از سازو کار طبیعت که پاسخ بهینه ای را برای مسائل یافته است مورد پژوهش قرار می گیرد. زمینه هایی چون سیستم امنیتی بدن انسان (Immun System) که در آن بیشمار الگوی ویروس های مهاجم به صورتی هوشمندانه ذخیره می شوند و یا روش پیدا کردن کوتاه ترین راه به منابع غذا توسط مورچگان (Ant Colony) همگی بیانگر گوشه هایی از هوشمندی بیولوژیک هستند.
برای درک بهتر تفاوت میان این دو شیوه به یک مثال توجه کنید. فرض کنید می خواهیم یک سیستم OCR بسازیم. سیستم OCR نرم افزاری است که پس از اسکن کردن یک تکه نوشته روی کاغذ می تواند متن روی آن را استخراج کند و به کاراکترهای متنی تبدیل نماید.
بدیهی است که چنین نرم افزاری به نوعی هوشمندی نیاز دارد. این هوشمندی را از دو طریق متفاوت می توان فراهم کرد. اگر از روش سمبولیک استفاده کنیم ، قاعدتاً باید الگوی هندسی تمام حروف و اعداد را در حالت های مختلف در بانک اطلاعاتی سیستم تعریف کنیم و سپس متن اسکن شده را با این الگوها مقایسه کنیم تا بتوانیم متن را استخراج نماییم. در اینجا الگوهای حرفی- عددی یا همان سمبول ها پایه و اساس هوشمندی سیستم را تشکیل می دهند.
روش دوم یا متد " پیوندگرا "این است که یک سیستم هوشمند غیرسمبولیک درست کنیم و متن های متعددی را یک به یک به آن بدهیم تا آرام آرام آموزش ببیند و سیستم را بهینه کند. در اینجا سیستم هوشمند می تواند مثلا ً یک شبکه عصبی یا مدل مخفی مارکوف باشد. در این شیوه سمبول ها پایه هوشمندی نیستند، بلکه فعالیت های سلسله اعصاب یک شبکه و چگونگی پیوند میان آن ها مبنای هوشمندی را تشکیل می دهند.
در طول دهه های 1960 و 1970 به دنبال ابداع اولین برنامه نرم افزاری موفق در گروه سیستم های مبتنی بر دانش(Knowledge-Based) توسط جوئل موزس، سیستم های هوش سمبولیک به یک جریان مهم تبدیل شد. ایده و مدل شبکه های عصبی ابتدا در دهه 1940 توسط Warren McCulloch و Walter Pitts معرفی شد.
سپس در دهه 1950 کارهای روزنبالت (Rosenblatt) درمورد شبکه های دولایه مورد توجه قرارگرفت. در 1974 الگوریتم Back Propagation توسط Paul Werbos معرفی شد، ولی متدولوژی شبکه های عصبی عمدتاً از دهه 1980 به این سو رشد زیادی پیدا کرد و مورد استقبال دانشمندان قرار گرفت. منطق فازی ابتدا توسط پروفسور لطفی زاده، در 1965 معرفی شد و از آن زمان به بعد توسط خود او و دیگر دانشمندان دنبال شد.
در دهه 1980 تلاش های دانشمندان ژاپنی برای کاربردی کردن منطق فازی به ترویج و معرفی منطق فازی کمک زیادی کرد. مثلاً طراحی و شبیه سازی سیستم کنترل فازی برای راه آهن Sendai توسط دو دانشمند به نام هایYasunobu و Miyamoto در 1985، نمایش کاربرد سیستم های کنترل فازی از طریق چند تراشه مبتنی بر منطق فازی در آزمون " پاندول معکوس " توسط Takeshi Yamakawa در همایش بین المللی پژوهشگران منطق فازی در توکیو در 1987 و نیز استفاده از سیستم های فازی در شبکه مونو ریل توکیو و نیز و معرفی سیستم ترمز ABS مبتنی بر کنترلرهای فازی توسط اتومبیل سازی هوندا در همین دهه تاثیر زیادی در توجه مجدد دانشمندان جهان به این حوزه از علم داشت.
البته هنگامی که از گرایش های آینده سخن می گوییم، هرگز نباید از گرایش های ترکیبی غفلت کنیم. گرایش هایی که خود را به حرکت در چارچوب شناختی یا بیولوژیک یا منطقی محدود نکرده و به ترکیبی از آنها می اندیشند. شاید بتوان پیش بینی کرد که چنین گرایش هایی فرا ساختارهای (Meta -Structure) روانی را براساس عناصر ساده بیولوژیک بنا خواهند کرد.
کاربردهای هوش مصنوعی
سیستم های خبره (Expert Sytems)
در یک تعریف کلی می توان گفت سیستم های خبره، برنامه های کامپیوتری ای هستند که نحوه تفکر یک متخصص در یک زمینه خاص را شبیه سازی می کنند. در واقع این نرم افزارها، الگوهای منطقی ای را که یک متخصص بر اساس آن ها تصمیم گیری می کند، شناسایی می نمایند و سپس بر اساس آن الگوها، مانند انسان ها تصمیم گیری می کنند.
یکی از اهداف هوش مصنوعی، فهم هوش انسانی با شبیه سازی آن توسط برنامه های کامپیوتری است. البته بدیهی است که "هوش " را می توان به بسیاری از مهارت های مبتنی بر فهم، از جمله توانایی تصمیم گیری، یادگیری و فهم زبان تعمیم داد و از این رو واژه ای کلی محسوب می شود.
بیشتر دستاوردهای هوش مصنوعی در زمینه تصمیم گیری و حل مسئله بوده است که اصلی ترین موضوع سیستم های خبره را شامل می شوند. به آن نوع از برنامه های هوش مصنوعی که به سطحی از خبرگی می رسند که می توانند به جای یک متخصص در یک زمینه خاص تصمیم گیری کنند، Expert Systems یا سیستم های خبره گفته می شود. این سیستم ها برنامه هایی هستند که پایگاه دانش آن ها انباشته از اطلاعاتی است که انسان ها هنگام تصمیم گیری درباره یک موضوع خاص، براساس آن ها تصمیم می گیرند. روی این موضوع باید تاکید کرد که هیچ یک از سیستم های خبره ای که تا کنون طراحی و برنامه نویسی شده اند، همه منظوره نبوده اند و تنها در یک زمینه محدود قادر به شبیه سازی فرآیند تصمیم گیری انسان هستند.
به محدوده اطلاعاتی از الگوهای خِبرگی انسان که به یک سیستم خبره منتقل می شود Task Domain گفته می شود. این محدوده، سطح خبرگی یک سیستم خبره را مشخص می کند و نشان می دهد که آن سیستم خبره برای چه کارهایی طراحی شده است. سیستم خبره با این Task ها یا وظایف می تواند کارهایی چون برنامه ریزی، زمانبندی، و طراحی را در یک حیطه تعریف شده انجام دهد.
به روند ساخت یک سیستم خبره، Knowledge Engineering یا مهندسی دانش گفته می شود. یک مهندس دانش باید اطمینان حاصل کند که سیستم خبره طراحی شده، تمام دانش مورد نیاز برای حل یک مسئله را دارد. طبیعتاً در غیراین صورت، تصمیم های سیستم خبره قابل اطمینان نخواهند بود.
ساختار یک سیستم خبره
هر سیستم خبره از دو بخش مجزا ساخته شده است: پایگاه دانش و موتور تصمیم گیری.
پایگاه دانش یک سیستم خبره از هر دو نوع دانش مبتنی بر حقایق (Factual) و نیز دانش غیرقطعی (Heuristic) استفاده می کند. Factual Knowledge، دانش حقیقی یا قطعی نوعی از دانش است که می توان آن را در حیطه های مختلف به اشتراک گذاشت و تعمیم داد؛ چراکه درستی آن قطعی است.
در سوی دیگر، Heuristic knowledge قرار دارد که غیرقطعی تر و بیشتر مبتنی بر برداشت های شخصی است. هرچه حدس ها یا دانش هیورستیک یک سیستم خبره بهتر باشد، سطح خبرگی آن بیشتر خواهد بود و در شرایط ویژه، تصمیمات بهتری اتخاذ خواهد کرد.
دانش مبتنی بر ساختار Heuristic در سیستم های خبره اهمیت زیادی دارد این نوع دانش می تواند به تسریع فرآیند حل یک مسئله کمک کند .
البته یک مشکل عمده در ارتباط با به کارگیری دانشHeuristic آن است که نمی توان در حل همه مسائل از این نوع دانش استفاده کرد. به عنوان نمونه، نمودار (شکل 1) به خوبی نشان می دهد که جلوگیری از حمل سموم خطرناک از طریق خطوط هوایی با استفاده از روش Heuristic امکانپذیر نیست.
شکل 1
اطلاعات این بخش از سیستم خبره از طریق مصاحبه با افراد متخصص در این زمینه تامین می شود. مهندس دانش یا مصاحبه کننده، پس از سازمان دهی اطلاعات جمع آوری شده از متخصصان یا مصاحبه شوندگان، آ ن ها را به قوانین قابل فهم برای کامپیوتر به صورت (If-Then) موسوم به قوانین ساخت (Production Rules) تبدیل می کند.
موتور تصمیم گیری سیستم خبره را قادر می کند با استفاده از قوانین پایگاه دانش، پروسه تصمیم گیری را انجام دهد. برای نمونه، اگر پایگاه دانش قوانینی به صورت زیر داشته باشد:
●دفتر ماهنامه شبکه در تهران قرار دارد.
●تهران در ایران قرار دارد.
سیستم خبره می تواند به قانون زیر برسد:
● دفتر ماهنامه شبکه در ایران قرار دارد.
استفاده از منطق فازی
موضوع مهم دیگر در ارتباط با سیستم های خبره، پیوند و ارتباط آن با دیگر شاخه های هوش مصنوعی است. به بیان روشن تر، برخی از سیستم های خبره از Fuzzy Logic یا منطق فازی استفاده می کنند. در منطق غیرفازی تنها دو ارزش درست (True) یا نادرست (False) وجود دارد. چنین منطقی نمی تواند چندان کامل باشد؛ چراکه فهم و پروسه تصمیم گیری انسان ها در بسیاری از موارد، کاملا قطعی نیست و بسته به زمان و مکان آن، تا حدودی درست یا تا حدودی نادرست است. در خلال سال های 1920 و 1930، Jan Lukasiewicz فیلسوف لهستانی منطقی را مطرح کرد که در آن ارزش یک قانون می تواند بیشتر از دو مقدار 0 و 1 یا درست و نادرست باشد. سپس پروفسور لطفی زاده نشان داد که منطق Lukasiewicz را می توان به صورت "درجه درستی" مطرح کرد. یعنی به جای این که بگوییم: "این منطق درست است یا نادرست؟" بگوییم: "این منطق چقدر درست یا چقدر نادرست است؟"
از منطق فازی در مواردی استفاده می شود که با مفاهیم مبهمی چون "سنگینی"، "سرما"، "ارتفاع" و از این قبیل مواجه شویم. این پرسش را در نظر بگیرید : "وزن یک شیء 500 کیلوگرم است، آیا این شیء سنگین است؟" چنین سوالی یک سوال مبهم محسوب می شود؛ چراکه این سوال مطرح می شود که "از چه نظر سنگین؟" اگر برای حمل توسط یک انسان بگوییم، بله سنگین است. اگر برای حمل توسط یک اتومبیل مطرح شود، کمی سنگین است، ولی اگر برای حمل توسط یک هواپیما مطرح شود سنگین نیست.
در اینجاست که با استفاده از منطق فازی می توان یک درجه درستی برای چنین پرسشی در نظر گرفت و بسته به شرایط گفت که این شیء کمی سنگین است. یعنی در چنین مواردی گفتن این که این شیء سنگین نیست
(False) یا سنگین است (True) پاسخ دقیقی نیست.
مزایا و محدودیت های سیستم های خبره
دستاورد سیستم های خبره را می توان صرفه جویی در هزینه ها و نیز تصمیم گیری های بهتر و دقیق تر و بسیاری موارد تخصصی تر دیگر عنوان کرد. استفاده از سیستم های خبره برای شرکت ها می تواند صرفه جویی به همراه داشته باشد.
در زمینه تصمیم گیری نیز گاهی می توان در شرایط پیچیده، با بهره گیری از چنین سیستم هایی تصمیم های بهتری اتخاذ کرد و جنبه های پیچیده ای را در مدت زمان بسیار کمی مورد بررسی قرار داد که تحلیل آنها به روزها زمان نیاز دارد.
مزایای سیستم های خبره را می توان به صورت زیر دسته بندی کرد:
1-افزایش قابلیت دسترسی : تجربیات بسیاری از طریق کامپیوتر دراختیار قرار می گیرد و به طور ساده تر می توان گفت یک سیستم خبره ،تولید انبوه تجربیات است .
2-کاهش هزینه :هزینه کسب تجربه برای کاربربه طورزیادی کاهش می یابد.
3-کاهش خطر: سیستم خبره می تواند در محیطهایی که ممکن است برای انسان سخت و خطرناک باشد نیز بکار رود.
4-دائمی بودن : سیستم های خبره دائمی و پایدار هستند. بعبارتی مانندانسان ها نمی میرند و فنا ناپذیرند.
5- تجربیات چندگانه : یک سیستم خبره می تواند مجموع تجربیات وآگاهی های چندین فرد خبره باشد.
6-افزایش قابلیت اطمینان : سیستم های خبره هیچ وقت خسته وبیمار نمی شوند، اعتصاب نمی کنند و یا علیه مدیرشان توطئه نمی کنند، درصورتی که اغلب در افراد خبره چنین حالاتی پدید می آید.
7-قدرت تبیین (Explanation): یک سیستم خبره می تواند مسیر و مراحل استدلالی منتهی شده به نتیجه گیری را تشریح نماید. اما افراد خبره اغلب اوقات بدلایل مختلف (خستگی ، عدم تمایل و…) نمی توانند این عمل رادر زمانهای تصمیم گیری انجام دهند. این قابلیت ، اطمینان شما را در موردصحیح بودن تصمیم گیری افزایش می دهد.
8-پاسخ دهی سریع :سیستم های خبره ،سریع ودراسرع وقت جواب می دهند.
9-پاسخ دهی در همه حالات : در مواقع اضطراری و مورد نیاز،ممکن است یک فرد خبره بخاطر فشار روحی و یا عوامل دیگر، صحیح تصمیم گیری نکند ولی سیستم خبره این معایب را ندارد.
10-پایگاه تجربه : سیستم خبره می تواند همانند یک پایگاه تجربه عمل کند وانبوهی از تجربیات را در دسترس قرار دهد.
11-آموزش کاربر: سیستم خبره می تواند همانند یک خودآموز هوش (Intelligent Tutor) عمل کند. بدین صورت که مثالهایی را به سیستم خبره می دهند و روش استدلال سیستم را از آن می خواهند.
12-سهولت انتقال دانش : یکی از مهمترین مزایای سیستم خبره ،سهولت انتقال آن به مکان های جغرافیایی گوناگون است . این امر برای توسعه کشورهایی که استطاعت خرید دانش متخصصان راندارند،مهم است .
از سوی دیگر، به کارگیری سیستم های خبره محدودیت های خاصی دارد. به عنوان نمونه، این سیستم ها نسبت به آنچه انجام می دهند، هیچ "حسی" ندارند. چنین سیستم هایی نمی توانند خبرگی خود را به گستره های وسیع تری تعمیم دهند؛ چراکه تنها برای یک منظور خاص طراحی شده اند و پایگاه دانش آن ها از دانش متخصصان آن حوزه نشات گرفته و از این رو محدود است.
چنین سیستم هایی از آنجا که توسط دانش متخصصان تغذیه اطلاعاتی شده اند، در صورت بروز برخی موارد پیش بینی نشده، نمی توانند شرایط جدید را به درستی تجزیه و تحلیل نمایند.
کاربرد سیستم های خبره
از سیستم های خبره در بسیاری از حیطه ها از جمله برنامه ریزی های تجاری، سیستم های امنیتی، اکتشافات نفت و معادن، مهندسی ژنتیک، طراحی و ساخت اتومبیل، طراحی لنز دوربین و زمانبندی برنامه پروازهای خطوط هوایی استفاده می شود. دو نمونه از کاربردهای این سیستم ها در ادامه توضیح داده شده اند.
● طراحی و زمانبندی
سیستم هایی که در این زمینه مورد استفاده قرار می گیرند، چندین هدف پیچیده و تعاملی را مورد بررسی قرار می دهند تا جوانب کار را روشن کنند و به اهداف مورد نظر دست یابند یا بهترین گزینه را پیشنهاد دهند. بهترین مثال از این مورد، زمانبندی پروازهای خطوط هوایی، کارمندان و گیت های یک شرکت حمل و نقل هوایی است.
●تصمیم گیری های مالی
صنعت خدمات مالی یکی از بزرگ ترین کاربران سیستم های خبره است. نرم افزارهای پیشنهاددهنده نوعی از سیستم های خبره هستند که به عنوان مشاور بانکداران عمل می کنند. برای نمونه، با بررسی شرایط یک شرکت متقاضی وام از یک بانک تعیین می کند که آیا پرداخت این وام به شرکت برای بانک مورد نظر صرفه اقتصادی دارد یا نه. همچنین شرکت های بیمه برای بررسی میزان خطرپذیری و هزینه های موارد مختلف، از این سیستم ها استفاده می کنند.
چند سیستم خبره مشهور
از نخستین سیستم های خبره می توان به Dendral اشاره کرد که در سال 1965 توسط Edward Feigenbaum و Joshun Lederberg پژوهشگران هوش مصنوعی در دانشگاه استنفورد ساخته شد.
وظیفه این برنامه کامپیوتری، تحلیل های شیمیایی بود. ماده مورد آزمایش می توانست ترکیبی پیچیده از کربن، هیدروژن و نیتروژن باشد. Dendral می توانست با بررسی آرایش و اطلاعات مربوط به یک ماده، ساختار مولکولی آن را شبیه سازی کند. کارکرد این نرم افزار چنان خوب بود که می توانست با یک متخصص رقابت کند.
از دیگر سیستم های خبره مشهور می توان به MYCIN اشاره کرد که در سال 1972 در استنفورد طراحی شد. MYCIN برنامه ای بود که کار آن تشخیص عفونت های خونی با بررسی اطلاعات به دست آمده از شرایط جسمی بیمار و نیز نتیجه آزمایش های او بود.
برنامه به گونه ای طراحی شده بود که در صورت نیاز به اطلاعات بیشتر، با پرسش هایی آن ها را درخواست می کرد تا تصمیم گیری بهتری انجام دهد؛ پرسش هایی چون "آیا بیمار اخیرا دچار سوختگی شده است؟" (برای تشخیص این که آیا عفونت خونی از سوختگی نشات گرفته یا نه. MYCIN ( گاه می توانست نتایج آزمایش را نیز از پیش حدس بزند.
سیستم خبره دیگر در این زمینه Centaur بود که کار آن بررسی آزمایش های تنفسی و تشخیص بیماری های ریوی بود.
یکی از پیشروان توسعه و کاربرد سیستم های خبره، سازمان های فضایی هستند که برای مشاوره و نیز بررسی شرایط پیچیده و صرفه جویی در زمان و هزینه چنین تحلیل هایی به این سیستم ها روی آورده اند.
Marshall Space Flight Center) MSFC) یکی از مراکز وابسته به سازمان فضایی ناسا از سال 1994 در زمینه توسعه نرم افزارهای هوشمند کار می کند که هدف آن تخمین کمّ و کیف تجهیزات و لوازم مورد نیاز برای حمل به فضا است.
این برنامه های کامپیوتری با پیشنهاد راهکارهایی در این زمینه از بار کاری کارمندان بخش هایی چون ISS (ایستگاه فضایی بین المللی) می کاهند و به گونه ای طراحی شده اند که مدیریت پذیرند و بسته به شرایط مختلف، قابل تعریف هستند.
مرکز فضایی MSFC، توسط فناوری ویژه خود موسوم به 2G به ایجاد برنامه های ویژه کنترل هوشمندانه و سیستم های مانیتورینگ خطایاب می پردازد. این فناوری را می توان هم در سیستم های لینوکسی و هم در سیستم های سرور مبتنی بر ویندوز مورد استفاده قرار داد .
آنچه در نهایت می توان گفت آن است که یکی از مزیت های سیستم های خبره این است که می توانند در کنار متخصصان انسانی مورد استفاده قرار بگیرند که ماحصل آن تصمیمی مبتنی بر تخصص انسانی و دقت ماشینی است. این فناوری از دید تجاری نیز برای توسعه دهندگان آن سودآور است.
هم اکنون شرکت های بسیاری به فروش سیستم های خبره و پشتیبانی از مشتریان محصولات خود می پردازند. درآمد یک شرکت کوچک فعال در زمینه فروش چنین محصولاتی می تواند سالانه بالغ بر پنج تا بیست میلیون دلار باشد. بازار فروش و پشتیبانی سیستم های خبره در سراسر جهان نیز سالانه به صدها میلیون دلار می رسد.
منطق فازی (Fuzzy Logic)
پیشینه منطق فازی
تئوری مجموعه های فازی و منطق فازی را اولین بار پرفسور لطفی زاده در رساله ای به نام "مجموعه های فازی ، اطلاعات و کنترل" در سال 1965 معرفی نمود. هدف اولیه او در آن زمان، توسعه مدلی کارآمدتر برای توصیف فرآیند پردازش زبان های طبیعی بود. او مفاهیم و اصلاحاتی همچون مجموعه های فازی، رویدادهای فازی، اعداد فازی و فازی سازی را وارد علوم ریاضیات و مهندسی نمود. از آن زمان تاکنون، پرفسور لطفی زاده به دلیل معرفی نظریه بدیع و سودمند منطق فازی و تلاش هایش در این زمینه، موفق به کسب جوایز بین المللی متعددی شده است.
پس از معرفی منطق فازی به دنیای علم، در ابتدا مقاومت های بسیاری دربرابر پذیرش این نظریه صورت گرفت . بخشی از این مقاومت ها، چنان که ذکر شد، ناشی از برداشت های نادرست از منطق فازی و کارایی آن بود. جالب این که، منطق فازی در سال های نخست تولدش بیشتر در دنیای مشرق زمین، به ویژه کشور ژاپن با استقبال روبه رو شد، اما استیلای اندیشه کلاسیک صفر و یک در کشورهای مغرب زمین، اجازه رشد اندکی به این نظریه داد. با این حال به تدریج که این علم کاربردهایی پیدا کرد و وسایل الکترونیکی و دیجیتالی جدیدی وارد بازار شدند که بر اساس منطق فازی کارمی کردند، مخالفت ها نیز اندک اندک کاهش یافتند.
در ژاپن استقبال از منطق فازی، عمدتاً به کاربرد آن در روباتیک و هوش مصنوعی مربوط می شود. موضوعی که یکی از نیروهای اصلی پیش برندهِ این علم طی چهل سال گذشته بوده است. در حقیقت می توان گفت بخش بزرگی از تاریخچه دانش هوش مصنوعی، با تاریخچه منطق فازی همراه و هم داستان است.
مجموعه های فازی
بنیاد منطق فازی بر شالوده نظریه مجموعه های فازی استوار است. این نظریه تعمیمی از نظریه کلاسیک مجموعه ها در علم ریاضیات است. در تئوری کلاسیک مجموعه ها، یک عنصر، یا عضو مجموعه است یا نیست. در حقیقت عضویت عناصر از یک الگوی صفر و یک و باینری تبعیت می کند. اما تئوری مجموعه های فازی این مفهوم را بسط می دهد و عضویت درجه بندی شده را مطرح می کند. به این ترتیب که یک عنصر می تواند تا درجاتی – و نه کاملاً – عضو یک مجموعه باشد. مثلاً این جمله که "آقای الف به اندازه هفتاددرصد عضو جامعه بزرگسالان است"از دید تئوری مجموعه های فازی صحیح است. در این تئوری، عضویت اعضای مجموعه از طریق تابع (u (x مشخص می شود که x نمایانگر یک عضو مشخص و u تابعی فازی است که درجه عضویت x در مجموعه مربوطه را تعیین می کند و مقدار آن بین صفر و یک است (فرمول 1).
فرمول 1
به بیان دیگر، ( u (x نگاشتی از مقادیر x به مقادیر عددی ممکن بین صفرویک را می سازد. تابع ( u (x ممکن است مجموعه ای از مقادیر گسسته (Discrete) یا پیوسته باشد. وقتی که u فقط تعدادی از مقادیر گسسته بین صفر و یک را تشکیل می دهد، مثلاً ممکن است شامل اعداد 3/0 و 5/0 و 7/0 و 9/0 و صفر و یک باشد. اما وقتی مجموعه مقادیرu پیوسته باشند، یک منحنی پیوسته از اعداد اعشاری بین صفر و یک تشکیل می شود.
شکل 2 نموداری از نگاشت پیوسته مقادیر x به مقادیر ( u (x را نشان می دهد. تابع ( u (x در این نمودار می تواند قانون عضویت در یک مجموعه فازی فرضی را تعریف کند.
منطق فازی چگونه به کار گرفته می شود؟
منطق فازی را از طریق قوانینی که "عملگرهای فازی" نامیده می شوند،
می توان به کار گرفت. این قوانین معمولاً بر اساس مدل زیر تعریف می شوند : شکل 2
If Variable Is set Then Action
به عنوان مثال فرض کنید می خواهیم یک توصیف فازی از دمای یک اتاق ارائه دهیم. در این صورت می توانیم چند مجموعه فازی تعریف کنیم که از الگوی تابع ( u (x تبعیت کند. شکل 3 نموداری از نگاشت متغیر "دمای هو" به چند مجموعه فازی با نام های "سرد"، "خنک"، "عادی"، "گرم" و "داغ" است. چنان که ملاحظه می کنید، یک درجه حرارت معین ممکن است متعلق به یک یا دو مجموعه باشد.
شکل 3
به عنوان نمونه، درجه حرارت های بین دمای T1 و T2 هم متعلق به مجموعه "سرد" و هم متعلق به مجموعه "خنک" است. اما درجه عضویت یک دمای معین در این فاصله، در هر یک از دو مجموعه متفاوت است. به طوری که دمای نزدیک T2 تنها به اندازه چند صدم در مجموعه "سرد" عضویت دارد، اما نزدیک نوددرصد در مجموعه "خنک" عضویت دارد.
پارادایم حاکم بر یک کنترلر فازی به این ترتیب است که متغیرهای دنیای واقعی به عنوان ورودی دریافت می شوند. قوانین فازی آن ها را به متغیرهای معنایی تبدیل می کند. فرآیند فازی این ورودی را می گیرد و خروجی معنایی تولید می کند و سرانجام خروجی ها به زبان دنیای واقعی ترجمه می شوند. نمودار شکل 4 مصداقی از همین روند است.
اکنون می توان بر اساس مدل فوق قانون فازی زیر را تعریف کرد:
اگر دمای اتاق <خیلی گرم> است، سرعت پنکه را <خیلی زیاد> کن.
اگر دمای اتاق <گرم> است، سرعت پنکه را <زیاد> کن.
اگر دمای اتاق <معتدل> است، سرعت پنکه را در <همین اندازه> نگه دار.
اگر دمای اتاق <خنک> است، سرعت پنکه را <کم> کن.
اگر دمای اتاق <سرد> است، پنکه را <خاموش> کن.
اگر این قانون فازی را روی یک سیستم کنترل دما اعمال کنیم، آن گاه می توانیم دماسنجی بسازیم که دمای اتاق را به صورت خودکار و طبق قانون ما، کنترل می کند. اما این سوال پیش می آید که اگر دو یا چند قانون همزمان برای یک متغیر ورودی فعال شود چه اتفاقی خواهد افتاد؟ فرض کنید دمای اتاق برابر Tx1 است در این صورت هم قانون مربوط به اتاق گرم و هم قانون مربوط به دمای اتاق معتدل صادق است و مقادیر U1 و U2 به ترتیب به دست می آید. طبق کدام قانون باید عمل کرد؟ لطفی زاده خود پاسخ این معما را نداد. در سال 1975 دو دانشمند منطق فازی به نام ممدانی (Mamdani) و آسیلیان اولین کنترل فازی واقعی را طراحی کردند. آنان پاسخ این معما را با محاسبهِ نقطه ثقل (C) مساحتی که از ترکیب دو ذوزنقه زیر U1 و U2 در شکل 4 پدید آمده و نگاشت آن به محور t و به دست آوردن مقدار Tx2 حل کردند.
منطق فازی، همچون منطق کلاسیک تعدادی عملگر پایه دارد. مثلاً در منطق کلاسیک از عملگرهای AND و OR و NOT استفاده می شود که دانش آموزان رشته ریاضی فیزیک در دبیرستان با آن ها آشنا می شوند. در منطق فازی معادل همین عملگرها وجود دارد که به آن ها عملگرهای <زاده> می گویند. این عملگرها به صورت زیر تعریف می شوند: (فرمول 2)
به عنوان مثال ترکیب AND دو متغیر x و y عبارت است از کمینه مقادیر ( u (x و ( u(y. به عبارت ساده تر، آنجا که هم x و y از نظر فازی"صحیح" باشند، همزمان مقادیر ( u (x و ( u(y به کمترین مقدار خود می رسند.
تفاوت میان نظریه احتمالات و منطق فازی
یکی از مباحث مهم در منطق فازی، تمیزدادن آن از نظریه احتمالات در علم ریاضیات است. غالباً نظریه فازی با نظریه احتمالات اشتباه می شود. در حالی که این دو مفهوم کاملاً با یکدیگر متفاوتند. این موضوع به قدری مهم است که حتی برخی از دانشمندان بزرگ علم ریاضیات در دنیا – به ویژه کشورهای غربی – درمورد آن با یکدیگر بحث دارند و جالب آن که هنوز هم ریاضیدانانی وجود دارند که با منطق فازی مخالفند و آن را یک سوء تعبیر از نظریه احتمالات تفسیر می کنند.
از نگاه این ریاضیدانان، منطق فازی چیزی نیست جز یک برداشت نادرست از نظریه احتمالات که به گونه ای غیرقابل قبول،مقادیرواندازه گیری های نادقیق را واردعلوم ریاضیات ،مهندسی وکنترل کرده است.بعضی نیزمانندBruno de Finetti معتقدند فقط یک نوع توصیف از مفهوم عدم قطعیت در علم ریاضیات کافی است و چون علم آمار و احتمالات وجود دارد، نیازی به مراجعه به منطق فازی نیست.
با این حال، اکثریت طرفداران نظریه منطق فازی، کارشناسان و متخصصانی هستند که به طور مستقیم یا غیرمستقیم با علم مهندسی کنترل سروکار دارند. حتی تعدادی از پیروان منطق فازی همچون بارت کاسکو تا آنجا پیش می روند که احتمالات را شاخه و زیرمجموعه ای از منطق فازی می نامند.
توضیح تفاوت میان این دو نظریه البته کار چندان دشواری نیست. منطق فازی با حقایق نادقیق سروکار دارد و به حدود و درجات یک واقعیت اشاره دارد؛ حال آن که نظریه احتمالات بر شالوده مجموعه حالات تصادفیِ یک پدیده استوار است و درباره شانس وقوع یک حالت خاص صحبت می کند؛ حالتی که وقتی اتفاق بیفتد، دقیق فرض می شود. ذکر یک مثال می تواند موضوع را روشن کند. فرض کنید در حال رانندگی در یک خیابان هستید. اتفاقاً متوجه می شوید که کودکی در اتومبیل دیگری که به موازات شما در حال حرکت است، نشسته و سر و یک دست خود را از پنجره ماشین بیرون آورده و در حال بازی گوشی است. این وضعیت واقعی است و نمی توان گفت احتمال این که بدن این کودک بیرون اتومبیل باشد، چقدر است.
چون بدن او واقعاً بیرون ماشین است، با این توضیح که بدن او کاملاً بیرون نیست، بلکه فقط بخشی از بدن او در خارج اتومبیل قرارگرفته است. تئوری احتمالات در اینجا کاربردی ندارد. چون ما نمی توانیم از احتمال خارج بودن بدن کودک از ماشین صحبت کنیم؛ زیرا آشکارا فرض غلطی است. اما می توانیم از احتمال وقوع حادثه صحبت کنیم. مثلاً هرچه بدن کودک بیشتر بیرون باشد، احتمال این که در اثر برخورد با بدنه یک اتومبیل در حال حرکت دچار آسیب شود، بیشتر می شود. این حادثه هنوز اتفاق نیفتاده است، ولی می توانیم از احتمال وقوع آن صحبت کنیم. اما بیرون بودن تن کودک از ماشین همین حالا به واقعیت تبدیل شده است و فقط می توانیم از میزان و درجات آن صحبت کنیم.
تفاوت ظریف و در عین حال پررنگی میان نظریه احتمالات و نظریه فازی وجود دارد که اگر دقت نکنیم، دچار اشتباه می شویم؛ زیرا این دو نظریه معمولاً در کنار یکدیگر و در مورد اشیای مختلف همزمان مصداق هایی پیدا می کنند. هنگامی که به یک پدیده می نگریم، نوع نگاه ما به آن پدیده می تواند تعیین کند که باید درباره احتمالات صحبت کنیم یا منطق فازی. در مثال فوق موضوع دغدغه ما کودکی است که در حال بازی گوشی است. اما یک وقت نگران این هستیم که تا چه اندازه خطر او را تهدید می کند. خطری که هنوز به وقوع نپیوسته است. یک وقت هم ممکن است نگران باشیم که بدن او چقدر بیرون پنجره است. واقعیتی که هم اکنون به وقوع پیوسته است.
یک دیدگاه درباره علت بحث و جدل علمی میان دانشمندان این است که برخی از ریاضیدانان اتکا به علم آمار و احتمال را کافی می دانند و نظریه فازی را یک برداشت غیرکارآمد از جهان درباره ما تلقی می کنند. به عنوان مثال، اگر به مورد کودک و اتومبیل مراجعه کنیم، این پرسش مطرح می شود که اگر نگرانی و دغدغه نهایی ما احتمال وقوع حادثه است، دیگر چه نیازی به این است که ما درباره درجات "بیرون بودن تن کودک از اتومبیل" صحبت کنیم؟
بحث درباره ابعاد فلسفی منطق فازی بسیار شیرین و البته گسترده است. متاسفانه مجال برای طرح گستردهِ ابعاد فلسفی منطق فازی در این مقاله وجود ندارد. از این رو اگر مایل به مطالعه بیشتر در این زمینه هستید، کتاب بسیاری خواندنی "تفکر فازی" را که در پی نوشت دوم انتهای مقاله معرفی کرده ام، توصیه می کنم.
کاربردهای منطق فازی
منطق فازی کاربردهای متعددی دارد. ساده ترین نمونه یک سیستم کنترل دما یا ترموستات است که بر اساس قوانین فازی کار می کند. سال هاست که از منطق فازی برای کنترل دمای آب یا میزان کدرشدن آبی که لباس ها در آن شسته شده اند در ساختمان اغلب ماشین های لباسشویی استفاده می شود.
امروزه ماشین های ظرفشویی و بسیاری از دیگر لوازم خانگی نیز از این تکنیک استفاده می کنند. منطق فازی در صنعت خودروسازی نیز کاربردهای فروانی دارد. مثلاً سیستم ترمز و ABS در برخی از خودروها از منطق فازی استفاده می کند. یکی از معروف ترین نمونه های به کارگیری منطق فازی در سیستم های ترابری جهان، شبکه مونوریل (قطار تک ریل) توکیو در ژاپن است. سایر سیستم های حرکتی و جابه جایی بار، مثل آسانسورها نیز از منطق فازی استفاده می کنند.
سیستم های تهویه هوا نیز به وفور منطق فازی را به کار می گیرند. از منطق فازی در سیستم های پردازش تصویر نیز استفاده می شود. یک نمونه از این نوع کاربردها را می توانید در سیستم های "تشخیص لبه و مرز" اجسام و تصاویر مشاهده کنید که در روباتیک نیز کاربردهایی دارد. به طور کلی خیلی از مواقع در ساختمان سیستم های تشخیص الگوها (Pattern Recognition) مثل سیستم های تشخیص گفتار و پردازش تصویر از منطق فازی استفاده می شود.
شکل 4
فرمول 2
منطق فازی و هوش مصنوعی
جالب ترین کاربرد منطق فازی، تفسیری است که این علم از ساختار تصمیم گیری های موجودات هوشمند، و در راس آن ها، هوش انسانی، به دست می دهد.
این منطق به خوبی نشان می دهد که چرا منطق دو ارزشی "صفر و یک" در ریاضیات کلاسیک قادر به تبیین و توصیف مفاهیم نادقیقی همچون "گرما و سرما" که مبنای بسیاری از تصمیم گیری های هوشمند را تشکیل می دهند، نیست.
شاید یکی از جالب ترین کاربردهای منطق فازی هوش مصنوعی در بازی های رایانه ای و جلوه های ویژه سینمایی باشد. از نرم افزار Massive در بسیاری از صحنه های فیلم برای تولید حرکات لشکر موجودات متخاصم استفاده شده بود.
شبکه های عصبی (Neural Network)
شبکه های عصبی را می توان با اغماض زیاد، مدل های الکترونیکی از ساختار عصبی مغز انسان نامید. مکانیسم فراگیری و آموزش مغز اساساً بر تجربه استوار است. مدل های الکترونیکی شبکه های عصبی طبیعی نیز بر اساس همین الگو بنا شده اند و روش برخورد چنین مدل هایی با مسائل، با روش های محاسباتی که به طور معمول توسط سیستم های کامپیوتری در پیش گرفته شده اند، تفاوت دارد. می دانیم که حتی ساده ترین مغز های جانوری هم قادر به حل مسائلی هستند که اگر نگوییم که کامپیوترهای امروزی از حل آنها عاجز هستند، حداقل در حل آنها دچار مشکل می شوند. به عنوان مثال، مسائل مختلف شناسایی الگو، نمونه ای از مواردی هستند که روش های معمول محاسباتی برای حل آنها به نتیجه مطلوب نمی رسند. درحالی که مغز ساده ترین جانوران به راحتی از عهده چنین مسائلی بر می آید. تصور عموم کارشناسان IT بر آن است که مدل های جدید محاسباتی که بر اساس شبکه های عصبی بنا می شوند، جهش بعدی صنعت IT را شکل می دهند. تحقیقات در این زمینه نشان داده است که مغز، اطلاعات را همانند الگو ها (Pattern) ذخیره می کند. فرآیند ذخیره سازی اطلاعات به صورت الگو و تجزیه و تحلیل آن الگو ، اساس روش نوین محاسباتی را تشکیل می دهند. این حوزه از دانش محاسباتی (Computation) به هیچ وجه از روش های برنامه نویسی سنتی استفاده نمی کند و به جای آن از شبکه های بزرگی که به صورت موازی آرایش شده اند و تعلیم یافته اند، بهره می جوید. در ادامه این نوشته به این واژگان که در گرایش شبکه های عصبی، معانی ویژه ای دارند، بیشتر خواهیم پرداخت.
شباهت با مغز
اگرچه مکانیسم های دقیق کارکرد مغز انسان (یا حتی جانوران) به طور کامل شناخته شده نیست، اما با این وجود جنبه های شناخته شده ای نیز وجود دارند که الهام بخش تئوری شبکه های عصبی بوده اند. به عنوان مثال، یکی ازسلول های عصبی، معروف به نرون (Neuron) است که دانش بشری آن را به عنوان سازنده اصلی مغز می انگارد. سلول های عصبی قادرند تا با اتصال به یکدیگر تشکیل شبکه های عظیم بدهند. گفته می شود که هر نرون می تواند به هزار تا ده هزار نرون دیگر اتصال یابد (حتی در این مورد عدد دویست هزار هم به عنوان یک حد بالایی ذکر شده است).
قدرت خارق العاده مغز انسان از تعداد بسیار زیاد نرون ها و ارتباطات بین آنها ناشی می شود. ساختمان هر یک از نرون ها نیز به تنهایی بسیار پیچیده است. هر نرون از بخش ها و زیر سیستم های زیادی تشکیل شده است که از مکانیسم های کنترلی پیچیده ای استفاده می کنند. سلول های عصبی می توانند از طریق مکانیسم های الکتروشیمیایی اطلاعات را انتقال دهند. برحسب مکانیسم های به کاررفته در ساختار نرون ها، آنها را به بیش از یکصدگونه متفاوت طبقه بندی می کنند. در اصطلاح فنی، نرون ها و ارتباطات بین آنها، فرایند دودویی(Binary)، پایدار (Stable) یا همزمان (Synchronous) محسوب نمی شوند.
در واقع، شبکه های عصبی شبیه سازی شده یا کامپیوتری، فقط قادرند تا بخش کوچکی از خصوصیات و ویژگی های شبکه های عصبی بیولوژیک را شبیه سازی کنند. در حقیقت، از دید یک مهندس نرم افزار، هدف از ایجاد یک شبکه عصبی نرم افزاری، بیش از آنکه شبیه سازی مغز انسان باشد، ایجاد مکانیسم دیگری برای حل مسائل مهندسی با الهام از الگوی رفتاری شبکه های بیولوژیک است.
روش کار نرون ها
شکل5
در شکل یک، نمای ساده شده ای از ساختار یک نرون بیولوژیک نمایش داده شده است. به طور خلاصه، یک نرون بیولوژیک، پس از دریافت سیگنال های ورودی (به شکل یک پالس الکتریکی) از سلول های دیگر، آن سیگنال ها را با یکدیگر ترکیب کرده و پس از انجام یک عمل (Operation) دیگر بر روی سیگنال ترکیبی، آن را به صورت خروجی ظاهر می سازد.
همان طور که در تصویر مشاهده می کنید، نرون ها از چهار بخش اصلی ساخته شده اند. دندریت ها (Dendrite)، سوما (Soma)، اکسان (Axon) و بالاخره، سیناپس (Synapse) دندریت ها، همان اجزایی هستند که به شکل رشته های طویل از مرکز سلول به اطراف پراکنده می شوند. دندریت ها نقش کانال های ارتباطی را برای انتقال دادن سیگنال های الکتریکی به مرکز سلول بر عهده دارند. در انتهای دندریت ها، ساختار بیولوژیکی ویژه ای به نام سیناپس واقع شده است که نقش دروازه های اتصالی کانال های ارتباطی را ایفا می کند. در واقع سیگنال های گوناگون از طریق سیناپس ها و دندریت ها به مرکز سلول منتقل می شوند و در آنجا با یکدیگر ترکیب می شوند. عمل ترکیب که به آن اشاره کردیم، می تواند یک عمل جمع جبری ساده باشد. اصولاً اگر چنین نیز نباشد، در مدل سازی ریاضی می توان آنرا یک عمل جمع معمولی در نظر گرفت که پس از آن تابع ویژه ای بر روی سیگنال اثر داده می شود و خروجی به شکل سیگنال الکتریکی متفاوتی از طریق اکسان (و سیناپس آن) به سلول های دیگر انتقال داده می شود.
البته تحقیقات جدید نمایانگر این واقعیت هستند که نرون های بیولوژیک بسیار پیچیده تر از مدل ساده ای هستند که در بالا تشریح شد . اما همین مدل ساده می تواند زیربنای مستحکمی برای دانش شبکه های عصبی مصنوعی (Artificial Neural Network = ANN) تلقی گردد و متخصصان گرایش شبکه های عصبی یا هوش مصنوعی می توانند با پیگیری کارهای دانشمندان علوم زیست شناسی، به بنیان گذاری ساختار های مناسب تری در آینده دست بزنند.
مدل ریاضی
در متون فنی برای نمایش مدل ساده ای که در بالا تشریح گردید، به طور معمول از شکلی مشابه شکل 6 استفاده می شود. در این شکل کلاسیک، از علامت p برای نشان دادن یک سیگنال ورودی استفاده می شود. در واقع در این مدل، یک سیگنال ورودی پس از تقویت (یا تضعیف) شدن به اندازه پارامتر w، به صورت یک سیگنال الکتریکی با اندازه pw وارد نرون می شود. به جهات ساده سازی مدل ریاضی، فرض می شود که در هسته سلول عصبی، سیگنال ورودی با سیگنال دیگری به اندازه b جمع می گردد. در واقع سیگنال b خود به معنی آن است که سیگنالی به اندازه واحد در پارامتری مانند b ضرب (تقویت یا تضعیف) می شود. مجموع حاصل، یعنی سیگنالی به اندازه pw + b، قبل از خارج شدن از سلول تحت عمل یا فرآیند دیگری واقع می شود که در اصطلاح فنی به آن تابع انتقال (Transfer Function) می گویند. این موضوع در شکل به وسیله جعبه ای نمایش داده شده است که روی آن علامت f قرار داده شده است. ورودی این جعبه همان سیگنال pw + b است و خروجی آن یا همان خروجی سلول، با علامت a نشانه گذاری شده است. در ریاضی، بخش آخر مدل سازی توسط رابطه (a = f(pw + b نمایش داده می شود. پارامتر w یا همان ضریبی که سیگنال ورودی p در آن ضرب می شود، در اصطلاح ریاضی به نام پارامتر وزن یا weight نیز گفته می شود.
شکل 6
زمانی که از کنار هم قرار دادن تعداد بسیار زیادی از سلول های فوق یک شبکه عصبی بزرگ ساخته شود، شبکه ای در دست خواهیم داشت که رفتار آن علاوه بر تابع خروجی f، کاملاً به مقادیر w و b وابسته خواهد بود. در چنین شبکه بزرگی، تعداد بسیار زیادی از پارامترهای w و b باید توسط طراح شبکه مقداردهی شوند. این پروسه از کار، در اصطلاح دانش شبکه های عصبی، به فرآیند یادگیری معروف است. در واقع در یک آزمایش واقعی، پس از آن که سیگنال های ورودی چنین شبکه بزرگی اتصال داده شدند، طراح شبکه با اندازه گیری خروجی و با انتخاب پارامترهای w و b به گونه ای که خروجی مطلوب به دست آید، شبکه را"آموزش" می دهد. به این ترتیب پس از آنکه چنین شبکه به ازای مجموعه ای از ورودی ها برای ساختن خروجی های مطلوب "آموزش" دید، می توان از آن برای حل مسائلی که از ترکیب متفاوتی از ورودی ها ایجاد می شوند، بهره برد.
تابع f می تواند بر حسب کاربردهای گوناگون به طور ریاضی، به شکل های متفاوتی انتخاب شود. در برخی از کاربردها، پاسخ مسائل از نوع دودویی است. مثلاً مساله به گونه ای است که خروجی شبکه عصبی باید چیزی مانند"سیاه" یا "سفید" (یا آری یا نه) باشد. در واقع چنین مسائلی نیاز به آن دارند که ورودی های دنیای واقعی به مقادیر گسسته مانند مثال فوق تبدیل شوند. حتی می توان حالاتی را در نظر گرفت که خروجی دودویی نباشد، اما همچنان گسسته باشد. به عنوان مثال، شبکه ای را در نظر بگیرید که خروجی آن باید یکی از حروف الفبا، مثلاً از بین کاراکترهای اسکی (یا حتی یکی از پنجاه هزار کلمه متداول زبان انگلیسی) باشد. در چنین کاربردهایی، روش حل مسئله نمی تواند صرفاً بر جمع جبری سیگنال های ورودی تکیه نماید. در این کاربردها، ویژگی های خواسته شده فوق، در تابع خروجی یا تابع انتقال f گنجانیده می شوند. مثلاً اگر قرار باشد خروجی فقط یکی از مقادیر صفر یا یک را شامل شود، در این صورت می توان تابع خروجی شبکه عصبی را به شکل بخش a شکل شماره 7 انتخاب کرد. در این حالت، خروجی چنین شبکه ای فقط می تواند بر حسب ورودی های متفاوت، مقدار یک یا صفر باشد.
شکل7
در گروه دیگری از مسائلی که حل آن ها به شبکه های عصبی واگذار می شود، خروجی شبکه عصبی الزاماً بین مقادیر معلوم و شناخته شده واقع نمی شود. مسائلی از نوع شناسایی الگو های تصویری، نمونه ای از چنین مواردی محسوب می شوند. شبکه های عصبی در این موارد، باید به گونه ای باشند که قابلیت تولید مجموعه نامتناهی از پاسخ ها را داشته باشند. رفتار حرکتی یک روبات نمونه ای از <هوشی> است که چنین شبکه های عصبی می توانند فراهم آورند. اما در چنین شبکه هایی هم لازم خواهد بود که خروجی بین مقادیر مشخصی محدود شده باشد (موضوع محدود شدن خروجی بین دو مقدار حدی ماکزیمم و مینیمم را در اینجا با موضوع قبلی اشتباه نگیرید. در این مورد خروجی مساله اساساً گسسته نیست و حتی در بین چنین مقادیر حدی، می توان به تعداد نامتناهی خروجی دست یافت). اهمیت این موضوع زمانی آشکار می شود که از مثال واقعی کمک گرفته شود. فرض کنید قراراست از شبکه عصبی برای کنترل حرکت بازوی یک روبات استفاده شود. در صورتی که خروجی یک شبکه عصبی برای کنترل نیروی حرکتی به کار گرفته شود، طبیعی خواهد بود که اگر خروجی شبکه محدود نشده باشد، ممکن است بازوی روبات بر اثر حرکت بسیار سریع، به خود و یا محیط اطراف آسیب برساند. در چنین مواردی ممکن است از تابع انتقال به شکل بخش b شکل شماره 7 استفاده شود.
قبل از آنکه به بخش دیگری از موضوع شبکه های عصبی بپردازیم، باید یک نکته را یادآوری کنیم که همان طور که در ابتدای این بخش تشریح شد، سلول های عصبی دارای ورودی های متعددی هستند و خروجی آنها نیز الزاماً محدود به یک خروجی نیست. بر این اساس زمانی که بخواهیم از مدل سازی ریاضی برای مدل کردن یک سلول عصبی استفاده کنیم، به جای آن که همانند شکل 6 از یک ورودی p و یک خروجی a استفاده کنیم، از یک بردار p و یک بردار a سخن می گوییم. بدین ترتیب بدون آنکه نیاز به اعمال تغییری در این تصویر داشته باشیم، می توانیم از آن برای مدل سازی سلولی با n ورودی (p1,p2,p3 . . . pn) و به همین ترتیب m خروجی (a1,a2,am) استفاده کنیم. توجه داشته باشید که در این صورت، تعداد عناصر b و w نیز به تناسب افزایش می یابند و هر یک به n عدد افزایش می یابند.
پیاده سازی های الکترونیکی نرون های مصنوعی
شکل 8
نرم افزارهایی که در آن ها از شبکه های عصبی استفاده شده است، نرون های شبکه را المان پردازنده (Processing element) می نامند. به طور معمول در محصولات نرم افزاری، المان های پردازنده قابلیت بسیار بیشتری از نمونه ساده شده ای که در بخش های پیشین تشریح کردیم، دارند. در شکل شماره 4، نمایی با جزئیات بیشتر از یک نرون مصنوعی را نشان می دهد.
در این مدل، ورودی ها در نخستین گام، در ضریب وزنی (Weighting Factor) متناظر خود ضرب می شوند. در مرحله بعد، ورودی هایی که تغییر مقیاس داده اند وارد واحدی می شوند که در آن سیگنال های ورودی با هم ترکیب می شوند. به طور معمول عمل ترکیب در این واحد همان عمل جمع جبری است، اما در اصول، می توان در این واحد، ورودی ها را به روش های دیگری علاوه بر عمل جمع معمولی نیز با یکدیگر ترکیب کرد. مثلاً می توان به جای عمل جمع، از عمل متوسط گیری، انتخاب بزرگترین، انتخاب کوچک ترین، عمل OR یا AND منطقی هم استفاده کرد. در واقع هدف نهایی در این واحد آن است که از تعداد n ورودی، یک سیگنال خروجی برای ارائه به بخش های بعدی فرایند، به دست آید. انتخاب نوع "عمل" در این واحد، موضوع دقیقی است که کاملاً به کاربرد مساله وابسته است.
شکل 9
به طور معمول در نرم افزارهای تجاری، امکان انتخاب و حتی ساختن توابع گوناگون برای این واحد، از طرف نرم افزار به کاربران داده می شود. حتی می توان کاربردهایی یافت که در آنها، عمل ترکیب در این واحد، وابسته به زمان باشد و در زمان های گوناگون پردازش مساله، عملیات مختلفی برای ترکیب کردن ورودی ها به کار برده شوند.
در هر صورت، پس از آنکه ورودی ها با یکدیگر ترکیب شدند، سیگنال حاصل به واحد دیگری که در آن تابع انتقال یا Transfer Function به سیگنال اعمال می شود، هدایت می گردد. خروجی این بخش، سیگنال های حقیقی خواهند بود. بدین ترتیب جعبه ای در دست خواهیم داشت که تعداد n عدد سیگنال ورودی را به m عدد سیگنال خروجی تبدیل می کند. در عمل توابع انتقالی که در بخش انتهایی نمودار شکل 8 به کار برده می شوند، معمولاً یکی از توابع سینوسی، تانژانت هذلولی، Sigmoid و نظایر این ها است. در تصویر شماره 9، نمونه ای از یک تابع انتقال از نوع Sigmoid نمایش داده شده است. همانطور که در این شکل مشاهده می کنید، این تابع انتقال، سیگنال خروجی واحد ترکیب را به سیگنال خروجی تبدیل می کند که مقدار (یا اندازه آن) بین صفر و یک می تواند باشد.
در عمل، سیگنالِ خروجی یک المان پردازنده می تواند برحسب نوع کاربرد، به المان های پردازشی دیگر و یا به اتصالات دیگر خارج از شبکه عصبی هدایت شود. در واقع تمامی شبکه های عصبی بر اساس ساختار المان های پردازشی فوق کار می کنند. در قسمت بعدی این مقاله به تشریح عملیات در شبکه های عصبی و آموزش این شبکه ها می پردازیم.
عملیات شبکه های عصبی
تا اینجا تمام توجه ما معطوف ساختار درونی یک نرون مصنوعی یا المان پردازشی بود. اما بخش مهم دیگری در مراحل طراحی یک شبکه عصبی نیز وجود دارد . در واقع هنر یک طراح شبکه های عصبی می تواند در چگونگی ترکیب نرون ها در یک شبکه ( Neuran Clustering ) ، متجلی شود.علوم بیولوژی نشان داده اند که کلاسترین نرون ها در
شکل 10
شبکه عصبی مغز ما به گونه ای است که ما را قادر می سازد تا اطلاعات را به صورتی پویا، تعاملی و خودسامان (Selforganizing) پردازش کنیم . در شبکه های عصبی بیولوژیک، نرون ها در ساختار ی سه بعدی به یکدیگر اتصال یافته اند. اتصالات بین نرون ها در شبکه های عصبی بیولوژیک آنقدر زیاد و پیچیده است که به هیچ وجه نمی توان شبکه مصنوعی مشابهی طراحی کرد. تکنولوژی مدارات مجتمع امروزی به ما امکان می دهد که شبکه های عصبی را در ساختار های دو بعدی طراحی کنیم. علاوه بر این، چنین شبکه های مصنوعی دارای تعداد محدودی لایه و اتصالات بین نرون ها خواهند بود. بدین ترتیب، این واقعیات و محدودیت های فیزیکی تکنولوژی فعلی، دامنه کاربردهای شبکه های عصبی مبتنی بر تکنولوژی سیلیکونی را مشخص می سازند.
ساختار شبکه های عصبی امروزی، از لایه های نرونی تشکیل شده است. در چنین ساختاری، نرون ها علاوه بر آنکه در لایه خود به شکل محدودی به یکدیگر اتصال داده شده اند، از طریق اتصال بین لایه ها نیز به نرون های طبقات مجاور ارتباط داده می شوند. در شکل 10 نمونه ای از ساختار لایه ای یک شبکه عصبی مصنوعی نمایش داده شده است (تعداد اتصالات ممکن بین نرون ها را در چنین ساختاری با تعداد اتصالات بین نرون های مغز انسان، مقایسه کنید).
در این توپولوژی، گروهی از نرون ها از طریق ورودی های خود با جهان واقعی ارتباط دارند. گروه دیگری از نرون ها نیز از طریق خروجی های خود، جهان خارج را می سازند. در واقع این"جهان خارج" تصویری است که شبکه عصبی از ورودی خود می سازد یا می توان چنین گفت که جهان خارج "تصوری" است که شبکه عصبی از ورودی خود دارد. خلاصه آنکه در توپولوژی فوق، مابقی نرون ها از دید پنهان هستند.
تلاش محققان در زمینه شبکه های عصبی نشان داده است که شبکه های عصبی، چیزی بیشتر از یک مشت نرون که به یکدیگر اتصال داده شده اند، هستند. حتی گروهی از محققان سعی داشته اند که از اتصالات تصادفی برای ارتباط دادن نرون به یکدیگر استفاده کنند که در این زمینه به نتایج جالب توجهی دست نیافتند. امروزه مشخص شده است که در ساده ترین مغز های بیولوژیک مانند مغز مارها هم ارتباطات بین نرون ها بسیار ساخت یافته است. در حال حاضر یکی از ساده ترین روش های ارتباط دهی نرون ها در شبکه های عصبی، آن است که ابتدا نرون ها در گروه های مشخصی به صورت لایه های نرونی سازمان دهی می شوند و پس از تامین ارتباطات بین نرونی در هر لایه، ارتباطات بین لایه ها نیز برقرار می شوند.
اگرچه در کاربردهای مشخصی می توان با موفقیت از شبکه های عصبی تک لایه استفاده کرد، اما رسم بر آن است که شبکه های عصبی حداقل دارای سه لایه باشند (همانطور که قبلاً اشاره شد، لایه ورودی، لایه خروجی و نهایتاً لایه پنهان یا لایه میانی).
در بسیاری از شبکه های عصبی، اتصالات بین نرونی به گونه ای است که نرون های لایه های میانی، ورودی خود را از تمام نرون های لایه پایینی خود (به طور معمول لایه نرون های ورودی) دریافت می کنند. بدین ترتیب در یک شبکه عصبی، سیگنال ها به تدریج از یک لایه نرونی به لایه های بالاتر حرکت می کنند و در نهایت به لایه آخر و خروجی شبکه می رسند. چنین مسیر در اصطلاح فنی Feed Forward نامیده می شود. ارتباطات بین نرونی در شبکه های عصبی از اهمیت بسیار زیادی برخوردار هستند و به نوعی قدرت یک شبکه عصبی را تعیین می کنند. قاعده آن است که ارتباطات بین نرونی را به دو گروه تقسیم بندی می کنند. یک نوع از ارتباطات بین نرونی، به گونه ای هستند که باعث جمع شدن سیگنال در نرون بعدی می شوند. گونه دوم ارتباطات بین نرونی باعث تفریق سیگنال در نرون بعدی می شوند. در اصطلاح محاوره ای گروهی از ارتباطات انگیزش ایجاد می کنند و گروه دیگر ممانعت به عمل می آورند.
شکل11
در مواردی، نرون مشخصی از شبکه عصبی تمایل دارد که سیگنال دیگر نرون های لایه خود را نادیده بگیرد. چنین حالتی به طور معمول در لایه خروجی ایجاد می شود. به عنوان مثال، در کاربردهای تشخیص متن (OCR)، فرض کنید که احتمال آنکه کاراکتر مورد شناسایی، حرف P باشد برابر با 85 درصد تعیین شده است و به همین ترتیب احتمال آنکه کاراکتر مورد نظر حرف F باشد، 65 درصد تخمین زده است. در این وضعیت، سیستم باید کاراکتری را برگزیند که دارای درصد احتمال بزرگ تر است. در نتیجه در این شبکه عصبی، نرون هایی که خروجی F را تجویز می کنند، باید نادیده گرفته شوند یاInhibit شوند. به چنین فرایندی، Lateral Inhibition گفته می شود.
نوع دیگری از ارتباط بین نرونی در شبکه های عصبی به ارتباط بازخورد یا Feedback معروف است. در این نوع از ارتباطات، خروجی یک لایه نرونی به لایه قبلی (یا به لایه ای که چند مرحله پایینتر است) اتصال داده می شود. در شکل 11 نمونه ای از یک شبکه عصبی نمایش داده شده که در آن از ارتباط بازخوردی استفاده شده است. در نرم افزارهای پیشرفته شبکه های عصبی، کاربر و طراح شبکه عصبی می تواند نوع ارتباطات بین نرون ها و لایه های آنها را تعیین کند.
آموزش شبکه های عصبی
تا اینجا از ساختار شبکه های عصبی صحبت کردیم. گفتیم که شبکه های عصبی می توانند بر اساس طراحی خود سیگنال های ورودی را پردازش کنند و به سیگنال های خروجی مورد نظر تبدیل نمایند. به طور معمول، پس از آنکه یک شبکه عصبی طراحی و پیاده سازی شد، باید پارامترهای 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، تفاوت های بنیادی دو روش محاسباتی را نشان می دهد.
مشخصه
روش محاسباتی متداول
)شامل سیستم های خبره(
شبکه های عصبی مصنوعی
روش پردازش
ترتیبی
موازی
توابع
منطقی (left brained)
estault (right brained
روش فراگیری
به کمک قواعد (didactically)
با مثال (Socratically)
کاربرد
حسابداری، واژه پردازی، ریاضیات،
ارتباطات دیجیتال
پردازش حسگرها، تشخیص گفتار، نوشتار، الگو
جدول1
سیستم های خبره، انشعابی از روش محاسباتی متداول محسوب می شود و در مواردی هم به آن نسل پنجم محاسبات نام داده اند (نسل اول از کلید و سیم بندی استفاده می کرد، نسل دوم با اختراع ترانزیستور ایجاد شد، نسل سوم از فناوری مدارات مجتمع استفاده می کرد، نسل چهارم با به وجود آمدن زبان های سطح بالا آغاز شد و نسل پنجم شامل هوش مصنوعی می شود). به طور معمول، یک سیستم خبره شامل دو بخش عمده می شود. یک بخش یا موتور استنتاجی و یک پایگاه دانایی (Knowledge base). موتور استنتاجی، بخشی است که رابط کاربر را مدیریت می کند و بر فایل ها و دسترسی به برنامه ها و برنامه ریزی کنترل دارد. پایگاه دانایی شامل اطلاعاتی در ارتباط با یک مسئله مشخص است. این پایگاه به متخصصان اجازه می دهد که قواعد فرایند مشخصی را تعریف نماید. چنین متخصصی نیازی به دانستن روش های برنامه نویسی نخواهد داشت. او تنها باید کاری که از کامپیوتر می خواهد را درک کند و شناخت کافی از روش عمل سیستم داشته باشد. درواقع پوسته سیستم بخشی است که به کامپیوتر می گوید چه کار باید انجام دهد. برنامه لازم برای حل مسئله توسط خود سیستم تولید خواهد شد.
تلاش هایی که برای اجرایی کردن سیستم های خبره به کار گرفته شده اند، با مشکلات مشترکی مواجه بوده اند. با افزایش سطح پیچیدگی سیستم ها، منابع کامپیوتری مورد نیاز سیستم به شدت افزایش می یابند و سیستم با کندی بیش از حد روبرو می شود. در حقیقت تجربه نشان داده است که در وضعیت فعلی، سیستم های خبره تنها می توانند در مواقعی مفید واقع شوند که هدف محدود و مشخصی تعیین شده باشد.
شبکه های عصبی در مسیری گام برمی دارند که ابزارها توانایی فراگیری و برنامه ریزی خود را داشته باشند. ساختارشبکه های عصبی به گونه ای است که قابلیت حل مسئله را بدون کمک فرد متخصص و برنامه ریزی خارجی داشته باشند. شبکه های عصبی قادر به یافتن الگوهایی در اطلاعات هستند که هیچ کس، هیچ گاه از وجود آنها اطلاع نداشته است.
درحالی که سیستم های خبره در عمل به موفقیت های بسیاری دست یافته اند، شبکه های عصبی در کاربردهایی همچون دید مصنوعی، تشخیص و تولید پیوسته گفتار، فراگیری ماشینی و نظایر آن با مشکلاتی روبرو بوده اند. در حال حاضر شبکه های عصبی کاملاً وابسته به سرعت پردازنده سیستم اجرا کننده هستند.
بینایی ماشین
از میان همه شاخه های هوش مصنوعی، شاید کاربردی ترین آن ها کامپیوتری و مکانیزه کردن سیستم های بینایی باشد. دامنه کاربرد این شاخه از فناوری در حال رشد، بسیار وسیع است و از کاربردهای عادی و معمولی مثل کنترل کیفیت خط تولید و نظارت ویدئویی گرفته تا تکنولوژی های جدید مثل اتومبیل های بدون راننده را دربرگرفته است. دامنه کاربردهای این تکنولوژی براساس تکنیک های مورد استفاده در آن ها تغییر می کند. ما سعی داریم به شما نشان دهیم که سیستم های بینایی ماشین چگونه کار می کنند و مروری کوتاه بر اهداف، تکنیک ها و تکنولوژی های موجود داشته باشیم و سعی داریم با نحوه کار بینایی ماشین و پیشرفت آن ها که مطابق با سیستم بینایی انسان است، آشنا شویم. در این متن، بررسی خود را با دو مثال انجام می دهیم. اولی سیستم کنترل کیفیت خط تولید است که شامل نحوه عکس برداری و ذخیره و شیوه تفسیر عکس های گرفته شده به صورت خودکار است و دیگری به عنوان یک مثال پیچیده تر، چگونگی بینایی یک ربات را توضیح می دهد.
کنترل کیفیت خط تولید
شکل 12- نمای ساده شده ای از یک سیستم بینایی کنترل کیفیت خط تولید غیرواقعی
یکی از کاربردهای بینایی ماشین در کنترل کیفیت خروجی کارخانه ها می باشد. شکل 12 مثالی بسیار ساده از چنین سیستمی است. اجناس تولید شده در کارخانه که برروی یک نوار نقاله قرار گرفته اند و توسط یک دوربین CCD برای آزمایش دیده می شوند و محصولات با کیفیتِ مناسب اجازه عبور پیدا خواهندکرد. چنانچه محصولی دارای استانداردهای مناسب نباشد از ادامه مسیر حذف می شود. معیار این استانداردها می تواند لبه های زائد، خراشیدگی و بادکردگی و تورم روی فلزات و بسیاری چیزهای دیگر باشد. در این مثال ما در پی یافتن مکانیزم خط تولید نیستیم و فقط می خواهیم ببینیم که یک شی تولیدشده چگونه استاندارد تشخیص داده شده و اجازه عبور می یابد و برعکس چگونه به بعضی از اشیاء اجازه عبور و ادامه دادن داده نمی شود.
عکس برداری
در این مثال ما سعی در مکانیزه کردن فرآیندی یکنواخت داریم که به صورت معمول و تکراری توسط انسان انجام می شود . اولین مساله و مشکل ما این است که چگونه عکس های تهیه شده از اشیایی که در حال حرکت بر روی نوار نقاله هستند را تبدیل به داده های قابل فهم و تفسیر برای سیستم نماییم، که این مشکل توسط دوربین CCD حل می شود. عملکرد این دوربین را می توان به عملکرد چشم انسان که قادر است سطوح مختلف نور را تشخیص دهد تشبیه نمود.
چشم انسان
چشم انسان که در شکل 13 نشان داده شده است، تقریباً یک عدسی کروی با قطر 5/2 سانتی متر می باشد که از چندین لایه مختلف که درونی ترین آن ها شبکیه نام دارد تشکیل شده است. ماهیچه های اطراف چشم اندازه لنز را تنظیم می کنند که این کار چشم را قادر به زوم (Zoom) کردن روی اشیاء می کند.
شکل 13- نمای داخلی چشم انسان
وظیفه عدسی چشم، فرم و شکل دادن به تصویری است که توسط میلیون ها سلول گیرنده مخروطی (Cone) و میله ای (Rod) گرفته شده و برروی پرده شبکیه افتاده است، می باشد. سلول های میله ای به یک عصب معمولی که از انتها به شبکیه ختم می شود و فقط در سطح نور پایین فعال است متصلند و سلول های مخروطی هر کدام به یک عصب اتصال دارند. آن ها در نورهای شدیدتر، بیشتر فعالند و میزان درک ما از رنگ ها را نوع فعالیت این مخروط ها مشخص می کند.
در میان شبکیه ناحیه ای به نام نقطه کور وجود دارد که در آن هیچ گیرنده ای موجود نیست. در این ناحیه اعصاب به صورت جداگانه به عصب بینایی که سیگنال های دریافت شده را به قشر بینایی مخ انتقال می دهند، وصل می شود.
دوربین CCD
CCD از جهت عملکرد تقریباً مانند چشم انسان کار می کند. نور از طریق یک عدسی وارد دوربین و برروی یک پرده مخصوص تصویر می شود که تحت عنوان تراشه CCD شناخته می شود. تراشه Coupled Device Charge(CCD) که تصاویر با استفاده از آن گرفته می شوند از تعداد زیادی سلول تشکیل شده که همگی در یک تراشه با الگوی خاصی مرتب شده اند و تحت عنوان پیکسل (Pixels) شناخته می شوند.
شکل14- تصویر وسط یک نمای نزدیک از چشم ماهی را نمایش می دهد و نشان می دهد که هر قسمت از یک تصویر چگونه با تعدادی مقادیر عددی ذخیره می شود. به تعداد داده های عددی مورد نیاز برای ذخیره یک فضای کوچک از تصویر توجه کنید.
زمانی که تراشه CCD این اطلاعات را دریافت می کند، آن ها را به شکل سیگنال های دیجیتالی از طریق کابل هایی به سیستم دریافت کننده می فرستد و بعد تصاویر در این سیستم به صورت مجموعه ای از اعداد ذخیره می شوند. همان طور که در شکل 14 می بینید هر عدد نماینده یک پیکسل است.
درک تصویر
با هر تصویر، چه با دوربین گرفته شود و چه با چشم انسان، مقداری تحریف و تغییر شکل و به عبارتی "نویز (Noise) " وجود دارد. البته در مورد مثال ما در سیستم خط تولید این مساله چندان اهمیت ندارد اما در موقعیت هایی که نیاز به دقت بالا وجود دارد باید از نورپردازی خاصی برای تصویربرداری استفاده شود.
شکل 15- ترسیم لبه. شکل اول تصویر اصلی می باشد. در شکل وسط نویزها با فیلترنمودن ا ز بین رفته است. در نهایت شکل 3، تصویر حاصل از به کار بردن الگوریتم ترسیم لبه می باشد.
انسان برای درک تصاویری که می بیند نیازی ندارد هیچ کاری در مورد فیلتر کردن و از بین بردن نویزهای یک تصویر انجام دهد. مثلاً در یک روز ابری که مه همه جا را فرا گرفته، دید ما به شدت ضعیف و دچار مشکل می شود. اما هر آنچه را که قادر به دیدنش باشیم درک می کنیم. یعنی برای درک اشیاء نیازی به حذف نویزهای تصویر نیست. مثلاً اگر در این روز در حال رانندگی در یک جاده باشید و تصویر مبهمی از یک ماشین را مقابل خود ببینید، بالطبع عکس العمل نشان می دهید و به عبارتی سرعت خود را کم می کنید.
و این یعنی ما هنوز تصویر ماشین را علیرغم وجود مه می توانیم تشخیص دهیم و در مقابل آن عکس العمل نشان دهیم. و یا مثلاً زمانی که دچار سرگیجه می شوید، علیرغم این که تصاویر اطراف خود را تار و مبهم می بینید اما قادر به درک و تشخیص وسایل و تصاویر اطراف خود هستید. یعنی ابتدا صبر نمی کنید تا سرگیجه تان به پایان برسد و بعد تصاویر را تشخیص دهید و این یعنی با قدرت بینایی انسان، علیرغم خراب شدن تصاویر اطراف، می توانیم متوجه فضای اطراف خود بشویم. اما برای بینایی ماشین ابتدا باید این نویزها طی فرآیندی که تصفیه کردن یا فیلترینگ نامیده می شود، از بین برود و بعد هر آنچه برای پردازش عکس لازم است انجام شود.
خوشبختانه در حال حاضر تکنیک هایی برای انجام این کار وجود دارد. از بین بردن نویزها به صورت نرمال توسط تعدادی از توابع ریاضی یا الگوریتم هایی که تحت عنوان 'Treshholding' یا 'Quantizing' نامیده می شود انجام می گردد. این فرآیند بسیار حرفه ای و پیچیده ای است و نیاز به دانش و پشتوانه بالای ریاضی دارد. زمانی که خرابی ها از بین رفت، می توانیم پردازش عکس ها را ادامه دهیم که این کار با استخراج صورت ها و حالت ها از یک تصویر انجام می شود. یک شیوه معمول که غالباً مورد استفاده قرار می گیرد استخراج لبه ها که در شکل 15 دیده می شود، می باشد.
در مورد مثال ما در سیستم خط تولید، وظیفه اصلی یک اپراتور کنترل کیفیت این است که به سرتاسر محصول تولید شده نگاه کرده و با مقایسه آن با استانداردهای مورد قبول، برای محصول تولید شده جواز عبور یا عدم عبور صادر کنند.
اگر این کار با استفاده از بینایی ماشین صورت گیرد باید عکس گرفته شده از محصول تولید شده با عکسی که از یک محصول استاندارد وجود دارد مقایسه شود. یکی از روش های انجام این کار به این صورت است:
برای انجام این کار، یک تصویر از محصول استاندارد در کامپیوتر ذخیره می شود و سپس از محصولا تی که از خط تولید عبور می کنند. تصویر گرفته می شود و به عنوان نقشه لبه ذخیره می شود. و بعد سیستم، تصویر گرفته شده را از چپ به راست و از بالا به پایین به گونه ای که در هر زمان فقط یک رقم عبور کند، می لغزاند و عدد ظاهر شده در هر موقعیت را با عدد همان موقعیت در تصویر اصلی مقایسه می کند و در صورت تفاوت آن را اعلا م می نماید.
لذا عملیات بینایی کامپیوتر در حقیقت مقایسه دو مجموعه عدد است که اگر تفاوت این دو مجموعه از یک محدوده خاص فرارتر برود، از پذیرفتن محصول امتناع شده و در غیر این صورت محصول پذیرفته می شود یک مثال پیچیده تر
در مثال قبل سیستم مورد مطالعه بسیار محدود بود و فقط یک تصویر دو بعدی از یک محصول را با تصویر اصلی و ایده آل مقایسه می کرد و احتیاجی به بررسی مقادیر اندازه و زاویه نبود.
در این مثال می خواهیم به سیستم بینایی که برای یک ربات خانگی که قادر به تمیز کردن خانه، پختن غذا و … طراحی شده نگاهی بیاندازیم. این مثال بسیار پیچیده تر از مثال قبلی است و نیاز به آگاهی از تغییرات محیط دارد. به عبارت بهتر نیاز به یک سیستم هوشمندتر داریم. قبلاً دیدیم که تصاویر چگونه ذخیره و تفسیر می شوند. غالب تکنیک های گذشته دوباره در این مثال به کار گرفته می شوند. تفاوت اصلی در تفسیر تصاویر گرفته شده است. در مثال قبلی فضای سیستم بینایی فقط متشکل از یک سری محصول بود، اما در این مثال ربات باید از همه آنچه در اطرافش می گذرد باخبر بوده و این یعنی با دنیای وسیع تر و بزرگ تری روبروست. بدین منظور نیاز به تکنیک های تشخیص پیچیده تری وجود دارد.
یعنی در این مثال، یک صحنه فرضی شامل ده ها یا حتی صدها شی مختلف در معرض دید است. این اشیاء در اندازه ها و تحت زوایای مختلف که متاثر از نوع نورپردازی هم هستند به نمایش درمی آیند و به همین دلیل برای تشخیص این اشیاء نیاز به تکنیک های هوش مصنوعی (Ai) می باشد.
پردازش اطلاعات در مغز
شکل 16 – تصویر به نظر دو مثلث می آید که در جهت عکس هم و برروی هم قرار داده شده اند، ولی از نظر ریاضی هیچ مثلثی رسم نشده است و فقط سه دسته از خطوط وجود دارند.
در مورد بینایی انسان متذکر شدیم که شاید یکی از قسمت هایی از مغز که بیشتر فعالیت درک تصویر را انجام می دهد ناحیه Visual Cortex باشد. همان طور که دیده ایم، این جا ناحیه ای است که اطلاعات منتقل شده در طول عصب بینایی در آن پردازش می شود. البته این را هم مدنظر داشته باشید که قسمتی از فعالیت پردازش اطلاعات در ناحیه شبکیه چشم قبل از این که اطلاعات به مغز برسند، انجام می شود.
البته خود ناحیه شبکیه به عنوان قسمتی از مغز شمرده می شود. در ضمن این مساله هم قبلاً مشخص شده است که نواحی مختلف قشر بینایی مخ در مقابل تصاویر مختلف عکس العمل نشان می دهد. به عبارت دیگر هر قسمت از این ناحیه مربوط به یک حالت خاص است. مثلاً نواحی معین و مشخصی در مقابل رنگ های متفاوت عکس العمل نشان می دهند و یا مثلاً نواحی وجود دارند که سلول هایشان در مقابل جزییات دقیق موجود در یک تصویر عکس العمل نشان می دهند. مثلاً در شکل 5 شما می توانید یک مثلث سفید که به طور واضح سه راس آن مشخص نشده است را ببیند،
شکل 17- مثلث Penrose: عدم هماهنگی هندسی در لبه ها باعث عدم درک صحیح شکل می شود.
علیرغم این که به طور واضح و مجزا این مثلث مشخص نشده است. اما سلول های موجود در قشر بینایی می توانند تکه های این خطوط را کنار هم گذاشته و از آن یک مثلث استنتاج کنند.
زمانی که اطلاعات مربوط به چیزی که دیده می شود را دریافت کردیم، مثل شکل ظاهری، لبه ها و غیره، مغز نیاز به رمزگشایی و کشف اطلاعات به دست آمده دارد تا دقیقاً نتیجه گیری کند که آنچه در صحنه می گذرد چیست. اینجا قسمتی است که ما خیلی کم در رابطه با آن می دانیم و مشخص نیست که دقیقاً مغز چگونه این کار را انجام می دهد. اما مساله مشخص این است که سیستم بینایی ما چندان مبرا از خطا نیست و به راحتی دچار اشتباه می شود. موارد بسیار زیادی وجود دارد که اطلاعات کسب شده می توانند مبهم و یا حتی اشتباه باشند، مانند مثال هایی که در شکل 17 و 18 مشاهده می کنید.
شکل 18- خطای دید: در شکل سمت چپ علیرغم نحوه ظهور خطوط همه آن ها با هم موازیند. در شکل سمت راست که به خطای Muller-Lyer معروف است دو خط ظاهر شده به نظر دارای طول های متفاوت می آیند. اما در حقیقت هم اندازه اند.
به طور خلاصه، با توجه به این که سیستم بینایی انسان در بسیاری موارد دچار خطا می شود، نیاز به درنظرگرفتن شیوه ای متفاوت برای بینایی ماشین هستیم.
با استفاده از تکنیک هایی که قبلاً ذکر کردیم، ربات می تواند شناسایی ترکیبات و صورت های گوناگون موجود در اطراف خود را با استفاده از شیوه همانند سازی الگو انجام دهد . هر چند تعداد زیادی صورت و ترکیبات گوناگون (Template Matching) دیگر وجود دارند که نیاز به اخذ شیوه های متفاوت دیگری برای نمایش آن ها وجود دارد. و در این جاست که نیاز به استفاده از تکنیک های هوش مصنوعی مطرح می شود.
نمایش دانش
متخصصین هوش مصنوعی انواع سیستم ها را با استفاده از برنامه های معمول کامپیوتری و تفاوت قایل شدن بین پردازش اطلاعات (Information) و پردازش دانش (Knowledge)، شناسایی می کنند. این کار منجر به ایجاد سیستم های مبتنی بر دانش که کاربرد بسیار زیادی در هوش مصنوعی دارد می شود.
شکل 19- یک شبکه معنایی برای نمایش قسمتی از آشپزخانه.
ربات ما نیاز به داشتن اطلاعات یا "دانش" از دنیای اطراف خود دارد تا سیستم بینایی اش به درستی عمل کند. ما به طور خلاصه بعضی تکنیک هایی که توسط مهندسین دانش (Knowledgc Engineer) برای نمایش و پردازش این اطلاعات به کار می رود را آزمایش می کنیم.
یک شبکه معنایی (Semantic Network) یک تکنیک خوش ساخت برای نمایش اشیاء یا ماهیت موجود در یک دنیا و ارتباطاتی که بین شان موجود است، می باشد. مثلاً قسمتی از دنیای ربات ما آشپزخانه است.
استفاده از یک شبکه معنایی می تواند راه مناسبی برای نمایش اطلاعات باشد. بدین ترتیب آشپزخانه را تحت عنوان یک سری از اشیاء و روابط بین شان فرض کنیم. یک شبکه می تواند جزییات موجود را به خوبی نمایش داده و ما را قادر به کاوش بیشتر و بهتر در روابط موجود بین اشیاء کند. برای مثال، همان طور که از شکل شماره 8 می توان دید، گوشت های سرد در یخچال نگهداری می شوند. این آیتم ها تحت عنوان غذاها می توانند دسته بندی شوند. اگر چه همه غذاها در یخچال نگهداری نمی شوند، اما همه محصولات گوشتی ملزم به نگهداری یخچال هستند.
مشخص است که این شبکه باید برای نمایش دنیای اطراف ربات ما به خوبی گسترش یابد و نیاز به نمایش دقیق تر و جزیی تری از اشیاء و ارتباطات وجود دارد و همچنین این شبکه باید اتاق ها، افراد، اشیاء موجود و غیره را هم نمایش دهد.پس از ساخته شدن شبکه معنایی ما قادر به ساخت یک پایگاه داده از دانش حاصل از شبکه معنایی در مورد اشیاء موجود در دنیای مربوطه هستیم. در مورد مثال ما، ورودی های مناسب می تواند به شکل زیر باشد:
(سیب – شکل – گرد) (سیب – رنگ – قرمز) (سیب – نما – براق)
(همبرگر- شکل – گرد) (همبرگر- رنگ – قهوه ای) (همبرگر نما – گوشتی)
(یخچال – شکل – مستطیل) (یخچال – رنگ- سفید) (یخچال – نما – فلزی)
(ظرف میوه – شکل – بیضی) (ظرف میوه – رنگ- نقره ای) (ظرف میوه – نما – فلزی)
((میوه) نگهداری – در (ظرف میوه))
((سیب) هست – یک (خوردنی))
توجه کنید که ورودی های این پایگاه دانش باید به گونه ای باشد که منجر به سردرگمی ماشین نشود. مثلاً در مورد مثال ما، سیب یک شی براق قرمز گرد معرفی شده است. اشیاء زیادی هستند که ممکن است چنین مشخصه ای داشته باشند و اگر مثلاً شما ربات خود را بفرستید که برای شما یک سیب تازه بیاورد امکان دارد ربات با یک توپ نزد شما باز گردد.
این پایگاه دانش تحت عنوان حافظه کاریِ سیستم شناخته می شود. به منظور استفاده کارا و مناسب از اطلاعات موجود در این پایگاه، سیستم نیاز به داشتن تعدادی قانون دارد. بدین ترتیب پس از ساخت پایگاه دانش نیاز به ساخت یک پایگاه از قوانین برای برخورد مناسب با اطلاعات موجود در پایگاه دانش هستیم. اگر شما از قبل با زبان های برنامه نویسی آشنایی داشته باشید، با عبارتی مثل If Statement Then آشنا هستید مثلا If Cold Then Wear Coat ما از چنین ساختاری برای ایجاد پایگاه قوانین استفاده می کنیم. قسمت If عبارت تحت عنوان راس قانون و قسمت عملیات یعنی قسمت Then تحت عنوان بدنه قانون شناخته می شوند.
و بدین ترتیب ربات مثلاً می داند که یک سیب چیست و در کجا قرار دارد. مثلاً فرض کنید یکی از کارهایی که قرار است ربات انجام دهد رفتن به سمت یخچال و برداشتن چیزی از یخچال است، در این صورت می توانیم مجموعه ای از قوانین را به این منظور بسازیم.
اکنون هم دانش و هم قوانین مربوطه را داریم که نیاز به روش هایی برای تفسیرشان داریم. این کار توسط سیستم مفسر انجام می شود. مفسر برنامه ای است که قوانین را پردازش می کند. وظیفه آن خواندن هر قانون و بررسی این که موقعیت ها با هم همخوانی دارند یا نه می باشد. اگر همخوانی داشتند عمل موردنظر را انجام می دهد. این عمل آن قدر انجام می شود تا به عملی که دستور پایان داده است، برسد.
گفتیم برای استفاده از تکنیک همسان سازی الگو (Template Matching) نیاز به ذخیره مقادیر بسیار زیادی از دانش در رابطه با هر آیتم موجود در دنیای ربات وجود دارد. با استفاده از قوانین می توانیم استفاده از این اطلاعات را از بین ببریم و دیگر نیازی به آن ها حس نمی شود. مثلاً در مورد یک صندلی، به جای ذخیره یک صندلی از تعدادی زوایا و اندازه ها می توانیم اطلاعاتی راجع به برخی خواص و ظواهر صندلی نظیر جنس، دسته ها، پایه ها و … که یک سیستم مبتنی بر دانش از آن ها به منظور تشخیص صندلی استفاده می کند، ذخیره کنیم. یک صندلی دارای چهار پایه، یک نشیمنگاه و یک تکیه گاه است.
از طرف دیگر میز هم چهار پایه و یک رویه دارد. بدین ترتیب به جای ذخیره تعداد زیادی عدد برای هر شی، از خواص آن شی برای توصیفش استفاده کنیم. بدین ترتیب نیاز به یک پایگاه دانش هست که چیزهایی نظیر اجزا (دسته ها، پایه ها، دیواره ها و…) خواصی که این اجزا را توصیف می کند (ظاهر و غیره)، و حقایقی در رابطه با اشیایی که توسط این اجزا ساخته می شوند (آشپزخانه چهار دیوار و یک در دارد و غیره) و همچنین یک سری قوانین به منظور پردازش این اطلاعات را نگهداری نماید.
همان طور که دیدیم، عملیات زیادی باید به منظور پردازش اطلاعات تصویری انجام شود. تصاویر غالباً دارای نویز هستند که باعث خرابی و تحریفشان می شود. هر چند این مشکل چندان حادی برای سیستم بینایی انسان به حساب نمی آید اما برای سیستم های بینایی ماشین این نویزها به طور کامل باید فیلتر و پاکسازی شوند که این عمل با استفاده از تعدادی الگوریتم انجام می شود.
همچنین دیدیم که اشیاء چگونه با استفاده از تکنیک همسا ن سازی الگو دیده می شوند هر چند پس از این که اشیاء داخل صحنه توسط سیستم بینایی مشخص شدند هنوز کار تمام شده است. اطلاعات حاصل باید به یک نمایش دانش مناسب ترجمه شوند به طوری که قابل پردازش باشند.
سیستم های بینایی اولیه روز به روز در حال گسترش هستند و هر روز کاربرد جدیدی برای آن ها یافت می شود. با توسعه این سیستم ها، کاربردهایی برای سایر محیط ها نظیر توسعه پردازش نیز یافت می شود. سیستم های بینایی مصنوعی از کاربردهای پزشکی و نظامی گرفته تا کاربردهای ساده و معمول روزمره مورد استفاده هستند. و این شاخه از هوش مصنوعی از کاربردی ترین شاخه ها می باشد که هنوز مسایل حل نشده زیادی در خود دارد.
الگوریتم ژنتیک
الگوریتم های ژنتیک، به عنوان یکی از راه حل های یافتن جواب مسئله در بین روش های مرسوم در هوش مصنوعی مطرح است. در حقیقت بدین روش می توانیم در فضای حالت مسئله حرکتی سریع تر برای یافتن جواب های احتمالی داشته باشیم؛ یعنی می توانیم با عدم بسط دادن کلیه حالات، به جواب های مورد نظر برسیم.
در جهان اطراف ما همه ارگانیزم های حیاتی از ساختارهای قانونمندی تشکیل شده اند. ساختارهایی که از سوی آفریدگار هستی در بطن مخلوقات قرار داده شده است. همه این ارگانیزم ها از بلوک های پایه ای از زندگی به نام سلول تشکیل به وجود آمده اند. قوانین مزبور در قالب ژن ها به صورت کد شده در هر ارگانیزم وجود دارند. از به هم وصل شدن این ژن ها، رشته هایی طولانی به نام کروموزوم تولید می شود. هر ژن نمایانگر یکی از خصوصیات آن ارگانیزم است.
مانند رنگ چشم یا رنگ مو و البته هر ژن می تواند دارای مقادیر مختلفی باشد. مثلاً در رابطه با رنگ چشم می توانیم دارای مقادیری متناظر با مشکی، قهوه ای و آبی و سبز و… باشیم. هنگامی که دو ارگانیزم به تولید مثل می پردازند، در حقیقت ژن های خود را با یکدیگر ترکیب می کنند. بدین صورت که ارگانیزم تولید شده که در این متن از این بعد آن را نوزاد می نامیم، دارای نیمی از ژن های یک والد و نیم دیگر از والد دیگری است. این عمل را ترکیب می نامیم. گاهی اوقات بعضی از ژن ها دارای جهش می شوند. این جهش تغییری در ساختار کروموزوم ایجاد نمی کند، اما با توجه به این که مقدار جدیدی به یک ژن تخصیص می یابد، موجب بروز خصوصیت جدیدی می شود. از این اتفاق با نام جهش یاد می کنیم.
برای استفاده از الگوریتم ژنتیک در برنامه هایتان ابتدا باید راهی بیابید تا حالات جواب مسئله خود را به صورت کد شده در قالب رشته ای از اعداد صحیح یا در فرم کلاسیک تر آن به صورت رشته ای از بیت ها نمایش دهید (هر رشته از بیت ها معادل یک کروموزوم یا یک ارگانیزم طبیعی است و هدف این است که به ارگانیزم بهتری، یعنی کرومزوم بهتری دست پیدا کنیم). بدین ترتیب جواب های شما به یکی از اشکال زیر خواهد بود.
1011011010000101011111110
یا
1264196352478923455548216
برای شروع فعالیت الگوریتم ژنتیک نیازمند جمعیتی از کروموزوم ها به صورت تصادفی هستیم. یعنی در ابتدا به عنوان قدم اول، تعدادی کروموزوم به صورت تصادفی ایجاد می کنیم. فرض کنید N کروموزوم و این N را جمعیت آغازین می نامیم.
در ادامه تابعی به نام تابع ارزش تشکیل می دهیم که این تابع به عنوان ورودی یک کرومزوم را دریافت می کند (یک جواب مسئله) و به عنوان خروجی عددی را مبتنی بر میزان بودن کرومزوم نسبت به جواب نهایی بر می گرداند. در حقیقت این تابع میزان خوب بودن جواب را مشخص می کند. برای همه نمونه های جمعیت مقدار تابع ارزش را حساب می کنیم.
در ادامه به صورت تصادفی دو نمونه از کرومزوم ها را انتخاب می کنیم. باید توجه داشته باشیم که سیستم به گونه ای طراحی شود که شانس انتخاب هر کرومزوم متناسب با مقدار تابع ارزش آن کروموزوم باشد. یعنی اگر کرومزومی دارای مقدار تابع ارزشی بهتری بود، شانس انتخاب شدن آن بیشتر باشد (بدین وسیله سعی می کنیم بیشتر روی پاسخ های بهتر مسئله پردازش انجام دهیم) این عمل دقیقاً معادل انتخاب طبیعت در داستان ماست (موجودات قوی تر شانس بیشتری برای بقا دارند).
بعد از انتخاب دو کرومزوم، اکنون نوبت به ترکیب می رسد. برای انجام عمل ترکیب، باید یک نقطه (نقطه شکست) در جفت کروموزوم خود را به صورت تصادفی انتخاب کنیم. هر کرومووزم را به دو پاره تقسیم می کنیم و در ادامه کمی جای هر پاره از هر کروموزوم را با دیگری عوض می کنیم. مانند شکل زیر:
شکل 20
بدین ترتیب دو کرومزوم جدید تولید می شود (دو جواب جدید). راه دیگری نیز برای انجام عمل ترکیب وجود دارد و آن انتخاب چند نقطه شکست است. مثلاً به شکل زیر برای 2 نقطه شکست توجه کنید.
در هر حال ما باید یک روش را انتخاب کنیم و در طول پروژه عمل ترکیب خود را مبتنی بر آن روش انجام دهیم. بعد از انجام عملیات انتخاب و ترکیب، نوبت به عمل جهش ژن ها می رسد. عمل جهش باید با احتمال پایین رخ دهد. یعنیدر اکثر مواقع نباید دارای جهش باشیم، اما احتمال آن نیز نباید صفر باشد. بنابراین اگر کرومزوم به دست آمده از عملگر ترکیب دچار جهش شود، باید یکی از بیت های آن که متناظر با ژن های آن هستند، به صورت تصادفی انتخاب شود و سپس مقدار آن تغییر کند. اگر بخواهیم این موضوع را به صورت کلاسیک نشان دهیم، به صورت زیر خواهد بود:
اکنون یک مرحله را انجام دادیم و یک کرومزوم جدید (جواب جدید) برای مسئله ایجاد کردیم. در ادامه دو مرتبه دو کرومزوم از جمعیت اولیه انتخاب می کنیم و همه اعمال گفته شده را روی آن انجام می دهیم تا کرومزوم دیگری ایجاد شود و این کار را به قدری تکرار می کنیم تا به تعداد کرومزوم های جمعیت اولیه، کرومزوم جدید داشته باشیم و این مجموعه کرومزوم جدید در حقیقت نسل جدید ما خواهند بود و ما این کار را به قدری ادامه می دهیم تا نسل های بهتر و بهتری را ایجاد کنیم و هنگامی جواب نهایی به دست میآید که تابع ارزشی ما، مقدار مطلوب ما را به ازای مقدار مورد نظر ما از کروموزوم ها برگرداند.
نکات مهم در الگوریتم های ژنتیک
5- شرایط جمعیت اولیه می تواند در سرعت رسیدن به جواب بسیار تاثیرگذار باشد. یعنی اگر جمعیت اولیه مناسب تر باشد، بسیار سریع تر به جواب می رسیم. بنابراین گاهی در بعضی از مسئله ها به جای آن که جمعیت اولیه به صورت تصادفی ایجاد شود، از اعمال شرایط خاص مسئله به جمعیت اولیه نیز استفاده می شود.
6- با توجه به وجود پارامترهای تصادفی در الگوریتم مسئله حتی در صورت استفاده از جمعیت اولیه یکسان ممکن است در اجراهای مختلف الزاماً جواب های یکسان به دست نیاید و البته در صورت استفاده از جمعیت اولیه متناوت این پدیده ملموس تر خواهد بود.
7- تابع ارزش در این گونه از الگوریتم ها از اهمیت بسزایی برخوردار است؛ چرا که معمولاً در اکثر مسائل در اثر ترکیب، حالت هایی رخ می دهد که منطبق بر شرایط مسئله نیست و حتی فاقد معنی و مفهوم است. بنابراین تابع ارزش باید به گونه ای طراحی شود که به ازای این حالات مقادیر بسیار کمی برگرداند و از طرفی باید برای نزدیک شدن به هدف بسیار خوب تخمین بزند.
8- یکی از پدیده های جالب این است که ممکن است در نسل های میانی نمونه هایی بروز کنند که از نظر تابع ارزش و خوب بودن بسیار مناسب باشند. یک روش این است که اینگونه موارد را شناسایی کنیم و در نسل بعدی نیز از آن ها استفاده کنیم. به این تکنیک نخبه گرایی می گویند که عملاً تاثیر بسزایی در رسیدن به جواب مسئله دارد.
الگوریتم های ژنتیک الگوریتم هایی هستند که دارای قدرت بسیار زیادی در یافتن جواب مسئله هستند، اما باید توجه داشت که شاید بتوان کاربرد اصلی این الگوریتم ها را در مسائلی در نظر گرفت که دارای فضای حالت بسیار بزرگ هستند و عملاً بررسی همه حالت ها برای انسان در زمان های نرمال (در حد عمر بشر) ممکن نیست. از طرفی باید توجه داشت که حتماً بین حالات مختلف مسئله باید دارای پیوستگی مناسب و منطقی باشیم. در نهایت الگوریتم های ژنتیک این امکان را به ما می دهد که دارای حرکتی سریع در فضای مسئله به سوی هدف باشیم. به گونه ای که می توانیم تصور کنیم که در فضای حالات مسئله به سوی جواب مشغول پرواز هستیم.
پردازش زبان های طبیعی (NLP)
پردازش زبان های طبیعی بعنوان زیرمجموعه ای از هوش مصنوعی ،می تواند توصیه ها و بیانات را با استفاده از زبانی که شما به طور طبیعی درمکالمات روزمره بکار می برید، بفهمد و مورد پردازش قرار دهد. به طورکلی نحوه کار این شاخه از هوش مصنوعی این است که زبانهای طبیعی انسان را تقلید می کند. در این میان ، پیچیدگی انسان از بعد روانشناسی برروی ارتباط متعامل تاثیر می گذارد.
در پردازش زبانهای طبیعی ، انسان و کامپیوتر ارتباطی کاملا نزدیک با یکدیگر دارند. کامپیوتراز لحاظ روانی در مغز انسان جای داده می شود. بدین ترتیب یک سیستم خلاق شکل می گیرد که انسان نقش سازمان دهنده اصلی آن را برعهاده دارد. اگر چه هنوز موانع روانشناختی و زبانشناختی بسیاری بر سر راه سیستمهای محاوره ای وجود دارد. اما چشم اندازهای پیشرفت آنها یقیناً نویدبخش است. در حقیقت، توقعات یکسان از محاوره انسان- ماشین و محاوره انسان- انسان، معقول نیست.
تکنیک ها وزبان های برنامه نویسی هوش مصنوعی
عملکرد اولیه برنامه نویسی هوش مصنوعی ایجاد ساختار کنترلی مورد لزوم برای محاسبه سمبولیک است زبانهای برنامه نویسی LISP،PROLOG علاوه بر اینکه از مهمترین زبانهای مورد استفاده در هوش مصنوعی هستند خصوصیات نحوی ومعنایی انها باعث شده که انها شیوه ها وراه حل های قوی برای حل مسئله ارایه کنند. تاثیر قابل توجه این زبانها بر روی توسعه AI از جمله توانایی های انها بعنوان"ابزارهای فکرکردن"می باشد .
در حقیقت همانطور که هوش مصنوعی مراحل رشد خود را طی می کند زبانهای LISP وPROLOG بیشتر مطرح می شوند این زبانها کار خود را در محدوده توسعه سیستم های AIدر صنعت ودانشگاه ها دنبال می کنند وطبیعتاً اطلاعات در مورد این زبانها بعنوان بخشی از مهارت هر برنامه نویس AI می باشد.
PROLOGیک زبان برنامه نویسی منطقی است .یک برنامه منطقی دارای یک سری ویژگیهای قانون ومنطق است . در حقیقت خود این نام از برنامه نویسی PROدر LOGIC می آید . در این زبان یک مفسر برنامه را بر اساس یک منطق می نویسد .ایده استفاده توصیفی محاسبهٔ اولیه برای بیان خصوصیات حل مسئله یکی از محوریتهای مشارکت PROLOGمی باشد که برای علم کامپیوتر بطورکلی وبطور اخص برای زبان برنامه نویسی هوشمند مورد استفاده قرار می گیرند .
LISP اصولاً یک زبان کامل است که دارای عملکردها ولیست های لازمه برای توصیف عملکردهای جدید، تشخیص تناسب وارزیابی معانی می باشد LISP به برنامه نویس قدرت کامل برای اتصال به ساختارهای اطلاعاتی را می دهد گر چه LISP یکی از قدیمی ترین ترین زبانهای محاسباتی است که هنوز فعال است ولی دقت کافی در برنامه نویسی وطراحی توسعه باعث شده که این یک زبان برنامه نویسی فعال باقی بماند . در حقیقت این مدل برنامه نویسی طوری موثر بوده است که تعدادی از دیگر زبانها براساس عملکرد برنامه نویسی آن بنا شده اند :مثل . FP،ML، SCHEME یکی از مهمترین برنامه های مرتبط با LISP برنامه SCHEME می باشد که یک تفکر دوباره در باره زبان در آن وجود دارد که بوسیله توسعه AI وبرای آموزش واصول علم کامپیوتر مورد استفاده قرار می گیرد.
ویژگی های فلسفی هوش مصنوعی چیست ؟
هوش مصنوعی ( Artificial Intelligence ) که به اختصار AI خوانده می شود ، یکی از جذاب ترین شاخه های تحقیقاتی فلسفی است.
پیدایش رایانه در صحنه زندگی بشر تحولات عمده ای را به وجود آورد ، حوزه فلسفه نیز از این تحولات بی نصیب نبوده است. فلاسفه پرسشهای فلسفی زیادی راجع به تفاوت های ذهن انسان با رایانه مطرح کرده اند که همه آنها به طرح بحث هوش مصنوعی انجامید.
هدف هوش مصنوعی فهم سرشت هوش بشری از راه بررسی ساختار برنامه های رایانه ای و نحوه حل مسائل با رایانه است. به اعتقاد متخصصان این رشته ، این بررسی می تواند نحوه عمل و جزییات هوش بشر را نشان دهد.
نخست باید مقصود متخصصان هوش مصنوعی را از اصطلاح هوش Intelligence روشن کنیم ؛ چراکه نگاه آنان نسبت به مقوله هوش و مفاهیم مرتبط مانند عقل ، ذهن و غیره کاملا متفاوت است. امروزه در میان دانشهای موجود ، اصطلاح هوش در روان شناسی بسیار کاربرد دارد و روان شناسان از بهره هوشی افراد و امور مرتبط با آن بحث می کنند. ولی در هوش مصنوعی این اصطلاح کاربردی کاملا متفاوت دارد.
در هوش مصنوعی برای شروع کار ، تعریفی عملی از هوش ارائه می شود. معمولا فلاسفه به تعاریف مفهومی بیشتر رغبت دارند و دوست دارند مفهوم هوش و عقل و غیره را روشن کنند. اما بنا به دلایلی ، متخصصان هوش مصنوعی تعریف عملی را برگزیده اند. یک دلیل این گزینش به این نکته برمی گردد که نزاعهای مفهومی ؛ یا نزاع برای تعریف مفاهیم فایده چندانی ندارد و غالبا بی نتیجه پایان می یابد. اگر بخواهیم با تعریف مفاهیم هوش و تفکر رابطه آنها را بیابیم و ببینیم آیا هوش همان تفکر است یا نه ، بیشتر در نزاعی لفظی درگیر خواهیم شد. زیرا بی تردید دو واژه مذکور از لحاظ مفهومی تفاوت دارند و یک چیز را نمی رسانند و ادعای آنان ، تساوی مفهومی این دو واژه نیست.
ویژگیهای هوش مصنوعی
هوش مصنوعی برای حل مساله برنامه خاصی را دنبال می کند. توجه به ویژگی های هوش مصنوعی در مقام استفاده از این نوع برنامه ها سودمند است. 5 ویژگی از میان آنها اهمیت خاصی دارند:
بازنمایی نمادین
ویژگی اول این است که هوش مصنوعی از نمادهای عددی در حل مسائل استفاده می کند. هوش مصنوعی بر پایه دستگاه دوگانی ؛ صفر و یک مسائل را حل می کند. از این رو برخی مخالفان گفته اند مهمترین نقص هوش مصنوعی آن است که غیر از عدد صفر و یک را نمی فهمد. به تعبیر دیگر ، رایانه فقط بله یا نه را می فهمد و نمی تواند حالات واسطه بین آن دو را بفهمد.در مقابل طرفداران هوش مصنوعی گفته اند هوش طبیعی (هوش انسان) هم بر پایه دستگاه دوگانی پدیده ها و امور مختلف را می فهمد؛ اگر سلولهای عصبی انسان را بررسی کنیم ، درمی یابیم فهم بشری بر حالت دوگانی استوار شده است و دستگاه عصبی مفاهیم و تصورات را به صورت حالات دوگانی تبدیل می کند. البته نشان دادن نحوه این تبدیل در مفاهیم و ادراکات پیچیده دشوار است. اما بررسی برنامه های هوش مصنوعی فهم این امر دشوار را آسان کرده است.
روش اکتشافی
ویژگی دوم هوش مصنوعی به نوع مسائلی که حل می کند ، مربوط می شود. این مسائل معمولا راه حل الگوریتمی ندارند. مراد از الگوریتم سلسله ای از مراحل منطقی است که به حل مساله می انجامد. هوش این مراحل را گام به گام طی می کند تا به حل مساله دست می یابد. به عبارت دیگر ، در الگوریتم پیمودن این مراحل به طور طبیعی رسیدن به نتیجه را تضمین می کند. مسائلی که هوش مصنوعی حل می کند ، معمولا راه حل الگوریتمی ندارند ؛ به این معنا که معمولا نمی توانیم برای حل این مسائل الگوریتمی یا به عبارت دیگر ، سلسله ای از مراحل منطقی را بیابیم که پیمودن آنها رسیدن به نتیجه را تضمین کند.
از این رو، هوش مصنوعی در حل مسائل به روش اکتشافی ؛ یعنی به روشی که پیمودن آن رسیدن به نتیجه را تضمین نمی کند ، روی می آورد.
هوش مصنوعی بر پایه دستگاه دوگانی مسائل را حل می کند مخالفان می گویند مهمترین نقص هوش مصنوعی آن است که غیر از عدد صفر و یک را نمی فهمد.
در روش اکتشافی راههای متعددی برای حل مساله وجود دارد که اختیار یکی از آنها باز مجالی برای اختیار دیگر راهها باقی می گذارد و پیمودن یکی از آنها مانع از روی آوردن به بقیه نمی شود. درنتیجه ، برنامه هایی که راه حل تضمینی دارند جزو برنامه های رایانه ای به شمار نمی آیند.
مثلا برنامه های حل معادلات درجه دوم جزو برنامه های رایانه ای به شمار نمی آید ؛ زیرا برای حل آن الگوریتم خاصی وجود دارد.
برنامه های بازی شطرنج زمینه پر خیر و برکتی برای هوش مصنوعی بوده است ؛ زیرا روش شناخته شده ای برای تعیین بهترین حرکت در مرحله خاصی از این بازی وجود ندارد. زیرا اولا تعداد احتمالات موجود در هر حالتی تا حدی زیاد است که نمی توان جستجوی کاملی را انجام داد. ثانیا آگاهی ما از منطق حرکتهایی که بازیکنان انجام می دهند ، بسیار اندک است. این ناآگاهی تا حدی به ناخودآگاهانه بودن این حرکتها برمی گردد و البته در برخی موارد هم بازیکنان از روی عمد منطق خود را آشکار نمی کنند.
هربرت دریفوس یکی از مخالفان هوش مصنوعی با توجه به نکته فوق ادعا کرده است که هیچ برنامه ای برای رسیدن به سطح یک بازیگر خوب شطرنج وجود ندارد. اما ظهور برنامه های پیشرفته شطرنج از سال 1985 به بعد خطای ادعای دریفوس را روشن ساخت.
بازنمایی معرفت
برنامه های هوش مصنوعی با برنامه های آماری در بازنمایی معرفت تفاوت دارند ؛ به این معنا که برنامه های نخست از تطابق عملیات استدلالی نمادین رایانه با عالم خارج حکایت می کنند. می توانیم این نکته را با مثال ساده ای توضیح دهیم.
بازنمایی معرفت عنوانی برای مجموعه ای از مسائل راجع به معرفت است از قبیل:
1-معرفت مورد نظر در هوش مصنوعی چیست ، چه انواعی و چه ساختاری دارد؟
2- چگونه باید معرفت را در رایانه بازنمایی کرد؟
3- بازنمایی چه نوع معرفتی را آشکار می سازد؟ و چه چیزی مورد تاکید قرار می گیرد؟
9- معرفت را باید چگونه به دست آورد و چگونه باید تغییر داد؟
اطلاعات ناقص
هوش مصنوعی می تواند در حالتی که همه اطلاعات مورد نیاز در دسترس نیستند ، به حل مساله دست بیابد. این حالت در بسیاری از موارد پزشکی رخ می دهد اطلاعاتی که پزشک برای تشخیص بیماری در دست دارد ، تشخیص بیماری را ممکن نمی کند و او هم فرصت زیادی برای درمان ندارد. از این رو باید سریعا تصمیمی بگیرد.
نبود اطلاعات لازم موجب می شود نتیجه به دست آمده غیریقینی باشد و یا احتمال خطا در آن باشد. معمولا ما در زندگی عملی با فقدان اطلاعات لازم تصمیماتی را می گیریم و همواره احتمال خطا در این تصمیمات وجود دارد.
اطلاعات متناقض
هوش مصنوعی می تواند درصورتی که با اطلاعات متناقض روبه رو شود حل مناسبی برای مساله پیدا کند. هوش مصنوعی در چنین موردی بهترین راه را برای حل مساله و رفع تناقض انتخاب کند.
برخی کابردهای هوش مصنوعی در پزشکی
طراحی نرم افزار تشخیص بیماریها بوسیله هوش مصنوعی
نرم افزار جامع پشتیبان تصمیم گیری در پزشکی یکی از نرم افزارهائی است که با استفاده از هوش مصنوعی به تشخیص بیماری ها براساس علا ئم اقدام می کند به طوری که کاربر با وارد کردن نشانه های بیماری به رایانه، فهرستی از بیماری های محتمل را مشاهده خواهد کرد.
ثبت دقیق شرح حال بیمار، تشکیل پرونده، درخواست آزمایش های اولیه و تکمیلی، تجویز هوشمند دارو، نسخه نویسی، جستجوی اطلا عات بیماری، روش درمان، بانک اطلا عات داروها، روش مصرف و مشخص کردن عوارض جانبی دارو ها را از مزایای این نرم افزار است.
این نرم افزار همچنین می تواند بیش از دو هزار بیماری و 300 علا ئم و نیز اطلا عات جامعی در زمینه 600 آزمایش پزشکی 130 مورد جراحی و 900 عنوان دارو را در خود ذخیره کند.
مهمترین قابلیت این نرم افزار بررسی و تشخیص همزمان هزار و 500 بیماری و 100 هزار رابط فی ما بین بیماریها می با شد و برای کمک بیشتر به پزشکان ده هزار صفحه از متون معتبر پزشکی ، مجلا ت ، مقالا ت و تصاویر تخصصی در این نرم افزار گردآوری شده است .
استفاده از قابلیتهای هوش مصنوعی در تشخیص عفونتهای قلبی تهدید کننده
با کمک 2 برنامه جدید هوش مصنوعی، امکان تشخیص عفونت های قلبی تهدیدکننده حیات بیماران و همچنین درمان زخم های باز بدون نیاز به فرآیندهای معمول و زمانبر درمانی برای پزشکان فراهم شده است. پیشرفت حاضر در زمینه تشخیص عوارض مهلک در حالی صورت می گیرد که به اعتقاد جامعه پزشکی، جدا از نتایج چشمگیر آن در نجات جان انسان ها و اجتناب از اعمال جراحی تهاجمی و رنج آور، این پژوهش می تواند بدون نیاز به انجام آزمایش های متعدد به صرفه جویی میلیونی هزینه های بیمارستانی در سال کمک کند.
این نرم افزار را برای شناسایی بیماران دارای عفونت های قلبی توسعه یافته و این در صورتی است که چنین عفونت هایی با نرخ مرگ و میر بین 30 تا 50 درصد، از عفونت های بسیار وخیم به شمار می روند. تشخیص دادن التهابات غشای درونی قلب (اندوکاردیتیک) یک عمل جراحی تهاجمی محسوب می شود و قصد از طراحی این نرم افزار تشخیص این عفونت بدون روانه کردن لوله کاوشی به درون مری فرد بیماراست..
تصویری که با استفاده از داخل کردن ابزار آندوسکوپی به درون نای شخص بیمار که با کمک دارو تسکین دهنده ، گرفته می شود اصطلاحا قلب نگاری فرامری (ترانسوفاژل اندوکاردیوگرام) است که در نوع خود فرآیندی تهاجمی و گران به حساب می آید. در واقع یک عمل 30 دقیقه ای با این روش بالغ بر 2000 دلار هزینه دربر دارد و از طرفی انجام این عمل به تجهیزات فنی خاصی نیاز دارد که بسیاری از بیمارستان ها فاقد آن هستند. این در حالی است که پزشکان می توانند به جای وارد کردن لوله های پزشکی، به وارد کردن داده های لازم به رایانه و تحلیل آنها بپردازند. در این شیوه عمل، پزشکان ابتدا با ثبت داده هایی از جمله ضربان قلب، فشار خون، شمارش گلبول های سفید خون، حضور ادواتی نظیر ضربان سازهای قلبی یا سایر دستگاه های تعبیه شده، دمای بدن دریافتی بیماران در رایانه، نرم افزار دستیار عمل خود را آماده سازی می کنند. در این میان، تشخیص نهایی این بیماران نیز شامل اطلاعات داده شده به رایانه خواهد بود. در مرحله بعدی این الگوریتم رایانه ای به تحلیل داده های موجود برای ارتباط دادن علائم بیماری با تشخیص بیماری می پردازد . در 50 درصد موارد این نرم افزار می تواند ظرف کمتر از 4 ثانیه یک پیش بینی محاسبه ای را با دقت 99/99 درصد انجام دهد ، در باقی موارد نیز این نرم افزار، بیش از 80 درصد صحت عمل داشته است. البته محققان به این مرحله بسنده نکرده و قصد دارند، گام بعدی پروژه هوش مصنوعی خود را روی 200 مورد از پرونده پزشکی بیمارانی اجرا کنند که رایانه، اطلاعی از تشخیص نهایی آنها ندارد.تشخیص عفونت های قلبی مشکل است اما اغلب می توان آنها را با تجویز و مصرف حدود یک هفته آنتی بیوتیک معالجه کرد.
طراحی نرم افزاری بر پایه هوش مصنوعی برای کمک به التیام زخمهای باز
زخم های باز که پس از هفته ها یا ماه ها درمان، در برابر التیام و بهبود مقاومت کرده، معالجات را رد می کنند و به عنوان زخم های کم خون موضعی شناخته می شوند، راه تشخیص آسانی دارند اما در عوض به طرز ناامیدکننده ای درمان دشواری را به همراه دارند و حتی به اعتقاد برخی پزشکان، این گونه زخم ها هر درمانی را بی اثر می کنند و انگار که هیچ درمانی برای التیام آنها صورت نگرفته است. در همین ارتباط، گروهی از محققان، موفق به توسعه الگوریتمی ریاضیاتی شده اند که می تواند زمان بسته شدن یک زخم باز از نوع کم خون موضعی و همچنین این را که چه عوارض و پیامدهایی طی فرآیند قطع جریان خون و بندآوری بروز می کند، پیش بینی کند. مدل های فعلی، زخم هایی را هدف می گیرند که در هر صورت بسته خواهند شد، و هدف توسعه مدلی برای زخم هایی است که نمی خواهند بسته شوند.
مواردی همچون زخم پای بیماران دیابتی یا زخم بیمارانی که به دلیل عوارض دیگری، قبلا فرآیند بیمارستانی را گذرانده اند، از موارد شایع و هدف زخم های باز محسوب می شود. گروهی تحقیقاتی برای کمک به درمان زخم های موضعی، برنامه ای را توسعه داده اند که داده های بیماران را پردازش می کند؛ اطلاعاتی از قبیل غلظت خون، فاکتورهای رشد، حضور گلبول های سفید و تراکم فیبروبلاستی از جمله داده هایی است که به رایانه داده می شوند. رایانه نیز با استفاده از این داده ها مدلی سه بعدی از زخم مربوط را ایجاد و چگونگی التیام یافتن و بهبود سریع آن را ظاهر می کند و بعلاوه زمان بسته شدن زخم را نیز تخمین می زند. به ادعای محققان اکنون و بر اساس این مدل، یک زخم معمولی ظرف حدود 13 روز بسته خواهد شد و این در حالی است که پس از گذشت 20 روز تنها 25 درصد از زخم های باز موضعی التیام و بهبود می یابند. این اعداد و ارقام با آنچه عملا برای بیماران اتفاق می افتد، تطبیق می کند، اما در این میان نباید از نظر دور داشت که تا اینجای کار تنها در قالب تئوری استفاده شده و مدل حاضر هنوز روی بیماران انسانی امتحان نشده است.
به اعتقاد برخی محققان، فناوری هوش مصنوعی یا به عبارتی سامانه های شبیه ساز نحوه کارکردهای مغز خواه برای بهبود زخم ها و چه در مورد عفونت های قلبی به کار برده شوند، دست کم به این زودی ها جای پزشکان واقعی را نخواهند گرفت. این شبکه های عصبی مصنوعی نه می توانند بیماران را ببینند و نه می توانند آنها را برای یافتن علائم عفونت و آلودگی یا نشانه های مرضی مورد آزمایش قرار دهند؛ اما واقعیت این است که چنین برنامه هایی در موارد گیج کننده و مبهم که کار تشخیص بیماری با دشواری مواجه می شود و تشخیص صحیح و بموقع برای پزشک و بیمار بسیار حیاتی است، دستیاری قابل و مورد اطمینان برای متخصصان بالینی به شمار می رود.
منابع
*
* آیلین ریچ، هوش مصنوعی (و تکنیک ها)، ترجمه آزاد از دکتر مهرداد فهیمی، نشر جلوه، ۱۳۷۵،
* نظام الدین فقیه، هوش مصنوعی در پیش بینی ایست خط تولید (کاربرد شبکه های عصبی مصنوعی) ۹۶۴-۷۲۱۰-۸۸-۴:شابک[۵]
* هوش مصنوعی: به شیوه ای مدرن
* هوش مصنوعی: راهنمائی برای سامانه های هوشمند
* ویکی پدیای انگلیسی
* کاربردهای هوش مصنوعی
* آشنایی با شبکه های عصبی (Neural Networks) – مسعود سعیدی – ماهنامه شبکه – بهمن ۱۳۸۳ شماره 51
* جان مک کارتی ( هوش ماشینی و هوش انسانی )- علیرضا صالحی- ماهنامه شبکه – اسفند ۱۳۸۳ شماره 52
* مقدمه ای بر بینایی ماشین (Machine Vision)- مریم اسماعیلی – ماهنامه شبکه – خرداد ۱۳۸۴ شماره 54
* الگوریتم های ژنتیک ( پرواز در فضای حالت مسئله) – کیوان تیرداد -ماهنامه شبکه – آذر ۱۳۸۵ شماره 71
* گذری بر سیستم های خبره (Expert Systems) – گردآوری و ترجمه: علی حسینی – ماهنامه شبکه – آذر ۱۳۸۵ شماره 71
* منطق فازی چیست؟ – بهروز نوعی پور- ماهنامه شبکه – آذر ۱۳۸۵ شماره 71
* مهندسی معکوس مغز – Reverse – Engineering the Brain – ترجمه: علی حسینی – ماهنامه شبکه – آذر ۱۳۸۵ شماره 71
* دمیدن جان در ماشین (نگاهی به پیدایش و سیر تحولات هوش مصنوعی از ابتدا تا کنون)- -aftab.irشهریور 1387
* هوش مصنوعی ترکیبی -احمد رضا میرزایی – سایت باشگاه اندیشه – 02/07/1387
* ویژگیهای فلسفی هوش مصنوعی – یاسر پوراسماعیل
* www.generation5.org/content/2000/nnintro.asp
* http://cortex.snowseed.com/neuralnetworks.htm
* www.cs.stir.ac.uk/lss/NNIntro/InvSlides.html
*
149