به نام خدا

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

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

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

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

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

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

۱۰ مطلب با موضوع «هوش مصنوعی» ثبت شده است

پنج ایده ای که IBM فکر میکنه که در پنج سال آینده جهان ما رو تغییر میده.

http://www.washingtonpost.com/blogs/innovations/wp/2013/12/17/five-innovations-ibm-expects-will-change-our-world/?wprss=rss_AllWPStoriesandBlogs&Post+generic=%3Ftid%3Dsm_twitter_washingtonpost&clsrd

به پررنگ بودن نقش «یادگیری ماشین» دقت کنید !


  • مهرداد فرج‌تبار

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

«هرچه داده های بیشتری در دسترس قرار می گیرد مساله های جذاب تر و مهم تری را می توان توسط یادگیری ماشین بررسی کرد. اما ایجاد یک سامانه یا کاربرد یادگیری ماشین احتیاج به هنرمندی و مهارت هایی دارد که در کتاب های درسی یادگیری ماشین یافت نمی شود. این مقاله خلاصه دوازده نکته و درس کلیدی است که هر محققی که در حوزه یادگیری ماشین کار می کند باید بداند.»

عنوان این ۱۲ نکته که عنوان ۱۲ بخش این مقاله است:

1- LEARNING = REPRESENTATION  + EVALUATION + OPTIMIZATION

2- IT’S GENERALIZATION THAT COUNTS

3- DATA ALONE IS NOT ENOUGH

4- OVERFITTING HAS MANY FACES

5- INTUITION FAILS IN HIGH DIMENSIONS

6- THEORETICAL GUARANTEES ARE NOT WHAT THEY SEEM

7- FEATURE ENGINEERING IS THE KEY

8 - MORE DATA BEATS A CLEVERER ALGORITHM

9- LEARN MANY MODELS, NOT JUST ONE

10- SIMPLICITY DOES NOT IMPLY ACCURACY

11- REPRESENTABLE DOES NOT IMPLY LEARNABLE

12- CORRELATION DOES NOT IMPLY CAUSATION

خوندن این مقاله یک بار واجب، سالی یک بار مستحب موکد،‌و هر سه ماه یک بار مستحب است!

لینک دانلود مقاله:  http://homes.cs.washington.edu/~pedrod/papers/cacm12.pdf




  • مهرداد فرج‌تبار
با چند تا از بچه ها داریم کتاب بیشاپ رو میخونیم.
اگه سوال یا نکته جالی پیش اومد اینجا می نویسیم و در موردش بحث می کنیم.
این کتاب عنوانش «تشخیص الگو و یادگیری ماشین» (pattern recognition and machine leaning) . یه کتاب کلاسیک «یادگیری ماشین» هستش که تو خیلی از دانشگاه تدریس میشه. نویسندش کریستوفر بیشاپ (christopher bishop) محقق در آزمایشگاه تحقیقاتی مایکروسافت هستش.

در مورد فصل اول بیشاپ چند تا نکته و سوال به ذهنم رسیده. خودم یه جوابایی براشون دارم اما مطمئن نیستم. می تونیم راجع به شون بحث کنیم در کامنت ها:
۱- صفحه ۹ پاراگراف اول گفته که وقتی پیچیدگی مدل زیاد باشه مدل سعی میکنه خودش رو با نویز تطابق بده و اونها رو هم توجیه کنه و این باعث نوسانات و شکل غیریکنواخت  خم ما میشه. حالا سوال اینجاست که اگه داده ها نویزی نباشن و کاملا از (sin(2\pi x تولید شده باشن اون وقت با M زیاد آیا همین جوری نوسانی نخواهد شد؟ (یعنی میخوام بگم نوسانات زیاد به خاطر نویز نیست بلکه به خاطر پیچیدگی بالاست)
کسی حالش رو داره پیاده سازی کنه؟

۲- روند معرفی ایده ها رو در یک نگاه  ببینید. خیلی جالبه:
الف) اول یه مدل یادگیری برای رگرسیون به صورت کمینه کردن مجموع مربعات خطا.
ب) مشکل overfitting برای این مدل ساده
پ) حل مشکل overfiting به کمک منظم سازی (regularization)
ت)‌ معرفی مدل احتمالی که به یه خم چندجمله ای بالا یه نویز گاوسی اضافه شده. این معادل حالت الف میشه. یعنی رگرسیون با کمینه کردن خطا.
ث) اضافه کردن یک احتمال پیشین به ضرایب چند جمله ای که معادل حالت منظم سازی شده میشه.
ت) تا الآن در دو مدل فوق یک تخمین نقطه ای از ضرایب به دست می یومد و سپس از این تخمین برای پیش بینی نقطه ی جدید استفاده میشد. در روش بیزی کامل بعد از اینکه احتمال پسین ضرایب به دست اومد با استفاده از  قوانین جمع و ضرب احتمال مقدار خروجی برای ورودی جدید رو به صورت جمع وزندار مقدار خروجی با وزنی متناسب با احتمال رخداد ضرایب حساب میشه.

