پنج ایده ای که IBM فکر میکنه که در پنج سال آینده جهان ما رو تغییر میده.
به پررنگ بودن نقش «یادگیری ماشین» دقت کنید !
پنج ایده ای که IBM فکر میکنه که در پنج سال آینده جهان ما رو تغییر میده.
به پررنگ بودن نقش «یادگیری ماشین» دقت کنید !
تو این پست میخوام یه مقاله معرفی کنم! خوبی این مقاله اینه که توی چند صفحه نکاتی رو بررسی کرده که به راحتی نمیشه جایی همه ی اینها رو کنار هم پیدا کرد. خیلی خلاصه و مختصر و مفید نویسنده (استاد دانشگاه واشینگتون) تجربه های چند ساله خودش در یادگیری ماشین رو کنار هم نوشته. چیزهایی که برای درکش باید چندین سال توی حوزه یادگیری ماشین کار کرد تا به دستشون آورد.
از چکیده مقاله:
«هرچه داده های بیشتری در دسترس قرار می گیرد مساله های جذاب تر و مهم تری را می توان توسط یادگیری ماشین بررسی کرد. اما ایجاد یک سامانه یا کاربرد یادگیری ماشین احتیاج به هنرمندی و مهارت هایی دارد که در کتاب های درسی یادگیری ماشین یافت نمی شود. این مقاله خلاصه دوازده نکته و درس کلیدی است که هر محققی که در حوزه یادگیری ماشین کار می کند باید بداند.»
عنوان این ۱۲ نکته که عنوان ۱۲ بخش این مقاله است:
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
سلام،
چند تا مطلب پراکنده در مورد یادگیری ماشین (و علوم کامپیوتر) تو این چند وقتی دیدم که شاید جالب باشه :
۱- روز اولی که اومدم اینجا یه دوست برقی اومد، بعد از گپ و گفت اولیه یکی از حرفهاش مضمونش این بود: «که آماده ای پول پارو کنی ؟ »
۲- مدرک cs اینجا خیلی معتبره! به شدت براش کار هست. حتی آدما دوست دارن از computer engineering پاشن بیان cs و تو مدرکشون cs بخوره. همین.
۳- کلاس یادگیری ماشین پر آدم هایی از رشته های دیگه است. به شخصه توی این مدت ۳ تا فقط ایرانی دیدم که از عمران توی این دو ترمی گذشته درس «یادگیری ماشین» رو برداشتن. حالا رشته های دیگه و ملیت های دیگه بماند.
۴- یکی از دلایل این هجوم استقبال خود استادای یادگیری ماشین برای اپلای کردن این ایده تو فیلدهای دیگه است. یه دوست عمرانی رفته بود و مسالش رو برای استاد ما توضیح داده بود. استاده کلی تحویل گرفته و بهش گفته بود که بیا همکاری کنیم و ایمیل بزن بهم هر سوالی داشتی و ...! اگه این اتفاق ایران هم بیفته خیلی خوب میشه. اینکه از رشته های دیگه دیتاهاشون رو بیارن و بدن دست بچه های یادگیری ماشین.
۵- من درس یادگیری ماشین رو توی رزرو بودم. حتی این رزرو تا چند روز پس از پایان ثبت نام باقی مونده بود تا بتونن یه کلاس بزرگتر پیدا کنن... میدونم بیشتر از ۱۰۰ نفر برش داشتن. (چون کلاس اولی که عوضش کردن ۱۰۰ نفر جا داشت)
۶- اینجا همه آدم ها یه کتاب بیشاپ دارن. حالا یا جلوی میزشونه، یا اینکه بردن گذاشتن تو خونشون. حتی دانشجوهای سال بالایی. می بینی که یه گوشنه نشستن و دارن میخونن.
۷- توی مک دونالد نشسته بودیم. داشتیم با بچه های ایرانی بستنی می خوردیم. یهو یکی از بچه های برقی ازم پرسید:«این یادگیری ماشین چیه که همه دارن میخونن؟ من یه دوست وایرلس کار دارم که داره میخونه»
۸- دو تا درس یادگیری ماشین اینجا ارائه میشه: ماشین لرنینگ ۱ و ماشین لرنینگ ۲. سیلابس اولیش رو از اینجا و سیلابس دومیش رو از اینجا ببینید. درس تئوری یادگیری ماشین و یه سری درسهای پیشرفته هم هرازچندگاهی ارائه میشه. ماها که درس پترن دکتر ربیعی رو داشتیم قسمت اول تقریبا بلدیم. قسمت دومش میره تیکه دوم کتاب بیشاپ. مجموعا توی دو تا درس کتاب بیشاپ رو تموم میکنن به اصافه یه سری کاربردها و مباحث جدید.
۹- کلاس یادگیری ماشین اینجا هم مثل کلاسای شریف خودمونه. یا درس رو بلدی. یا اینکه سر کلاس خیلی چیزی عایدت نمیشه. آخرش باید خودت بشینی بخونی.
۱۰- من سه ساله که یکی از آروزهام خوندن کتاب بیشاپه... اما نشد. چندین بار تلاش ناموفق داشتم. رفتم سراغش اما ادامه ندادم. امیدوارم که وقتی دکترام تموم شد این یکی حداقل دیگه از لیست آرزوهام خط خورده باشه ;-)
سلام
پرکاربردترین الگوریتمها در دادهکاوی یا یاگیری ماشین کدامها هستند؟ علی رغم اینکه این سوال به نظر عامیانه و غیرعلمی میرسد اما به نظرم میتوان مجموعهای که با اغماض جواب این سوال باشند جمعآوری نمود:
به نام خدا
این اولین مطلبی هست که من توی این وبلاگ مینویسم. امیدوارم به دردتون بخوره.
داستان از اونجا شروع شد که زمانی که در حال کار بر روی یکی از پروژههام در زمینهی یادگیری ماشین بودم، به این نتیجه رسیدم که نیاز به ویژگیهایی(Features) دارم که فراتر از ویژگیهایی هستند که روشهای معمولی انتخاب ویژگی در اختیار میگذارند. به عنوان مثال اگر تصمیم داشنه باشیم تعدادی تصویر (Image) رو دستهبندی کنیم، اولین و سادهترین ویژگیای که به ذهن میرسه، استفاده از خود پیکسلهای تصویر هست. اما مثلا اگر هدف دستهبندی در یک کاربرد خاص باشد، شاید نیاز باشد که ویژگی سطح بالاتری، مثلا این که آیا در این تصویر "سر انسان" وجود دارد یا خیر استفاده کرد. در واقع هرچه ویژگیهای استخراجشده با توجه به کاربرد موردنظر کاراتر باشند، بازدهی کل سیستم نیز افزایش مییابد.
در بعضی از کاربردها یافتن ویژگیهای معنادار (از دید انسان) شاید کار سادهای نباشد؛ و یا ویژگیهای معناداری که توسط انسان استخراج میشوند، نتوانند بازنمایی مناسبی از دادهها داشته باشند. اینجاست که این نیاز احساس میشود که باید مکانیزمی برای استخراجی خود ویژگیها از طریق یادگیری وجود داشته باشد.
Deep Learning (یادگیری عمیق)، که زیرمجموعهای از یادگیری ماشین به حساب میآید، بر اساس یادگیری چندین سطحی از بازنماییهای مختلف که از روی یک ساختار سلسهمراتبی از ویژگیها یا مفاهیم که در آن مفاهیم سطح بالا از روی ویژگیهای سطح پایین تعریف میشوند و مفاهیم سطح پایین نیز میتوانند به تعریف مفاهیم سطح بالاتر کمک کنند، میباشد ( Bengio (2009) ).
در واقع به زبان سادهتر، هدف یادگیری عمیق، استخراج خود ویژگیها به صورت هوشمند طی یک مرحله یادگیری است! تلاشها در این زمینه (خصوصا ساخت یک یادگیر با استفاده از شبکههای عصبی) تا قبل از سال 2006 موفقیتآمیز نبود. از این سال به بعد تلاشها امیدوارکنندهتر بود؛ به عنوان مثال یک تیم گوگل با رهبری Andrew Ng و Jeff Dean، در سال 2012 شبکه عصبیای را طراحی کردند که یاد میگیرد که مفاهیم سطح بالاتر را نیز تشخیص دهد! به عنوان مثال، تشخیص گربهها تنها از روی ویدئوهای موجود در سایت یوتیوب ("How Many Computers to Identify a Cat? 16,000.").
به طور کلی اگر در کاربردی به مشکل عدم وجود ویژگیهای مناسب و مفهومی برخوردید و یا به طور کلی سعی در استخراج ساختارمند ویژگیها داشتید، حتما سری به یادگیری عمیق بزنید.
- من خودم تو این زمینه در حال مطالعه هستم و تازهکار. اما دوستان نظراتشون رو بگند تا با هم بحث کنیم؛ شاید به جاهای به درد بخوری رسیدیم :-)
ایشان این را هم گفتند که این نخ ثابت نیست. در طول زمان بالاتر میرود. چیزهایی بودهاند که زمانی باید برنامهنویس بهشان فکر میکرده و مسئلههایی که باید حلشان میکرده، اما حالا دیگر نه. مثلاً آن موقع (زمستان ۸۴) مثال سیستمهای ذخیرهسازی و فایلینگ را زدند که زمانی درسش در دانشگاه هم تدریس میشده (گرچه هنوز هم در بعضی دانشگاهها میشود) اما الان دیگر تدریس نمیشود و رونقی ندارد. چرا؟ چون به قول ایشان: «منتقل شده به زیر نخ».
تساوی عنوان که در آن فرض میشود 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 در این دو حوزه به شیوههای بسیار متفاوتی انجام میشود. جامعهی پردازش سیگنال به دنبال ماتریسی (با تعداد ستونهای معلوم) میگردد که ستونهای آن حداقل شباهت را به یکدیگر داشته باشند و در عین حال کمترین تعداد سطرها را داشته باشد (دو هدف متضاد). جامعهی یادگیری ماشین به دنبال واژهنامههایی (با تعداد سطرهای معلوم) دارای افزونگی (شباهت ستونها) است که کمترین تعداد ستونها را داشته باشد (دو هدف متضاد).