پست وبلاگ

بهشت دیتاستها برای یادگیری ماشین و یادگیری عمیق!

بهشت دیتاستها برای یادگیری ماشین و یادگیری عمیق!

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

“مطلب زیر قبلا در ۱۵ فروردین ارسال شد بود که متاسفانه بخاطر اتفاقی که برای سرور افتاد این مطلب و… از بین رفت”

سلام به همگی امیدوارم که تعطیلات عید رو بخوبی گذرونده باشید. امروز خیلی اتفاقی با یه مسئله ای برخورد کردم که حیفم اومد یه مطلب جداگانه برای معرفیش نذارم. اگه مطالب اولیه سایت رو خونده باشید و همینطور بخشهایی مثل منابع و ابزارها حتما اطلاع دارید که من دايما هر زمانی که فرصت کنم مطالب رو ویرایش و مطالب جدیدی رو اضافه میکنم . ممکنه کسایی که از سایت دیدن میکنن در نظر اول این تغییرات به چشم نیاد و اینطور مطالب خوبی رو از دست بدن .

برای همین من تصمیم گرفتم این مورد خاص رو تو یه پست جداگانه مطرح کنم تا احیانا دوستانی که میان بتونن بنحو احسنت ازش استفاده کنند.

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

تو این سایت شما میتونید بزرگترین دیتاست ها تو تمام زمینه هایی که فکرشو بکنید پیدا کنید. از دیتاست عظیمی مثل ImageNet2012 با تقریبا ۲۰۰ گیگابایت حجم گرفته تا دیتاستهای پزشکی و دریایی و نقاشی های ونگوگ! و الی اخر رو میتونید پیدا کنید.

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

برای همین وجود یک همچین سایتی مثل یک جواهر میمونه . تو این سایت شما حتی میتونید آموزش های مختلف اساتید برتر دنیا مثل اندرو ان جی استاد ماشین لرنینگ دانشگاه استنفورد و یکی از مهندسان ارشد شرکت بایدو و یا جفری هینتون یکی از بنیانگذاران یادگیری عمیق و استاد دانشگاه تورنتو (استاد الکس کریژوسکی برنده رقابت ۲۰۱۲ ایمیج نت!) و… رو پیدا کنید .حتی آموزش دانشگاه استنفورد که من اخیرا گذاشتم هم بصورت کامل اینجا هست و میتونید دانلود کنید. به اینها مقالات رو هم اضافه کنید . در یک کلام این سایت فوق العاده است.

این سایت توسط دانشگاه های مطرح دنیا استفاده میشه و امیدوارم شما هم بهترین استفاده رو ازش ببرید.

در پناه حق موفق و سربلند باشید

سید حسین حسن پور متی کلایی

درباره ی سید حسین حسن پور متی کلایی

موسس و مدیر سایت. اطلاعات در مورد فعالیت های کاری و تحصیلی : linkedIn . برای ارتباط از بخش تماس با ما یا در باره من استفاده کنید.

مقالات مرتبط

