هوشمصنوعی در دنیای امروز یه چیزی شبیه پیچگوشتی و انبردست در دنیای ۳۰۰ سال پیشه. اکثر چیزهای پیشرفته و به نسبت زمانهی خودتون «مدرن» ای که میبینین یه جایی اون وسطا برای ساخته شدن ازش استفاده کردن. اگر سررشته و تخصص مربوطی داشته باشید خب متوجه میشید در غیر این صورت بدون اینکه لزوما متوجه بشید ازش استفاده میکنید.
اینجا قراره راجع به این صحبت کنیم که این عبارت باکلاس هوشمصنوعی که میگن اصلا چطوری درست میشه. چطوری یه کامپیوتر بدون اینکه درک خاصی از هیچچیزی داشته باشه میره تو بازار بورس سهام خرید و فروش میکنه یا رو فروشگاههای اینترنتی بهتون پیشنهاد میده چه محصولاتی برای شما مناسبن؟
یک دسته از این کامپیوترهای هوشمند کار اصلیای که میکنن اینه که صرفا کار مشخص و با دستورالعملی که ما خودمون بلدیم رو سریعتر از ما انجام میدن. مثلا برای اینکه بفهمیم کمترافیکترین مسیر از خونه تا محل کار کدوم مسیر هست، کاری که باید انجام بشه مشخصه. چه من بخوام این کار رو انجام بدم چه یک کامپیوتر، هر دومون باید مسیرهای مختلف رو چک کنیم و ترافیک هر کدوم رو ببینیم و تخمین بزنیم چه قدر طول میکشه با این ترافیک به مقصد برسیم؛ نهایتا چند تا ترفند هم اون وسط بزنیم که یه ذره سریعتر تموم بشه. ولی خب چون کامپیوتر این کار رو خیلی سریعتر از من انجام میده مردم برای مسیریابی از Google Maps و Waze کمک میگیرن نه من.
ولی بعضی کامپیوترها و رباتها کارهای پیچیدهتری هم انجام میدن. مثلا شما باهاشون حرف میزنین و کلماتتون رو متوجه میشن و براتون تایپ میکنن. روش انجام این کار دیگه به سادگی چک کردن ترافیک مسیرهای مختلف نیست. حتی آدمها هم دقیقا نمیدونن چطوری متوجه میشن دیگران دارن چی میگن. صرفا میفهمن دیگه. رباتها چطوری انجامش میدن؟
اولین نکتهای که احتمالا باعث تعجبتون بشه اینه که «هیچکس نمیدونه». حتی سازندگان این رباتها نمیدونن که اینها چطوری دارن کار میکنن و از کجا صدای شما رو تشخیص میدن ولی دارن کار میکنن. جنس این پیچیدگی هم دقیقا مثل پیچیدگی مغز انسانه. داخل مغز انسان تعداد قابل توجهی نورون عصبی وجود داره که پیام منتقل میکنن. دیدن یک دونه از این نورونها و اینکه داره چه پیامی رو از کجا به کجا منتقل میکنه سادهست؛ ولی وقتی ۸۶ میلیارد نورون کنار هم دارن به سرعت پیامهای مختلفی رد و بدل میکنن خیلی قابل درک نیست که داره چه اتفاقی میوفته. برای رباتها هم همینه. شاید بشه یک تیکه کوچیک از برنامهشون رو نگاه کرد و متوجه شد دارن چه کار میکنن ولی وقتی کل سیستم رو ببینی خیلی قابل درک نیست.
حالا سوال اینه که خب در این صورت چنین سیستم پیچیدهای که حتی نمیشه فهمید داره چطوری کار میکنه رو چطوری میسازن؟! جواب اینه که نمیسازن. هیچکس خودش چنین رباتهای پیچیدهای رو نمیسازه. به جاش، دو تا ربات دیگه میسازن: ربات مهندس و ربات معلم. این دو تا ربات با هم دیگه همکاری میکنن تا ربات پیشرفتهمون ساخته بشه.
بیاین یک مثال بزنیم و توی اون مثال ببینیم چطوری این مهندس و معلم اون ربات پیشرفته رو میسازن. فرض کنین میخوایم یه ربات بسازیم که یک دوربین داره و عکس میگیره، و هر عکسی گرفت بهمون میگه این عکس یه رانندهتاکسی هست که پول خرد داره یا عکس یه کتاب تخیلی کودکان. البته مثال خوبی نیست چون شاید یه ذره سخت باشه تشخیص تفاوت این دو تا و رباتمون زیادی پیچیده میشه. بذارین یه مثال سادهتر بزنیم. رباتمون قراره تشخیص بده این عکس گوجهسبزه یا مداد.
قدم اول با ربات مهندس هست. ربات مهندس چندین میلیون ربات تصادفی با سیمکشیهای شانسی و رندوم درست میکنه که یک عکس رو نگاه میکنن و با توجه به سیمکشیهای تصادفیشون میگن گوجهسبز بود یا مداد. برای ربات مهندس مهم نیست که این رباتهای تصادفی خوب تشخیص بدن یا اصلا چطوری تشخیص بدن. مهندس فقط چند میلیون ربات میسازه و همهشون رو میده به ربات معلم. اگر دانشجو باشید عملکرد ربات معلم براتون خیلی غریبه نیست.
ربات معلم خیلی حال و حوصله تدریس نداره و کمکی به رباتها نمیکنه که بتونن بهتر تشخیص بدن. ربات معلم همون اول از همه رباتها امتحان میگیره. امتحانش هم اینطوریه که یه سری عکس میده به رباتها و ازشون میپرسه اینها گوجه سبزن یا مداد. اگه درست جواب بدن نمره سوال رو میگیرن. رباتهایی که نمره خوبی در امتحان بگیرن باقی میمونن ولی بقیهشون به طور کلی نابود میشن. ممکنه یک بار کلا سه تا ربات نمره خوبی بگیرن، ممکنه یک بار چند میلیون ربات.
ربات معلم اونهایی رو که نمره خوبی گرفتن پس میده به ربات مهندس و میگه اینا خوب بودن، سعی کن شبیه اینا باشن رباتهایی که میسازی. ربات مهندس یه نگاهی به این رباتهایی که نمره خوبی گرفتن میکنه و سعی میکنه رباتهای بعدی رو با انجام تغییرات تصادفی روی این رباتهایی که دارن خوب کار میکنن بسازه. و بعد چند دقیقه دوباره چند میلیون ربات تصادفی ایجاد شده که این بار یه ذره شبیه رباتهای خوب سری قبلی هستن.
دوباره مثل سری قبل، ربات معلم از همه این رباتهای جدید آزمون میگیره، اونهایی که نمره خوبی بگیرن برمیگردن پیش مهندس تا در حین ساخت رباتهای جدید به اینا نگاه کنه و اونهایی که نمره بدی گرفتن هم حذف میشن.
مشخصا هر چه قدر بیشتر این کار رو انجام بدیم رباتهایی که آخرش میمونن رباتهای بهتری هستن. ممکنه گاهی لازم باشه این کار رو چند میلیارد بار انجام بدیم تا رباتمون به اندازهای که میخوایم پیشرفته باشه. هر چه قدر هم آزمونهای ربات معلم سختتر باشن رباتها دقیقتر میشن. ولی یه نکتهای اینجا هست. ربات معلم از کجا میدونه هر عکسی گوجهسبزه یا مداد که بعد بتونه به رباتهای دیگه نمره بده؟ اگه ربات معلم میتونست این کار رو بکنه که خب اصن چه نیازی به این پروسه بود؟
ربات معلم خودش هم نمیدونه عکسهای مختلف گوجهسبزن یا مداد. اون کسی که ربات معلم و مهندس رو ساخته به ربات معلم یه عالمه عکس میده و خودش هم بهش میگه هر کدوم از اینها گوجهسبزن یا مداد. ربات معلم هم صرفا جوابهای رباتها رو با جوابهایی که ما از قبل بهش دادیم چک میکنه. هر چه قدر هم جلوتر میریم ربات معلم سختگیرتر میشه و حداقل نمره قبولی رو بالاتر میبره و در نهایت یه ربات باقی میمونه که از تعداد خیلی زیادی آزمون سربلند بیرون اومده و الان میتونه خیلی راحت تشخیص بده هر کدوم از عکسها گوجه سبزه یا مداد. چطوری این کار رو انجام میده؟ نه ربات معلم میدونه، نه ربات مهندس، نه ما و نه حتی خودش. دقیقا مثل انسانها که نمیدونن چطوری فرق گوجهسبز رو با مداد تشخیص میدن. صرفا تشخیص میدن دیگه. براشون مشخصه.
اگر شهود خوبی پیدا کرده باشین الان باید یه چیزی تو این مایهها تو ذهنتون باشه که «خب با چهل پنجاه تا سوال توی هر آزمون که نمیشه فهمید یه ربات داره از چند میلیون ربات دیگه بهتر عمل میکنه یا بدتر. اصلا ممکنه شانسی چند تا جواب درست بده و نمره خوبی بگیره». و درسته. هر آزمون برای اینکه واقعا به ما نشون بده این ربات داره خوب عمل میکنه یا نه باید چند ده هزار سوال داشته باشه. حالا سوال اینه که اگه قراره ما سوالها و جوابها رو بدیم به ربات معلم، از کجا این همه سوال بیاریم؟
یکی از راههاش اینه که به تعداد کافیای آدم پول میدیم تا این کار رو برامون انجام بدن. چند میلیون عکس بگیرن و پایین هر عکس بنویسن این عکس گوجهسبزه یا مداد. ولی یه ذره سخته چون برای اکثر این رباتها لازمه که دائما آزمونهای جدید و به روز درست بشن و به طور کلی هم هر چه قدر تعداد سوال بیشتر، رباتهای دقیقتر! از طرف دیگه، همیشه که نمیخوایم فرق گوجهسبز و مداد رو تشخیص بدیم. نمیتونیم برای هر رباتی که میخوایم درست کنیم آدم استخدام کنیم برامون آزمون ایجاد کنن. به این دلایل، یه سری راه دیگه استفاده میشه. راههایی که یکی از دلایل علاقه زیاد شرکتهای نرمافزاری به اطلاعات شماست. هر چه قدر از شما اطلاعات بیشتری بشه گرفت میشه آزمونهای بهتر و بلندتری رو برای ربات معلم درست کرد. حتی گاهی اوقات ممکنه از خود شما مستقیما پرسیده بشه جواب سوالات امتحان رو بدید که بشه باهاش رباتهای بهتری ایجاد کرد. تصویر پایین باید آشنا باشه.
در بعضی موارد یه روش دیگه هم برای آزمون گرفتن هست. به این شکل که به جای اینکه ما آزمون رو طراحی کنیم و بدیم به ربات معلم، ما خودمون آزمون باشیم. یعنی معلم، رباتها رو با ما تست کنه. مثلا آزمون ربات معلم اینستاگرام اینطوری میشه که رباتها باید پستهای خوب رو پیدا کنن و به کاربر نشون بدن. روش نمرهدهیش هم میشه اینکه آیا کاربر کلیک کرد روی پست یا نه. اگر کلیک کرد یعنی پست واقعا پست خوبی بوده و اون رباتی که این پست رو آورده نمره خوب میگیره. اگر کلیک نکرد یعنی پست بدی بوده و اون ربات نمره بدی میگیره. این هم یکی دیگه از دلایلیه که شرکتهای نرمافزاری علاقه بسیار زیادی به اطلاعات و فعالیتهای شما دارن. دائم دقت میکنن که چی سرچ میکنین، روی چی کلیک میکنین، چی رو لایک میکنین و چی پست میکنین.
همین الان هم دارن بهتون نگاه میکنن که چی کار میکنین تا بفهمن این پست، پست خوبی بوده یا نه. نتیجه آزمونش هم دست شماست. اگر پست رو همینطوری ببندید احتمالا به مرور زمان کمرنگ میشه. ولی اگر لایک کنین یا کامنت بذارین یا فالو کنین یا برای دوستانتون بفرستین متوجه میشن پست خوبیه و حذف نمیشه.