زیربناهای یادگیری ژرف

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

برنامه و فیلم‌های آن را می‌توانید در اینجا بیابید.

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

Sample-Optimal Low-Rank Approximation of Distance Matrices

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

جدا از این‌که نتیجه مقاله جالب است، و تکنیک‌هایی که در ارائه الگوریتم استفاده شده نیز خیلی جالب هستند، نکات آموزنده‌ای در این مقاله نهفته است.

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

۲) کارهای باکیفیت چگونه ساخته می‌شوند. مثلا همین مقاله را اگر نگاه کنیم، کار اصلی نویسندگان از سرهم کردن چند روش بسیار پیچیده، تغییرات اندکی در استفاده از آن‌ها تهیه شده به اضافه مقدار فراوانی کار پرمغز برای به هم وصل کردن این تکنیک‌ها! یعنی کار اول این است که بدانیم چه روش‌های روز به روز در حال ارائه شده هستند. چیزی که شدیدا در آن ضعیف هستیم. از پیشنهادهایی که برای رفع این ضعف می‌توان داشت، شرکت در کنفرانس‌های خارجی است، که البته خیلی سخت است. راه دیگر دیدن فیلم‌ها و دنبال کردن کنفرانس‌ها یا کارگاه‌های علوم کامپیوتر روز دنیا است که خدا را شکر به راحتی در دسترس همه هست.

علم حساب

ظاهرا در گذشته‌های دور، ریاضیات را به عنوان علم حساب می‌شناختند. اگر چنین باشد، رابطه علوم کامپیوتر با ریاضیات چه می‌شود؟

الگوریتم تقریبی تطابق وزن‌دار در گراف کلی با زمان اجرای تقریبا خطی

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

مقاله‌ای که از طریق این مقاله وب‌گاهشان را پیدا کردم:

Linear Time Approximation for Maximum Weight Matching
Ran Duan and Seth Pettie
J. ACM 61(1), Article 1, 2014.
PDFBibTex

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

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

نمی‌دانم پیاده‌سازی درست و حسابی از الگوریتمشان موجود هست یا خیر.

هوش مصنوعی، پیش‌رانه اصلی فن‌آوری آینده

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

از مصادیق این دانشمندان، آقای مدری است. ایشان که کارهای نظری، و بسیار غیرکاربردی بسیار خوبی دارند، نیز به این کارها علاقه‌مند هستند.

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

Science of Deep Learning: Bridging Theory and Practice

درس در ترم بهار ۲۰۱۸ ارائه شده. مدرسین درس آقایان Konstantinos Daskalakis و
Aleksander Mądry هستند.

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

ببینیم آیا این اساتید می‌توانند با کمک یکدیگر فعالیتی نظری از دل هوش مصنوعی در بیاورند؟

از آقای اشکبوس هم که درس را معرفی کردند تشکر می‌کنیم.

برخی مشکلات دانشگاه

یکی از دانشجویان دو تا از مشکلات دانشگاه را نام برده:

  • اینکه وقت اساتید پر است از کارهایی که الزامی ندارد خودشان انجام دهد.اینکه در دانشگاه ما پول آنچنانی وجود ندارد و این خود مشکل زاست. برای مثال همین مساله باعث میشود که اساتید زیاد نتوانند به کنفرانس‌های خارجی بروند.
  • اینکه دانشگاه ما علم یا تکنولوژی تولید نمیکند یا حداقل معلوم نیست که تولید میکنند.

البته بعضی از این مشکلات زاده‌ی مشکلات دیگری هستند که معلوم نیست ریشه در کجا دارد. 

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

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

عمل تولید فن‌آوری در دانشگاه هم البته مشکلی است. اما مشکلی جدی، حداقل برای ما نیست.

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

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

