چند شب با NeurIPS 2019

کنفرانس NeurIPS معتبرترین کنفرانس یادگیری ماشین هستش که چند سال اخیر به شدت رشد کرده و فرصتی هستش تا محققان و دانشجویان و مهندسان و دوستداران یادگیری ماشین همگی دور هم جمع بشن و از آخرین پیشرفت‌های این زمینه مطلع بشن. امسال NeurIPS توی ونکوور برگزار شد و اکثر ارائه‌ها هم ضبط شدند و از اینجا قابل دسترسی هستند.ما هم تصمیم گرفتیم که بشینیم و بعضی شب‌ها ارائه‌هایی که به نظرمون جذاب اومدند رو ببینیم. توی این پست خلاصه‌ای از چند تا ارائه رو می‌نویسیم و تجربه‌مون از این کار.حدود ۱۳هزار نفر در کنفرانس امسال شرکت کرده بودند!!Computation + Systems vs Climate Change by Jeff Deanلینک ارائهاین ارائه اولین ارائه در ورکشاپ Tackling Climate Change With ML هستش که موضوعش کمک کردن به بهبود فرایند گرمایش زمین از طریق یادگیری ماشین هست. Jeff Dean، مدیر بخش هوش مصنوعی گوگل هستش و یکی از کلیدی‌ترین افراد گوگل در زمینه هوش مصنوعی و یادگیری ماشین هست. توی معرفیش اینطوری ازش یاد می‌کنن که اگر کارهایی که انجام نداده رو توی رزومه‌ش بنویسه رزومه‌ش کوتاه‌تر می‌شه! قبل از دیدن ارائه اولین چیزی که تو ذهنم بود این بود که خود این سرورهایی که روش فرایند یادگیری و جمع آوری و دیتا و ... انجام می‌شه به شدت مصرف برقشون بالاست و کلی انرژی صرف دیتاسنترها می‌شه و شاید اولین مرحله این باشه که یه فکری به حال اون بکنیم! اولین چیزی که Jeff بهش اشاره می‌کنه هم همین موضوع هستش. این که گوگل از سال ۲۰۱۷ تمام برقش رو از انرژی‌های تجدیدپذیر می‌گیره و از سوخت‌های فسیلی برای تامین برقش استفاده نمی‌کنه و نباید نگران اون مسئله باشیم.مصرف انرژی گوگل از سال ۲۰۱۷ به صورت کامل از انرژی‌های تجدیدپذیر بوده بعدش چند تا case مطرح می‌کنه که چطوری Bayesian Inference و شبکه‌های عصبی تونستند تو جلو بردن تحقیقات در زمینه Fusion و شبیه‌سازی مدل‌های آب‌وهوا کمک بکنن. یه مقداری هم در مورد این صحبت می‌کنه که از چه طریقی می‌شه این موضوع رو اطلاع‌رسانی کرد و باید به کیا کمک کنیم (دولت‌ها یا شرکت‌ها یا مردم عادی). یه مثال جالبی که درباره اطلاع رسانی می‌زنه ابزاری هستش که به کمک داده‌های Google Maps و تصاویر ماهواره‌ای ایجاد کردند. این ابزار می‌تونه تخمین بزنه که نصب پنل خورشیدی روی سقف خونه‌های هر شهر چقدر می‌تونه انرژی تولید کنه و برای یه شهروند چقدر هزینه داره.نکات اصلی ارائه برای من این بود که حس منفی‌ام نسبت به مصرف انرژی بالای دیتاسنترها بهتر شد. همچنین فهمیدم چقدر استفاده‌ی شبکه‌های عصبی تو شبیه‌سازی‌های پدیده‌های مختلف زیاد شده و بعضی از متدهای رایج قدیمی مثل حل معادلات دیفرانسیل دارن جاشون رو به شبکه‌های عصبی می‌دن.Agency + Automation by Jeffrey Heerلینک ارائهاین ارائه یکی از Keynote های امسال بود. Jeff Heer از بزرگان فیلد تصویرسازی و تعامل انسان و کامپیوتر (HCI) هستش و ابزارها و کتابخونه‌های خیلی مطرحی مثل D3 توسط گروه ایشون توسعه داده شده. توی این ارائه در مورد اتوماتیک کردن بعضی از کارهای افراد در زمینه‌های مختلف و تاثیر یه Ui تعاملی رو توضیح می‌ده. شروع ارائه با بحث در مورد این که ماشین‌ها جای انسان‌ها رو خواهند گرفت هستش که این روزها بحث خیلی داغی هست. Jeff می‌گه که این مسئله‌ی جدیدی نیستش و کل فیلد کاری ما در مورد همین مسئله هستش و به مقاله‌ای از ۱۹۶۰ در این مورد اشاره می‌کنه. بعدش توضیح می‌ده که نباید صفر و یکی به قضیه نگاه کنیم و از نظر میزان اتوماتیک شدن فرایند احتمالاً یه جایی اون وسط هستش که هم انسان راضی باشه و هم سازندگان ماشین، اما پیدا کردن اون نقطه بهینه کار آسونی نیست.توی بخش اصلی ارائه چند تا مثال از کارهای اخیرشون می‌زنه که چطوری سیستم‌هایی طراحی کردند که به کاربران کمک می‌کنه تا کارشون رو آسون‌تر، سریعتر و با کیفیت بیشتر انجام بدن. مثال اولش DataWrangler هستش که به افرادی که با داده سر و کار دارند کمک می‌کنه که سریعتر داده رو تمیز بکنن. مثلاً وسط فایل اکسلتون یه سری Header تکرار شده، کافیه شما یه دونه‌ش رو حذف کنید و بعدش برنامه به شما پیشنهاد می‌ده که بقیه‌ی ردیف‌های مشابه این رو هم حذف بکنه. مثال بعدیش از یه ابزار Data Exploration هستش که می‌شه توش دیتاست مورد نظر رو وارد کرد و نمودارهای مختلفی از ستون‌های مختلف کشید. هوشمندی ابزار توی اینه که خودش بهتون پیشنهاد می‌ده چه نمودارهایی رو بررسی کنید و توی چه نمودارهایی احتمالاً بتونید ویژگی‌های جالبی پیدا بکنید. مثال آخرش هم در مورد یه ابزار برای کمک به مترجمان از طریق ترجمه ماشینی هستش که به مترجمان پیشنهاد می‌ده از چه کلمات یا جملاتی استفاده کنند.در مورد ابزار ترجمه یه اسلاید خیلی جالب وجود داشت که می‌گفت اولین بار ایده‌ی همکاری ماشین و انسان برای ترجمه متن حدود ۵۰ سال پیش مطرح شده. چرا این ایده اینقدر کم مورد توجه قرار گرفته؟ خود Jeff و چند نفر دیگه سال ۲۰۱۵ یه مقاله دادند که نشون می‌دن یکی از دلایل اصلیش bias بیش از حد به اتوماتیک کردن کامل فرایند بوده. در واقع افراد بیشتر دوست داشتند که ترجمه «تمام اتوماتیک» داشته باشند تا این که چند نفر رو هم استخدام کنن تا بخشی از فرایند رو براشون انجام بدن.یه پروپوزال خیلی قدیمی برای این که چطوری یه سیستم ترجمه نیمه خودکار داشته باشیمچند مورد توی هر ۳ ابزار معرفی شده به چشم می‌خورد که برام خیلی جالب بود. یکی این که نمی‌خواستند این ابزارها کاربر رو محدود بکنند و کاربر مجبور بشه که همیشه از همین ابزار استفاده کنه. مثلاً توی Data Wrangler می‌تونن از ابزار خروجی کد هم بگیرن که از این به بعد مستقیم اون کد رو توی هر pipeline دیگه‌ای که دارند اجرا بکنن. نکته‌ی بعدی ظرافت‌هایی بود که توی UX ابزارهاشون داشتند و این که کجا، چقدر و چطوری پیشنهادات سیستم رو به کاربر نشون بدن. مثلاً توی ابزار ترجمه پیشنهادات ترجمه به صورت کمرنگ در ادامه متن تایپ شده وجود داشت و همچنین ابزار به کاربر نشون می‌داد که در لحظه در حال ترجمه کدوم جمله از متن اصلی هستش. نکته‌ی آخر فیدبک‌هایی بود که از کاربراشون گرفته بودند که نشون می‌داد چنین طراحی‌هایی چقدر کار دشواری هستش. بعضی از کاربران این حس رو داشتند که خیلی از هوشمندی که قبلاً خودشون به خرج می‌دادند رو الان نیازی نیست که داشته باشند و همون پیشنهاداتی که کامپیوتر می‌ده اکثر مواقع پیشنهادات خیلی خوبی هستش و کار رو جلو می‌بره و از این ناراضی بودند چون حس می‌کردند که دارن یه کار روتین انجام می‌دن و دیگه چالش خاصی نداره.در پایان ارائه کمی به چالش‌های فعلی که بین یادگیری ماشین و فیلد HCI وجود داره اشاره می‌کنه از قبیل این که چطوری می‌شه به کمک یادگیری ماشین یه سیستم تعاملی رو بهبود داد و اون نقطه بهینه برای میزان اتوماتیک‌کردن یک فرایند رو چطوری باید پیدا کرد.پی‌نوشت‌: اگر به موضوع جایگزین کردن افراد در برابر تقویت (augment) کردنشون علاقه مند هستید خوندن این مقاله هم خالی از لطف نیست.Uniform convergence may be unable to explain generalization in deep learningلینک ارائهاین مقاله جایزه Outstanding New Directions امسال NeurIPS رو برده بود و دوست داشتم که ببینم موضوعش چیه. یکی از مسائلی که از چند سال پیش توی Deep Learning مطرح شده و هنوز هم حل نشده در مورد اینه که چرا یک مدل شبکه عصبی که تعداد پارامترهاش بیش از حد زیاد هستش همچنان می‌تونه به خوبی چیزی که یاد گرفته رو تعمیم بده (Generalization). قبل از Deep Learning اکثر الگوریتم‌های یادگیری ماشین باندهای شسته رفته‌ای داشتند و مثلاً می‌شد گفت مدل X با قدرت تفکیک‌پذیری Y اگر با دیتاستی train بشه که اندازه‌ش D هستش به احتمال خیلی بالایی خطای خیلی کمی داره! توضیح دقیق‌ترش رو با کلیدواژه‌ی PAC Learning می‌تونید پیدا بکنید. باندهایی که وجود داشتند اما برای Deep Learning اصلاً دقیق (tight) نبودند. تو این چند سال هم کلی مقاله منتشر شده در مورد این که چطوری می‌شه این باندها رو دقیق کرد و بهبود داد . کار جالبی که این مقاله کرده بود اینه که نشون داده اگر در مدل‌سازی‌مون از مسئله فرض Uniform Convergence داشته باشیم، نمی‌شه باند خوبی به دست بیاریم. این فرض Uniform Convergence توی اکثر کارهایی که قبلاً انجام شده وجود داشته و کار این مقاله از این نظر مهم بوده که نشون داده اون مسیر نمی‌تونه ما رو به جواب خوبی برسونه.به طور کلی تئوری پشت یادگیری عمیق ضعیفه و هنوز کسی نمی‌دونه که چرا بعضی از تکنیک‌ها جواب می‌دن و بعضی‌ها نمی‌دن و خیلی حالت مهندسی داره. این مقاله برای منی که کلاً از کارهای تئوری خوشم نمیاد از این نظر جالب بود که یه مقدار بروز شدم از وضعیت تئوری پشت یادگیری عمیق و این که چه پیشرفت‌هایی داره حاصل می‌شه.تجربه‌ی مادرسته که خیلی از کنفرانس‌های مطرح در این زمینه‌ها برای ما ایرانی‌ها به دلیل مشکلات هزینه‌ای و ویزا و ... قابل دسترسی نیستند اما اکثرشون رو می‌شه به صورت آنلاین هم مشاهده کرد و از این نظر آپدیت موندن خیلی راحت‌تر شده. این اولین بار بود که ما این کارو کردیم و الان می‌دونیم برای دنبال نکردن چنین کنفرانس‌هایی بهونه‌ای نداریم. دیدن ارائه‌ها و به خصوص keynote ها دید خیلی خوبی به موضوعات مختلف می‌ده و همچنین باعث می‌شه که آدم بهتر علایق خودش رو بشناسه. مثلاً من دوباره یادم اومدم که چقدر خود HCI در کنار ML برام جذاب هستش و چقدر همچنان کارهای تئوری برام غیر جذاب هستش. خلاصه نویسی و منتشر کردن این خلاصه‌ها هم باعث می‌شه که آدم خیلی بیشتر به ارائه فکر کنه و نکات مهمش یادش بمونه.امیدوارم که خوشتون اومده باشه و برید خود ارائه‌ها رو هم تماشا کنید :)