هوش مصنوعی (AI) چیست؟

هوش مصنوعی (AI) چیست؟

Intelligence در لغت به معنای «هوش» است و هوش همان چیزی است تمامی رفتارهای انسان -حتی ساده‌ترین رفتارها- به آن نسبت داده می‌شود و این در حالی است که در مورد موجودی مانند حشره -حتی در مورد پیچیده‌ترین رفتارهایی که از خود می‌تواند نشان دهد- کلمهٔ هوش مصداقی ندارد. چه تفاوتی میان این دو وجود دارد؟ 

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

Artificial Intelligence (هوش مصنوعی) که به طور خلاصه AI خوانده می‌شود، شاخه‌ای از علوم کامپیوتر است که در بر گیرندهٔ تمام فرآیندهایی است که به شبیه‌سازی هوش انسان (و یا حیوانات) بر روی کامپیوتر‌ها و یا دستگاه‌هایی که توسط کامپیوتر کنترل می‌شوند می‌پردازند. امروزه پژوهش‌های هوش مصنوعی عمدتاً بر جنبه‌های Learning  (یادگیری)، Reasoning (استدلال)، Problem Solving (حل مسئله)، Perception (ادراک) و Language (زبان) متمرکز شده است.

تاریخچهٔ هوش مصنوعی
تاریخچهٔ‌ هوش مصنوعی از آنجا شروع شد که دو پژوهشگر به نام‌های McCulloch و Pitts در سال ۱۹۴۳، مدلی از سلول‌های عصبی مصنوعی را ارائه نمودند (سلول‌های عصبی مصنوعی،‌ مشابه آنچه که در زیست‌شناسی به سلول‌های عصبی طبیعی اطلاق می‌شود، نورون نامیده می‌شوند). ویژگی‌ خاص این مدل این بود که در آن هر نورون می‌توانست On و یا Off باشد و هنگامی که تعداد زیادی از نورون‌های پیرامون یک نورون تحریک می‌شدند، آن نورون نیز روشن می‌شد. McCulloch و Pitts نشان دادند که توابع محاسباتی را می‌توان با شبکه‌ای از نورون‌های به هم پیوسته انجام داد.

در سال ۱۹۴۹، پژوهشگری به نام Donald Hebb استحکام اتصال نورون‌های این مدل را با یک قاعدهٔ ساده اصلاح نمود که این قاعده امروزه به نام قاعدهٔ Hebbian شناخته می‌شود و سرانجام در سال ۱۹۵۱، Marvin Minsky و Dean Edmonds موفق شدند تا نخستین کامپیوتری را بسازند که در آن از شبکه‌ عصبی استفاده شده بود. این کامپیوتر SNARC نام داشت و شبکهٔ عصبی آن از ۴۰ نورون تشکیل شده بود. تقریباً در همین زمان بود که پژوهشگری به نام Turing، مفاهیمی همچون تست تورینگ، یادگیری ماشینی، الگوریتم‌های ژنتیکی و یادگیری تقویت‌شده را معرفی نمود.

در سال ۱۹۵۶ در ورک‌شاپی که توسط شرکت IBM در دانشگاه Dortmouth برگزار شد که در این ورک‌شاپ McCarthy کلمهٔ Artificial Intelligence (هوش مصنوعی) را معرفی کرد. این معرفی که به منزلهٔ تولد رسمی هوش مصنوعی بود که فصل مهمی را در تکامل و پیشرفت این علم رقم زد.

پس از آن بود که Newell ،Show و Simon برنامه‌ای با قابلیت استدلال را ایجاد نموده و آن را Logic Theorist نامیدند. نظریهٔ‌ Chomsky نیز در همین زمان مطرح شد و تحلیل زبان را تحت تأثیر خود قرار داد. در سال ۱۹۵۸، John McCarthy یکی از زبان‌های برنامه‌نویسی تخصصی در صنعت هوش مصنوعی به نام LISP را ایجاد نمود.