جمع‌بندی مشکلات دانشجویان با تدریس درس ساختمان داده ۹۷۱

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

  1. مشکل آزمون‌ها
    • میان‌ترم از کتاب بود نه از کلاس، پس کتاب را بخوانیم بهتر از کلاس است. 
    • پاسخ: انتظار می‌رفت شما هم کتاب را و هم کلاس را بلد باشید. طبیعتا گاهی سوال‌ها بیشتر از کتاب و گاهی بیشتر از کلاس خواهد بود. اما به طور کلی باید هر دو را بلد باشید. این‌که یک تمرین از تمرین‌های کتاب داده باشیم هم نمی‌شود بیشتر از کتاب بود.
    • مباحث پایان‌ترم که اعلام شده بود با مباحث امتحان فرق داشت. و قسمت‌هایی از درس در آزمون نیامده بود.
    • پاسخ: راستش خیلی هم موافق این ماجرا نیستم. اگرچه تمامی مطالب درس در آزمون نیامده بودم، اما تعداد مباحث زیاد بود و طبیعتا در این حالت، برخی مباحث را در تمرین‌ها و آزمونک‌ها می‌دهند و برخی را در پایان‌ترم. سعی شد آزمون پایان‌ترم همین‌طور باشد.
    • پایان‌ترم مطابق انتظار نبود.
    • پاسخ: راستش خیلی انتظار دانشجویان را درک نمی‌کنم. اگر منظور این است که یک سوال سخت داشت، بله، این را درک می‌کنم که دانشجو انتظار ندارد هیچ سوال خیلی سختی در آزمون باشد. 
    • سخت بودن آزمون‌ها
    • پاسخ: آیا واقعا آزمون‌ها سخت بود، یا اینکه آزمون‌ها یک سوال سخت داشت؟ اگر فرض کنید آن سوال سخت امتیازی بود چطور؟ باز هم به نظرتان آزمون‌ها اشکال داشت؟ 
    • ارزیابی نامناسب
    • پاسخ: کمی نامفهوم است. منظور این است که افرادی که بهتر بلد بودند نمره کمتری گرفتند؟ یا کلا باید میانگین بالاتر می‌بود؟ 
    • سوال ۴ میان‌ترم از مباحث درس نبود.
    • پاسخ: سوال ۴ از مبحث احتمال بود که درس داده شده بود. و گفته شده بود این تمرین‌ها را حل کنید.
    • سوال ۴ پایان‌ترم
      • فقط در یک جلسه درس داده شده بود
      • در لیست مباحث، به صراحت به تکنیک حل مساله آخر پایان‌ترم اشاره نشده بود.
      • زمان صرف شده برای ارائه راه حل مساله در کلاس کم بود. جلسه آخر هم بود.
      • پاسخ: این سوال در ۲-۳ جلسه درس داده شده بود. در یکی از جلسات غیر از جلسه پایانی در مورد یک سوالی که با روش به‌روزرسانی تنبلانه حل می‌شد صحبت شده بود و مساله‌هایی در این زمینه هم معرفی شد. در جلسه آخر نیز سوال حل شد.
  2. مشکلات تدریس
    • ساختار درس دادن نظم نداشت.
    • پاسخ: تا انتهای مطالب کتاب CLRS که با همان نظم جلو آمدیم. پس از آن نیز چند مبحث کوتاه و کوچک درس داده شد. برای یک درس آشنایی با مفاهیم اولیه علوم کامپیوتر به نظر مناسب می‌آید.
    • عدم پوشش مطالب: استاد یک جاهایی را کامل درس نداده. مثل درهم‌سازی. 
    • پاسخ: برخی مباحث به نظر بنده اینقدر مهم نبودند که به جزئیات آن بپردازیم. در نتیجه کم‌تر به آن‌ها پرداختیم. برای مثال به درهم‌سازی کمتر پرداخته شد.
    • مباحث درس زیاد بود.
    • پاسخ: درست است. مطالب درس زیاد بود، اما از ابتدای درس هم چنین انتظاری بود. آشنایی با این مطالب گسترده به عنوان پیش‌زمینه برای دانشجویان علوم کامیپوتر به نظر مفید می‌آمد، به همین سبب تصمیم گرفته شد مطالب را گسترده‌تر مطرح کنیم.
    • قبل از میان‌ترم کتاب بهتر از کلاس بود. بعد از میان‌ترم کم عمق و سطحی بود.
    • پاسخ: انتظار بنده از کلاس درس این نیست که جای کتاب را بگیرد. طبیعتا کتاب، مخصوصا کتاب CLRS، با آرامش تمام جزئیات را توضیح می‌دهد و برای بسیاری از دانشجویان، به عنوان قسمتی از یادگیری، لازم است که کتاب را هم مطالعه کنند. اگر منظور این است که خواندن کتاب پیش از میان‌ترم برای فهمیدن درس کافی بود، تقریبا موافق هستم. کلاس درس قرار است همان‌ها را منتقل کند، البته با تاکید بیشتر بر موضوعات مهم‌تر و آشنا کردن دانشجو با فراز و نشیب‌های فکری. پس از میان‌ترم، البته مطالب کم عمق نبود. ولی قسمت‌های اولیه را مطرح می‌کردیم تا با موضوعات بیشتری آشنا بشویم.
  3. مشکلات تمرین‌ها
    • سخت‌گیری تمدید نکردن تمرین‌ها
    • بی‌برنامه بودن تمرین‌ها
    • پاسخ: متاسفانه تمرین‌ها کمی بی‌برنامه شد. از این بابت البته عذرخواهی می‌کنم. اما به هر حال به نظر نمی‌آمد زمان برای پاسخ‌دهی به تمرین‌ها کافی بوده. اگرچه ظاهرا از آن‌جایی که در بقیه کلاس‌ها اینقدر سخت‌گیرانه با تمرین‌ها برخورد نمی‌شده، برای دانشجویان این برخورد سخت بوده.
  4. رفتار نامناسب استاد
    • مسخره کردن دانشجو
    • پاسخ: اگر دانشجویی را در کلاس مسخره کرده‌ام، از همین‌جا عذرخواهی می‌کنم. سعی می‌کنم پس از این دانشجویان را مسخره نکنم. البته پیش از این هم سعی می‌کردم و به خاطر ندارم که چه کرده‌ام که دانشجویی چنین گفته. اما پس از این بیشتر سعی می‌کنم به دانشجویان احترام بگذارم.

حالا فعلا یک ترم تدریس نکنیم شاید بهتر بشود.