Last updated on ۱۳۹۹/۰۸/۰۸
هوش مصنوعی Artificial Intelligence تکنیکی برای خلق کردن ماشینهایی است که قادر به فکر کردن بدون نیاز به انسان ها می باشند. یک ماشین تنها در صورتی به عنوان یک AI شناخته میشود که از یکسری قابلتهای خاص از جمله، داشتن شناخت از وجود خود و یا sentient بودن، برخوردار باشد.
هوش مصنوعی چیست؟
ما انسانها خود را خردمند میدانیم، زیرا قابلیت های ذهنی ما، برای ما بسیار مهم هستند. هزاران سال است که سعی میکنیم تا بفهمیم چگونه فکر میکنیم. یعنی میخواهیم بدانیم چگونه میفهمیم، پیشگویی میکنیم و دنیا را تغییر میدهیم. حوزه هوش مصنوعی (AI) فراتر از اینهاست، یعنی نه تنها سعی در درک کردن دارد، بلکه میخواهد موجودیت های هوش را بسازد. AI یکی از جدیدترین علوم است که پس از جنگ جهانی دوم مطرح و نام آن در سال 1956 انتخاب شد و فعلا در زمینه های مختلف عمومی (یادگیری و درک) و خاص، مثل بازی شطرنج، اثبات قضایای ریاضی، نوشتن اشعار، رانندگی در جاده شلوغ و تشخیص بیماری کاربرد دارد. AI ، وظایف هوشمند را خودکار و سیستماتیک (منظم) میسازد و در نتیجه با فعالیتهای هوش انسان سروکار دارد و کاملا یک حوزه ی جامع است.
در زیر چهار دسته از تعاریف هوش مصنوعی بیان شده است که هر کدام توسط افراد مختلف و به روشهای مختلفی دنبال شده اند :
• سیستم هایی که عقلایی (خردمندانه) فکر میکنند
مطالعه توانایی های ذهنی از طریق مدلهای محاسباتی (چارنیاک و مک درمات 1985) / مطالعه محاسباتی که منجر به درک و استدلال میشود (ونیتون 1992)
• سیستم هایی که مثل انسان فکر میکنند
تلاش جدید و هیجان انگیز برای ساخت کامپیوترهایی متفکر، ماشینهای متفکر و با حس کامل (هاگلند 1985) / خودکارسازی فعالیتهای مرتبط با تفکر انسان ، فعالیتهایی مثل تصمیم گیری، حل مساله و یادگیری (1978)
• سیستم هایی که عقلایی (خردمندانه) عمل میکنند
هوش محاسباتی، مطالعه طراحی عاملهای هوشمند است (نیل و همکاران 1998) / AI به رفتار هوشمندانه در هواپیما مربوط میشود (نیلون 1998)
• سیستم هایی که مثل انسان عمل میکنند
هنر ساخت ماشینهایی که کارهایی را انجام میدهند که آن کارها توسط انسان با فکر کردن انجام میشوند (کورزویل 1990) / مطالعه برای ساخت کامپیوترها برای انجام کارهایی که فعلا انسان آنها را بهتر انجام میدهد (ریچ و نایت 1991)
همانطور که انتظار میرود، بین رهیافت های انسانی و عقلایی ، کشمکش وجود دارد. رهیافت انسانی (انسان محور) یک علم تجربی است که شامل فرضیات و یافته های آزمایشگاهی است. رهیافت عقلایی (خردمندانه) شامل ترکیبی از ریاضیات و مهندسی است. هر دو گروه به یکدیگر کمک میکنند و به کار یکدیگر انتقاد نیز میکنند. هر یک از این چها رهیافت را با جزئیات بیشتری بررسی میکنیم.
♦ عملکرد انسان گونه : رهیافت تست تورینگ
تست تورینگ که توسط آلن تورینگ (1950) مطرح شد، تعریف عملیاتی و قابل قبولی را از هوش ارائه میکند. به جای ارائه لیستی طولانی و بحث انگیز جهت مشخص کردن میزان هوش، تورینگ تستی را مطرح کرد که در آن، کامپیوتر توسط فردی محقق مورد آزمایش قرار میگیرد، بطوریکه این فرد دور از کامپیوتر قرار دارد، کامپیوتر به پرسشهای مطرح شده پاسخ میدهد. کامپیوتر وقتی از این تست عبور میکند که این شخص نتواند تشخیص دهد که پاسخ دهنده یک انسان یا چیز دیگری است. برنامه نویسی کامپیوتری که بتواند این تست را بگذراند، به تلاش زیادی نیاز دارد. چنین کامپیوتری باید قابلیت های زیر را داشته باشد:
• پردازش زبان طبیعی، تا به راحتی بتواند با زبان انگلیسی ارتباط برقرار کند.
• نمایش دانش (بازنمایی دانش)، تا آنچه را که میداند یا میشنود،ذخیره کند.
• استدلال خودکار، تا با استفاده از اطلاعات ذخیره شده ، به پرسشها پاسخ دهد و نتایج جدیدی به دست آورد.
• یادگیری ماشین، تا با شرایط جدید سازگار شود و الگو ها را کشف و برون یابی کند.
تست تورینگ، تعامل فیزیکی بین محقق و کامپیوتر را حذف میکند، زیرا برای تعیین هوشمندی یک فرد، نیاز به شبیه سازی فیزیکی نیست. اما تست کامل تورینگ شامل سیگنال ویدیویی است که محقق از طریق آن میتواند توانایی های ادراکی آن را تست کند. علاوه براین، فرصتی فراهم میکند تا محقق، اشیای فیزیکی را از طریق یک دریچه به تست دهنده برساند. برای گذراندن تست کامل تورینگ، کامپیوتر به موارد زیر نیاز دارد:
• بینایی کامپیوتر، برای درک اشیا
• دانش روباتیک، برای اداره کردن اشیا و جابه جایی آنها
این شش نظام و توانایی، بخش عمده ای از AI را تشکیل میدهند و تورینگ استحقاق تهیه تستی را داشته است که 60 سال بعد از آن باقی مانده است. پژوهشگران AI تلاش زیادی برای گذراندن تست تورینگ نکردند، زیرا معتقدند که پرداختن به اصول هوش مصنوعی معقول تر از صرف وقت برای عبور از تست تورینگ است.
♦ تفکر انسان گونه : رهیافت مدلسازی شناختی
اگر بخواهیم بگوییم برنامه ای مثل انسان فکر میکند، باید با چگونگی فکر کردن انسان آشنا باشیم. لذا باید به چگونگی عملکرد مغز انسان بپردازیم. سه روش برای این کار وجود دارد:
1. درون گرایی (سعی کنیم به افکار خود پی ببریم).
2. آزمایشات یا تجربیات روانشناسی (فرد را در حین انجام عملیات مشاهده کنیم).
3. تصویربرداری از مغز (مغز را در حین عملیات مشاهده کنیم).
اگر تئوری های دقیقی راجع به ذهن داشته باشیم، میتوانیم آنها را به برنامه کامپیوتری تبدیل کنیم. اگر رفتار ورودی ها / خروجی های برنامه ها با رفتارهای متناظر انسان تطبیق کند، نتیجه میگیریم که بعضی از راهکارهای برنامه ها ، در انسان نیز کاربرد دارد. به عنوان مثال، آلن نیوئل و هربرت سیمون که GPS (حل کننده مسئله های عمومی) را ایجاد کردند، اعتقاد نداشتند که برنامه های آنها مسئله ها را به درستی حل کند. آنها سعی کردند ردیابی مراحل استدلال برنامه را با مراحل حل مسئله توسط انسان در یک مسئله، مقایسه کنند. حوزه علوم شناختی، مدلهای کامپیوتری را از AI و تکنیک های تجربی را از روان شناختی با هم ترکیب میکند تا تئوری های دقیق و آزمون پذیری از ذهن انسان به دست آورد.
علوم شناختی حوزه جذابی است و نیاز به بررسی کامل دارد و کتابهای متعددی در این زمینه وجود دارد. علوم شناختی واقعی ، الزاما بر تحقیقات تجربی انسان یا حیوان بنا نهاده شده است و در اینجا فرض میکنیم برای دسترسی به تجربیات ، فقط به کامپیوتر دسترسی دارید.
در اوایل عمر AI، اغلب بین این دو رهیافت تضادهایی وجود داشت. مؤلفی میگفت الگوریتمی که به خوبی بر روی وظیفه ای عمل میکند، مدل خوبی از کارایی انسان است و بر عکس. مؤلفین جدید ، این دو ادعا را تفکیک میکنند. این تفکیک موجب رشد سریع AI و علوم شناختی شد. این دو تکنیک در راستای تکامل یکدیگر رشد میکنند ، به خصوص در بینایی کامپیوتر از طریق رهیافتهای ترکیبی پیشرفت زیادی داشته است.
♦ تفکر عقلایی : رهیافت “قوانین متفکر”
ارسطو، فیلسوف یونانی، یکی از اولین کسانی بود که سعی کرد راز “تفکر درست” را پیدا کند که فرآیندهای استدلالِ غیر قابل نفی است. قیاس او، الگوهایی را برای ساختارهای استدلالی ایجاد کرد که برای هر مقدم درست ، تالی درستی ارائه میکند. به عنوان مثال، سقراط انسان است؛ انسان ها میمیرند؛ پس سقراط میمیرد. این قوانین تفکر ، عملیات ذهن را سازماندهی میکند و حوزه منطق را به وجود می آورد.
منطقیون در قرن 19، نمادگذاری دقیقی را برای احکامی در مورد تمام انواع چیزهای موجود در دنیا و رابطه بین آنها ارائه کردند (برخلاف حساب معمولی که نمادگذاری هایی برای دستورات تساوی و نامساوی در مورد اعداد دارد ). در سال 1965، برنامه هایی نوشته شدند که میتوانستند هر مسئله قابل حلی را که در نمادگذاری منطقی توصیف شد، حل کنند(گرچه، اگر جوابی وجود نداشته باشد ، ممکن است مسئله در حلقه تکرار قرار گیرد ). این رسم منطق گرایی در هوش مصنوعی، ساخت سیستم های هوشمند را تداعی کرد.
این رهیافت با دو مشکل مواجه است. اولا کسب دانش غیر رسمی و بیان آن براساس واژه های رسمی که مورد نیاز نمادگذاری منطقی است ، آسان نیست (به خصوص اگر 100 درصد به دانش اطمینان نداشته باشیم). ثانیا بین توانایی حل مسئله در “اصول” و انجام این کار در عمل، تفاوت است. حتی مسئله هایی که با حقایق کمی همراه هستند، میتوانند منابع محاسباتی هر کامپیوتری را مصرف کنند. مگر اینکه رهنمودهایی برای اعمال مراحل استدلال وجود داشته باشد. گرچه هر یک از این دو مشکل، در مقابل هر سیستم استدلال محاسباتی وجود دارد، ابتدا در تست منطق گرایی به وجود آمد.
♦ عملکرد عقلایی : رهیافت عمل خردمند (عقلایی)
عامل ، چیزی است که عمل میکند( agent از کلمه لاتین agree به معنای انجام دادن گرفته شد). البته، تمام برنامه های کامپیوتری ، کارهایی را انجام میدهند، ولی انتظار میرود عاملهای کامپیوتری کارهای بیشتری انجام دهند، مثل عمل کردن به صورت مختار ، درک محیط خود، تداوم در مدت زمانی طولانی، تغییرپذیری و قابلیت برآورده کردن اهداف دیگر. عامل خردمند طوری عمل میکند که بهترین نتیجه را ارائه میدهد، یا وقتی که عدم قطعیت وجود دارد، بهترین نتیجه را ارائه میکند.
در رهیافت “قوانین تفکر” در AI، بر استنتاج های درست تاکید میشود. گاهی استنتاج درست، بخشی از عامل خردمند است، زیرا یک روش عملکرد عقلایی (خردمندانه) ، استدلال منطقی است که منجر به فعالیتی میشود که هدفی را برآورده کند و سپس روی آن نتیجه عمل میکند. از طرف دیگر ، استنتاج درست به معنای خردمندی کامل نیست، زیرا در بعضی از وضعیتها، هیچ کار درستی برای انجام دادن وجود ندارد، در حالیکه باید کاری صورت گیرد. راههایی برای عملکرد منطقی وجود دارد که نمیتوان گفت شامل استنتاج باشند. به عنوان مثال، عقب کشیدن دست از یک اجاق داغ، یک فعالیت عکس العملی است که معمولا نسبت به فعالیت کندتری که براساس تفکر سنجیده انجام شده است، موفق تر است.
تمام مهارتهای لازم تست تورینگ، به عامل اجازه میدهند که عقلایی عمل کند. نمایش دانش و استدلال، عامل ها را قادر میسازد تا تصمیمات خوبی اتخاذ کنند. باید قادر به تولید جملات توصیفی در زبان طبیعی باشیم، زیرا این جملات در جامعه ی پیچیده به ما کمک میکنند. یادگیری فقط برای علم و دانش نیست، بلکه توانایی ما را در تولید رفتارهای موثر، بهبود میبخشد. رهیافت عامل خردمند نسبت به رهیافت های دیگر ، دو امتیاز دارد. اولا نسبت به رهیافت “قوانین تفکر” کلی تر است. زیرا استنتاج درست، فقط یکی از چند راهکار ممکن برای حصول عقلایی بودن است. ثانیا قانون پذیری پیشرفت های علمی نسبت به رهیافت های مبتنی بر تفکر یا رفتارهای انسانی، بیشتر است، زیرا استاندارد عقلایی به وضوح تعریف شد و کاملا کلی است. از طرف دیگر رفتار انسان به خوبی با محیط تطبیق میکند و محصول یک پردازش تکامل یافته ی ناشناخته و پیچیده است که هنوز دور از دسترس است.
عامل های هوشمند در هوش مصنوعی
قبلا عامل های خردمند (عقلایی) را به عنوان مرکز ثقل رهیافت هوش مصنوعی مشخص کردیم. در این بخش ، این فرضیه را دقیق تر بررسی میکنیم. خواهیم دید که مفهوم عقلانیت (خردگرایی) میتواند به دامنه وسیعی از عاملهایی که در هر محیطی عمل میکنند، اعمال شود. با توجه به اینکه بعضی از عامل ها بهتر از عامل های دیگر رفتار میکنند، به ایده ی “عامل خردمند” یا “عامل عقلایی” میرسیم. “عامل خردمند” عاملی است که حتی الامکان خوب عمل میکند. عملکرد عامل به ماهیت محیط بستگی دارد. بعضی از محیط ها دشوارتر از محیط های دیگر هستند.
♦ عامل ها و محیط ها
عامل هر چیزی است که قادر است محیط خود را از طریق حسگرها (سنسور ها) درک کند و از طریق محرک ها عمل کند. عامل انسانی دارای چشم، گوش و اعضای دیگری برای حس کردن، و دست، پا و دهان و اعضای دیگر به عنوان محرک هایی برای عمل کردن است. عامل روباتیک ممکن است شامل دوربین ها و مادون قرمر و فاصله سنج برای سنسورها و موتورهای متعددی به عنوان محرک ها باشد. عامل نرم افزاری “بسته های شبکه” ، محتویات فایل و ورودی های صفحه کلید را به عنوان ورودی حسی دریافت میکند و از طریق نوشتن در صفحه نمایش، نوشتن در فایل ها و ارسال بسته های شبکه، عمل میکند. از واژه ادراک (percept) برای ورودی های ادراکی عامل در هر لحظه استفاده میکنیم. دنباله ی ادراک یا توالی ادراک عامل، سابقه ی کامل هر چیزی است که عامل تاکنون درک کرده است. به طورکلی، انتخاب فعالیتی (کنشی) توسط عامل در هر لحظه، میتواندبه کل دنباله ی ادراک تا آن زمان بستگی داشته باشد. اگر بتوانیم فعالیت انتخابی عامل را برای هر دنباله ی ادراکی مشخص کنیم، همه چیز را در مورد عامل مطرح کرده ایم. از نظر ریاضی، میگوییم رفتار عامل توسط تابع عامل توصیف میشود که هر دنباله ی ادراک را به یک فعالیت نقش میکند.
تابع عامل را میتوانیم به صورت جدول نشان دهیم تا هر عاملی را تشریح کند. برای اغلب عامل ها، این جدول بسیار بزرگ خواهد بود، ولی میتوانیم حدی را برای طول دنباله ی ادراک در نظر بگیریم. برای ساخت جدول عامل، تمام دنباله های ادراک را در نظر گرفته فعالیت هایی را که عامل در پاسخ به آنها انجام میدهد، ذخیره میکنیم، البته این جدول یک شی ء خارجی است که عامل را مشخص میکند. تابع عامل مربوط به عامل مصنوعی، به طور داخلی توسط برنامه ی عامل پیاده سازی می شود. این دو ایده را از هم تفکیک میکنیم. تابع عامل یک توصیف ریاضی انتزاعی است، و برنامه عامل، پیاده سازی دقیقی است که در معماری عامل اجرا می شود.
تأکید میکنیم که فرضیه ی عامل، ابزاری برای تحلیل سیسیتم هاست، نه یک ویژگی خاص برای تقسیم دنیا به عامل و غیر عامل ها. ماشین حساب را میتوان عاملی در نظر گرفت که با توجه به “دنباله ادراک” ، “=2+2” نماد “4” را نمایش میدهد. اما این تحلیل منجر به درک ماشین حساب نمیشود. از جهاتی تمام حوزه های مهندسی را می توان طراحی کننده ی محصولات مصنوعی دانست که با دنیا تعامل دارند؛ AI (از نظر مؤلفین) در انتهای این طیف واقع است، که در آنجا، محصولات مصنوعی، منابع محاسباتی ارزشمندی دارند و محیط کار ، نیازمند تصمیم گیری مهم است.
♦ رفتار خوب : مفهوم خردمندی یا عقلانیت
عامل خردمند، عاملی است که رفتار خوب انجام میدهد- از نظر ادراکی، به معنای این است که هر عنصر جدول مربوط به تابع عامل، به درستی پر میشود. روشن است که انجام “رفتار درست”، بهتر از انجام “رفتار نادرست” است، اما معنای “رفتار درست” چیست؟ پاسخ به این پرسش قدیمی را، به روش قدیمی ارائه می دهیم: به در نظر گرفتن نتایج رفتار عامل. وقتی یک عامل در محیطی قرار گرفت، بر اساس آنچه که از محیط دریافت می کند، دنباله ای از فعالیت ها را انجام میدهد. این دنباله از فعالیت ها، موجب میشود که محیط از حالتی به حالت دیگر برود، یعنی محیط از دنباله ای از حالت ها عبور میکند. اگر این دنباله از حالتها مطلوب باشد، آنگاه این عامل به درستی عمل کرده است. برای تعیین مطلوب بودن دنباله ای از فعالیت ها، از مفهوم معیار کارایی استفاده میکنیم، که هر دنباله از حالت های محیط را ارزیابی میکند.
توجه کنید که حرف از حالتهای محیط زدیم نه حالتهای عامل. اگر موفقیت را بر اساس نظر عامل در مورد رضایت خود از کارایی اش تعریف کنیم، عامل می تواند خودش را فریب دهد و کارایی خود را بالا بداند و از آنجا نتیجه بگیریم که با خردمندی کامل عمل کرده است. مخصوصا عامل های انسانی، در مواردی که قرار است راجع به موضوعی تصمیم گیری کنند که در آن تصمیم گیری ، سودی به آنها نمیرسد، سابقه ی بدی دارند (سعی می کنند همه چیز را به نفع خود تمام کنند).
روشن است برای تمام کارها و عامل ها، یک معیار کارایی ثابت وجود ندارد؛ معمولا طراح، یک معیار را برای شرایط خاصی ، مناسب می بیند. این کار، چندان آسان نیست.
• خردمندی یا عقلانیت (rationality)
خردمند بودن در هر زمان به چهار چیز بستگی دارد:
1. معیار کارایی که ملاک های موفقیت را تعریف می کند.
2. دانش قبلی عامل نسبت به محیط.
3. فعالیتهایی که عامل میتواند انجام دهد.
4. دنباله ی ادراک عامل در این زمان.
به این ترتیب میتوانیم عامل خردمند را بصورت زیر تعریف کنیم:
برای هر دنباله از ادراک ممکن، عامل خردمند (عقلایی) باید فعالیتی را انتخاب کند که انتظار میرود معیار کارایی اش را به حداکثر برساند. این کار با توجه به شواهدی که از طریق این دنباله ادراک به دست می آید و دانش درونی عامل، صورت می گیرد.
• همه چیزدانی، یادگیری و خود مختاری
باید بین “همه چیزدانی” و خردمندی تمایز قائل شویم. عامل “همه چیزدان”، خروجی واقعی فعالیت های خودش را می داند و می تواند بر اساس آن عمل کند. اما “همه چیزدان” بودن عامل، غیرممکن است. این مثال را در نظر بگیرید: من روزی در حال قدم زدن با احمد هستم و دوست قدیمی خود را در آن طرف خیابان می بینم. هیچ ترافیکی وجود ندارد و “خردمندی” حکم میکند که در عرض خیابان حرکت کنم. در همین حال، در فاصله 33000 فوتی، یک هواپیمای مسافری با هواپیمای باری برخورد میکند و قبل از اینکه به آن طرف خیابان بروم، نقش بر زمین میشوم. آیا عبور از عرض خیابان، عقلایی (خردمندی) نبود؟ بعید است کسی بگوید که عبور از عرض خیابان حماقت بوده است.
این مثال نشان میدهد که خردمندی با “کمال مطلوب” متفاوت است. خردمندی، کارایی مورد انتظار را به حداکثر میرساند، در حالیکه کمال مطلوب، کارایی واقعی را به حداکثر می رساند. دست برداشتن از خواسته ی “کمال مطلوب”، فقط به معنای منصف بودن نسبت به عامل ها نیست. موضوع این است که، اگر انتظار داشته باشیم عامل، بهترین فعالیت را انجام دهد، نمیتوان عاملی طراحی کرد که با این مشخصات جور درآید، مگر اینکه کارایی جام جهان نما یا ماشین های زمان را بهبود بخشیم.
تعریفی که ما از خردمندی ارائه دادیم، نیاز به “همه چیزدانی” ندارد. زیرا انتخاب عقلایی (در یک زمان) فقط به “دنباله ادراک” در آن زمان بستگی دارد. باید مطمئن باشیم که ندانسته اجازه ندهیم که عامل به فعالیت های غیرهوشمند بپردازد. انجام فعالیت به منظور اصلاح ادراک های آینده، که گاهی جمع آوری اطلاعات نام دارد، بخش مهمی از خردمندی است. مثال دیگری از جمع آوری اطلاعات، از طریق اکتشاف صورت میگیرد. این تعریف، مستلزم آن است که عامل نه تنها باید اطلاعات را جمع آوری کند، بلکه باید از آنچه که درک میکند، یاد بگیرد. پیکربندی اولیه ی عامل می تواند دانشی از محیط را ارائه کند، اما هر چه که عامل تجربه بیشتری کسب میکند، ممکن است پیکربندی آن تغییر کند. موارد زیادی وجود دارد که محیط از قبل شناخته شده است. در این موارد لازم نیست عامل درک کند یا بیاموزد، زیرا به درستی عمل خواهد کرد. البته چنین عاملهایی خیلی آسیب پذیر هستند.
اگر عامل به جای ادراکات خود، براساس دانش قبلی طراح خود رفتار کند، می گوییم عامل خودمختار نیست. عامل خردمند باید خودمختار باشد. باید یاد بگیرد که نقص دانش قبلی را چگونه جبران کند. به عنوان یک موضوع عملی، عامل در ابتدا به خودمختاری کامل نیاز ندارد: وقتی عامل تجربه ای ندارد یا تجربه کمی دارد، باید به طور تصادفی عمل کند، مگر اینکه طراح به آن کمک کند. لذا، همان طور که تکامل حیوانات ، واکنش های ذاتی را برای آنها ایجاد میکند تا بیشتر زنده بمانند و به یادگیری خود بیفزایند، منطقی است که بتوان یک عامل هوش مصنوعی را ایجاد کرد که علاوه بر دانش اولیه، قدرت یادگیری داشته باشد. پس از تجربیات کافی با محیط خود ، رفتار عامل خردمند میتواندمستقل از دانش اولیه اش باشد. لذا، توانایی یادگیری منجر به طراحی عاملی میشود که در محیط های مختلف، موفق است.
ماهیت محیط های عامل های هوشمند
برای ساخت عاملهای خردمند، ابتدا باید راجع به محیط های کار فکر کنیم که “مسئله هایی” هستند که عاملهای هوشمند باید آنها را حل کنند. ابتدا چگونگی مشخص کردن محیط کار را بررسی میکنیم، سپس نشان خواهیم داد که محیط های کار، تنوع زیادی دارند.
ماهیت محیط های عامل های هوشمند
برای ساخت عاملهای خردمند، ابتدا باید راجع به محیط های کار فکر کنیم که “مسئله هایی” هستند که عاملهای هوشمند باید آنها را حل کنند. ابتدا چگونگی مشخص کردن محیط کار را بررسی میکنیم، سپس نشان خواهیم داد که محیط های کار، تنوع زیادی دارند. هر نوع محیط وظیفه، مستقیما، طراحی مناسب “برنامه ی عامل” را تحت تاثیر قرار میدهد.
♦ تعیین کردن محیط کار
تعیین نوع عامل، معیار کارایی، محیط، حسگرها (سنسورها) و محرک ها را تحت عنوان محیط کار دسته بندی می کنیم. برای خلاصه ، این ها را به نام PEAS می خوانیم. اولین قدم در طراحی عامل، مشخص کردن محیط کار آن است. برای مثال، از مسئله ی “راننده تاکسی خودکار” (اتوماتیک) استفاده میکنیم. توجه کنید که تاکسی خودکار مورد بحث ما، خارج از قابلیت های فناوری فعلی است. وظیفه رانندگی، محدودیتی در ترکیب شرایط ندارد. هر یک از عناصر محیط کار را بیشتر مورد بحث قرار میدهیم.
معیار کارایی مربوط به راننده خودکار چییست؟ کیفیت های مطلوب عبارتنداز: رسیدن به مقصد درست، کم بودن مصرف سوخت و استهلاک، کم کردن زمان مسافرت و هزینه، کم کردن نقض قوانین ترافیک و اذیت کردن سایر رانندگان، حداکثر امنیت و راحتی مسافر، حداکثر سود. بدیهی است که بعضی از این اهداف متضاد هستند و باید متوازن شوند.
محیط تاکسی کجاست؟ هر راننده تاکسی باید با جاده ها سروکار داشته باشد، از جاده های یک طرفه تا بزرگ راه ها. جاده ها شامل ترافیک دیگری است، مثل عابرین پیاده، حیوانات، کارهای جاده ای، اتومبیل پلیس، چاله ها و دست اندازها. تاکسی باید با مسافران واقعی و بالقوه نیز سروکار داشته باشد. انتخاب های اختیاری نیز سر راه تاکسی وجود دارند. تاکسی ممکن است در سمت راست یا چپ حرکت کند، یا در جایی حرکت کند که برف عامل مهمی است. بدیهی است که هر چه محیط محدودتر باشد، مسئله طراحی آسانتر خواهد بود.
محرک هایی که برای راننده خودکار مهیا هستند، شامل آنهایی است که برای راننده انسانی فراهم است: کنترل موتور از طریق گاز، و کنترل مسیر و ترمز. علاوه براین باید با نمایش خروجی در نمایشگر یا دستگاه صوتی، با مسافران صحبت کند، با وسایل نقلیه دیگر ارتباط برقرار کند و غیره.
تاکسی برای رسیدن به هدف خود در محیط رانندگی، باید موقعیت و سرعت فعلی خود را بداند. لذا حسگرهای اصلی آن شامل یک یا چند دوربین تصویربرداری قابل کنترل، سرعت سنج و کیلومتر شمار است. برای کنترل مناسب تاکسی، به خصوص در سر پیچ ها، باید شتاب سنج داشته باشد. باید از وضعیت مکانیکی تاکسی خبر داشته باشد، لذا نیاز به حسگر های موتور، سوخت و سیستم الکتریکی است. باید ابزارهایی داشته باشد که در تاکسی معمولی وجود ندارد: سسیستم ماهواره تعیین موقعیت جهانی (GPS) که اطلاعات مربوط به موقعیت را به همراه یک نقشه در اختیار آن قرار می دهد، حسگرهای مادون قرمز یا سونار، تا فاصله آن را از سایر وسایل نقلیه مشخص کند. نیاز به صفحه کلید یا میکروفون دارد تا با مسافران ارتباط برقرار کند و مسافران مقصد خود را اعلان کنند.
عامل های نرم افزاری (یا روبات های نرم افزاری یا softbots ) در حوزه های وسیع و متعددی وجود دارند. یک روبات نرم افزاری را در نظر بگیرید که برای شبیه سازی پرواز هواپیمای بزرگ طراحی شده است. شبیه ساز شامل محیط پیچیده و با جزئیات زیاد است که حاوی هواپیما ها و عملیات زمینی است و عامل نرم افزاری باید فعالیت های متنوعی را در زمان بی درنگ انتخاب کند. برای این کار باید توانایی پردازش زبان طبیعی را داشته باشد، باید بیاموزد که هر مشتری به چه چیزی علاقمند است، و نقشه اش را بطور پویا (دینامیک) تغییر دهد. اینترنت محیطی است که پیچیدگی آن با دنیای فیزیکی برابری می کند و سکنه ی آن شامل عامل های مصنوعی متعددی هستند.
♦ خواص محیط های کار (task environment)
بدیهی است که حدود محیط های کار AI بسیار گسترده است. می توانیم محیط های کار را به چند بعد تقسیم کنیم. این ابعاد، طراحی مناسب عامل و قابلیت اجرای هر خانواده از تکنیک ها را برای محیط عامل تعیین میکنند. این ابعاد عبارتنداز:
• “کاملا قابل مشاهده” در مقابل “پاره ای قابل مشاهده” (Fully observable vs. partially observable) :
اگر سنسور ها یا حسگرهای عامل، در هر زمان امکان دستیابی کامل به حالت محیط را فراهم کنند، می گوییم آن محیط کاملا قابل مشاهده است. محیط وظیفه، وقتی کاملا قابل مشاهده است که حسگرها تمام جنبه های مرتبط با فعالیت را تشخیص دهند. مرتبط بودن، به معیار کارایی بستگی دارد، محیط های کاملا قابل مشاهده، راحت هستند، زیرا لازم نیست عامل هیچ “حالت داخلی” را برای ردیابی دنیای خارج نگهداری کند. محیط ممکن است به دلیل وجود حسگرهای شلوغ و غیر دقیق ، از دست دادن بخشی از حالت توسط حسگر، کاملا قابل مشاهده نباشد.به عنوان مثال، تاکسی خودکار نمیتواند ببیند که رانندگان دیگر در حال فکر کردن هستند. اگر عامل فاقد سنسور باشد، آنگاه محیط آن غیر قابل مشاهده است. ممکن است تصور کنید که در اینگونه موارد، عامل نتواند به هدف خود برسد، اما اینطور نیست.
• تک عاملی در برابر چند عاملی (Single agent vs. multiagent) :
تمایز بین محیط های تک عاملی و چند عاملی، ساده به نظر می رسد. به عنوان مثال، عاملی که جدول کلمات متقاطع را به تنهایی حل می کند، بدیهی است که در محیط تک عاملی قرار دارد. در حالیکه عاملی که شطرنج بازی میکند در محیط دو عاملی قرار دارد. نکات ظریفی وجود دارد، که باید بررسی شود. اولا توضیح دادیم که چگونه یک موجودیت، به عنوان یک عامل در نظر گرفته می شود، ولی توضیح ندادیم که کدام موجودیت ها باید به عنوان عامل دیده شوند. آیا عامل A (مثل راننده تاکسی) باید با شی ء B (وسیله نقلیه دیگر) به عنوان یک عامل رفتار کند، یا میتواند با آن به عنوان شی ئی برخورد کند که براساس قوانین فیزیکی رفتار می کند، مثل موج ساحل یا حرکت برگها در اثر باد؟ نکته مهم این است که آیا بهتر است رفتار B به عنوان ماکزیمم کننده ی معیار کارایی توصیف شود که مقدار آن به رفتار عامل A بستگی دارد یا خیر. بعنوان مثال، در شطرنج، رقیب موجودیت B سعی میکندمعیار کارایی را به حداکثر برساند، و براساس قاعده شطرنج، معیار کارایی عامل A به حداقل برسد. لذا، شطرنج، یک محیط چند عاملی رقابتی است. از طرف دیگر، در محیط رانندگی تاکسی، اجتناب از تصادف ها، میزان کارایی تمام عامل ها را افزایش می دهد و در نتیجه ، این محیط یک محیط چندعاملی همیاری جزئی است. به این دلیل که، مثلا فقط یک اتومبیل می تواند فضای پارک را به خود اختصاص دهد. مشکلاتی که در طراحی عامل در محیط چند عاملی رخ میدهد، متفاوت از محیط تک عاملی است. به عنوان مثال، در محیط های چند عاملی، ارتباطات غالبا به عنوان رفتار عقلایی عامل ها ظاهر می شود. در بعضی از محیط های رقابتی، رفتار تصادفی، عقلایی است، زیرا مشکلات قابلیت پیش بینی را ندارند.
• قطعی در مقابل اتفاقی (Deterministic vs. stochastic) :
اگر حالت بعدی محیط کاملا توسط حالت فعلی و عملی که عامل در حال انجام آن است، کاملا قابل تعیین باشد، می گوییم این محیط، قطعی است، وگرنه این محیط اتفاقی است. در اصل، عامل نباید در یک محیط قطعی و کاملا قابل مشاهده، نگران عدم اطمینان باشد. (در تعریف ما، عدم اطمینان ناشی از سایر عامل ها را در محیط چند عامل، نادیده می گیریم؛ بنابراین، در یک بازی حتی اگر هیچ عاملی نتواند فعالیت های عامل های دیگر را پیش بینی کند، این بازی میتواند قطعی باشد). اگر محیط پاره ای قابل مشاهده باشد، ممکن است اتفاقی به نظر برسد. بعضی از وضعیت های واقعی، آنقدر پیچیده هستند که نگهداری تمام جنبه های مشاهده نشده ی آن، غیر ممکن است؛ برای اهداف عملی، باید با آنها بصورت غیر قطعی یا اتفاقی رفتار کرد. اگر محیطی کاملا قابل مشاهده نباشد یا غیر قطعی باشد، می گوییم این محیط غیر قابل اعتماد یا نامطمئن است. منظور از واژه ی “غیر قطعی” این است که عدم اعتماد نسبت به نتایج، بر حسب احتمالات تعیین میشود؛ محیط غیر قطعی، محیطی است که در آن، فعالیت ها بر اساس نتایج ممکن مشخص می گردد، ولی هیچ احتمالی به آنها نسبت داده نمیشود. توصیف های محیط غیر قطعی، معمولا همراه با معیارهای کارایی است که برای موفقیت عامل در تمام نتایج ممکن از فعالیت های خود، ضروری است.
• مرحله ای در مقابل ترتیبی (Episodic vs. sequential) :
در یک محیط کار مرحله ای (تقسیم پذیر) ، تجربه ی عامل به چند بخش اتمیک و یکپارچه تقسیم می شود. در هر مرحله، عامل چیزی را درک میکند و یک عمل را بر اساس آن انجام می دهد. مرحله ی بعدی، به فعالیتهای انجام شده در مراحل قبل بستگی ندارد. بسیاری از وظایف طبقه بندی، مرحله ای هستند. برای مثال، عاملی که باید قطعات معیوب را در خط مونتاژ علامت گذاری کند، براساس قطعه ی فعلی تصمیم میگیرد، و این تصمیم گیری ربطی به تصمیم گیری های قبلی ندارد. علاوه براین،تصمیمی که بر روی قطعه یفعلی گرفته میشود، تاثیری در معیوب بودن قطعه ی بعدی ندارد. از طرف دیگر در محیط های ترتیبی یا پی در پی، تصمیم فعلی میتواند برر تمام تصمیمیات بعدی موثر باشد. شطرنج و رانندگی تاکسی، محیط های ترتیبی دارند: در هر دو مورد فعالیت های کوتاه مدت میتواند نتایج دراز مدتی داشته باشد. محیط های مرحله ای خیلی ساده تر از محیط های ترتیبی هستند، زیرا لازم نیست عامل درباره آینده فکرکند.
• ایستا در مقابل پویا (Static vs. dynamic) :
اگر محیط در طول عمر عامل تغییر کند، می گوییم آن محیط برای آن عامل پویا ، وگرنه ایستا است. کار کردن در محیط های ایستا ساده است، زیرا لازم نیست عامل در هنگام تصمیم گیری، دنیا را ببیند و لازم نیست نسبت به زمان گذشته نگران باشد. محیط های پویا بطور پیوسته از عامل سوال میکنند که چه کاری می خواهد انجام دهد. اگر هنوز تصمیم نگرفته باشد، معنایش این است که تصمیم گرفته است کاری انجام ندهد. اگر محیط با گذر زمان تغییر نکند، ولی امتیازات کارایی عامل تغییر کند، می گوییم محیط نیمه پویا است. رانندگی تاکسی پویا است. اتومبیل های دیگر و خود تاکسی در حال حرکت هستند، در حالیکه الگوریتم رانندگی باید برای مرحله بعدی تصمیم بگیرد. اگر در بازی شطرنج فقط زمان مطرح باشد، نیمه پویا است.
• گسسته در مقابل پیوسته (Discrete vs. continuous) :
تمایز بین وضعیت گسسته و پیوسته می تواند به حالت محیط، اداره کردن زمان، و به ادراکات و فعالیت های عامل اعمال شود. به عنوان مثال، محیط گسسته مثل بازی شطرنج دارای چند حالت مجزای متناهی است. شطرنج دارای مجموعه گسسته ای از ادراکات و فعالیت هاست. رانندگی تاکسی یک مسئله حالت پیوسته و زمان پیوسته است: سرعت و مکان تاکسی و سایر وسایل نقلیه. از طریق بازه ای از مقادیر پیوسته عبور می کند و این کار را بطور یکنواخت در طول زمان انجام می دهد.
• شناخته شده در مقابل ناشناخته (Known vs. unknown) :
به عبارت دقیق تر، این تمایز به خود محیط مربوط نمیشود، بلکه به حالت دانش عامل در مورد “قوانین فیزیکی” محیط مربوط می شود. در محیط شناخته شده، نتایج مربوط به تمام فعالیت ها داده می شود. روشن است اگر محیط ناشناخته باشد عامل باید یاد بگیرد که این محیط چگونه کار می کند، تا بتواند تصمیمات درستی اتخاذ کند. توجه کنید که تمایز بین محیط های شناخته شده و ناشناخته، مثل تمایز بین محیط های کاملا “قابل مشاهده” و “پاره ای قابل مشاهده” نیست. ممکن است یک محیط شناخته شده ، بطور پاره ای قابل مشاهده باشد. برعکس، محیط ناشناخته میتواند کاملا قابل مشاهده باشد.
ساختار عامل های هوشمند
کار هوش مصنوعی (AI) طراحی برنامه ی عامل است که تابع عامل را پیاده سازی میکند، این تابع ادراکات را به فعالیت ها نگاشت میکند. در ادامه در مورد عملکرد داخلی عامل های هوشمند بحث می کنیم.
تاکنون رفتار عامل ها را توصیف کردیم. رفتار ، عملی است که پس از هر دنباله از ادراکات صورت می گیرد. اکنون در مورد عملکرد داخلی عامل ها بحث می کنیم. کار AI طراحی برنامه ی عامل است که “تابع عامل” را پیاده سازی می کند. تابع عامل، ادراکات را به فعالیت ها نگاشت می کند. فرض میکنیم این برنامه بر روی یک دستگاه محاسباتی با حسگرها و محرک های فیزیکی، یعنی معماری اجرا می شود: برنامه + معماری = عامل
بدیهی است برنامه ای که انتخاب می کنیم باید با معماری تناسب داشته باشد. اگر برنامه بخواهد فعالیتی مثل راه رفتن را انجام دهد، معماری باید دارای پا باشد. معماری ممکن است یک pc معمولی، اتومبیل روباتیک با چند کامپیوتر، دوربین و سایر حسگر ها باشد. بطور کلی معماری، از طریق حسگرهای موجود درک می کند، برنامه را اجرا می کند، و انتخاب های فعالیت برنامه را به محرک ها ارسال می کند.
♦ برنامه های عامل (agent programs)
برنامه های عامل درک فعلی را به عنوان ورودی از حسگرها (سنسورها) می پذیرند، و فعالیت را از طریق محرک ها انجام می دهند. توجه داشته باشید که ، برنامه عامل درک فعلی را به عنوان ورودی می گیرد، ولی تابع عامل کل سابقه درک را دریافت میکند. برنامه ی عامل، فقط درک فعلی را به عنوان ورودی می پذیرد، زیرا هیچ چیز دیگری از محیط در دسترس نیست. اگر فعالیت های عامل ، به کل “دنباله ی ادراک” بستگی داشته باشد، عامل باید کل ادراک ها را به یاد بیاورد.
برنامه عامل، از طریق شبه کد ساده ای توصیف میشود. بعنوان مثال، شکل زیر یک برنامه عامل ساده را نشان میدهد که “دنباله ادراک” را ردیابی کرده از آن به عنوان شاخصی در جدول فعالیت ها استفاده می کند تا تصمیم بگیرد چه کاری باید انجام دهد. این جدول، تابع عاملی را صریحا نشان میدهد که در برنامه ی عامل گنجانده شده است. برای ساخت عامل خردمند، باید جدولی بسازیم که برای هر دنباله ی ادراک ممکن ، دارای فعالیت های مناسبی باشد.
function TABLE-DRIVEN-AGENT (percept) returns an action
presistent: percepts, a sequence, initially empty table, a table of actions, indexed by percept sequences, initially fully specified
append percept to end of percepts
action <– LOOKUP(percepts,table)
return action
برای هر درک جدید فراخوانی می شود و هر بار فعالیتی را بر می گرداند. با استفاده از برنامه TABLE-DRIVEN-AGENT ساختمان داده های خود، دنباله ادراک را ردیابی می کند.
برنامه TABLE-DRIVEN-AGENT تابع عامل مطلوب را پیاده سازی میکند. چالش مهم AI، چگونگی نوشتن برنامه ای است که با استفاده از یک کد کوچک (به جای جدول بزرگ)، رفتار عقلایی را انجام دهد. مثال های زیادی داریم که نشان می دهد، این کار امکان پذیر است. به عنوان مثال، جدول های بزرگ ریشه دوم که قبل از دهه 1970 توسط مهندسین و دانش آموزان مورد استفاده قرار گرفت، جای خود را به یک برنامه 5 خطی داده است که از روش نیوتن استفاده میکند و در ماشین حساب های الکترونیکی قابل استفاده است. AI همان کاری را انجام می دهد که نیوتن برای ریشه دوم انجام میدهد.
در ادامه، چهار نوع برنامه عامل را بررسی می کنیم که قواعد مربوط به تمام سیستم های هوشمند را دربر می گیرد. هر نوع برنامه ی عامل, اجزای خاصی را به روش های خاصی با هم ترکیب میکند تا فعالیت را انجام دهد.
♦ عامل های واکنشی ساده (simple reflex agents)
ساده ترین نوع عامل ها، عامل واکنشی ساده است. این عامل ها فعالیت ها را بر اساس درک فعلی و بدون در نظر گرفتن سابقه ی ادراک، انتخاب میکنند. فرض کنید راننده ی تاکسی خودکار هستید. اگر اتومبیل جلویی ترمز کند و چراغ ترمز آن روشن شود، باید آن را تشخیص دهید و ترمز کنید. به عبارت دیگر ، برخی پردازش ها بر روی دریافت اطلاعات تصویر ورودی صورت می گیرد تا شرایطی که ما آن را “ترمزکردن اتومبیل جلویی” می نامیم رخ دهد، سپس این رویداد موجب فعال شدن برخی اتصالات موجود در برنامه عامل خواهد شد و عمل “اقدام به ترمز” را فعال می سازد. این اتصال را قانون شرط فعالیت یا قانون شرط کنش می نامیم: اگر اتومبیل جلویی ترمز کرد آنگاه اقدام به ترمز کن.
انسان نیز چنین اتصالاتی دارد، که بعضی از آنها پاسخ های آموخته شده هستند (مثل رانندگی) و بعضی دیگر غریزی هستند (مثل بستن چشم هنگام نزدیک شدن شی ء ای به آن). روش کلی و قابل انعطاف این است که یک مفسر همه منظوره برای قوانین شرط فعالیت ساخته شود و سپس مجموعه ای از قوانین برای محیط های کار خاص ایجاد گردد. در شکل زیر، برنامه ی عامل نشان داده شده است که خیلی ساده است. تابع INTERPRET-INPUT با استفاده از ادراک، یک توصیف انتزاعی از حالت فعلی ایجاد میکند، و تابع RULE-MATCH اولین قانون موجود در مجموعه ای از قوانین را بر می گرداند که با توصیف حالت خاص مطابقت دارد:
function SIMPLE-REFLEX-AGENT (percept) returns an action
presistent: ruless, a set of condition-action rules
state <– INTEERPRET-INPUT (percept)
rule <– RULE-MATCH (state,rules)
action <– rule.ACTION
return action
عامل واکنشی ساده براساس قانونی عمل می کند که شرط آن با حالت فعلی که توسط ادراک تعریف شده است، تطبیق می کند.
“عامل های واکنشی ساده”، خواص ساده ولی هوش اندکی دارند. عامل تعریف شده در شکل بالا در صورتی کار میکند که تصمیم درستی براساس ادراک فعلی اتخاذ گردد. یعنی در صورتیکه محیط کاملا قابل مشاهده باشد. حتی عدم قابلیت مشاهده ی کوچک نیز ممکن است مشکلاتی را ایجاد کند.
اجتناب از حلقه های بی نهایت، در صورتی ممکن است که عامل بتواند فعالیت خود را تصادفی کند. در بعضی موارد، “عامل واکنشی ساده ی تصادفی” ممکن است مثل “عامل واکنشی ساده ی قطعی” عمل کند. رفتار تصادفی درست، در بعضی از محیط های چند عاملی میتواند عقلایی باشد. در محیط های تک عاملی، فعالیت تصادفی معمولا عقلایی نیست. این روش، در بعضی از وضعیت ها به عامل واکنشی ساده کمک می کند. اما در اغلب موارد، با استفاده از عامل های قطعی تخصصی، بهتر می توان عمل کرد.
♦ عامل های واکنشی مبتنی بر مدل (model-based reflex agents)
موثرترین راه برای اداره کردن محیط “پاره ای قابل مشاهده” این است که عامل، بخشی از دنیایی را که فعلا نمیتواند ببیند، نگهداری کند. یعنی عامل باید حالت داخلی را ذخیره کند که به سابقه ی ادراک بستگی دارد و در نتیجه، بعضی از جنبه های مشاهده نشده ی حالت فعلی را منعکس می سازد. برای مسئله ترمز کردن، حالت داخلی چندان گران نیست، زیرا فریم قبلی دوربین، به عامل اجازه می دهد که تشخیص دهد چه زمانی دو لامپ قرمز موجود در لبه های اتومبیل همزمان خاموش یا روشن می شوند. برای کارهای دیگر رانندگی، مثل تغییر مسیر، عامل باید بداند که اتومبیل های دیگر در کجا قرار دارند (اگر نمیتواند همزمان آنها را ببیند).
تغییر این اطلاعات داخلی با مرور زمان، مستلزم دو نوع دانش است که باید در برنامه عامل کدنویسی شود. اولا باید بدانیم که دنیا چگونه مستقل از عامل تکامل می یابد. ثانیا، باید بدانیم که فعالیت های عامل، چه تاثیری در دنیا دارد. این دانش درباره ی “چگونگی عملکرد جهان” چه به صورت مدارهای منطقی ساده پیاده سازی شود یا به صورت تئوری های علمی، مدلی از دنیا نام دارد. عاملی که از چنین مدلی استفاده میکند، عامل مبتنی بر مدل نام دارد. برنامه عامل در شکل زیر نشان داده شده است. بخش جالب، تابع UPDATE-STATE است که مسئول ایجاد توصیف جدیدی از حالت داخلی است. جزئیات چگونگی نمایش مدل ها و حالت ها، به نوع محیط و فناوری استفاده شده در طراحی عامل بستگی دارد.
function MODEL-BASED-REFLEX-AGENT (percept) returns an action
presistent: state, the agent’s current conception of the world state
model, a description of how the next state depends on current state and action
rules, a set of condition-action rules
action, the most recent action, initially none
state <– UPDATE-STATE (state, action, peercept, model)
rule <– RULE-MATCH (state,rules)
action <– rule.ACTION
return action
عامل واکنشی مبتنی بر مدل، حالت فعلی دنیا را با یک مدل داخلی ردیابی، و همانند عامل واکنشی ساده، فعالیتی را انتخاب میکند.
♦ عامل های مبتنی بر هدف (goal-based agents)
داشتن اطلاعات در مورد حالت فعلی محیط، همیشه برای تصمیم گیری در مورد عملی که باید انجام گیرد، کافی نیست. به عنوان مثال، در جاده، تاکسی می تواند به چپ، راست یا مستقیم برود. تصمیم گیری درست، به مقصد تاکسی بستگی دارد. به عبارت دیگر، علاوه بر توصیف حالت فعلی، عامل به اطلاعات هدف نیاز دارد که موقعیت مطلوب را توصیف می کند. بعنوان مثال، می توان به مقصد مسافر اشاره کرد. “برنامه عامل” می تواند این اطلاعات را با اطلاعاتی دزبازه نتایج فعالیتهای ممکن ترکیب کندتا فعالیتی را برای رسیدن به هدف انتخاب نماید.
گاهی انتخاب فعالیت در عامل مبتنی بر هدف آسان است (وقتی که رضایت از هدف، بلافاصله از یک فعالیت به دست می آید). گاهی این انتخاب پیچیده خواهد بود (وقتی که عامل باید دنباله های طولانی را در نظر بگیرد تا راهی برای دستیابی به هدف پیدا کند). جست وجو و برنامه ریزی ، حوزه های فرعی AI هستند که دنباله ای از فعالیت ها را برای دستیابی عامل به هدف، پیدا می کنند. توجه کنید که این نوع تصمیم گیری با “قوانین شرط فعالیت” که شرح آنها گذشت متفاوت است، به طوری که باید آینده را در نظر گرفت: “اگر چنین و چنان کنم، چه اتفاقی می افتد؟” ، “این مراحل مرا خوشحال می کند”. در طراحی های عامل واکنشی، این اطلاعات صریحا نمایش داده نمی شوند، زیرا قوانین داخلی، مستقیما از ادراکات به فعالیت ها نگاشت می شوند. عامل واکنشی، وقتی ترمز می کند که لامپ های ترمز را ببیند. در اصل عامل مبتنی بر هدف نتیجه می گیرد که اگر چراغ ترمز اتومبیل جلویی روشن شود، سرعت آن کاهش می یابد. با توجه به چگونگی تکامل جهان، تنها عملی که منجر به برخورد با اتومبیل دیگر نمیشود، ترمز کردن است.
گرچه عامل مبتنی ببر هدف کارایی چندانی ندارد، قابلیت انعطاف آن بیشتر است. زیرا دانشی که از تصمیمات آن پشتیبانی می کند، صریحا نمایش داده می شود و قابل اصلاح است. برای عامل واکنشی، باید بسیاری از “قوانین شرط فعالیت” را بازنویسی کنیم. رفتار عامل مبتنی بر هدف می تواند تغییر کند تا به هدف مورد نظر برسد.
♦ عامل های مبتنی بر سودمندی (utility-based agents)
در بسیاری از محیط ها، اهداف، برای تولید رفتاری با کیفیت بالا کافی نیستند. بعنوان مثال، چندین دنباله از فعالیت ها وجود دارند که تاکسی را به مقصد می رسانند، اما بعضی از آنها سریع تر، امن تر، مطمئن تر یا ارزانتر از دنباله های دیگر است. اهداف آنها، فقط ملاک ناپخته ای را بین وضعیت “رضایت” و “نارضایتی” ارائه میکنند، در حالیکه معیار کارایی عمومی باید مقایسه ای بین وضعیت های دنیای متفاوت (با دنباله حالات) را براساس چگونگی رضایت عامل، در صورت نائل شدن به هدف ارائه کند. چون “رضایت” اساس علمی ندارد، دانشمندان کامپیوتر و اقتصاد از واژه ی “سود” یا “سودمندی” استفاده می کنند. “معیار کارایی” به هر دنباله از حالتهای محیط، امتیازی را نسبت می دهد، و به این ترتیب می تواند بین مسیرهای مطلوب تر و نامطلوب برای رسیدن به مقصد تاکسی، تمایز قائل شود. تابع سودمندی عامل، معیار کارایی را در داخل عامل تعیین می کند. اگر “تابع سودمندی داخلی” و “معیار کارایی خارجی” سازگار باشند، آنگاه عاملی که فعالیت هایی را برای ماکزیمم کردن سودمندی خود انتخاب می کند، خردمندانه عمل می کند.
این روش، تنها روش خردمند بودن نیست، اما همانند عامل های مبتنی بر هدف، عامل های مبتنی بر سودمندی از نظر قابلیت انعطاف و یادگیری، امتیازات زیادی دارند. علاوه بر این، در دو مورد اهداف چندان روشن نیستند، ولی عامل مبتنی بر سودمندی هنوز میتواند تصمیمات خردمندانه بگیرد. اولا، وقتی اهداف با هم متضاد باشند فقط بعضی از آنها قابل دستیابی هستند، که در این مورد تابع سودمندی، توازن مناسبی را بین اهداف متضاد برقرار میکند. ثانیا، وقتی چندین هدف وجود دارند که عامل میتواندبرای دستیابی به آنها کمک کند، ولی هیچ کدام از آنها با اطمینان قابل دستیابی نباشند، تابع سودمندی میتواند احتمال موفقیت اهداف را بر حسب اهمیت آنها ، افزایش دهد.
خاصیت “پاره ای قابل مشاهده” و خاصیت اتفاقی، در سراسر دنیای واقعی وجود دارد. و در نتیجه، تصمیم گیری تحت شرایط عدم اطمینان انجام می شود. از نظر تکنیکی، عامل خردمند مبتنی بر سودمندی، فعالیتی را انتخاب میکند که سود مورد انتظار مربوط به نتایج آن فعالیت، ماکزیمم باشد. منظور از سود مورد انتظارف سودی است که عامل انتظار دارد بطور میانگین، با توجه به احتمالات و سود هر یک از نتایج، به دست آورد. عاملی که دارای یک “تابع سودمندی” صریح است، می تواند تصمیم خردمندانه اتخاذ کند. برای این تصمیم گیری ،از یک الگوریتم همه منظوره استفاده میکند که به تابع سودمندی خاصی بستگی ندارد.
Source _
سلام
خیلی عالی بود چون مسائل رو باز کردین.
خیلی ممنون.
با سلام و تشکر بابت مطالب خوبتون
دوتاسوال داشتم حقیقتش درسش رو من زیاد متوجه نمیشم که خودم بتونم حل کنم ممنون میشم اگه کمک کنید
برای عامل های زیرمعیارهای زیرمحرک ها و حسگرهاراتعیین کنید
عامل فروش اینترنتی کتاب،ربات فوتبالیست,مریخ نورد خودمختار
یک شبیه ساز کارایی محیط برای دنیای جاروبرقی طراحی کنید که درآن حسگرهاوزباله ها پیمانه ای باشند
الف عامل واکنشی ساده (جاروازچپ ب راست و بالا ب پایین)
ب عامل واکنشی که ب طور تصادفی حرکت میکند
ج عاملی که ابتدا نزدیکترین زباله راپاکسازی میکند
د عاملی که در ان عمل مکش فقط در بیست و پنج درصدمواردموفقیت امیز است(قانون مورفی)
بسیار عالی بود استاد گرامی
نظر لطف شماست
سلام مطالبتون خوب بود.
میشه برام ۴ تا محیط عامل پیدا کنید؟
مثل راننده تاکسی خود مختار
سلام از بنده
خواهش می کنم
اتفاقا قصد داشتم در مطلبی دیگه این موضوع رو با جزئیات کامل تشریح کنم اما متاسفانه مشغله های کاریم این اجازه رو به من نداده، امیدوارم به زودی موفق به انجام اینکار بشم و اگر در خبرنامه ایمیلی عضو باشید قطعا به محض انتشار اون در جریان قرار خواهید گرفت.
خسته نباشید استاد راجب عامل استراتژیک هم مطلب بذارین لطفن
سلام علی عزیز
زنده باشید
دقیقا شبیه به همون جوابی که به دوستمون دادم رو باید به شما هم بدم :
اتفاقا قصد داشتم در مطلبی دیگه این موضوع رو با جزئیات کامل تشریح کنم اما متاسفانه مشغله های کاریم این اجازه رو به من نداده، امیدوارم به زودی موفق به انجام اینکار بشم و اگر در خبرنامه ایمیلی عضو باشید قطعا به محض انتشار اون در جریان قرار خواهید گرفت.
ممنون مطالبتون خیلی خوب بود خصوصا برای پروژه ی من
موفق باشی
خوشحالم از اینکه این مطلب براتون کارساز بوده
پاینده باشید
باسلام و وقت بخیر
ممنون از مطالب آموزندتون. میشه لطف کنید انواع روش های هوش مصنوعی رو فقط نامشو برام ببرید؟
باتشکر
سلام سیاوش عزیز
فکر می کنم جواب سئوالتون رو بتونید از لینک زیر بگیرید:
https://fa.wikipedia.org/wiki/%D9%87%D9%88%D8%B4_%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C
سلام ی سوال داشتم تعریف معیارکاراییبرای یک عامل وظیفه طراح عامل است یا خودعامل؟
روشن است برای تمام کارها و عامل ها، یک معیار کارایی ثابت وجود ندارد؛ معمولا طراح، یک معیار را برای شرایط خاصی، مناسب می بیند.