آی پی امداد
abtahi
آریا الکترونیک تکشو

- هوش مصنوعی چیست؟

sam_electronic

VIP+ افتخاری
کاربر +vip پلاس
vip افتخاری
کاربر
2007-08-30
500
4,134
میناب
www.irantk.ir
- هوش مصنوعی چیست؟

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

استدلال، منطق، تصمیم گیری ؛ این ها توانایی هستند که شما از آنها استفاده می کنید. پس شما هوشمند هستید. اگر این توانایی ها را در کامپیوتر هم ایجاد کنیم، آنگاه به ماشین هوشمند دست می یابیم! به همین سادگی ... ولی به جز این ها چیز های دیگری هم در رابطه با تعریف هوشمندی وجود دارند که دانستن آنها را می توان مهم ارزیابی کرد. در واقع بحث هایی که در مورد هوشمندی و هوش مصنوعی مطرح شده است؛ تنها به دوره ی امروزه ی ما و قرن 21 مربوط نمی شود، بلکه از سال 1950 این مباحث به طور جدی مطرح شد.




- پیشینه ی هوش مصنوعی:

باید گفت که از این نظر هوش مصنوعی یکی از غنی ترین تاریخ ها را دارد، منتها در قصه ها! ماشین ها و مخلوقات مصنوعی باشعور، اولین بار در افسانه های یونان باستان مطرح شدند. شبه انسان ها باور داشتند که باید یک تمدن بزرگ را تشکیل دهند؛ تندیس ها و مجسمه های انسان نما در مصر و یونان به حرکت در آمده بودند و ... حتی در مواردی این قصه ها، پای جابر بن حیّان و چند تن دیگر را هم به سازندگان موجودات مصنوعی باز کردند.

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


نظریه تورینگ:

تئوری تورینگ مبتنی بر این بود که می توانیم با استفاده از نشانه ها و اعدادی مانند 0 و 1، هر استدلال ریاضی ای را در کامپیوتر عملی کنیم. همزمان با این نظریه کشف های تازه ای در زمینه ی عصب شناسی، نظریه اطلاعات و فرمانشناسی، به وقوع پیوسته بود. این پیشرفت ها الهام بخش گروهی کوچک از پژوهشگران شد تا به طور جدی به مساله ایجاد یک مغز الکترونیکی رسیدگی نمایند.

- تست تورینگ:

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




- و بعد ...

تیمی که در زمینه هوش مصنوعی تحقیق می کردند، در تابستان سال 1956، کنفرانسی را در محوطه کالج دارتموس برگزار کردند. این کنفرانس به همراه افرادی مانند جان مک کارتی، ماروین مینسکی، آلین نویل و هربت سیمون که برای دهه ها پیشتازان تحقیق برای هوش مصنوعی بودند انجام شد. آنها و دانش آموزان آنها، برنامه ای نوشته بودند که حقیقتا برای عده زیادی از مردم شگفت آور بود. این برنامه می توانست مشکلات نوشتاری در جبر را حل کند، استدلال های منطقی را اثبات کند و به زبان انگلیسی سخن بگوید. در اواسط دهه ی 1960، بودجه سنگینی برای دایرکردن آزمایشگاه های تحقیقاتی در گرداگرد دنیا، از سوی حوزه ی دفاعی ایالات متحده آمریکا، اختصاص داده شد. پیشتازان هوش مصنوعی درباره آینده آن در جهان بسیار خوش بین بودند. هربت سیمون پیشبینی کرده بود که در مدت 20 سال، کامپیوتر های هوشمند می توانند، هر کاری را که انسان انجام می دهد، انجام دهند. در واقع مشکلات بزرگی که در آن زمان برای ایجاد هوش مصنوعی وجود داشت، اساسا حل شده بود.

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

علیرغم چیز هایی که در بالا گفته شد، تیم مذکور، در شناخت و رفع برخی از مشکلات هوش مصنوعی با شکست مواجه شد، در سال 1970 در مقابل انتقادات آقای جیمز لایتهیل از انگلستان و فشار های مداوم کنگره برای کم کردن بودجه برای پروژه های بزرگ، دولت های انگلیس و آمریکا تمام پژوهش های به نتیجه نرسیده برای هوش مصنوعی را لغو کردند و در اندک سالیان بعد از آن، به سختی برای هوش مصنوعی، بودجه اختصاص داده می شد. این دوره را زمستان هوش مصنوعی یا A.I winter می نامند.

