هوش مصنوعی یا همان Artificial Intelligence یا به اختصار AI شاخهای از علوم کامپیوتر است که شامل فرآیندهایی میشود که به شبیهسازی هوش انسان بر روی کامپیوترها و یا دستگاههایی میپردازد که توسط کامپیوتر کنترل میشوند و امروزه پژوهشهای این حوزه عمدتاً بر جنبههای یادگیری، استدلال، حل مسئله، ادراک و زبانهای زندهٔ دنیا متمرکز شدهاند.
تاریخچه هوش مصنوعی
تاریخچهٔ هوش مصنوعی از آنجا شروع شد که دو پژوهشگر به نامهای McCulloch و Pitts در سال ۱۹۴۳ مدلی از سلولهای عصبی مصنوعی ارائه نمودند (سلولهای عصبی مصنوعی، مشابه آنچه که در زیستشناسی به سلولهای عصبی طبیعی اطلاق میشود، نورون نامیده میشوند.) ویژگی خاص این مدل این بود که در آن هر نورون میتوانست به اصطلاح On و یا Off باشد و هنگامی که تعداد زیادی از نورونهای پیرامون یک نورون تحریک میشدند، آن نورون نیز فعال میشد. این دو محقق ثابت کردند که توابع محاسباتی را میتوان با شبکهای از نورونهای پیوسته به یکدیگر انجام داد.
در سال ۱۹۴۹، پژوهشگری به نام Donald Hebb استحکام اتصال نورونهای این مدل را با یک قاعدهٔ ساده اصلاح نمود که امروزه به نام Hebbian شناخته میشود و سرانجام در سال ۱۹۵۱ دو محقق به نامهای Marvin Minsky و Dean Edmonds موفق شدند تا نخستین کامپیوتری را بسازند که در آن از شبکه عصبی استفاده شده بود که SNARC نام داشت و شبکهٔ عصبی آن از ۴۰ نورون تشکیل شده بود و تقریباً در همین زمان بود که پژوهشگری به نام آلن تورینگ (Alan Turing) مفاهیمی همچون تست تورینگ، یادگیری ماشینی، الگوریتمهای ژنتیکی و یادگیری تقویتی را معرفی نمود.
در سال ۱۹۵۶ در کارگاهی که توسط شرکت IBM در دانشگاه Dortmouth برگزار شد McCarthy اصطلاح Artificial Intelligence را معرفی کرد که به نظر میرسد این کارگاه به منزلهٔ تولد رسمی هوش مصنوعی بود که فصل مهمی را در تکامل و پیشرفت فناوری رقم زد و در ادامه دانشمندان برنامهای با قابلیت استدلال توسعه داده و آن را Logic Theorist نامیدند.
در سال ۱۹۵۸ فردی به نام John McCarthy یکی از زبانهای برنامهنویسی تخصصی در صنعت هوش مصنوعی به نام LISP را ایجاد نمود و در سال ۱۹۶۵، پژوهشگری به نام Robinson یک روش استنتاجی را برای حل مسئله ارائه داد و در همین زمان بود که نخستین سیستم خبرهٔ مبتنی بر دانش به نام DENDRAL در دانشگاه Stanford توسعه یافت و در سالهای بعد محققین دیگری سیستم خبرهٔ دیگری ساختند که در تشخیص عفونتهای خونی کاربرد داشت.
در سال ۱۹۶۸، پژوهشگری به نام Winograd برنامهای به نام SHRDLU را توسعه داد که میتوانست درک اولیهای از زبان داشته باشد و در سال ۱۹۷۰ نخستین ربات انساننما به نام WABOT-1 در دانشگاه Waseda در کشور ژاپن ساخته شد. در سال ۱۹۷۲، یک سیستم خبره به نام MYCIN در دانشگاه Stanford طراحی شد که در تشخیص عفونتهای شدید باکتریایی و تجویز داروی مناسب کاربرد داشت و در سال ۱۹۸۰ روبات انساننمای WABOT-2 که یک ربات نوازنده بود در دانشگاه Waseda تولید شد که این ربات میتوانست موسیقیهایی با درجه دشواری متوسط را با کیبورد الکترونیک بنوازد.
در ادامه پیشرفتهای هوش مصنوعی، نخستین اتومبیل بدون راننده که یک وَن مرسدس بنز مجهز به دوربین و سنسور بود در دانشگاه Bundeswehr در مونیخ ساخته شد و در سال ۱۹۸۸ فردی به نام Rollo Carpenter چتباتی به نام Jabberwacky را توسعه داد که میتوانست به طرز جالب و سرگرمکنندهای در گفتگو با انسان شرکت نماید.
در ادامه، Deep Blue که یک برنامهٔ کامپیوتری شطرنجباز بود، در سال ۱۹۹۷ برای نخستین بار توانست یکی از قهرمانان مسابقات جهانی شطرنج را شکست دهد همچنین نخستین ربات حیوان خانگی و رباتی که قادر به تقلید احساسات بود به ترتیب در سالهای ۱۹۹۸ و ۲۰۰۰ تولید شدند.
۲۰۰۶ سالی بود که Etzioni ،Banko و Cafarella اصطلاح Machine Reading را معرفی نمودند و در سال ۲۰۰۹ نیز گوگل توسعهٔ ماشینهای بدون راننده را به صورت غیرعلنی آغاز نمود. دستیارهای مجازی Google Now ،Siri و Cortana به ترتیب در سالهای ۲۰۱۱، ۲۰۱۲ و ۲۰۱۴ در اختیار کاربران پلتفرمهای مختلف قرار گرفتند و در حال حاضر هم شاهد مشارکت و سرمایهگذاری بیش از پیش شرکتهای بزرگ تکنولوژی در پیشرفت و توسعهٔ هوش مصنوعی هستیم.
آشنایی با تست تورینگ
تست تورینگ - Turing Test که در سال ۱۹۵۰ توسط Alan Turing معرفی شد، آزمونی است که توانایی یک سیستم کامپیوتری در نشان دادن رفتارهای هوشمندانهٔ مشابه انسان را مورد سنجش قرار میدهد. در این آزمون، ارزیاب سؤالاتی را برای دو شرکتکننده شامل یک انسان و یک ربات مطرح میکند اما برای وی مشخص نیست که کدام یک از دو شخصیتِ مورد سؤال انسان است و کدام یک ربات و او تلاش میکند تا با توجه به پاسخ سؤالات، انسان را از کامپیوتر تشخیص دهد. در واقع، اگر کامپیوتر (ربات) بتواند به نحوی به سؤالات پاسخ دهد که ارزیاب را در تشخیص خود دچار اشتباه نماید، آزمون تورینگ را با موفقیت پشت سر گذاشته است.
اجزای یک سیستم مبتنی بر هوش مصنوعی
در ادامه ابتدا به بررسی مفاهیم کاربردی در حوزهٔ هوش مصنوعی پرداخته سپس به روندها و اهداف این علم اشاره خواهیم نمود و در پایان برخی از کاربردهای روزمرهٔ هوش مصنوعی را مورد بررسی قرار خواهیم داد.
💎💎 برای آشنایی با برخی از ابزارهای جذاب هوش مصنوعی که امروزه کاربرد فراوانی دارند، به مقالهی 7 ابزار جذاب با استفاده از AI مراجعه کنید.
Learning (یادگیری)
در هوش مصنوعی چند روش یادگیری مطرح است که یکی از سادهترین آنها آزمون و خطا است. به عنوان مثال، مسئلهٔ مطرحشده برای یک برنامهٔ کامپیوتری ساده در بازی شطرنج این است که بازیکن مقابل را مات کند که در روش آزمون و خطا کامپیوتر هر بار به طور تصادفی حرکتی را انجام میدهد تا سرانجام به نتیجهٔ مطلوب (مات کردن بازیکن مقابل) دست پیدا کند. پس از دستیابی به نتیجهٔ مطلوب، سیستم میتواند موقعیتهای ایجادشده در این بازی و تصمیمات خود را ذخیره کند تا اگر بعداً دوباره با موقعیتی مشابه مواجه شد، بتواند تصمیمی که قبلاً اتخاذ نموده را به کار گیرد.
در یک گیم شطرنج، انجام ذخیرهسازی و فراخوانی موقعیت مهرهها و روند حرکات صورت گرفته کار نسبتاً سادهای است اما چیزی که دشوار است تعمیم این تجربیات به موقعیتهای جدید اما مشابه است. در واقع، یک برنامهٔ کامپیوتری را در نظر بگیرید که قابلیت تعمیم دادن تجربیات را ندارد و اگر این برنامه قبلاً با استفاده از تکرار در مورد تعدادی از افعال باقاعدهٔ انگلیسی آموزش دیده باشد، با مواجه شدن با کلمهٔ جدیدی مانند Jump قادر نخواهد بود حالت گذشتهٔ آن حدس بزند مگر اینکه قبلاً با کلمهٔ Jumped آموزش دیده باشد.
در حقیقت، یک برنامهٔ کامپیوتری با فرایند تعمیم دادن میتواند این قانون را یاد بگیرد که با افزودن «ed» به انتهای افعال میتوان شکل گذشتهٔ آنها را ایجاد نمود و از همین روی این برنامه میتواند با توجه به تجربهای که قبلاً با سایر افعال داشته، اکنون حالت گذشتهٔ افعال جدید ارائه شده را نیز ایجاد نماید (البته باید برخی افعال بیقاعده را نیز همواره مد نظر داشته باشیم.)
Reasoning (استدلال)
استدلال بر دو نوع استنتاجی و استقرایی است که برای روشنتر شدن این مسئله، به دو مثال زیر دقت کنید:
- یکی از دوستان شما در این ساعت از شبانهروز یا مشغول مطالعه است و یا در حال استراحت. اگر شما بدانید که او هماکنون در حال مطالعه نیست، میتوانید به شیوهٔ استنتاجی استدلال کنید که حتماً در حال استراحت است.
- یکی از دوستان شما در کلاسهای ساعت ۸ صبح همیشه کمی دیرتر از سایرین حاضر میشود و هنگامی که دلیل آن را جویا میشوید، بیان میکند که صبح خواب مانده است. اگر این دوست شما در جلسهٔ بعدی کلاس باز هم دیر حاضر شود، شما به روش استقرایی استدالال میکنید که گویا باز هم خواب مانده است.
تفاوت اساسی این دو استدلال در میزان پشتیبانی از قطعیت نتایج است. در استدلال استنتاجی (مثال نخست)، اگر فرضیات استدلال درست باشند، درستی نتیجهٔ استدلال نیز تضمین شده است اما در استدلال استقرایی (مثال دوم)، تضمینی برای درست بودن نتیجه وجود ندارد. در واقع، در مثال دوم شما بر اساس آنچه در روزهای قبل رخ داده بود به این نتیجه رسیدید که دوست شما امروز هم خواب مانده و به همین دلیل بهموقع در کلاس حاضر نشده است اما این استدلال قطعی نیست زیرا ممکن است او این بار خواب نمانده باشد بلکه به دلیل ترافیک سنگین باز هم دیر کرده باشد.
استدلال استقرایی بیشتر در علوم طبیعی مرسوم است زیرا در این علوم روند پژوهش به این صورت است که اطلاعاتی در مورد موضوعی جمعآوری شده و مدلسازی میشوند سپس با استفاده از آن مدل، پیشبینی و توصیف وقایع آینده صورت میگیرد در حالی که در علوم ریاضیاتی و منطقی استدلال استنتاجی کاربرد بیشتری دارد زیرا این علوم بر بدیهیات و قوانینی ثابت استوار هستند.
در صنعت هوش مصنوعی پیشرفتهای زیادی در زمینهٔ استدلال، به ویژه استدلال استنتاجی، صورت گرفته است اما استدلال فقط شامل استنباط کردن موضوعی از مجموعهٔ دادهها نیست بلکه این استنباط باید در راستای ارائهٔ راهحلی برای یک مسئله باشد و این یکی از دشوارترین چالشهای پیش روی هوش مصنوعی است.
Problem Solving (حل مسئله)
در هوش مصنوعی حل مسئله عبارت است از انجام یک جستجوی نظاممند در میان مجموعهای از پاسخهای ممکن که با هدف دستیابی به یک راهحل یا هدف پیشفرض صورت میگیرد و این در حالی است که مقولهٔ حل مسئله احتمال دارد تا اهداف خاص و یا اهداف عمومی را دنبال کند. روشهایی که برای یک هدف خاص ایجاد میشوند، معمولاً فیچرهای ویژهای دارند که با شرایط آن هدف و مسئلهٔ خاص هماهنگ هستند.
در مقابل، روشهای عمومی قرار دارند که در مورد دامنهٔ وسیعی از مسائل و اهداف قابلاستفاده هستند. تاکنون مسائل مختلفی با استفاده از سیستمهای مبتنی بر هوش مصنوعی حل شدهاند به طوری که میتوان در یک بازی، پیشبینی حرکت بُرد یا مجموعهای از حرکاتی که منجر به بُرد میشوند را به هوش مصنوعی واگذار کرد.
Perception (ادراک)
در فرآیند ادراک، محیط با اندامهای حسی اِسکن میشود سپس مجموعهٔ اطلاعات جمعآوری شده توسط این اندامهای حسی به اشیاء مجزا با روابط مکانی مشخص تجزیه میشوند. باید در نظر داشت که زاویهٔ دید، جهت، شدت نور و میزان تضاد رنگ یک شییٔ نسبت به اطراف و عواملی از این دست میتوانند بر تحلیل این اطلاعات تأثیرگذار باشند و این موضوع فرآیند ادراک را دشوارتر مینماید. در حال حاضر، ادراک مصنوعی توانسته است امکان شناسایی اشیاء، راندن خودروهای بدون راننده با سرعتهای متوسط و در جادههای خلوت و همچنین جمعآوری زباله از طبیعت توسط رباتها را امکانپذیر سازد.
Language (زبان)
زبان مجموعهای از علائمی است که به طور قراردادی دارای معنا هستند که با این تعریف، زبان به آواها و کلماتی که برای گفتگو به کار میروند محدود نمیشود و قراردادی مانند علائم راهنمایی نیز میتواند یک زبان محسوب شود. به طور مثال، علامت به نوعی تداعیکنندهٔ «تحصیلات تکمیلی» است. به عنوان مثالی دیگر، هنگامی که شما علامت خطر را میبینید، به شکل هندسی آن فکر نمیکنید بلکه این مفهوم برای شما تداعی میشود که در حال نزدیک شدن به یک موقعیت خطرناک هستید.
در زبانهای زندهٔ دنیا نیز ممکن است کلمات و عباراتی که بیان میشوند با مفهومی که نهفته دارند کاملاً متفاوت باشد. مثلاً ممکن است شخصی بگوید «ابرها رو ببین» که منظور اصلیاش مفهوم «باران» است و یا بگوید «اُفت فشار داریم» که در اینجا هم منظور اصلیاش این است که «دریچهها خوب کار نمیکنند.» هر چند ما انسانها میتوانیم به سرعت منظور این شخص را بفهمیم، اما اگر کمی دقت کنیم متوجه خواهیم شد که معنای این جملات با مجموع معانی تکتک کلمات آنها متفاوت است مضاف بر اینکه یکی از ویژگیهای مهم یک زبان زندهٔ تکاملیافته زایایی است به طوری که یک زبان زایا قابلیت تولید تنوعی نامتناهی از مفاهیم را دارا است.
حال پرسش کلیدی این است که «آیا میتوان گفت کامپیوتری که همچون یک انسان واقعی سخن میگوید، واقعاً آن زبان را فهمیده است؟» سؤال دشواری است و بر سر پاسخ آن اختلافنظرهای زیادی وجود دارد. بر اساس یک نظریه، اینکه کسی زبانی را فهمیده است یا نه فقط به رفتار او بستگی ندارد بلکه به پیشینهٔ او نیز مرتبط است و هنگامی میتوان گفت کسی زبانی را حقیقتاً فهمیده است که در محیطی که آن زبان حاکم است آموزش دیده باشد و در عمل بخشی از جامعهٔ آن زبان بوده و در تعاملات گویشوران آن زبان شرکت داشته باشد.
روندها و اهداف کاربردی در هوش مصنوعی
پژوهشهای هوش مصنوعی از دو روند مجزا، و در برخی جنبهها متقابل، پیروی میکنند که عبارتند از Symbolic (روش بالا به پایین) و Connectionist (روش پایین به بالا) که در روش سیمبولیک تلاش میشود فقط هوش و ادراک مغز از علائم و نمادها را شبیهسازی و تقلید نماید و به همین دلیل این روش را Symbolic مینامند اما روش کانکشنیست تلاش میکند تا با ایجاد شبکههای عصبی مصنوعی، ساختار مغز را شبیهسازی نماید و از این روی این روش Connectionist نامیده میشود.
برای اینکه تفاوت این دو روش آشکارتر شود، فرض کنید که قرار است سیستمی مجهز به یک اِسکنر نوری ایجاد شود که قادر به تشخیص حروف الفبا باشد. در روش کانکشنیست، برای این منظور یک شبکه عصبی ایجاد میشود و سپس این شبکهٔ عصبی با دیدن یک به یک حروف الفبا آموزش دیده و به تدریج کارایی آن افزایش مییابد اما در روش سیمبولیک، برای دستیابی به این هدف برنامهای نوشته میشود که هر یک از حروف اِسکنشده را با ویژگیهای هندسی حروف الفبا مقایسه نماید و بدین ترتیب بر اساس ویژگیهای هندسی حروف را تشخیص دهد.
به طور کلی، میتوان گفت که اساس روش کانکشنیست بر فعالیتهای عصبی و اساس روش سیمبولیک بر توصیف نمادها و علائم استوار است. علیرغم اُفت و خیزهایی مرتبط با این دو روند، هر دو روش Symbolic و Connectionist تاکنون به موفقیتهایی دست پیدا نمودهاند اما در عین حال هر کدام از این روشها نقاط ضعف و قوت خاص خود را دارند. بر اساس دو روند فوق، پژوهشگران هوش مصنوعی در تلاشند تا به سه هدف کلی دست پیدا کنند که عبارتند از Strong AI ،Applied AI و Cognitive Simulation.
به طور خلاصه، هدف Applied AI تولید سیستمهای هوشمندی است که ارزش تجاری داشته باشند که از آن جمله میتوان به سیستمهای تخصصی تشخیص طبی و همچنین سیستمهای معملات سهام اشاره کرد و نیاز به توضیح نیست که این رویکرد تا به امروز به موفقیتهای بزرگی دست پیدا کرده است.
هدف Strong AI ساخت دستگاههایی است که قادر به فکر کردن باشند. شاید بسیار بلندپروازانه باشد، اما Strong AI در نهایت قرار است به جایی برسد که از هوش انسانی قابلتمایز نبوده و تست تورینگ را تحت هر شرایطی پاس کند (امروزه در حالی که عدهای از پژوهشگران با هدف شبیهسازی کامل هوش انسان در حال کار در زمینه Strong AI هستند، عدهای دیگر معتقدند که این هدف ارزش دنبال نمودن را ندارد.)
در Cognitive Simulation هم کامپیوترها با هدف بررسی نظریههای مطرحشده در مورد نحوهٔ عملکرد مغز انسان به کار گرفته میشوند. به عنوان مثال، در مورد اینکه انسانها چهطور چهرهها را تشخیص میدهند یا اینکه چهطور خاطرهها را به یاد میآورند میتوان از این رویکرد استفاده نمود و Cognitive Simulation در حال حاضر یکی از ابزارهای قدرتمند در علم عصبشناسی و روانشناسی شناختی به حساب میآید.
برخی از کاربردهای روزمرهٔ هوش مصنوعی
هوش مصنوعی در صنعت، پزشکی، آموزش، بانکداری، تجارت و بسیاری از زمینههای دیگر کاربرد دارد و به نظر به میرسد که هوش مصنوعی تا رسیدن به اهداف نهایی خود راه زیادی برای پیمودن دارد اما شاید جالب باشد اگر بدانید که هماکنون نیز بسیاری از انسانها در زندگی روزمرهٔ خود از هوش مصنوعی، دانسته یا ندانسته، استفاده میکنند که چند مورد از کاربردهای روزمرهٔ هوش مصنوعی عبارتند از:
- دستیار شخصی مجازی: Siri ،Google Now و Cortana دستیارهای شخصی هوشمندی هستند که به ترتیب در پلتفرمهای اندروید، آیاواس و ویندوز در اختیار کاربران قرار دارند. کاربران هر یک از این پلتفرمها میتوانند با صحبت کردن از دستیار خود در مورد موضوعی سؤال نموده و اطلاعاتی کسب کنند، میتوانند از آن بخواهند که در ساعت خاصی موضوعی را به آنها یادآوری نمایند و یا اینکه نزدیکترین پمپبنزین را برایشان پیدا کنند.
- بازیهای کامپیوتری: گیم از جمله مواردی است که اغلب مردم با آن آشنایی دارند. هرچند هوش مصنوعی در همان نسخههای اولیه و قدیمی این نوع بازیها نیز حضور داشته، اما در سالهای پیش رو نقش بسیار پررنگتری خواهد داشت. بهکارگیری هوش مصنوعی در بازیهای کامپیوتری سبب شده است تا شخصیت بازی بتواند رفتار شما را بیاموزد، به حرکات شما در بازی پاسخ داده و عکسالعملهای دور از انتظاری از خود نشان دهد. در بازیهای تکشخصیتی مانند Far Cry و Call of Duty نیز هوش مصنوعی کاربرد قابلتوجهی دارد به طوری که در این بازیها دشمنان شما که از هوش مصنوعی قدرت گرفتهاند میتوانند محیط خود را تحلیل نموده، اشیاء مورد نیاز خود را پیدا کنند و با نشان دادن واکنشهای مناسب، جان خود را نجات دهند. جالب است بدانید که این شخصیتها حتی میتوانند با سایر شخصیتهای هوش مصنوعی تعامل داشته و به این ترتیب شانس پیروزی خود را بیشتر کنند.
- خودروهای هوشمند: شاید تا به حال ندیده باشید که کسی هنگام رانندگی روزنامه یا کتاب بخواند اما در آینده به احتمال زیاد خواهید دید زیرا خودروهای بدون راننده در آینده به زندگی روزمرهٔ انسانها وارد خواهند شد.
- پشتیبانی و خدمات مشتریان: بسیاری از شرکتها در سرویسهای خود این امکان را برای مشتری در نظر گرفتهاند تا در صورت نیاز بتواند با پشتیبان به صورت آنلاین گفتگو نموده و اطلاعات مورد نظر خود را به دست آورد ولی ممکن است همیشه یک شخص واقعی پاسخگوی شما نباشد و البته با ورود هوش مصنوعی به این عرصه، دیگر نیازی هم به آنلاین بودن شبانهروزی منابع انسانی نیست زیرا قادر خواهید بود هر لحظهای که نیاز به اطلاعاتی داشتید با یک ربات هوشمند به گفتگوی آنلاین بپردازید و پاسخ خود را دریافت کنید.
- مراقبتهای امنیتی: چک کردن چندین نمایشگر که به دوربینهای کنترلکننده امنیتی متصل هستند کار خستهکنندهای است به نحوی که فرد پس از مدتی دقت اولیهٔ خود را عملاً از دست میدهد و از همین روی آموزش دادن کامپیوترها در این زمینه کار بسیار معقولی به نظر میرسد و این در حالی است که امروزه کامپیوترها قادرند تا خطرات امنیتی را تشخیص داده و در صورت نیاز به مراجع ذیربط اطلاع دهند.
- لوازم خانگی هوشمند: امروزه لوازم خانگی هوشمندی تولید شدهاند که میتوانند عادتها و رفتارهای شما را رصد کنند. مثلاً سیستم گرمایش/سرمایش منزل میتواند با توجه به ساعت ورود و خروج شما، دمای منزل را تنظیم کند تا در هزینهها صرفهجویی شود. روشنایی منزل شما میتواند به صورت خودکار و با توجه به اینکه در کجای منزل و مشغول چه کاری هستید، تنظیم شود و بسیاری از کاربردهای بزرگ و کوچک دیگر.
زبانهای برنامهنویسی پرکاربرد در صنعت هوش مصنوعی
سیستمهای مبتنی بر هوش مصنوعی تقریباً به همهٔ زبانهای برنامهنویسی نوشته شدهاند اما به نظر میرسد که محبوبترین زبانها در این زمینه Java ،Prolog ،Lisp و Python هستند.
Lisp - لیسپ
در دهههای ۱۹۷۰ و ۱۹۸۰ زبان Lisp کاملترین و محبوبترین زبان در توسعهٔ سیستمهای هوش مصنوعی به حساب میآمد و این محبوبیت به دلیل قابلیت پروتوتایپینگ فوقالعادهٔ آن و همچنین پشتیبانی آن از Symbolic Expressions بود. البته این زبان هنوز هم زبان محبوبی است و عمدتاً در یادگیری ماشینی کاربرد دارد.
Prolog - پرولوگ
زبان پرولوگ از لحاظ کارایی در سطح زبان Lisp است و قابلیتهایی مانند Pattern Matching ،Automatic Backtracking آن را به یک زبان کاربردی تبدیل نموده است. Prolog به طور گستردهای در سیستمهای خبره (Expert System) و همچنین در سایر پروژههای هوش مصنوعی با مقاصد پزشکی کاربرد دارد.
Java - جاوا
برای برنامهنویسی هوش مصنوعی، زبان جاوا میتواند یک انتخاب عالی باشد. این زبان شییٔگرا عمدتاً بر ایجاد قابلیتهای سطح بالای مورد نیاز در پروژههای هوش مصنوعی کاربرد دارد. کامیونیتی توسعهدهندگان این زبان نیز یک امتیاز مثبت دیگر جاوا است زیرا با وجود این جامعهٔ بزرگ همیشه کسی برای پاسخ دادن به سؤالات و مشکلات دولوپرها وجود خواهد داشت.
زبان جاوا از این جهت که کدنویسی الگوریتمها را آسان میکند نیز از اهمیت خاصی برخوردار است زیرا برنامههای هوش مصنوعی اغلب الگوریتمهای فراوان و متعددی را شامل میشوند. همچنین مقیاسپذیری این زبان نیز از جمله مزیتهای آن برای استفاده در هوش مصنوعی به حساب میآید که برای شروع یادگیری این زبان، میتوانید به دورهٔ رایگان آموزش جاوا در سکان آکادمی مراجعه نمایید.
Python - پایتون
پایتون یکی از پرکاربردترین زبانها در حوزهٔ هوش مصنوعی است و از دلایل محبوبیت این زبان در حوزهٔ هوش مصنوعی میتوان به وجود لایبرریهای کاربردی آن مانند Numpy (برای ایجاد قابلیت انجام محاسبات علمی)، Scypy (برای محاسبات پیشرفته) و Pybrain (برای استفاده در حوزهٔ یادگیری ماشینی) اشاره نمود که برای شروع یادگیری این زبان نیز میتوانید به دورهٔ آموزش پایتون در سکان آکادمی مراجعه نمایید.
حوزههای مختلف هوش مصنوعی
دامنهٔ هوش مصنوعی بسیار گسترده است و همچنان نیز در حال گستردهتر شدن است. با این حال، پیشرفتهای این حوزه را میتوان در ۵ زیرشاخهٔ کلی طبقهبندی نمود که عبارتند از:
منطق فازی
ایدهٔ Fuzzy Logic نخستین بار در سال ۱۹۶۵ توسط لطفعلی رحیماوغلو عسکرزاده یا به اختصار لطفیزاده مطرح شد. منطق فازی روشی در محاسبات است که بر خلاف منطق رایج بولینی (۰ یا ۱)، بر مبنای درجهٔ درستی بنا شده است. این روش، نحوهٔ استدلال انسان را شبیهسازی میکند و تمام حالتهای مابین دو حالت بولینی بله و خیر که عبارتند از مطمئناً بله، احتمالاً بله، نمیتوان گفت بله یا خیر، احتمالاً خیر و مطمئناً خیر را در نظر میگیرد. به عنوان مثال، در یک سیستم تهویهٔ هوا حالتهای مختلفی مانند خیلی گرم، گرم، معمولی، سرد، خیلی سرد میتواند در مورد میزان دمای اتاق در نظر گرفته شود.
این روش را میتوان در سیستمهایی با ابعاد و قابلیتهای مختلف و همچنین بر روی سختافزار، نرمافزار و یا ترکیبی از هر دو پیادهسای نمود. از جمله کاربردهای روزمرهٔ سیستمهای فازی در هوش مصنوعی میتوان به دندهٔ اتوماتیک اتومبیلها، کنترل محیط خودرو، دستگاههای فتوکپی، دوربینهای عکاسی و فیلمبرداری، تلویزیون، مایکرویو، یخچال، تُستر، جاروبرقی، ماشین لباسشویی، تهویهٔ مطبوع، خشککن، رطوبتساز و … اشاره نمود. همچنین این روش در هوشمندسازی نرمافزارها و شخصیتهای نرمافزاری، جلوههای ویژهٔ سینمایی، کامپیوترهای کوانتومی و … نیز کاربرد دارد.
پردازش زبان طبیعی
Natural Language Processing یا به اختصار NPL روشی در هوش مصنوعی است که توسط سیستمهای هوشمند برای تحلیل یک زبان طبیعی مورد استفاده قرار میگیرد. پردازش زبان طبیعی در مواردی همچون ترجمه و خلاصهسازی خودکار متون، ایجاد جملاتی به زبان طبیعی (به صورت نوشتار و گفتار) و تکنولوژی تشخیص گفتار (به عنوان مثال در گفتگو با دستیارهای مجازی و یا در هنگام سرچ صوتی)، دستهبندی متون و بسیاری حوزههای دیگر کاربرد دارد.
سیستمهای خُبره
Expert Systems نرمافزارهایی هستند که در یک حوزهٔ تخصصی مانند یک انسان متخصص عمل میکنند. این سیستمها هنگامی کاربرد دارند که قرار است کاری تخصصی در غیاب متخصص صورت بگیرد (مثلاً در مورادی که استخدام یک متخصص از لحاظ اقتصادی مقرون به صرفه نیست و یا اینکه دسترسی به محل انجام کار بسیار دشوار است و متخصصی حاضر نیست تا در آنجا کار کند.) سیستمهای خبره در مواردی چون تشخیص پزشکی، انجام بازیهایی که نیاز به فکر کردن دارند (مانند شطرنج)، پیشنهادات اقتصادی، تشخیص اشیاء، تعیین محل مناسب حفاری برای دستیابی به آب یا نفت و … به کار میروند.
رباتیک
رباتها دیوایسهای ساختهٔ دست بشر هستند که در دنیای واقعی اَعمالی همچون انسانها را انجام میدهند و رباتیک شاخهای از هوش مصنوعی است که با ایجاد رباتهای هوشمند سر و کار دارد و مجموعهای از علوم مهندسی الکترونیک، مهندسی مکانیک و کامپیوتر را شامل میگردد. جنبههای مختلفی از هوش مصنوعی در حوزهٔ رباتیک کاربرد دارند. به عنوان مثال Computer Vision (بینایی کامپیوتری) یکی از جنبههای کاربردی هوش مصنوعی در رباتیک است که امکان بررسی و تحلیل محیط پیرامون را برای رباتها فراهم میآورد. رباتها در صنایع تولیدی، صنایع دفاعی، خدمات درمانی، پژوهشهای علمی مانند فعالیتهای اکتشافی و … مورد استفاده قرار میگیرند.
شبکههای عصبی
تعریف Robert Hecht-Nielsen، مخترع نخستین شبکهٔ عصبی، از این فناوری اینگونه است که شبکه عصبی مصنوعی از تعدادی عناصر ساده تشکیل شده است که ارتباط درونی بالایی با یکدیگر دارند و با پاسخهای دینامیک خود، قادرند اطلاعات ورودی به سیستم را پردازش نمایند. شبکههای عصبی مصنوعی در صنایع هوافضا، خودروهای بدون راننده، صنایع دفاعی، صنایع الکترونیک، مسائل مالی و اقتصادی، صنایع تولیدی، نرمافزارها و … مورد استفاده قرار میگیرند.
یادگیری ماشینی
Machine Learning یکی از مفاهیمی است که در شبکههای عصبی مصنوعی کاربرد فراوانی دارد. یادگیری ماشینی به سه شیوهٔ نظارتشده، نظارتنشده و تقویتی بر شبکههای عصبی مصنوعی اِعمال میشود و کارایی آنها را افزایش میدهد که برای آشنایی بیشتر با این مفهوم، میتوانید به مقاله "یادگیری ماشینی چیست؟" مراجعه نمایید. همچنین اگر در درک تفاوتهای یادگیری ماشین (ML)، هوش مصنوعی (AI) و یادگیری عمیق (DL) دچار مشکل شده اید؛ مقاله ای با همین نام را در سکان آکادمی مطالعه کنید.
جمعبندی
هرچند برخی کارشناسان در مورد آینده و خطرات هوش مصنوعی اظهار نظر نموده و ابراز نگرانی کردهاند، اما بیشک استفادهٔ صحیح از این فناوری میتواند افقهای جدیدی را در برابر دیدگان بشر گشوده و زندگی آسانتر و شاید هیجانانگیزتری را برای ما رقم بزند. در همین راستا اگر علاقمند به کسب اطلاعات بیشتر پیرامون هوش مصنوعی هستید، میتوانید به پادکستهای تخصصی زیر از رادیو فولاستک سکان آکادمی نیز مراجعه نمایید:
- علی امیری: متخصص هوش مصنوعی و یادگیری ماشینی در گوگل
- محمود کریمیان: متخصص در حوزهٔ هوش مصنوعی
- اسماعیل آتشپز گرگری: متخصص هوشمصنوعی، داده کاوی و دانش داده
- سیدمصطفی کلامی هریس: یکی از دو بنیانگذار سازمان علمی-آموزشی فرادرس
- زهرا نظری: محقق هوش مصنوعی در شرکت Spotify
- نغمه غزاله: دکترای نوروساینس، متخصص ماشین لرنینگ و دیتا ساینس
- مصطفی اجللوییان: متخصص یادگیری ژرف، پردازش متن و پردازش زبان طبیعی
- امیرحسین پیبراه: فوقدکترای بیگ دیتا و متخصص سیستمهای توزیعشده
در پایان اگر علاقمند به دنبال کردن مباحث مرتبط با AI هستید، میتوانید دسته بندی #هوش مصنوعی را در وبلاگ سکان آکادمی دنبال نمایید.