به نام خدا

جایی برای یادگیری ماشین

این جا محلی است برای بحث در مسائل یادگیری ماشین.

جایی برای یادگیری ماشین

این جا محلی است برای بحث در مسائل یادگیری ماشین.

جایی برای یادگیری ماشین

این وبلاگ بر آن است تا محلی باشد برای بحث های نظری یا کاربردی مفید در یادگیری ماشین. جایی برای یاد دادن و یاد گرفتن؛ برای نشر ساده تر؛ برای نظر دادن و کاربردی کردن آن چه می دانیم!

۵ مطلب در شهریور ۱۳۹۱ ثبت شده است

دکتر رامتین سر کلاس برنامه‌نویسی پیشرفته صحبت از یک نخ میکردند. پایین این نخ تکنولوژی‌ها و روش‌هایی هستند که دغدغه برنامه‌نویس‌ها محسوب نمی‌شوند. سیستم و محیط برنامه‌نویسی (لااقل خوب‌هایش) باید برنامه‌نویس را از فکر کردن به این موارد خلاص کند.  مثلاً تکنولوژی های سطح پایین تر یا مدیریت حافظه(نه برای همه کاربردی البته). بالای نخ هم آن چیزی‌ است که برنامه‌نویس باید برای آن فکری بکند. منطق برنامه، نوآوری‌ها، الگوریتم‌های سریعتر و کارآمدتر... و در بیان‌کلی‌تر تکنولوژی‌های سطح بالا.

ایشان این را هم گفتند که این نخ ثابت نیست. در طول زمان بالاتر می‌رود. چیز‌هایی بوده‌اند که زمانی باید برنامه‌نویس بهشان فکر میکرده و مسئله‌هایی که باید حلشان میکرده، اما حالا دیگر نه. مثلاً آن موقع (زمستان ۸۴) مثال سیستم‌های ذخیره‌سازی و فایلینگ را زدند که زمانی درسش در دانشگاه هم تدریس می‌شده (گرچه هنوز هم در بعضی دانشگاه‌ها می‌شود)  اما الان دیگر تدریس نمی‌شود و رونقی ندارد. چرا؟ چون به قول ایشان: «منتقل شده به زیر نخ».

  • علیرضا قاسمی

تساوی عنوان که در آن فرض می‌شود x تنک است در دو حوزه‌ی متفاوت، اما با راه حل‌های مشابه ظاهر می‌شود:

حوزه‌ی نخست پردازش سیگنال است. این‌جا y نتیجه‌ی اندازه‌گیری‌های به دست آمده از شیء مورد نظر، x، توسط عملگری خطی است که با A نمایش داده می‌شود. در این‌جا به دنبال بازسازی سیگنال اصلی x از تعداد محدودی اندازه‌گیری هستیم. برای دستیابی به این هدف لازم است بر x و y محدودیت‌هایی اعمال کنیم. معمولا فرض می‌شود که x یا خودش تنک است و یا در پایه‌ای معلوم مانند موجک (wavelet)، نمایشی تنک دارد. A معمولا به گونه‌ای انتخاب می‌شود که با پایه‌ی تنک کننده‌ی سیگنال اصلی نامتجانس باشد. به این ترتیب راه حل این است که x را به گونه‌ای بیابیم که تنک باشد و شرط y = Ax را براورده کند.

حوزه‌ی دوم یادگیری ماشین است، جایی که این بار y سیگنال اصلی است و ما به دنبال نمایش آن به صورت ترکیب خطی تعداد کمی پایه هستیم. برخی مفاهیم در این‌جا اهمیت دارند و سعی می‌کنم توضیحشان دهم. نخست این‌که شیء اصلی که توسط y نمایش داده می‌شود ممکن است نتیجه‌ی علل متفاوتی در طبیعت باشد. به این ترتیب به واژه‌نامه‌‌ی بزرگ و دارای افزونگی A نیاز است تا بتوان هر سیگنال y را به شکل تنک و خطی نمایش داد. شاید y نمایش یک چهره باشد که در آن صورت به تعداد آدم‌ها به اتم (ستون‌های A) احتیاج داریم. دوم آن‌که یک نمونه از y هنگامی که توسط حسگرها ضبط می‌شود معمولا نتیجه‌ی تعداد کمی منابع یا علل فعال است و بنابراین می‌تواند در A نمایشی تنک داشته باشد. این ایده‌ی اصلی در یافتن نمایش تنک یا بردار ویژگی برای داده‌هاست. با این حال راه حل نسبت به قبل تفاوتی نمی‌کند.

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

  • علی سلطانی

سلام

در ادامه‌ی مطلب ارائه درس وب هوشمند که مصطفی که دو تا از درس‌های سایت coursera رو معرفی کرده بود، می‌خواهم فهرست همه‌ی درس‌های مرتبط رو این‌جا بیارم.


  • محسن فدایی

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

از اونجا که من به دلایلی خیلی به مباحث کاربردی بیشتر علاقه دارم، اول در این مورد میگم! زمینه‌های کاربردی مهم در ایران به ترتیب اهمیت، از نظر من این‌هاست:

  • مصطفی مهدیه

[بعد از یک وفقه‌ی نسبتاً طولانی]

سایت Coursera.org در ترم جدید ۲۹ درس رو ارائه کرده و چند تا از این درس‌ها هم به هوش مصنوعی و یادگیری ماشین ربط داره. معروف‌ترینش که اکثرا شنیدند خود درس یادگیری ماشین هست که توسط Andrew Ng ارائه شده. کلاً جالبه که یکی از افراد اصلی جریان Coursera هم یک آدم یادگیری ماشینی هست (همون Ng)!

  • مصطفی مهدیه