به زودی در سال 1980، پژوهش ها بر روی هوش مصنوعی از سر گرفته شد و این امر مدیون این بود که سیستم های هوشمند، به موفقیت های تجاری دست یافتند. سیستم های هوشمند، ترکیب هایی از هوش مصنوعی بودند که مهارت و دانش و توان تجزیه تحلیلی یک متخصص را شبیه سازی می کردند. در سال 1985، هوش مصنوعی به بازار یک میلیارد دلاری دست یافت و در همان زمان پروژه ی کامپیوتر های نسل پنجم ژاپن، که متوقف شده بود، از سر گرفته شد و بودجه ای برای تحقیقات آکادمیک در این زمینه در نظر گرفته شده بود. اما در سال 1987 باز هم چرخ گردان به گونه ای دیگر چرخید و بازار فروش ماشین های پردازش لیست (Lisp Machines) (با زبان Lisp) که با مشکلاتی موجه بودند، نابود شد و در یک ثانیه تمام آبروی هوش مصنوعی را هم با خود برد. پس این بار زمستان طولانی تر و سخت تری برای هوش مصنوعی فرارسید.

- پس از آن، بهاری نو :

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




- مقایسه، استدلال و حل مسائل:

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

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

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

- نمایش معلومات:

نمایش معلومات و مهندسی معلومات مرکز توجه در پژوهش های هوش مصنوعی بودند. بسیاری از دستگاه های حل مساله برای حل مسائل نیازمند معلومات گسترده و وسیعی بودند این معلومات عبارت می شد از : شناختن اشیاء، خواص و اقلام- شناختن روابط بین اشیاء- درک موقعیت، نوع واقعه و زمان و مکان- علت ها و تاثیر عوامل و بسیاری چیز های دیگر...

و سخت ترین مشکلات درباره نمایش اطلاعات و معلومات عبارت بود از:

1- استدلال پیش فرض و مسائل نسبی: دانسته ی یک فرد از یک چیز برابر است با پنداشت او از آن چیز، برای مثال وقتی نام پرنده به گوش کسی می خورد، معمولا یک موجود کوچک را به یاد می آورد با صدای زیبا و قابلیت پرواز؛ در حالی که این موضوع برای همه ی پرندگان صدق نمی کند. مثلا پنگوئن هیچکدام از این ویژگی ها را ندارد! جان مک کارتی این موضوع را به عنوان یک مسئله نسبی در سال 1969 کشف کرد. برای هر قضاوت صحیح (در تعریف عام) که محققان هوش مصنوعی، سعی در پیاده سازی آن داشتند، تعداد زیادی استثنا وجود داشت. بنابر این، آنها به این نتیجه دست یافتند که در قضاوت عام، نمی توان یک چیز را مطلقا درست یا غلط دانست بلکه همه چیز نسبی است. مثلا وقتی به شما می گویند که فلان شخص، خوب است یا بد؟ شما اول به مواردی توجه می کنید که مهم تر هستند و بر این اساس در مورد خوبی و بدی قضاوت می کنید. در حالی که هیچ کس مطلقا خوب یا بد نیست! در واقع شما اول به مواردی اهمیت می دهید که مهم تر است. محققان هوش مصنوعی هم با پیاده کردن چنین الگوریتمی توانستند این مشکلات را حل کنند.

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

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

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

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

برای این که این روش را بهتر درک کنید، به این مثال توجه نمایید: یک مورچه تنها را در نظر بگیرید، طبعا نه کاری می تواند بکند و نه اثری دارد، اما وقتی مجموعه ای از این مورچه ها جمع می شوند و یک کلونی را تشکیل می دهند، آنگاه جامعه ای از آنها درست می شود که در کلیت، هوشمند و موثر است، به طوری که حتی ما هم با دانستن راز های زندگی جمعی مورچه ها، به فکر فرو می رویم! همین کار را هم می توان با شبکه های عصبي انجام داد و يک شبه مغز را ايجاد کرد.


- برنامه ریزی:

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

پس تصمیم گیری و برنامه ریزی از این روش، کاری است که بدون هوشمندی، نمی توان آن را انجام داد و فقط موجودات هوشمند از پس آن بر می آیند!

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

در این مورد می توانید یک روبوت را در نظر بگیرید که می خواهد از یک مسیر مارپیچ عبور نماید. این روبوت ابتدا هر یک از این مسیر ها را امتحان می کند و اگر هر کدام از آنها به بن بست، بر خورد، آن را به حافظه می سپارد تا دوباره تکرارش نکند و این عمل را آنقدر ادامه می دهد که راه خودش را بیابد! ( این يک تعریف بسيار ساده بود)

- یادگیری:

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

طبقه بندی این امکان را می دهد که کامپیوتر بتواند تشخیص دهد که چه چیز هایی را می توان در یک گروه خاص گنجاند. عبرت عددی (Regression takes) نیز به این صورت عمل می کند که بعد از دادن چیز هایی به عنوان ورودی به کامپیوتر و مشخص کردن خروجی دقیق آنها، کامپیوتر می تواند روابط بین ورودی و خروجی را کشف کرده و الگوریتم ها و توابع پیوسته ای را برای آنها تعیین کند. این روش برای به وجود آوردن الگوریتم های بسیار پیچیده، مفید خواهد بود.

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

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

یادداشت: آنالیز الگوریتم های یادگیری ماشین ها، شاخه ای از علوم نظری کامپیوتر است که با نام تئوری یادگیری کامپیوتری شناخته می شود.
 
بالا