اخیراً در حال مطالعه کتابی به نام The Master Algorithm نوشته Pedro Domingos هستم و به نظرم کتاب جالبی اومد. گفتم بشینیم با هم مطالعه کنیم.
کتاب مال ۲۰۱۵ هست و انگلیسی هست و تا به حال به فارسی ترجمه نشده. محتوای کتاب به نظرم اصلاً قدیمی نیست و خیلی جلوتر از زمانه خودش نوشته شده.
جامعه مخاطبی که برای کتاب در نظر گرفته شده، متنوع هست. از کسانی که به هوش مصنوعی علاقه دارند. تا کسانی که میخوان در بیزنس ازش استفاده کنند یا به عنوان شهروند یا دانشجو یا حتی یک متخصص هوش مصنوعی. جامعه هدف بزرگی رو در نظر گرفته. سعیش هم این بوده که به زبان ساده یک فهم جدید و دستهبندی جدید از الگوریتمهای یادگیری ماشین ارائه بده. با هدف اولیه این پادکست که توضیح مباحث فنی به زبان ساده است، همراهه.
عملاً یک ترجمه کاملاً آزاد از این کتاب با سبک و بیان خودم برای شما خواهم گفت و اصلاً به متن وفادار نخواهم بود. یه جاهایی هم نظرات شخصیم رو میگم (و بین نظرات خودم و نویسنده تفکیک قائل خواهم شد). ترتیب مطالب رو عوض میکنم و مفاهیم رو ترکیب میکنیم و عملاً با واسطه من این کتاب رو میشنوید.
تو این قسمت میخوایم از مقدمه این کتاب شروع کنیم. جایی که از خوندنش خیلی لذت بردم. امیدوارم شما هم ببرید.
شنیدن اپیزود
همه اپیزودهای این پادکست تو کانال کست باکس منتشر میشه و البته میتونید از جاهای دیگه هم بشنوید.اینجا هم میتونید فایل صوتی این قسمت رو گوش بدید:
زندگی با الگوریتمهای یادگیری
ممکنه ندونید اما یادگیری ماشین ما رو احاطه کرده. وقتی یک کوئری داخل موتور جستجو مثلاً گوگل وارد میکنیم، یادگیری ماشین تصمیم میگیره که کدوم نتایج رو بهمون نشون بده. حتی این که کدوم تبلیغات به ما نشون داده بشن، پشتش یادگیری ماشین هست.
وقتی ایمیلمون رو میخونیم، اکثر ایمیلهای اسپم رو نمیبینیم. چون یه الگوریتم یادگیری ماشین فیلترشون کرده.
به دیجیکالا میریم که یک چیزی رو بخریم. باز یادگیری ماشین تصمیم میگیره که چه کالاهایی رو بهمون پیشنهاد بده. میریم به نتفلیکس و باز یادگیری ماشین فیلم پیشنهاد میده. میریم تو ایسنتاگرام و یه الگوریتم یادگیری ماشین فید ما رو فیلتر میکنه و تصمیم میگیره که چه چیزهایی رو نشون بده یا نده. توییتر هم همینطوره.
پس احتمالش زیاده که هر وقت از کامپیوتر استفاده میکنیم، یک الگوریتم یادگیری ماشین یک جایی درگیر باشه.
بصورت سنتی، تنها راهی که میتونستیم به کامپیوتر بفهمونیم که چیکار کنه، این بود که بسیار دقیق و با جزئیات به زبان الگوریتم بهش توضیح بدیم. اما الگوریتمهای یادگیری ماشین متفاوت هستند. خودشون با توجه به داده یاد میگیرند و متوجه میشن.
اینجا نویسنده وارد توصیف زندگی بعد از الگوریتمهای یادگیری میشه. بخش بزرگی از چیزهایی که میگه رو همین الانش هم داریم. یه بخشیش هم چند سال دیگه تکمیل میشه.
ساعت ۷ با آلارم موبایل از خواب بیدار میشید. موبایل تصمیم گرفته از موزیکی استفاده کنه که تا حالا نشنیدید اما دوستش دارید. موزیکپلیر داخل خودروتون سلیقهتون رو تشخیص داده و آلارم رو هم همون پیشنهاد داده. شاید خود موزیک رو هم یک الگوریتم یادگیری تولید کرده باشه.
در حالی که صبحانه میخورید قبض برق رو میبینید که به شدت کاهش یافته چون ترموستات هوشمند نصب کردید. تو مسیر شرکت، سیستم سوخترسانی، مصرف سوخت رو بهینه میکنه. و نرمافزار مسیریاب کوتاهترین مسیر رو بهتون پیشنهاد میده.
سرکار هم هوش مصنوعی کمک میکنه که بتونید نامههای اداری رو بهتر بنویسید. صندوقهای سهامتون رو چک میکنید که از هوش مصنوعی برای انتخاب سهمهای مناسب استفاده میکنند. ظهر هم که میشه برای غذا خوردن به فلان سرویس پیشنهاد دهنده اعتماد میکنید.
برای امنیتتون به دوربینهای امنیتی تکیه میکنید که فعالیتهای مشکوک رو به همکاران امنیت گزارش میده.
بعد از کار به سوپرمارکت میرید و از قفسههایی جنس انتخاب میکنید که یک الگوریتم تشخیص داده چه چیزهایی باید داخلشون باشه. حتی این که چه چیزهایی باید کنار هم باشند هم الگوریتم مشخص کرده.
برای پرداخت دوباره درگیر الگوریتم میشید. یه الگوریتم تشخیص داده که فلان بانک یا سیستم اعتباری از طریق پیامک تو لحظه مناسب براتون پیشنهاد خوب بفرسته و یه الگوریتم دیگه تراکنشهای شما رو بررسی میکنه که مشکوک نباشه و مثلاً اگر کارتتون دزدیده شده باشه تشخیص میدن. یه الگوریتم دیگه سعی میکنه بفهمه چقدر از خدمات بانک راضی هستید و اگر ناراضی باشید، بهتون یه آفر ویژه بدن.
شب میشه. شام رو با خانواده میخورید. فوتبالی میبینید که تمام بازیکنها رو یک سیستم یادگیرنده انتخاب کرده. قبل از خواب، داروهاتون رو میخورید که یک الگوریتم دیگه با توجه به پروفایل و سابقه پزشکی شما برای دقیقاً شما طراحی کرده. حتی پزشکتون برای تفسیر تصاویر X-Ray یا CT-Scan، از هوش مصنوعی هم کمک میگیره.
خلاصه یادگیری ماشین در هر نقطهای از زندگیمون میتونه تأثیر بگذاره. حتی اگر تست SAT یا برای ما ایرانیها TOEFL داده باشید، یکی از مصححها الگوریتمه. اگر رزومه برای شغل میفرستیم، اول از یک الگوریتم رد میشه تا شاید بدست اعضای تیم برسه. خودمون هم برای نوشتن رزومه از هوش مصنوعی استفاده میکنیم و اینجا رقابت هوشمصنوعیها با هم جالب میشه.
میخوایم خونهمون رو بفروشیم و یک سیستم هوش مصنوعی قیمت رو تخمین میزنه. از اون طرف مشتریان هم با یک الگوریتم دیگه خونههای قیمت مناسب رو شکار میکنند.
برای وام درخواست میدیم و باز یک الگوریتم تشخیص میده که درخواست وام شما رو قبول کنه یا نه. شاید مهمتر از همه اینها، شاید همسرتون رو هم یک الگوریتم انتخاب کرده باشه!
به یک معنا شما انتخاب کردید اما الگوریتم تصمیم گرفته از بین صدها هزار گزینه، ۵ تا رو به شما پیشنهاد بده.
یه نکته هم خودم بگم که به نظر میاد تصمیمهای ما روز به روز دارند کمتر میشن. تصمیمات مهم ما رو یکی دیگه خواهد گرفت و اینجا سؤالی که پیش میاد اینه که ما چی هستیم؟
تغییرات کوچک و ابهام الگوریتمی
توصیفی که شنیدیم رو دوست داشتم به این علت که فکر میکردم حتماً باید یک هوش مصنوعی کامل (AGI) یا دانای کل بیاد تا بتونیم از مزایای هوش مصنوعی استفاده کنیم. اما الان میبینم عملاً با همین وضعیتی الان هوش مصنوعی هم میتونیم پیشرفت خیلی زیادی داشته باشیم.
در واقع جامعه با همین الگوریتمهای کوچیک کوچیک داره عوض میشه. به لطف این، شرکتها مشتریهاشون رو از همیشه بهتر میتونند بشناسند و تو سطح کشور، کاندیدایی که بهترین مدل از رأیدهندگان رو داشته باشه، برنده میشه.
به کشور خودمون نگاه نکنید. منظورم جایی مثل آمریکاست که خیلی سرمایهگذاری میکنند روی این که بتونند مردم رو دقیق خوشهبندی کنند و بصورت هدفمند رأیشون رو بدست بیارند.
یا آمازون رو نگاه کنید. هیچکس کد ننوشته که بگه شما کدوم محصولها رو دوست دارید. اصلاً نمیشه نوشت. اما به یک الگوریتم یادگیرنده گفتند که با توجه به دادهها خودش بفهمه.
خلاصه این که یادگیری ماشین یک تکنولوژی کاملاً متفاوت هست. تکنولوژیای که خودش، خودش رو میسازه. شما به اجداد دور ما نگاه کنید. از اون زمان که ابزار سنگی میساختیم تا الان، همیشه ما داشتیم مصنوعات رو طراحی میکردیم، اما این الگوریتمها مصنوعاتی میسازند که خودشون مصنوع طراحی میکنند.
اینجا یک مثال بزنم تو فصلهای بعد بیشتر صحبت میکنیم. همه الگوریتمها یک ورودی دارند و یک پردازشی انجام میشه و یه خروجی میدن. الگوریتمهای یادگیرنده بازی رو برعکس کردن: به این شکل که ورودی و خروجی رو با هم میدن به یه الگوریتم یادگیرنده و میگن الگوریتمی که اینها رو تولید میکنه تحویل بده. بدیهی هست هر چقدر داده بیشتر باشه، الگوریتم خروجی دقیقتره.
برای همینه که میگه که مصنوعاتی میسازند که خودشون مصنوع طراحی میکنند. جلوتر بیشتر توضیح میدم.
این تکنولوژیهای جادویی کار میکنند چون اصل یادگیری ماشین، پیشبینی هست. پیشبینی چیزی که میخوایم، پیشبینی نتایج کارهامون، پیشبینی چگونگی دست یافتن به اهداف و پیشبینی این که دنیا چگونه تغییر خواهد کرد.
یک زمانی برای این پیشبینیها به کفبین و دعانویس و فال قهوه روی آوردیم. اما الان ابزار بهتری داریم. عملاً هم اگر نگاه کنیم، سه نوع مسئله داریم. بعضی چیزها رو میشه کاملاً قطعی پیشبینی کرد و فهمید. بعضی چیزها ذاتاً غیرقابل پیشبینی هستند. و بعضی چیزها بینابین. یادگیری ماشین برای اون دادههای میانی کار میکنه. جایی که مثل فیزیک بصورت قطعی نمیتونیم پیشبینی کنیم، اما کاملاً تصادفی هم نیست و یک الگویی داره.
اما نکته اینجاست که ما خودمون این الگوریتمهای یادگیرنده رو درست کردیم و با این حال نمیفهمیمشون. حتی کلیتش رو هم نمیدونیم. انگار یک رازه. بعضیها سعی میکنند با رابطه همبستگی بخشیش رو به خودشون بقبولونند اما واقعیت اینه که همبستگی برای یادگیری ماشین، مثل نسبت آجر دیوار به خونه میمونه و هیچ کسی تو دیوار زندگی نمیکنه.
حرفش اینه که وقتی یک تکنولوژی انقدر استفاده میشه، هوشمند نیست که بگذاریم جعبه سیاه باقی بمونه. این عدم شفافیت باعث خطا و استفاده نادرست میشه.
الان الگوریتم آمازون، بیشتر از هر کسی تو دنیا تعیین میکنه که چه کتابهایی امروز خونده بشن. و مدلهای انتخاب سهام، بیشتر از هر کسی روی اقتصاد تأثیر دارند. ما هم نمیتونیم چیزی رو کنترل کنیم که نمیفهمیم. برای همینه که باید بفهمیم این الگوریتمها چین. این کتاب هم برای همینه.
اما سؤال اینه که تا چه سطحی لازمه با این الگوریتمها درگیر بشیم؟
مسئله اینه که فقط مهندسها و مکانیکها میفهمند که دقیقاً موتور ماشین چطوری کار میکنه. اما هر رانندهای لازمه بدونه که چرخوندن فرمون ماشین چه تأثیری داره و ترمز کارکردش چیه. رانندههای حرفهای بیشتر هم میدونند.
یادگیری ماشین هم همینه. افراد بسیار کمی هستند که بدونند اجزای یک یادگیرنده چی هستند و چطوری کار میکنند، چه برسه به این که ازش استفاده کنند.
آقای دان نورمن، روانشناس، یک کلمه رو به کار میبره که به درد کار ما میخوره. مدل مفهومی. مدل مفهومی به دانش تکنولوژی در حدی اشاره داره که بتونیم ازش به خوبی استفاده کنیم. و این کتاب دقیقاً همینه.
مسئله اینه که تعداد الگوریتمهای یادگیرندهای که داریم خیلی زیادن و حتی اونهایی که به نظر شبیه هستند تفاوت دارند با هم. مثلاً الگوریتم پیشنهاد دهنده آمازون با الگوریتم پیشنهاددهنده نتفلیکس تفاوت اساسی داره. شاید بگید یکیه. یکی فیلم پیشنهاد بده و اون یکی کالا.
اما اینطور نیست. بیزنس مدل آمازون با بیزنس مدل نتفلیکس فرق داره. آمازون باید از پیشنهاداتش مطمئنتر باشه. چون هر چی بیشتر بخرید بیشتر سود میکنه.
نتفیلکس بیزنس مدلش مبتنی بر حق عضویته. برای همین به نفعشه که یک سری فیلمهای خاصتر هم پیشنهاد بده. یه جورایی دستش بازتره. چون ماها به عنوان مشتری وقتی اشتراک داریم راحتتر ریسک میکنیم.
با همه این تفاوتها، همه این الگوریتمها مبتنی بر یک سری ایده اساسی هستند. یک سری سؤال وجود داره:
- چگونه یاد میگیریم؟
- چگونه پیشبینی میکنیم؟
- چگونه میتوان به چیزی که یاد گرفتیم اعتماد کنیم؟
مکاتب مختلفی در هوش مصنوعی داریم که جوابهای خیلی متفاوتی به این سؤالات میدن. پس عملاً ۵ تا مکتب در هوش مصنوعی داریم که برای هر مکتب یک فصل جدا اختصاص داده شده.
- مکتب نشانهگرایی یا Symbolism: ایدههاش رو از منطق، فلسفه و روانشناسی میگیره.
- مکتب ارتباطگرایان یا Connectionist: ایدههاشون رو از مهندسی معکوس مغز گرفتند و از نوروساینس و فیزیک الهام گرفتند. دیپ لرنینگ هم اینجاست.
- مکتب تکاملگرایان یا Evolutionaries: که از جناب داروین و انتخاب طبیعی ایده گرفتند و اون خط رو دنبال میکنند.
- مکتب بیزین یا Bayesian: که معتقدند یادگیری چیزی جز استنتاج احتمالاتی نیست و ریشهاش از آمار و احتمال میاد.
- و مکتب تمثیلگرایی یا Analogizers: این مکتب هم از شباهتها یاد میگیره و ایدهاش اینه که وقتی دو چیز شبیه هستند خروجیشون هم لابد شبیه هست.
و عملاً کل یادگیری ماشین رو میشه با این پنج تا مکتب یا قبیله توضیح داد. هر کدوم از این قبیلهها هم الگوریتم یادگیرنده اختصاصی خودشون رو دارند. مثلاً مکتب Connectionist الگوریتم اصلیاش Backpropagation هست. مکتب Evolutionaries، الگوریتم اصلیاش Genetic هست.
هر کدوم هم مزایا و معایب خاص خودشون رو دارند. چیزی که نویسنده میخواد اینه که بشه، ویژگیهای خوب این الگوریتمها رو با هم ترکیب کرد و یک الگوریتم یادگیرنده نهایی بسازیم. اسمش رو میذاره The Master Algorithm. الگوریتمی که میتونه همه مسائل رو حل کنه.
قطعاً تا حالا به همچین الگوریتمی نرسیدیم اما برای بعضیها امید به دستیابی به چنین الگوریتمی، باعث میشه که شببیداری کنند، شاید که بهش برسند.
اگر وجود داشته باشه، این الگوریتم میتونه تمام دانش گذشته، حال و آینده رو از روی داده بدست بیاره. اختراعش یکی از بزرگترینهای دستاوردهای بشری خواهد بود و سختترین مسائلی که الان باهاش دست و پنجه نرم میکنیم رو میتونه حل کنه؛ شاید چیزی مثل سرطان که هنوز درمان قطعیای براش نیومده رو بشه باهاش حل کرد.
به هر حال فعلاً که این الگوریتم رو نداریم. اما میتونیم به قبیلههای مختلف هوش مصنوعی سر بزنیم و باهاشون آشنا بشیم و این کاری هست که در قسمتهای بعدی انجام خواهیم داد.
خدانگهدار.