امروزه کامپیوترها مخزنهای تقریباً همهکاره توان پردازشی هستند، با این حال احمق هم هستند. آنها قهرمانان مسلم شطرنج در جهان هستند اما نمیتوانند یک گفتوگوی ساده انگلیسی را درک کنند. ابرکامپیوتر واتسون شرکت آی بی ام در سال ۲۰۱۱ توانست دو شرکتکننده برتر Jeopardy (یک مسابقه تلویزیونی دانستنیهای عمومی بسیار مشهور در امریکا) را شکست دهد، اما ....
برای مشاهده ادامه خبر به ادامه مطلب مراجعه کنید
در پاسخ به پرسش «ملخها چه میخورند؟» واتسون پاسخ داد: «کوشر». واتسون، یکی از بزرگترین ماشینهایی که انسان تاکنون ساخته، با وجود همه دادههایی که میتوانست در کسری از ثانیه به آنها دسترسی پیدا کند، بد جوری خنگ جلوه کرد.
کار دشوار
در
نظر بگیرید چه دشوار است که کامپیوتر را وادار کنیم کاری را انجام دهد. به
عنوان مثالی ساده، فرض کنیم میخواهیم کامپیوتری را وادار کنیم تا کلمهای
را بیابد که در یک صفحه وب بیشترین فراوانی را دارد، شاید به عنوان نشانی
از آن که آن صفحه وب درباره چیست. نمونه زیر، شبهکد یک الگوریتم برای این
کار است که در آن یک جدول به نام WordCount داریم که دربرگیرنده شمار
رخدادهای هر واژه در آن صفحه است:
FOREACH CurrentWord IN WordsOnPage
WordCount[CurrentWord] = WordCount[CurrentWord] + 1
MostFrequentlyOccurringWord = “????”
FOREACH CurrentWord IN WordCount.keys()
IF (WordCount[CurrentWord] > WordCount
[MostFrequentlyOccurringWord])
MostFrequentlyOccurringWord = CurrentWord
PRINT MostFrequentlyOccurringWord, WordCount[MostFrequentlyOccurringWord]
نخستین حلقه FOREACH شمار
بارهایی که هر واژه در آن صفحه پیدا میشود را مییابد. دومین حلقه FOREACH
در این فهرست واژههای یکتا میچرخد تا آن یکی که بالاترین شمار را دارد،
پیدا کند. پس از یافتن پرکاربردترین واژه، آن را به همراه شمار بارهای
کاربردش در آن صفحه، چاپ میکند. اما نتیجه چنین جستوجویی در یک صفحه متن
انگلیسی، شاید واژهای مانند the خواهدبود. در واقع معمولاً جالبترین
واژهها، کمکاربردترینها در یک صفحه هستند، مانند myxomatosis یا
hermeneutics. اگر دقیقتر بگوییم، آنچه واقعاً بهدنبالش هستیم، آن است
که کدام واژههای کمکاربرد، در این صفحه بیش از صفحههای دیگر به کار
رفتهاند. واژههای کمکاربرد به احتمال، اطلاعات بیشتری درباره موضوع آن
صفحه به شما خواهندگفت. پس لازم میشود که چنین دادههایی را در مقیاس بالا
بیابیم وذخیره کنیم.
هر دستوری به کامپیوتر باید به همین اندازه دقیق
باشد که البته همین امر باعث دشواری کار میشود. برخی از بزرگترین
دستاوردها در علوم کامپیوتر، ساختن الگوریتمهایی هوشمند، کارآمد و سودمند
مانند Quicksort، مقایسه هافمن، تبدیل فوریه سریع و روش مونتهکارلو
بودهاند که همگی روشهای ساده (اما نابدیهی) انجام دادن کارهایی بسیار
مشخص روی حجمی کلان از دادههای بسیار مشخص است. در کنار اینگونه چالشهای
پردازشی، رویای هوش مصنوعی بودهاست: این که کامپیوترها را واداریم
«بیاندیشند!»
جستوجو
با
گذشت تقریباً دو دهه از آغاز به کار موتورهای جستوجوی وب مانند Lycos،
آلتاویستا و Northern Light، به آسانی میتوان فراموش کرد که چه ملغمهای
تحویلتان میدادند. افزون بر پوشش بریده بریده وب در حال پیدایش، هیچکدام
روش ماهرانه مشخصی برای مرتب کردن نتیجههای جستوجو نداشتند. یاهو که یک
کادر جستوجو در اختیار کاربران میگذاشت، درواقع اصلاً یک موتور جستوجو
نبود، بلکه یک مخزن گزینشی از صفحههای وب بود که به شکل دستی روزآمد
میشد. در هر یک از دو حالت، کاربران اغلب ناچار بودند صفحههای نتیجه
جستوجو را که معمولاً نیز توضیح یا خلاصه کاملاً نامربوطی داشتند،
یکبهیک بکاوند تا چیزی که دستکم شباهتی به اطلاعات مورد نظرشان
داشتهباشد، بیابند. با افزایش صفحههای اسپم روی وب، این مشکل بیشتر شد.
اما یک کامپیوتر چگونه میتوانست تنها بر پایه مشتی واژههای جستوجو،
بداند که یک کاربر به دنبال چیست؟
یکی از موتورهای جستوجوی نخستین،
کوشید این نارسایی را با دستیابی به درکی معنایی (سمانتیک) از جستارهای
دریافتشده، بپوشاند. Ask Jeeves (که اکنون بهسادگی با نام Ask
میشناسیمش) کاربران را ترغیب میکرد بهجای کلیدواژهها، پرسشهایی کامل
را برای جستوجو وارد کنند: «کجا میتوانم کفش بخرم؟» بهجای
«کفشفروشیها». صفحه نخست آن تصویر یک پیشخدمت مرد را در لباس رسمی
انگلیسی نشان میداد به نام Jeeves (برگرفته از سری داستانهایی به همین
نام، از نویسنده بریتانیایی، P. G. Wodehouse) که شوربختانه بیشتر مانند
برتی ووستر، شخصیت راوی این داستانها، بود.
Jeeves جستارها را چندان
خوب انجام نمیداد. در حالی که موتورهای جستوجوی دیگر در صفحههای وب به
دنبال واژههایی مشخص میگشتند و شمار بالاتر کاربرد واژه، علامت بهتری
بود. Jeeves پرسشها را بهگونهای اکتشافی تفسیر میکرد و به دنبال
کلیدواژههایی پرسشی مانند «کجا»، «چه کسی» و «چگونه» میگشت، سپس پرسش را
به کمک آنها و گاه با قدری دستکاری بیشتر، به جستاری متعارفتر تبدیل
میکرد. «سن رئیسجمهور چهقدر است» ممکن بود با حذف کردن « چهقدر است» و
با پیروی از یک قانون درونی که پاسخ به چنین پرسشی را یک عدد پذیرفتنی
(مثلاً میان 0 و 100) قرار میداد، به جستار «سن رئیسجمهور» تبدیل شود.
سپس Jeeves آرشیو خود از اینترنت را به دنبال رخدادهای «سن رئیسجمهور»
یا «رئیسجمهور» در کنار عددی دورقمی میکاوید ( به طبع نمیدانست که نام
رئیسجمهور هم معادل «رئیسجمهور» است). اگر سایتهایی مییافت که در
آنها عبارت «سن رئیسجمهور 52 سال است.» یا «رئیسجمهور 52 سال دارد.»
آمدهبود، میتوانست تقریباً مطمئن باشد که این پاسخ درست است. اما تنها به
این دلیل میدانست باید به دنبال آن الگوها باشد که به دست انسانها
برنامهریزی شدهبود. موردهای دیگر نیازمند کدهای دستساز مشابهی بودند.
این فرآیند طاقتفرسا بود و «مقیاسپذیر» هم نبود. مورد ویژه «پرسیدن سن یک
شخص» به این شکل پوشش داده میشد، اما هر چیز پیچیدهتری مانند «قدمت
سیستم متروی نیویورک چهقدر است؟» یا «قانون حق نخستزادگی به چه زمانی
بازمیگردد؟» و بدتر از آن، «12سالگی در مقیاس سگها همسنگ چه سنی است؟»،
Jeeves بینوا را گیج میکرد.
Eliza و SHRDLU
Jeeves
دقیقاً هم پاسخ را جعل نمیکرد، بلکه واقعاً میکوشید پرسش را بفهمد اما
توانش برای این کار بهطور غیرمنتظرهای محدود بود. برای برنامهنویسان،
Jeeves نسخه روزآمدی از کد جوزف وایزنباوم به نام Eliza بود؛ برنامهای
نوشتهشده در سال 1966 که به تناوب ادای یک درمانگر Rogerian را
درمیآورد، بیشتر با چرخاندن جملههای طرف صحبتش و تبدیل کردنشان به پرسش.
برای نمونه:
امروز چطوری؟ دوست داری درباره چه بحث کنیم؟
بحران عصبی دارم.
آیا به خاطر بحران عصبیات پیش من آمدهای؟
بله.
به نظر خیلی مثبتگرا میآیی.
پدرم از من متنفر است.
برایم بیشتر از خانوادهات بگو.
آشفتهام.
به خاطر آشفتگیات پیش من آمدهای؟
نه.
داری کمی منفی میشوی.
الایزا میتوانست واژههایی مانند بله، خیر و پدر را دریابد و به کمک آنها پاسخهای مشخصی بدهد. اما همه توانش در همین حدود بود.
چند
سال بعد، SHRDLU آمد، که در «امآیتی» به دست یک پژوهشگر هوش مصنوعی با
نام Terry Winograd توسعه داده شدهبود. SHRDLU یک دستاورد راستین در عرصه
محاسبات بود. این نرمافزار امکان برهمکنش به زبان طبیعی با کامپیوتر را
در محدوده شرایطی خاص، فراهم میکرد. بلوکهایی با شکلهای هندسی مختلف روی
صفحه، نمایش داده میشدند و کامپیوتر میتوانست در پاسخ به دستورهایی که
یک نفر تایپ میکرد، آنها را جابهجا کند:
کاربر: یک بلوک بزرگ قرمز بردار.
کامپیوتر: بسیار خوب (انجامش میدهد).
کاربر: هرم را بردار.
کامپیوتر: نمیفهمم، کدام هرم را میگویی؟
کاربر: بلوکی پیدا کن که از آن که نگه داشتهای، بلندتر باشد و بگذارش درون جعبه.
کامپیوتر: فرض میکنم ضمیر «ش» به بلوکی برمیگردد که بلندتر از این یکی است که نگه داشتهام.
کامپیوتر: بسیار خوب (انجامش میدهد).
کاربر: درون جعبه چیست؟
کامپیوتر: هرم آبی و قوطی آبی.
کاربر: هرم روی چیست؟
کامپیوتر: روی جعبه است.
کاربر: درون جعبه چند بلوک است؟
کامپیوتر: چهار تا.
کاربر: آیا دستکم یکی از آنها باریکتر از آن یکی است که گفتم برداری؟
کامپیوتر: بله، مکعب قرمز.
کاربر: آیا روی چیزی است؟
کامپیوتر: بله، روی میز است.
کاربر: آیا میز میتواند بلوکها را بردارد؟
کامپیوتر: نه.
کاربر: آیا میتوان یک هرم را روی یک بلوک قرار داد؟
کامپیوتر: بله.
کاربر: یک «مناره»، پشتهای است که از دو مکعب سبز و یک هرم ساخته شدهباشد.
کامپیوتر: میفهمم.
کاربر: آیا هماکنون هیچ منارهای در آن میان هست؟
کامپیوتر: نه.
کاربر: یکی بساز.
کامپیوتر: بسیار خوب (انجام میدهد).
کاربر: بزرگترین بلوک را «ابربلوک» بنام.
کامپیوتر: بسیار خوب.
کاربر: آیا از زمانی که آغاز کردهایم تاکنون، ابربلوک را برداشتهای؟
کامپیوتر: بله.
کاربر: چرا رهایش کردی؟
کامپیوتر: فرض میکنم ضمیر «ش» به ابربلوک برمیگردد. من نمیتوانم رخدادی را که وجود ندارد، شرح دهم.
هر
جمله انسانی باید به زبان استانداردی برگردانده میشد که معنی آن را نشان
میداد. در این زبان، جمله «یک بلوک قرمز بردار.» (pick up a red block)
این گونه نمایش داده میشود:
(((PICK UP A BIG RED BLOCK)
(CLAUSE MAJOR TOPLEVEL IMPER ACTV PRT TRANS)
(RSS1)
(((PICK) (VG IMPER) NIL ((PICK (VPRT VB INF TRANS MVB))))
(UP (PRT))
((A BIG RED BLOCK)
(NG OBJ OBJ1 DET NS INDEF)
(OSS4)
((A (DET NS INDEF)) (BIG (ADJ)) (RED (ADJ)) (BLOCK (NOUN NS))))))
NIL)
به نظر میرسید چنین
برنامههایی نویدبخش ارتباط عمومیتر باشند، اما رمز موفقیت SHRDLU دقیقاً
در کوچک بودن حوزه کاری آن بود. این برنامه زبان انگلیسی را میفهمید،
البته تا زمانی که بحث، تنها درباره بلوکهای رنگی و کارهایی که میشود
رویشان انجام داد، بود.
آلن تورینگ، تحلیلگر نابغهای که در جنگ جهانی
دوم کدهای انیگمای آلمانیها را شکست و برخی از پایههای علوم کامپیوتر را
پیریزی کرد، آزمون مشهوری برای تعیین هوشمندی کامپیوتر پیشنهاد کرد: این
که در گفتوگویی فقط متنی، بتواند طرف گفتوگویش را متقاعد کند که انسان
است. تورینگ در سال 1950 پیشبینی کرد کامپیوتری که بتواند از عهده این
آزمون برآید باید دستکم 128 مگابایت حافظه داشتهباشد و تا سال 2000 ساخته
خواهدشد. تورینگ در سال 1954 درگذشت و اگرچه ده سال است که کامپیوترهای
شخصی مرز این مقدار حافظه را پشت سر گذاشتهاند، هیچ کامپیوتری حتی
نتوانسته به حد گذراندن این آزمون نزدیک شود.