12 دیدگاه در “بهشت دیتاستها برای یادگیری ماشین و یادگیری عمیق!

  1. سلام خسته نباشید
    میخواستم بدونم میشه از یادگیری عمیق برای دیتاستی که تعداد نمونه هاش ۸۸تاست و تعداد ویژگی هاش ۲۳۰۸تاست استفاده کنم البته از PCA برای کاهش ابعادش استفاده کردم؟
    آخه میگن یادگیری عمیق برای دیتاستی که بالای ۱میلیون نمونه داشته باش جواب میده

    1. سلام .
      من با این مقدار کار نکردم اما احتمالا بتونید با یکسری عملیات های پیش پردازشی اندازه دیتاست رو حداقل چند برابر کنید. و علاوه بر اون باید از pretraining استفاده کنید
      یعنی یک مدلی رو روی یک دیتاستی که شبیه نمونه های شماست اموزش بدید بعد بیایید داده های اصلی رو اضافه کنید و شبکه رو تنظیم کنید تا به نتیجه دلخواه برسید .
      نه هیچ الزامی نیست که حتما دیتاست شما بالای ۱ میلیون نمونه داشته باشه (کی اینو بشما گفته؟!) .
      داستان اینه که هرچقدر دیتاست بزرگتری داشته باشیم سریعتر به دقت بهتر و با تعمیم خیلی بهتر مواجه میشیم.
      برای همین هرچقدر نمونه بیشتری داشته باشید “بهتره”.

      1. اگر تاثیر تعداد داده تنها در سرعت همگرایی قایل مشاهده است. چرا اقای هینتون توی مقاله dropoutاش میگه:
        When a large feedforward neural network is trained on a small training set,

        it typically performs poorly on held-out test data
        تعمیم خیلی بهتر یعنی همون دقت در تست دیگه. یعنی میشه گفت اندازه داده کوچیک و کلاس بالا نمیتونه توی دیپ جوابی به خوبی همون تعداد کلاس اما با اندازه دیتای ترین بزرگ ؛ داشته باشه؟
        منظوز من اینه که در دیپ عین همه متد های ماشین لرنینگ نمیشه از ترین داده کوچیک انتظار خوبی داشت و این به این دلیل است که برای اموزش پارامتر هایی با تعداد میلیونی نباید ازداده هایی با تعداد گمتر از میلیون استفاده کرد. یک جوری مثل تناسب تعداد معادله ها و داد مجهول ها درسته؟

        1. سلام.
          در حالت کلی بله اندازه داده کم با تعداد کلاس بالا بخوبی همون تعداد کلاس و دیتای بیشتر نیست. قطعا همینطوره. اما برداشت و نتیجه گیری آخری که کردین اشتباهه
          ماهیت همه شبکه های فیدفوروارد (یا روشهای مختلف ) با هم یکی نیست برای همین هم خصائص و ویژگی های خاصی رو بروز میدن.
          چندتا مساله اس که در شیوه های سنتی باعث میشه بصورت بهینه از داده ارائه شده استفاده نشه.
          یکیش بحث رپرزنتیشن هست که شما چطوری دارید داده رو ارائه میکنید و چطور از اون اطلاعات مورد نیاز بدست میاد یا بر اساس اون اطلاعات تصمیمی گرفته میشه.مرزی مشخص میشه و…
          مورد دیگه بحث اورفیتینگ هست چیزی که بطور خاص قبل از ظهور شیوه های دیپ لرنینگ خیلی باعث مشکل میشد. و بطور خاص باعث میشد از ظرفیتی که در اختیار هست نشه بصورت بهینه استفاده کرد.
          این دوتا مساله از مهمترین و تاثیرگذارترین مسائل تو این حوزه هستن
          فقط بحث رپرزنتیشن به تنهایی تاثیر بسیار زیادی تو نحوه حل مسائل داشته و داره. و بخاطر همین مساله ما در روشهای دیپ وقتی که با میلیون ها پارامتر مواجه هستیم نیاز به میلیون ها نمونه آموزشی نداریم .
          روشهای دیپ لرنینگ مبتنی بر distributed representation هستن و همین قدرت بسیار زیادی رو نسبت به روشهای دیگه ارائه میکنه.
          مثلا شما فرض کنید ما ۴ شی مختلف داریم (مثل مستطیل افقی و عمودی و بیضی افقی و عمودی ) و میخوایم با ۴ وزن اونها رو تو حافظه ذخیره کنیم (یا بهتر represent کنیم).
          در حالت عادی میتونیم به شکل زیر اونها رو ذخیره کنیم
          مثلا
          مستطیل افقی| مستطیل عمودی|بیضی افقی |بیضی عمودی
          A = 1 0 0 0
          B = 0 1 0 0
          C = 0 0 1 0
          D = 0 0 0 1
          (پس A ,B بیضی هستن و C , D هم مستطیل ).
          در این حالت تمام فضایی که در اختیار داشتیم رو استفاده کردیم و حالا اگه شی جدیدی رو هم بخواییم لحاظ کنیم چیزی نمونده و مجبوریم حتما یکی از اشیا قبلی رو پاک کنیم تا حافظه برای شی جدید وجود داشته باشه.یا اینکه یک فضای جدید اختصاص بدیم برای شی جدید.
          حالا اگه بخواییم همینو بصورت distributed representation ذخیره کنیم میشه بصورت زیر مثلا اینکارو کرد :
          مستطیل| بیضی| افقی| عمودی
          A = 1 0 1 0
          B = 0 1 1 0
          C = 1 0 0 1
          D = 0 1 0 1
          خب حالا با این شیوه ما داریم هر شی رو بر اساس ترکیبی از خصائص توزیع شده کد میکنیم و با این کار اگر شی جدیدی وارد بشه باز میتونیم براحتی اون رو represent کنیم.
          مثلا ما میتونیم یک دایره رو بصورت
          Circle = 1 1 1 0
          کد کنیم . یعنی بیضی ای که هم بصورت افقی و هم عمودی هست.
          بعبارت دیگه یعنی در حالت اول ما نمیتونیم داده جدیدی رو با توجه به تعداد بعدی که داریم represent کنیم و باید بعد جدیدی اضافه کنیم . اما در حالت دوم ما میتونیم از ترکیب پارامترهایی که داریم اشیاء جدیدی مثل دایره رو هم رپرزنت کنیم .
          همه اینها بطور خلاصه یعنی یک مفهوم توسط چند نورون مشخص کرد و یک نورون هم بیش از یک مفهوم رو میتونه ارائه کنه.

          مثال من شاید زیاد قشنگ نباشه و اگه distributed representation رو خوب متوجه نشدید با این مثال فکر میکنم این لینک دیگه کاملا مشکل رو برطرف کنه : http://www.indiana.edu/~gasser/Q530/Notes/representation.html بنظر من خیلی قشنگ این رو با مثال توضیح داده.

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

  2. بله بهم گفته بودند بالای ۱میلیون بهتر جواب میده اینجوری با این تعداد دیتاست دقت ممکنه کمتر بشه
    ایشون دانشجوی دکترای هوش بودند اشتباه از من بود که بد بیان کردم
    متشکر از زمانی که اختصاص داد

  3. فریبا رضازاده

    سلام مهندس
    دستت درد نکن شما همیشه با مطلبهایی که میذارید خیلی به دیگران کمک می کنید.
    اگر میدونستم که شما یه همچین سایتی رو می شناسی اول میومدم سراغ خودتون :d
    کار منو یکی از دوستانمو با معرفی این سایت راه انداختی

    بازم خییییییییییلییییییییییییییییییی ممنون

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *