پایان نامه هوش مصنوعی
چكيده
هدف از اين پروژه آشنائي با هوش مصنوعي به عنوان سمبل ونماد دوران فراصنعتي و نقش و كاربرد آن در صنايع و مؤسساتتوليدي ميباشد. بدين منظور، اين موضوع در قالب 3 فصل ارائه ميشود. در (فصل اول) كليات هوش مصنوعي موردمطالعه قرار ميگيرد و سئوالاتي نظير اين كه هوش مصنوعيچيست؟ تفاوت هوشمصنوعي و هوش طبيعي (انساني) درچيست؟ شاخههاي عمده هوش مصنوعي كدامند؟ و نهايتأ، اجزايهوش مصنوعي نيز تشريح ميشود ،كاربردهاي هوش مصنوعيدر صنايع و مؤسساتتوليدي، بخصوص در زمينهسيستمهاي خبره وآدموارهها مورد مطالعه وتجزيه و تحليل قرارميگيرد. ودر فصل دوم به بررسي هوش مصنوعي در بازي هاي كامپيوتري و در فصل سوم به بررسي تكنيك برنامه نويسي در هوش مصنوعي مورد مطالعه قرار مي گيرد .
مقدمه
هوش مصنوعی به هوشی که یک ماشین از خود نشان میدهد و یا به دانشی در کامپیوتر که سعی در ایجاد آن دارد گفته میشود. بیشتر نوشته ها و مقاله های مربوط به هوش مصنوعی آن را “دانش شناخت و طراحی مامورهای هوشمند تعریف کرده اند. یک مامور هوشمند سیستمی است که با شناخت محیط اطراف خود, شانس موفقیت خود را بالا میبرد جان مکارتی که واژه هوش مصنوعی را در سال 1956 استفاده نمود, آن را دانش و مهندسی ساخت ماشین های هوشمند” تعریف کرده است. تحقیقات و جستجوهایی انجام شده برای رسیدن به ساخت چنین ماشین هایی مرتبط با بسیاری از رشته های دانشیک دیگر میباشد, مانند دانش کامپیوتر, روانشناسی, فلسفه, عصب شناسی, دانش ادراک, تئوری کنترل, احتمالات, بهینه سازی و منطق.
« هوش مصنوعی، دانش ساختن ماشین ها یا برنامههای هوشمند است. » همانگونه كه از تعریف فوق-كه توسط یكی از بنیانگذاران هوش مصنوعی ارائه شده است- برمیآید،حداقل به دو سؤال باید پاسخ داد:
1ـ هوشمندی چیست؟
2ـ برنامههای هوشمند، چه نوعی از برنامهها هستند؟تعریف دیگری كه از هوش مصنوعی میتوان ارائه داد به قرار زیر است:
« هوش مصنوعی، شاخهایست از علم كامپیوتر كه ملزومات محاسباتی اعمالی همچون ادراك (Perception)، ستدلال(reasoning) و یادگیری(learning) را بررسی كرده و سیستمی جهت انجام چنین اعمالی ارائه میدهد.»و در نهایت تعریف سوم هوش مصنوعی از قرار زیر است:
«هوش مصنوعی، مطالعه روشهایی است برای تبدیل كامپیوتر به ماشینی كه بتواند اعمال انجام شده توسط انسان را انجام دهد.» به این ترتیب میتوان دید كه دو تعریف آخر كاملاً دو چیز را در تعریف نخست واضح كردهاند.
1ـ منظور از موجود یا ماشین هوشمند چیزی است شبیه انسان.
2ـ ابزار یا ماشینی كه قرار است محمل هوشمندی باشد یا به انسان شبیه شود، كامپیوتر است. هر دوی این نكات كماكان مبهم و قابل پرسشند. آیا تنها این نكته كه هوشمندترین موجودی كه میشناسیم، انسان است كافی است تا هوشمندی را به تمامی اعمال انسان نسبت دهیم؟ حداقل این نكته كاملاً واضح است كه بعضی جنبههای ادراك انسان همچون دیدن و شنیدن كاملاً ضعیفتر از موجودات دیگر است. علاوه بر این، كامپیوترهای امروزی با روشهایی كاملاً مكانیكی(منطقی) توانستهاند در برخی جنبههای استدلال، فراتر از تواناییهای انسان عمل كنند. بدین ترتیب، آیا میتوان در همین نقطه ادعا كرد كه هوش مصنوعی تنها نوعی دغدغه علمی یا كنجكاوی دانشمندانه است و قابلیت تعمق مهندسی ندارد؟(زیرا اگر مهندسی، یافتن روشهای بهینه انجام امور باشد، به هیچ رو مشخص نیست كه انسان اعمال خویش را به گونهای بهینه انجام میدهد). به این نكته نیز باز خواهیم گشت. اما همین سؤال را میتوان از سویی دیگر نیز مطرح ساخت، چگونه میتوان یقین حاصل كرد كه كامپیوترهای امروزین، بهترین ابزارهای پیادهسازی هوشمندی هستند؟
رؤیای طراحان اولیه كامپیوتر از بابیج تا تورینگ، ساختن ماشینی بود كه قادر به حل تمامی مسائل باشد، البته ماشینی كه در نهایت ساخته شد(كامپیوتر) به جز دسته ای خاص از مسائلقادر به حل تمامی مسائل بود. اما نكته در اینجاست كه این «تمامی مسائل» چیست؟ طبیعتاً چون طراحان اولیه كامپیوتر، منطقدانان و ریاضیدانان بودند، منظورشان تمامی مسائل منطقی یا محاسباتی بود. بدین ترتیب عجیب نیست، هنگامی كه فوننیومان سازنده اولین كامپیوتر، در حال طراحی این ماشین بود، كماكان اعتقاد داشت برای داشتن هوشمندی شبیه به انسان، كلید اصلی، منطق(از نوع به كار رفته در كامپیوتر) نیست، بلكه احتمالاً چیزی خواهد بود شبیه ترمودینامیك!
به هرحال، كامپیوتر تا به حال به چنان درجهای از پیشرفت رسیده و چنان سرمایهگذاری عظیمی برروی این ماشین انجام شده است كه به فرض این كه بهترین انتخاب نباشد هم، حداقل سهلالوصولترین و ارزانترین و عمومیترین انتخاب برای پیادهسازی هوشمندیست. بنابراین ظاهراً به نظر میرسد به جای سرمایهگذاری برای ساخت ماشینهای دیگر هوشمند، میتوان از كامپیوترهای موجود برای پیادهسازی برنامههای هوشمند استفاده كرد و اگر چنین شود، باید گفت كه طبیعت هوشمندی ایجاد شده حداقل از لحاظ پیادهسازی، كاملاً با طبیعت هوشمندی انسانی متناسب خواهد بود، زیرا هوشمندی انسانی، نوعی هوشمندی بیولوژیك است كه با استفاده از مكانیسمهای طبیعی ایجاد شده، و نه استفاده از عناصر و مدارهای منطقی. در برابر تمامی استدلالات فوق می توان این نكته را مورد تاُمل و پرسش قرار داد كه هوشمندی طبیعی تا بدان جایی كه ما سراغ داریم، تنها برمحمل طبیعی و با استفاده از روش های طبیعت ایجاد شده است. طرفداران این دیدگاه تا بدانجا پیش رفتهاند كه حتی ماده ایجاد كننده هوشمندی را مورد پرسش قرار داده اند، كامپیوتر از سیلیكون استفاده می كند، در حالی كه طبیعت همه جا از كربن سود برده است. مهم تر از همه، این نكته است كه در كامپیوتر، یك واحد كاملاً پیچیده مسئولیت انجام كلیه اعمال هوشمندانه را بعهده دارد، در حالی كه طبیعت در سمت و سویی كاملاً مخالف حركت كرده است. تعداد بسیار زیادی از واحدهای كاملاً ساده (بعنوان مثال از نورونهای شبكه عصبی) با عملكرد همزمان خود (موازی) رفتار هوشمند را سبب می شوند. بنابراین تقابل هوشمندی مصنوعی و هوشمندی طبیعی حداقل در حال حاضر تقابل پیچیدگی فوق العاده و سادگی فوق العاده است. این مساُله هم اكنون كاملاً به صورت یك جنجال(debate) علمی در جریان است. در هر حال حتی اگر بپذیریم كه كامپیوتر در نهایت ماشین هوشمند مورد نظر ما نیست، مجبوریم برای شبیهسازی هر روش یا ماشین دیگری از آن سود بجوییم.
تعریف و طبیعت هوش مصنوعی
هنوز تعریف دقیقی که مورد قبول همهٔ دانشمندان این علم باشد برای هوش مصنوعی ارائه نشدهاست، و این امر، به هیچ وجه مایهٔ تعجّب نیست. چرا که مقولهٔ مادر و اساسیتر از آن، یعنی خود هوش هم هنوز بطور همهجانبه و فراگیر تن به تعریف ندادهاست. در واقع، میتوان نسلهایی از دانشمندان را سراغ گرفت که تمام دوران زندگی خود را صرف مطالعه و تلاش در راه یافتن جوابی به این سؤال عمده نمودهاند که: هوش چیست؟
اما اکثر تعریفهایی که در این زمینه ارایه شدهاند بر پایه یکی از ۴ باور زیر قرار میگیرند:
- سیستمهایی که به طور منطقی فکر میکنند
- سیستمهایی که به طور منطقی عمل میکنند
- سیستمهایی که مانند انسان فکر میکنند
- سیستمهایی که مانند انسان عمل میکنند.
شاید بتوان هوش مصنوعی را این گونه توصیف کرد:«هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را میتوان وادار به کارهایی کرد که در حال حاضر انسانها آنها رابهتر انجام میدهند».
پيدايش و پيشرفت هوش مصنوعي
در اواسط دهه 1990، يك بازي تيراندازي اول شخص منتشر شد كه به كاربر امكان ميداد بازي را براي خود سفارشي (Customize) كند. اين بازي، Quake بود كه در فناوري ساخت بازيهاي كامپيوتري يك نوآوري محسوب ميشد. Quake اولين بازي سهبعدي واقعي است. به اين معني كه بهصورت بلادرنگ در سه بعد رندر ميشود. (پيش از آن spiritها يا گرافيكهاي دوبعدي به صورت سهبعدي شبيهسازي ميشدند). چيزهاي ديگري نيز در اين بازي وجود داشت كه موردتوجه قرار گرفت؛ مانند نشانه گرفتن سلاح به بالا يا پايين. زيرا حركتدادن سلاح به بالا يا پايين نيازمند پردازش در بعد سوم، يعني عمق يا ارتفاع در يك محيط سهبعدي است.
بازي Quake از موجودات مجازي هوشمند (bot) هر چند با هوش مصنوعي كم، بهره برده بود. هوش مصنوعي يكbot در بازيهاي تيراندازي اول شخص، ميتواند در دو بخش بررسي شود: يكي ناوبري و حركت، و ديگري مبارزه. اگر بخواهيم رفتار bot نزديك به رفتار يك انسان باشد، پيادهسازي آن بسيار پيچيدهتر از هوشمصنوعي در مبارزه است. هر چند پيادهسازي هوش مصنوعي در مبارزه نيز با هر استاندارد و روشي آسان نيست.
براي اينكه باتها بتوانند حركت كنند، بايد بتوانند درباره اشيا و موجودات پيرامون خود ياد بگيرند. اين ايده بسيار اساسي، ميتواند به بخشهاي بيشتري مانند قابليت آناليز هنگام حركت در يك جهت خاص و سپس قابليت پيدا كردن اشيا و شخصيتهاي مجازيِ مقابل در يك مرحله بازي گسترش يابد. اين ايدهها شايد ساده به نظر برسند، ولي واقعاً اينگونه نيست؛ چرا كه يك bot بايد بتواند در برابر دو چيز واكنش درستي داشته باشد: ديوارها و فضاهاي خالي. ديوارها شامل همه چيزهايي است كه نميتوان از آن عبور كرد؛ مانند خود يك ديوار، نرده، شخصيتهاي مجازي، جعبهها، پلههاي رو به بالا و … فضاهاي خالي نيز هر جايي است كه زمين همواره نيست يا دچار شكستگي است؛ مانند يك چاله، پلههاي رو به پايين و … . براي رويارويي با اين دو مانع، يك روش خوب، افزايش كارايي تابع جستجو است. اين تابع كه در بازي Quake معرفي شد، به بات امكان ميدهد يك خط را از يكي از بُعدهاي X-Y-Z تا بُعد بعدي جستجو كند و اطلاعاتي مانند اينكه <اين خط به كجا ميرود، چه چيزي آن را قطع ميكند و …> را دريافت كند.
دو روش براي گذشتن يكبات از يك مرحله، بيشتر مورد استفاده قرار ميگيرد: روش نخست از گرههاي گراف وضعيت و روش دوم از مسيرهاي (path) آن استفاده ميكند. در يك محيط براساس روش گره، گرهها در قسمت قوانين بهينهسازي مرحله (level) كه به وسيله سازنده يك bot تعريف شده است قرار دارند. هر گره ميتواند اطلاعات بات درباره قسمت خاصي از محيط را بدهد. وضعيت مبارزه، كاربردهاي زيادي براي تعدادي از الگوريتمهاي جستجو يا پروسه تصميمگيري دارد. در يك مبارزه، بايد براي تشخيص اينكه كدام كار براي بات بهتر است حركتهاي رقيب پيشبيني شود.
روش Minimax، در مواقعي كه يك تابع هيورستيك خوب (يك هيورستيك برخلاف الگوريتم، ممكن است به يك پاسخ قطعي نرسد) در دست باشد، ميتواند يك حركت خوب را انجام دهد. از آنجا كه minimax روش كندي است، ميتوان از Partial Minimax استفاده كرد كه در الگوريتمهاي تصميمگيري به كار ميرود؛ هر چند اين روش هنوز چندان پذيرفته نشده است. پژوهشگران هوش مصنوعي پيشنهاد ميكنند، تنها زماني از Partial Minimax استفاده كنيد كه يك گزينه بديهي در دست داشته باشيد (زماني كه متغير minimax با ارزش بيشتر كاملا بهتر از متغير ديگر باشد). در غير اينصورت اگر ارزش همه متغيرها نزديك به هم است، از استراتژي ديگري استفاده كنيد. حال آنكه در يك بازي بلادرنگ براي يكbot معمولاً گزينه بديهي وجود ندارد تا آن را برگزينيد. هر گزينه به يك استراتژي متفاوت وابسته است كه bot ميتواند آن را انتخاب كند.
شايد بسياري از طرفداران روش minimax به ارزش سرعت، هنگام بررسي كارايي يك بات در بازي بلادرنگ واقف نيستند؛ مانند كمترين زماني كه يك بات نياز دارد تا درباره يك تصميم بينديشد، گزينههاي بيشتري كه براي تصميمگيري ايجاد ميكند، كيفيت واكنش بهتر و سطح خبرگي. به ياد داشته باشيد كه يك بات در برابر مغز يك انسان كه ميتواند دنياي سهبعدي را با كمك حس و تخيل خود تفسير كند، قرار ميگيرد. براي نمونه در يك مبارزه، يك بات نياز به نشانهگيري به سوي دشمن خود، پيشبيني حركت آن و… دارد كه همه، بدون داشتن درك واقعي از محيطي كه در آن قراردارد انجام ميشود.
براي دستيابي به بيشترين سرعت، بيشتر از الگوريتم *A استفاده ميشود. هر چند اين الگوريتم پيشرفته نيست، ولي سرعت بالايي دارد. پيچيدگي زماني اين الگوريتم ((O(log h(n است كه (h(n پيچيدگي تابع هيورستيك است. *A يك الگوريتم جستجوي “اول عمق” است كه هيورستيك آن را كنترل ميكند و ميتواند مناسبترين شاخه بعدي گراف را حدس بزند و در هر عمق، تنها شاخهاي كه ارزش هيورستيك بهتري دارد، گسترش مييابد.
هوش مصنوعي و هوش انساني:
براي شناخت هوش مصنوعي شايسته است تا تفاوت آن را با هوشانساني به خوبي بدانيم. مغز انسان از ميلياردها سلول يا رشته عصبيدرست شده است و اين سلولها به صورت پيچيدهاي به يكديگرمتصلاند. شبيهسازي مغز انسان ميتواند از طريق سختافزار يا نرمافزارانجام گيرد. تحقيقات اوليه نشان داده است شبيهسازي مغز، كاريمكانيكي و ساده ميباشد. براي مثال، يك كرم داراي چند شبكه عصبياست. يك حشره حدود يك ميليون رشته عصبي دارد و مغز انسان ازهزار ميليارد رشته عصبي درست شده است. با تمركز و اتصال رشتههايعصبي مصنوعي ميتوان واحد هوش مصنوعي را درست كرد.
هوش انساني بسيار پيچيدهتر و گستردهتر از سيستمهاي رايانهاياست و توانمنديهاي برجستهاي مانند: استدلال، رفتار، مقايسه، آفرينشو بكار بستن مفهومها را دارد.
هوش انساني توان ايجاد ارتباط ميان موضوعها و قياس ونمونه سازيهاي تازه را دارد. انسان همواره قانونهاي تازهاي ميسازد و ياقانون پيشين را در موارد تازه بكار ميگيرد. توانايي بشر در ايجادمفهومهاي گوناگون در دنياي پيرامون خود، از ويژگيهاي ديگر اوست.مفهومهاي گستردهاي همچون روابط علت و معلولي، رمان و يامفهومهاي سادهتري مانند گزينش وعدههاي خوراك (صبحانه، ناهار وشام) را انسان ايجاد كرده است. انديشيدن در اين مفهومها و بكاربستنآنها، ويژه رفتار هوشمندانه انسان است.
هوش مصنوعي در پي ساخت دستگاههايي است كه بتوانندتوانمندهاي ياد شده (استدلال، رفتار، مقايسه و مفهوم آفريني) را از خودبروز دهند. آنچه تاكنون ساخته شده نتوانسته است خود را به اين پايهبرساند، هر چند سودمنديهاي فراواني به بار آورده است.
نكته آخر اينكه، يكي از علل رويارويي با مقوله هوش مصنوعي،ناشي از نامگذاري نامناسب آن ميباشد. چنانچه جان مككارتي در سال1956 ميلادي آن را چيزي مانند «برنامهريزي پيشرفته» ناميده بود شايد جنگ و جدلي در پيرامون آن رخ نميداد.
شاخههاي هوش مصنوعي:
امروزه دانش مدرن هوش مصنوعي به دو دسته اصلي تقسيم ميشود: يكي <هوش مصنوعي سمبوليك يا نمادين> (Symbolic AI) و ديگري هوش غيرسمبوليك كه پيوندگرا (Connection AI) نيز ناميده ميشود.
هوش مصنوعي سمبوليك از رهيافتي مبتني بر محاسبات آماري پيروي ميكند و اغلب تحت عنوان <يادگيري ماشين> يا (Machine Learning) طبقهبندي ميشود. هوش سمبوليك ميكوشد سيستم و قواعد آن را در قالب سمبولها بيان كند و با نگاشت اطلاعات به سمبولها و قوانين به حل مسئله بپردازد. در ميان معروفترين شاخههاي هوش مصنوعي سمبوليك ميتوان به سيستمهاي خبره (Expert Systems) و شبكههاي Bayesian اشاره كرد. يك سيستم خبره ميتواند حجم عظيمي از دادهها را پردازش نمايد و بر اساس تكنيكهاي آماري، نتايج دقيقي را تهيه كند. شبكههاي Bayesian يك تكنيك محاسباتي براي ايجاد ساختارهاي اطلاعاتي و تهيه استنتاجهاي منطقي از روي اطلاعاتي است كه به كمك روشهاي آمار و احتمال به دست آمدهاند. بنابراين در هوش سمبوليك، منظور از <يادگيري ماشين> استفاده از الگوريتمهاي تشخيص الگوها، تحليل و طبقهبندي اطلاعات است.
اما هوش پيوندگرا متكي بر يك منطق استقرايي است و از رهيافت <آموزش/ بهبود سيستم از طريق تكرار> بهره ميگيرد. اين آموزشها نه بر اساس نتايج و تحليلهاي دقيق آماري، بلكه مبتني بر شيوه آزمون و خطا و <يادگيري از راه تجربه> است. در هوش مصنوعي پيوندگرا، قواعد از ابتدا در اختيار سيستم قرار نميگيرد، بلكه سيستم از طريق تجربه، خودش قوانين را استخراج ميكند. متدهاي ايجاد شبكههاي عصبي (Neural Networks) و نيز بهكارگيري منطق فازي (Fuzzy Logic) در اين دسته قرار ميگيرند.
براي درك بهتر تفاوت ميان اين دو شيوه به يك مثال توجه كنيد. فرض كنيد ميخواهيم يك سيستم OCR بسازيم. سيستم OCR نرمافزاري است كه پس از اسكن كردن يك تكه نوشته روي كاغذ ميتواند متن روي آن را استخراج كند و به كاراكترهاي متني تبديل نمايد.
نقد و بررسیها
هنوز بررسیای ثبت نشده است.