در سال ۱۹۶۵، پژوهشگری به نام Robinson یک روش استنتاجی را برای حل مسئله ارائه داد و در همین زمان بود که نخستین سیستم خبره (Expert System) مبتنی بر دانش، به نام DENDRAL را در دانشگاه Stanford توسط Laderberg ،Feigenbaum و Djerassi توسعه یافت (در سال‌های بعد Feigenbaum ،Buchanan و Shortlife سیسم خبرهٔ دیگری ساختند که در تشخیص عفونت‌های خونی کاربرد داشت).

در سال ۱۹۶۸، پژوهشگری به نام 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
Turing test (تست تورینگ) که در سال ۱۹۵۰ توسط Alan Turing معرفی شد،‌ آزمونی است که توانایی یک کامپیوتر در نشان دادن رفتار‌های هشمندانهٔ مشابه انسان را مورد سنجش قرار می‌دهد. وسایل مورد نیاز برای انجام آزمون تورینگ عبارتند از متن، صفحه کلید و نمایشگر.

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

در ادامه، ابتدا به بررسی‌ مفاهیم کاربردی در هوش مصنوعی پرداخته، سپس به روندها و اهداف این علم اشاره خواهیم نمود و در پایان برخی از کاربردهای روزمرهٔ هوش مصنوعی را مورد بررسی قرار خواهیم داد.

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

در یک برنامهٔ کامپیوتری، انجام ذخیره‌سازی و فراخوانی موقعیت مهره‌ها و روند حرکات صورت گرفته کار نسبتاً ساده‌ای است بلکه چیزی که دشوار است، تعمیم و گسترش این تجربیات به موقعیت‌های جدید اما مشابه است. یک برنامهٔ کامپیوتری را در نظر بگیرید که قابلیت تعمیم‌دادن تجربیات را ندارد؛ اگر این برنامه‌ قبلاً با استفاده از تکرار در مورد تعدادی از افعال با قاعدهٔ انگلیسی آموزش دیده باشد، با مواجه شدن با کلمهٔ جدیدی مانند Jump قادر نخواهد بود حالت گذشتهٔ آن را ایجاد نماید مگر اینکه قبلاً با کلمهٔ Jumped آموزش دیده باشد. در حقیقت، یک برنامهٔ کامپیوتری با فرایند تعمیم‌‌ دادن، می‌تواند این قانون را یاد بگیرد که با افزودن ed به انتهای افعال می‌توان شکل گذشتهٔ آن‌ها را ایجاد نمود. بنابراین این برنامه می‌تواند با توجه به تجربه‌ای که قبلاً با سایر افعال داشته، اکنون حالت گذشتهٔ‌ افعال جدید ارائه شده را نیز ایجاد نماید.

Reasoning (استدلال)
استدلال بر دو نوع است: استدلال استنتاجی و استدلال استقرایی (قیاسی). برای روشن‌تر شدن این مسئله، به این دو مثال دقت کنید:

۱- یکی از دوستان شما در این ساعت از شبانه‌روز یا مشغول مطالعه است و یا در حال استراحت. در این مثال، اگر شما بدانید که او هم‌اکنون در حال مطالعه نیست، می‌توانید به شیوهٔ استنتاجی استدلال کنید که حتماً در حال استراحت است.

۲- یکی از دوستان شما در کلاس‌های ساعت ۸ صبح، همیشه کمی دیرتر از سایرین حاضر می‌شود و هنگامی که دلیل آن را جویا می‌شوید، بیان می‌کند که صبح خواب مانده است. اگر این دوست شما در جلسهٔ بعدی کلاس باز هم دیر حاضر شود، شما به روش استقرایی استدالال می‌کنید که گویا باز هم خواب مانده است.

تفاوت اساسی این دو استدلال در میزان پشتیبانی از قطعیت نتایج است. در استدلال استنتاجی (مثال نخست)، اگر فرضیات استدلال درست باشند، درستی نتیجهٔ استدلال نیز تضمین شده است اما در استدلال استقرایی (مثال دوم)، تضمینی برای درست بودن نتیجه وجود ندارد. در واقع، در مثال دوم شما بر اساس آنچه در روزهای قبل رخ داده بود،‌ به این نتیجه رسیدید که دوست شما امروز هم خواب مانده و به همین دلیل به موقع در کلاس حاضر نشده است؛ اما این استدلال قطعی نیست زیرا ممکن است او این بار خواب نمانده باشد بلکه به دلیل ترافیک سنگین و عدم مدیریت زمان، باز هم دیر کرده باشد.

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

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

Problem Solving (حل مسئله)
در هوش مصنوعی،‌ حل مسئله عبارت است از انجام یک جستجوی سیستماتیک و نظام‌مند در میان مجموعه‌ای از پاسخ‌های ممکن که با هدف دستیابی به یک راه‌حل یا هدف از پیش تعین‌شده صورت می‌گیرد. حل مسئله ممکن است اهداف خاص و یا اهداف عمومی را دنبال کند.

روش‌هایی که برای یک هدف خاص ایجاد می‌شوند، معمولاً فیچر‌های ویژه‌ای دارند که با شرایط آن‌ هدف و مسئلهٔ خاص هماهنگ هستند. در مقابل، روش‌های عمومی قرار دارند که در مورد دامنهٔ‌ وسیعی از مسائل و اهداف، قابل استفاده هستند. یکی از تکنیک‌های هوش مصنوعی که با اهداف عمومی مورد استفاده قرار می‌گیرد، Means-end Analysis است. این روش به صورت گام به گام اختلاف میان حالت فعلی و حالت نهایی تعیین شده را کاهش می‌دهد تا در نهایت به هدف مورد نظر دست پیدا کند. مثلاً در مورد یک روبات ساده، دستوراتی مانند بگیر، بردار، برو به چپ، برو به راست، برو به جلو، به عقب برگرد و … می‌تواند نهایتاً روبات را به هدف تعیین‌شده (مثلاً قرار دادن یک شیٔ در یک مکان) برساند.

تاکنون مسائل مختلفی با استفاده از برنامه‌های هوش مصنوعی حل شده است؛ به عنوان مثال، می‌توان در یک بازی، پیش‌بینی حرکت بُرد (یا مجموعه‌ای از حرکاتی که منجر به بُرد می‌شوند) را به هوش مصنوعی واگذار کرد.

Perception (ادراک)
در فرآیند ادراک، محیط با اندام‌های حسی (طبیعی یا مصنوعی) اِسکَن می‌شود؛ سپس مجموعهٔ اطلاعات جمع‌آوری شده توسط این اندام‌های حسی، به اشیاء مجزا با روابط مکانی مشخص تجزیه می‌شوند. باید در نظر داشت که زاویهٔ دید، جهت و شدت نور و میزان تضاد رنگ یک شیٔ نسبت به اطراف و عواملی از این دست می‌توانند بر تحلیل این اطلاعات تأثیرگذار باشند و این موضوع، فرآیند ادراک را دشوارتر می‌نماید. در حال حاضر، ادراک مصنوعی تا حدودی توسعه یافته و توانسته است امکان شناسایی اشیاء، راندن خودروهای بدون راننده با سرعت‌های متوسط و در جاده‌های خلوت و همچنین جمع‌آوری زباله از طبیعت توسط روبات‌ها را فراهم آورد.

Language (زبان)
زبان مجموعه‌ای از علائمی است که به طور قراردادی دارای معنا هستند؛ با این تعریف، زبان به آواها و کلماتی که برای گفتگو به کار می‌روند محدود نمی‌شود و قراردادی مانند علائم راهنمایی نیز می‌تواند یک زبان محسوب شود. به طور مثال، علامت به نوعی تداعی کنندهٔ «تحصیلات تکمیلی» است.

به عنوان مثال، در چنین زبانی هنگامی که شما علامت خطر را می‌بینید، به شکل هندسی آن فکر نمی‌کنید بلکه این مفهوم برای شما تداعی می‌شود که در حال نزدیک شدن به یک موقعیت خطرناک هستید. در زبان‌های انسانی نیز ممکن است کلمات و عباراتی که بیان می‌شوند با مفهومی که در بر دارند کاملاً متفاوت باشد. مثلاً ممکن است شخصی بگوید «ابرها رو ببین» که منظور اصلی‌اش مفهوم باران است و یا بگوید «اُفت فشار داریم» که در اینجا هم منظور اصلی‌اش این است که دریچه‌ها خوب کار نمی‌کنند. هر چند ما به عنوان انسان می‌توانیم به سرعت منظور این شخص را بفهمیم، اما اگر کمی دقت کنیم متوجه خواهیم شد که معنای این جملات با مجموع معانی تک‌تک کلمات آن‌ها متفاوت است. همچنین یکی از ویژگی‌های مهم یک زبان انسانی تکامل یافته، زایایی زبان است. یک زبان زایا،‌ قابلیت تولید تنوعی نامتناهی از مفاهیم را دارا است.

نوشتن یک برنامهٔ کامپیوتری که بتواند در موارد محدود به طور روان و سلیس به سخنان و سؤالات انسان پاسخ دهد، کار دشواری نیست. هرچند هیچ‌ یک از این برنامه‌ها،‌ عملاً قادر به درک زبان نیستند، اما به طور بالقوه این قابلیت را دارند تا در بیان و کاربرد عبارات و جملات به حدی برسند که از انسان قابل تمایز نباشند. اما آیا می‌توان گفت کامپیوتری که همچون یک انسان واقعی سخن می‌گوید، واقعاً آن زبان را فهمیده است؟

سؤال دشواری است و بر سر پاسخ آن اختلاف نظرهای زیادی وجود دارد؛ بر اساس یک نظریه، اینکه کسی زبانی را فهمیده است یا نه فقط به رفتار او بستگی ندارد بلکه به پیشینهٔ او نیز مرتبط است و هنگامی می‌توان گفت کسی زبانی را حقیقتاً فهمیده است که در محیطی که آن زبان حاکم است آموزش دیده باشد و در عمل بخشی از جامعهٔ آن زبان بوده و در تعاملات گویشوران آن زبان شرکت داشته باشد.

روندها و اهداف کاربردی در هوش مصنوعی
پژوهش‌های هوش مصنوعی از دو روند مجزا -و در برخی جنبه‌ها، متقابل- پیروی می‌کنند. این دو روند عبارتند از روند Symbolic (یا روش بالا به پایین) و روند Connectionist (یا روش پایین به بالا). روش سیمبولیک تلاش می‌کند تا صرف‌ نظر از ساختار مغز، فقط هوش و ادراک آن از علائم و نمادها (Symboles) را شبیه‌سازی و تقلید نماید، به همین دلیل این روش را Symbolic می‌نامند. روش کانکشنیست که در مقابل روش سیمبولیک قرار دارد، تلاش می‌کند تا با ایجاد شبکه‌های عصبی مصنوعی، ساختار مغز را شبیه‌سازی نماید و از این روی این روش Connectionist نامیده می‌شود.

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

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

بر اساس دو روند فوق، پژوهشگران هوش مصنوعی در تلاشند تا به سه هدف کلی دست پیدا کنند؛ این سه هدف عبارتند از Applied AI (هوش‌ مصنوعی کاربردی)، Strong AI (هوش مصنوعی تقویت شده) و Cognitive Simulation (شبیه‌سازی شناختی).

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

به طور کلی، هدف Strong AI ساخت دستگاه‌هایی است که قادر به فکر کردن باشند؛ شاید بسیار بلندپروازانه باشد، اما Strong AI در نهایت قرار است به جایی برسد که از هوش انسانی قابل تمایز نباشد! امروزه در حالی که عده‌ای از پژوهشگران با هدف شبیه‌سازی کامل هوش انسان در حال کار در زمینه Strong AI هستند، عده‌ای دیگر معتقدند که این هدف ارزش دنبال نمودن را ندارد.

در Cognitive Simulation، کامپیوترها با هدف بررسی نظریه‌های مطرح شده در مورد نحوهٔ عملکرد مغز انسان، به کار گرفته می‌شوند. به عنوان مثال، در مورد اینکه انسان‌ها چطور چهره‌ها را تشخیص می‌دهند یا اینکه چطور خاطره‌ها را به یاد می‌آورند می‌توان از این رویکرد استفاده نمود. Cognitive Simulation در حال حاضر یکی از ابزارهای قدرتمند در علم عصب‌شناسی و روانشناسی شناختی به حساب می‌آید.

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