۳-روش بیزین یه روش سیستماتیک و منطبق بر داده هاست برای جلوگیری از overfitting و انتخاب مدل. در منظم سازی احتیاج به cross validation یا روش های مشابه داریم تا پارامتر منظم سازی مناسب رو انتخاب کنیم. ظاهرا در روش بیزی این کار به طور خودکار و به صورت کاملا وابسته به داده ها صورت میگیره. احتمالا در فصل سه در این مورد بیشتر صحبت میکنه. نه؟
کسی میدونه چرا روش بیزی انتخاب مدل و جلوگیری از overfitting رو با تکیه بر خود داده ها انجام میده؟

۴-  صفحه ۲۷ پاراگراف بزرگ وسط صفحه ادعا میکنه که : اریب بودن (bias)  تخمین واریانس در در  روش تمایل بیشینگی! (maximum likelihood) رابطه داره با over-fitting . نظر شما چیه ؟

۵- مشکل بعد بالا رو خیلی جالب مطرح کرده بود :) نه؟

۶- داستانش در مورد لاپلاس دیدین  چه طوری شروع کرده؟‌ نوشته: « خیلی تو کار تواضع و فروتنی این حرفا نبود. خودش رو بهترین ریاضیدان زمان در فرانسه میدونست. »  جا خوردم با این شروعش :)))

  • مهرداد فرج‌تبار

سلام،

چند تا مطلب پراکنده در مورد یادگیری ماشین (و علوم کامپیوتر) تو این چند وقتی دیدم که شاید جالب باشه :

۱- روز اولی که اومدم اینجا یه دوست برقی اومد، بعد از گپ و گفت اولیه یکی از حرفهاش مضمونش این بود: «که آماده ای پول پارو کنی ؟‌ »

۲- مدرک cs اینجا خیلی معتبره! به شدت براش کار هست. حتی آدما دوست دارن از computer engineering پاشن بیان cs و تو مدرکشون cs بخوره. همین.

۳- کلاس یادگیری ماشین پر آدم هایی از رشته های دیگه است. به شخصه توی این مدت ۳ تا فقط ایرانی دیدم که از عمران توی این دو ترمی گذشته درس «یادگیری ماشین» رو برداشتن. حالا رشته های دیگه و ملیت های دیگه بماند.

۴- یکی از دلایل این هجوم استقبال خود استادای  یادگیری ماشین برای اپلای کردن این ایده تو فیلدهای دیگه است. یه دوست عمرانی رفته بود و مسالش رو برای استاد ما توضیح داده بود. استاده کلی تحویل گرفته و بهش گفته بود که بیا همکاری کنیم و  ایمیل بزن بهم هر سوالی داشتی و ...! اگه این اتفاق ایران هم بیفته خیلی خوب میشه. اینکه از رشته های دیگه دیتاهاشون رو بیارن و بدن دست بچه های یادگیری ماشین.

۵- من درس یادگیری ماشین رو توی رزرو بودم. حتی این رزرو تا چند روز پس از پایان ثبت نام باقی مونده بود تا بتونن یه کلاس بزرگتر پیدا کنن... میدونم بیشتر از ۱۰۰ نفر برش داشتن. (چون کلاس اولی که عوضش کردن  ۱۰۰ نفر جا داشت)

۶- اینجا همه آدم ها یه کتاب بیشاپ دارن. حالا یا جلوی میزشونه، یا اینکه بردن گذاشتن تو خونشون. حتی دانشجوهای سال بالایی. می بینی که یه گوشنه نشستن و دارن میخونن.

۷- توی مک دونالد نشسته بودیم. داشتیم با بچه های ایرانی بستنی می خوردیم. یهو یکی از بچه های برقی ازم پرسید:«این یادگیری ماشین چیه که همه دارن میخونن؟ من یه دوست وایرلس کار دارم که داره میخونه»

۸- دو تا درس یادگیری ماشین اینجا ارائه میشه: ماشین لرنینگ ۱ و ماشین لرنینگ ۲. سیلابس اولیش رو از اینجا  و سیلابس دومیش رو از اینجا ببینید. درس تئوری یادگیری ماشین و یه سری درسهای پیشرفته هم هرازچندگاهی ارائه میشه. ماها که درس پترن دکتر ربیعی رو داشتیم قسمت اول تقریبا بلدیم. قسمت دومش میره تیکه دوم کتاب بیشاپ. مجموعا توی دو تا درس کتاب بیشاپ رو تموم میکنن به اصافه یه سری کاربردها و مباحث جدید.

۹- کلاس یادگیری ماشین اینجا هم مثل کلاسای شریف خودمونه. یا درس رو بلدی. یا اینکه سر کلاس خیلی چیزی عایدت نمیشه. آخرش باید خودت بشینی بخونی.

۱۰- من سه ساله که یکی از آروزهام خوندن کتاب بیشاپه... اما نشد. چندین بار تلاش ناموفق داشتم. رفتم سراغش اما ادامه ندادم. امیدوارم که وقتی دکترام تموم شد این یکی حداقل دیگه از لیست آرزوهام خط خورده باشه ;-)



  • مهرداد فرج‌تبار

سلام

پرکاربردترین الگوریتم‌ها در داده‌کاوی یا یاگیری ماشین کدام‌ها هستند؟ علی رغم اینکه این سوال به نظر عامیانه و غیرعلمی می‌رسد اما به نظرم می‌توان مجموعه‌ای که با اغماض جواب این سوال باشند جمع‌آوری نمود:

  • Kernel Density Estimation and Non-parametric Bayes Classifier
  • K-Means
  • Kernel Principal Components Analysis
  • Linear Regression
  • Neighbors (Nearest, Farthest, Range, k, Classification)
  • Non-Negative Matrix Factorization
  • Support Vector Machines
  • Dimensionality Reduction
  • Fast Singular Value Decomposition
  • Decision Tree
  • Bootstapped SVM
تا به جال چند تا از الگوریتم‌ها رو به صورت دقیق مطالعه کردید یا آن‌ها رو پیاده‌سازی کردید؟ اگر کمتر از ۵-۶ باشه، نشون میده که اطلاعات عمومی شما در یادگیری ماشین ضعیف اگر ۹ به بالا باشه، احتمالا اطلاعات عمومی خوبی دارید.

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

راستی این لیست و چند لیست دیگر رو می‌تونید اینجا ببینید. البته خود این منبع هم یه سوال سوال و جواب عمومیه ولی به نظرم جواب‌هاش نسبتا خوبه.

  • مصطفی مهدیه

تساوی عنوان که در آن فرض می‌شود 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)!

  • مصطفی مهدیه

بسم الله الرحن الرحیم


این که در چه مکانی هستم اگرچه مهم هست، اما این که خیالاتم در چه مکانی پرسه میزنند شاید مهم‌تر باشد.

این که با چه کسانی روزگار می گذرانم اگرچه مهم هست، اما این که دلم پیش چه کسانی است شاید مهم‌تر باشد.

و این قاعده نه فقط برای مکان و اطرافیانم صادق است؛ که بر زمانم نیز ...

این که در چه زمانی هستم مهم، اما این که در چه زمانی سیر می‌کنم شاید مهم‌تر!

  • تحریریه کافه ام ال