دستیار شخصی مجازی: Siri ،Google Now و Cortana دستیارهای شخصی هوشمندی هستند که به ترتیب در پلتفرم‌های اندروید، آی‌او‌اس و ویندوز در اختیار کاربران قرار دارند. کاربران هر یک از این پلتفرم‌ها می‌توانند با صحبت کردن از دستیار خود در مورد موضوعی سؤال نموده و اطلاعاتی کسب کنند، می‌توانند از آن‌ بخواهند که در ساعت خاصی موضوعی را به آنها یادآوری نمایند و یا اینکه نزدیک‌ترین پمپ‌بنزین را برایشان پیدا کنند و بسیاری از درخواست‌های دیگری از این دست.

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

امروزه هوش مصنوعی در بازی‌های کامپیوتری سبب شده است تا شخصیت بازی بتواند رفتار شما را بیاموزد، به حرکات شما در بازی پاسخ داده و عکس‌العمل‌های دور از انتظاری از خود نشان دهد. در بازی‌های تک شخصیتی مانند Far Cry و Call of Duty نیز هوش مصنوعی کاربرد قابل‌توجهی دارد؛ در واقع، در این بازی‌ها دشمنان شما -که شخصیت‌های هوش مصنوعی هستند- می‌توانند محیط خود را تحلیل نموده، اشیاء مورد نیاز خود را پیدا کنند و با نشان دادن واکنش‌های مناسب جان خود را نجات دهند. این شخصیت‌ها حتی می‌توانند با سایر شخصیت‌های هوش مصنوعی تعامل داشته و به این ترتیب شانس پیروزی خود را بیشتر کنند.

خودروهای هوشمند: شاید تا به حال ندیده باشید که کسی هنگام رانندگی روزنامه یا کتاب بخواند اما در آینده به احتمال زیاد خواهید دید! زیرا خودروهای بدون راننده روز به روز به واقعیت نزدیک‌تر شده و در آینده به زندگی روزمرهٔ انسان‌ها وارد خواهند شد.

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

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

لوازم خانگی هوشمند: امروزه لوازم خانگی هوشمندی تولید شده‌اند که می‌توانند عادت‌ها و رفتارهای شما را بیاموزند. مثلاً سیستم گرمایش/سرمایش منزل شما می‌تواند با توجه به ساعت ورود و خروج شما، دمای منزل را تنظیم کند تا در هزینه‌ها صرفه‌جویی شود.

می‌توانید به جای اینکه وقتی به منزل رسدید اجاق گاز را روشن کنید تا غذایتان گرم شود، به محض اتمام ساعت کاری یا دقایقی پیش از رسیدن به منزل آن را روشن کنید. روشنایی منزل شما می‌تواند به صورت خودکار و با توجه به اینکه در کجای منزل و مشغول چه کاری هستید، تنظیم شود و بسیاری از کاربردهای بزرگ و کوچک دیگر (امروزه این حوزه تحت عنوان Internet of Things شناخته می‌‌شود که برای کسب اطلاعات بیشتر، توصیه می‌کنیم به مقالهٔ اینترنت اشیاء (Internet of Things) چیست؟ مراجعه نمایید).

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

زبان‌های برنامه‌نویسی پرکاربرد در صنعت هوش مصنوعی
برنامه‌های هوش مصنوعی تقریباً به همهٔ زبان‌های برنامه‌نویسی نوشته شده‌اند اما به نظر می‌رسد که محبوب‌ترین زبان‌ها در این زمینه Lisp ،Prolog ،Java و Python هستند.

Lisp: در دهه‌های ۱۹۷۰ و ۱۹۸۰ زبان Lisp، کامل‌ترین و محبوب‌ترین زبان در برنامه‌نویسی هوش مصنوعی به حساب می‌آمد. این محبوبیت به دلیل قابلیت Prototyping فوق‌العادهٔ آن و همچنین پشتیبانی آن از Symbolic Expressions بود. البته این زبان هنوز هم زبان محبوبی است و عمدتاً در یادگیری ماشینی کاربرد دارد. Lisp زبان قدرتمندی است که در پروژه‌های بزرگ هوش مصنوعی همچون Macsyma ،Dart و CYC مورد استفاده قرار گرفته است.

Prolog: زبان Prolog از لحاظ کارایی در سطح زبان Lisp است. قابلیت‌هایی مانند Pattern Matching ،Automatic Backtracking و مکانیسم‌های مبتنی بر دیتا استراکچر درخت مانند، آن را به یک زبان کاربردی تبدیل نموده است. زبان Prolog به طور گسترده‌ای در سیستم‌های خبره (Expert System) و همچنین در سایر پروژه‌های هوش مصنوعی با مقاصد پزشکی کاربرد دارد.

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

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

Python: زبان Python به علت سینتکس سادهٔ خود، یکی از پرکاربردترین زبان‌ها در حوزهٔ هوش مصنوعی است. این زبان در زمینه‌های دیتا استراکچر و سایر الگوریتم‌های پرکاربرد در هوش مصنوعی مورد استفاده قرار می‌گیرد. از دیگر دلایل محبوبیت این زبان در حوزهٔ هوش مصنوعی می‌توان به وجود لایبرری‌های کاربردی آن -مانند Numpy (برای ایجاد قابلیت انجام محاسبات علمی)، Scypy (برای محاسبات پیشرفته) و Pybrain (برای استفاده در حوزهٔ یادگیری ماشینی) اشاره نمود (برای شروع یادگیری این زبان، می‌توانید به دورهٔ آموزش رایگان پایتون در سکان آکادمی مراجعه نمایید).

حوزه‌های مختلف هوش مصنوعی
دامنهٔ علم هوش مصنوعی بسیار گسترده بوده و همچنان نیز در حال گسترده‌تر شدن و پیشرفت است؛ با این حال، پژوهش‌های هوش مصنوعی را می‌توان در ۵ زیرشاخهٔ کلی طبقه‌بندی نمود:

منطق فازی
ایدهٔ Fuzzy Logic (منطق فازی) نخستین بار در سال ۱۹۶۵ توسط دکتر لطفی‌زاده مطرح شد. منطق فازی روشی در محاسبات است که برخلاف منطق رایج بولینی (۰ یا ۱)، بر مبنای درجهٔ‌ درستی بنا شده است. این روش، نحوهٔ‌ استدلال انسان را شبیه‌سازی می‌کند و تمام حالت‌های مابین دو حالت بولینی بله و خیر (مطمئناً بله، احتمالاً بله، نمی‌توان گفت بله یا خیر، احتمالاً خیر، مطمئناً خیر) را در نظر می‌گیرد. به عنوان مثال، در یک سیستم تهویهٔ هوا، حالت‌های مختلفی مانند خیلی گرم، گرم، معمولی، سرد،‌ خیلی سرد می‌تواند در مورد میزان دمای اتاق در نظر گرفته شود.

این روش را می‌توان در سیستم‌هایی با ابعاد و قابلیت‌های مختلف و همچنین بر روی سخت‌افزار، نرم‌افزار و یا ترکیبی از هر دو، پیاده‌سای نمود. از جمله کاربرد‌های روزمرهٔ سیستم‌های فازی در هوش مصنوعی می‌توان به دندهٔ اتوماتیک اتومبیل‌ها، کنترل محیط خودرو، دستگاه‌های فتوکپی،‌ دوربین‌های عکاسی و فیلم برداری، تلویزیون‌، مایکرویو،‌ یخچال، تُستر،‌ جاروبرقی، ماشین لباس‌شویی، تهویهٔ مطبوع، خشک‌کن، رطوبت‌ساز و … اشاره نمود. همچنین این روش در هوشمندسازی نرم‌افزارها و شخصیت‌های نرم‌افزاری، جلوه‌های ویژهٔ سینمایی و … نیز کاربرد دارد.

پردازش زبان طبیعی
Natural Language Processing (پردازش زبان طبیعی) روشی در هوش مصنوعی است که توسط سیستم‌های هوشمند برای تحلیل یک زبان طبیعی -مثلاً انگلیسی- مورد استفاده قرار می‌گیرد. پردازش زبان طبیعی در مواردی همچون ترجمه و خلاصه‌سازی خودکار متون، ایجاد جملاتی به زبان طبیعی (به صورت نوشتار و گفتار) و تکنولوژی تشخیص گفتار (به عنوان مثال در گفتگو با دستیارهای مجازی و یا در هنگام سرچ صوتی)، قطعه‌بندی متون و اطلاعات و بسیاری حوزه‌های دیگر کاربرد دارد.

سیستم‌های خُبره
Expert Systems (سیستم‌های خُبره) نرم‌افزارهایی هستند که -در یک حوزهٔ‌ تخصصی- مانند یک انسان متخصص عمل می‌کنند. این سیستم‌ها هنگامی کاربرد دارند که قرار است کاری تخصصی در غیاب متخصص، صورت بگیرد (مثلاً در مورادی که استخدام یک متخصص از لحاظ اقتصادی مقرون‌ به‌ صرفه نیست و یا اینکه دسترسی به محل انجام کار بسیار دشوار است و متخصصی حاضر نیست تا در آنجا کار کند).

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

روباتیک
روبات‌ها عواملی ساختهٔ دست بشر هستند که در دنیای واقعی اعمالی همچون انسان‌ها را انجام می‌دهند و روباتیک شاخه‌ای از هوش مصنوعی است که با ایجاد روبات‌های هوشمند و کارا سر و کار دارد و مجموعه‌ای از علوم مهندسی الکترونیک، مهندسی مکانیک و کامپیوتر را شامل می‌گردد.

جنبه‌های مختلفی از هوش مصنوعی در حوزهٔ روباتیک کاربرد دارند. به عنوان مثال Computer Vision (بینایی کامپیوتری) یکی از جنبه‌های کاربردی هوش مصنوعی در روباتیک است که امکان بررسی و تحلیل محیط پیرامون را برای روبات‌ها فراهم می‌آورد. روبات‌ها در صنایع تولیدی، صنایع دفاعی، خدمات درمانی، پژوهش‌های علمی (مانند فعالیت‌های اکتشافی)، سرگرمی و … مورد استفاده قرار می‌گیرند.

شبکه‌های عصبی
تعریف دکتر Robert Hecht-Nielsen، مخترع نخستین کامپیوتر عصبی (Neurocomputer) از شبکهٔ عصبی مصنوعی این‌گونه است که شبکهٔ‌ عصبی مصنوعی از تعدادی عناصر ساده تشکیل شده است که ارتباط درونی بالایی با یکدیگر دارند و با پاسخ‌های دینامیک خود، قادرند اطلاعات ورودی به سیستم را پردازش نمایند.

شبکه‌های عصبی مصنوعی در صنایع هوافضا، خودروهای بدون راننده، صنایع دفاعی،‌ صنایع الکترونیک،‌ مسائل مالی و اقتصادی، صنایع تولیدی، نرم‌افزارها و … مورد استفاده قرار می‌گیرند.

یادگیری ماشینی
Machine Learning (یادگیری ماشینی) یکی از مفاهیمی است که در شبکه‌های عصبی مصنوعی کاربرد فراوانی دارد. یادگیری ماشینی به سه شیوهٔ نظارت‌شده، بدون نظارت و تقویت‌شده بر شبکه‌های عصبی مصنوعی اِعمال می‌شود و کارایی‌ آن‌ها را افزایش می‌دهد (برای آشنایی بیشتر با مفهوم ماشین لرنینگ، به مقالهٔ یادگیری ماشینی چیست؟ مراجعه نمایید).

هرچند برخی در مورد آینده و خطرات هوش مصنوعی نیز اظهار نظر نموده‌ و ابراز نگرانی کرده‌اند، اما بی‌شک استفادهٔ صحیح از این دانش می‌تواند افق‌های جدیدی را در برابر دیدگان بشر گشوده و زندگی آسان‌تر و شاید هیجان‌انگیزتری را برای ما رقم بزند.

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

آیا شما هم در پیاده‌سازی و کاربرد هوش مصنوعی تجربه‌ای دارید؟ از کدام جنبه‌های هوش مصنوعی تاکنون بهره برده‌اید؟ آینده و پیشرفت هوش مصنوعی را چگونه ارزیابی می‌کنید؟ نظرات، دیدگاه‌ها و تجربیات خود را با ما و سایر کاربران سکان آکادمی به اشتراک بگذارید.

منبع


رائفه خلیلی