یادگیری عمیق یا همون Deep learning !

64 30,040

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

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

سعی میکنم هر وقت سرم خلوت شد مطالبی اینجا بزارم اما قول نمیدم زود به زود باشه چون فعلا سرم خیلی شلوغه.فعلا تا مدتی یکم کارهای مربوط به سایت طول میکشه و همزمان سعی میکنم مطالب رو هم قرار بدم.

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

خب برای خالی نبودن عریضه و اینکه یه توضیح خیلی خیلی مختصر هم در مورد یادگیری عمیق بدم این چند خط رو مینویسیم .

خلاصه :
یادگیری عمیق چیست؟

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

مدلهای یادگیری عمیق مختلفی در تحقیقات و فعالیت های تجاری مورد استفاده قرار میگیرند. بعضی از این مدلها به قرار زیر اند :

  • شبکه عصبی کانولوشن
  • شبکه باور عمیق
  • شبکه عصبی feed-forward

بسیاری از مدلهای یادگیری عمیق, الهام گرفته از فرآیند های بیولوژیکی اند.

یادگیری عمیق را میتوان هم در یادگیری با نظارت(supervised) و هم بدون نظارت(unsupervised) مورد استفاده قرار داد

یادگیری عمیق چگونه کار میکند؟

الگوریتم BackPropagation (پس انتشار [خطا] ) الگوریتم محبوبی است که یادگیری را در یادگیری عمیق در بسیاری از مدلها پیاده میکند. ایده این الگوریتم در دهه ۷۰ میلادی مطرح و در سال ۱۹۸۶ در مقاله ای توسط Rumelhart, Hinton, و Williams (5)به شهرت رسید.

کمی توضیح بیشتر:

یادگیری عمیق یکی از زیرمجموعه های ماشین لرنینگ هست و یعنی یادگیری با استفاده از معماری های عمیق.این معماری هایی که ازش اسم بردیم همون شبکه های عصبی قدیمی هستن که حالا بلطف پیشرفتهای چند سال اخیر مشکلاتی که در زمان عمیق کردن اونها باهاش مواجه بودیم برداشته شده و این شبکه ها عمیق شدن. با عمیق شدن این شبکه ها, و سلسله مراتبی که ارائه میشه توسط لایه های مختلف ,سطوح انتزاع مختلفی توسط این شبکه ها بدست میاد. این شبکه ها داده محور هستن و بصورت خودکار مهندسی ویژگی در اونها انجام میشه و ما دخالتی نداریم . و همین نکته هم دقیقا باعث دقت بسیار خوب و کارایی عالی اونها تو حوزه های مختلف شده. از قدیم الایام دانشمندا میدونستن که با عمیق کردن شبکه ها قابلیت های اونها رو میشه افزایش داد اما نبود داده کافی نبود سخت افزار مناسب و قوی و همینطور اور فیتینگ شدید به اضافه مشکل انتقال سیگنال از انتها به ابتدای یه شبکه عمیق و… همه باعث میشد که بصورت عملی نشه کاری کرد. طی چند سال اخیر این مشکلات برطرف شدن و همین امر باعث رونق گرفتن دوباره بحث معماری های عمیق شد. پس میشه گفت که یادگیری عمیق مجموعه ای از تکنیکهای مبتنی بر شبکه های عصبی هست که اجازه  یادگیری ویژگی ها بصورت خودکار از خود داده های ورودی رو بما میده. معماری های مختلفی از این نوع امروزه وجود داره. معروف ترین و موفق ترین اونها شبکه های کانولوشنی هستن .اخیرا LSTM‌ها که نوعی از شبکه های عصبی recurrent هستن هم رو بورس افتادن به اضافه اینکه  deep boltzman machine‌ها و DBN‌ها و(و یه دوجین معماری دیگه) هم هست که از اونا استفاده میشه.(البته DBN ها و DBM ها که روشهای بدون سرپرست هستن بعد از ظهور شبکه های کانولوشن عمیق و RNN ها استفاده ازشون خیلی کمتر شده خصوصا بخاطر وجود و در دسترس بودن دیتاست های لیبل گذاری شده (مثلا ایمیج نت بیش از یک میلیون تصویر برچسب گذاری شده داره که حجمش بیش از ۱۵۰ گیگابایت هست. دیتاست ها تو بخش های مختلف دیگه هم همینطور خیلی زیاد شدن (بخش دیتاستها و یا پست بهشت دیتاست ها رو ببینید خوبه). البته نمونه های ترکیبی هم از این معماری ها بوجود اومده که فعلا جای بحثش نیست) (اینجا روخواستید یه نگاه بندازید) ولی در حال حاضر اکثر مقاله ها و کارهایی که من دیدم تو حوزه کامپیوتر ویژن بوده(البته حوزه های دیگه هم بشدت داره کار میشه.تصویر زیر رو ببینید)  شاید بالای ۹۰ درصد دارن (چیزی که من دیدم) روی شبکه های کانولوشنی کار میکنن تو حوزه یادگیری عمیق(بینایی کامپیوتر).(معماری های دیگه هم هست ولی خب کاربردهای خاص خودشونو دارن مثل همون rnnها که تو پردازش زبان طبیعی و شناسایی فعالیت و…. خیلی عالی کار میکنن.
معماری های عمیق و کاربردهای هریک
در مقابل یادگیری عمیق یادگیری کم عمق یا اصطلاحا  shallow learning‌ وچود داره که قدیما (و البته الان هم) و قبل از دیپ لرنینگ ازش استفاده میشد . اونم چیزی نیست جز استفاده از همون support vector machine‌ها و شبکه های عصبی معمولیو…
اون بحث یادگیری هم که میاد اشاره به ماهیت training‌این نوع سیستم ها داره . یعنی شما اگه ماشین لرنینگ بخونید (توضیح دادم یکم تو سایت) میبینید ما یه دیتاست داریم بعد میایم داده ها رو آموزش میدیم . تو یادگیری کم عمق ما از شبکه عصبی (کم عمق) یا support vector machine‌ها و… استفاده میکنیم برای دسته بندی و تمایز قاپل شدن بین کلاسهای مختلفی که در داده هامون وجود داره (مثلا این عکس سرطان هست و فلان عکس سرطان نیست یا مثلا تو پیش گویی ها مثل اینکه قیمت مسکن تو ده سال اخیر داده میشه بعد میگه اگه زیربنا انقدر باشه قیمت چقدر میشه و …) همه اینا یادگیری هستن اما چون از روشهای غیرعمیق استفاده میکردن میگن روش کم عمق. معمولا تا قبل از یادگیری عمیق رسم بر این بود که تو این روشها ما خودمون باید میومدیم مهندسی ویژگی میکردیم و یکسری الگوها و یا معادلات برای کشف ارتباط تو دادها پیدا میکردیم و بعد با استفاده از چیزایی که گفتم مدلمون رو آموزش میدادیم. تو یادگیری عمیق خود سیستم میاد مهندسی ویژگی رو انجام میده ما دخالتی نداریم . برای همین هم خیلی خیلی مورد توجه قرار گرفته و نتایج بسیار عالی ای رو سبب شده .تو یادگیری عمیق ما از یه سلسله مراتب از ویژگی ها استفاده میکنیم (سیستم استفاده میکنه ) تا به نتیجه مورد نظر برسه و وجود این سلسله مراتب حیاتی هست.داشت یادم میرفت! یه نکته بدیهی هم تو اسم این روش هست کم عمق هست مثلا شبکه عصبی هم در یادگیری عمیق کاربرد داره هم در یادگیری کم عمق! فرقشون چیه؟‌درسته در عمقشون! در اصل یادگیری عمیق الان بوجود نیومده! تو دهه ۸۹ و ۹۰ هم بوده منتها بخاطر مشکلاتی که بعدا توضیح میدیم(مهمترینش نبود سخت افزار مناسب و الگوریتم های مورد نیاز) نمیشد از یه حد خاصی تعداد لایه های شبکه عصبی رو بیشتر کرد و اونجا متوقف میشد تا اینکه چند سال پیش (تقریبا ۲۰۰۶ به بعد فکر کنم) بود که اون مشکلات برطرف شد و نهایتا از ۲۰۱۰ ۲۰۱۱ و خصوصا خصوصا ۲۰۱۲ با شدت تمام استارتش خورد. (تو سال ۲۰۱۱  اندرو ان جی به اتفاق یکی از کارکنان گوگل یه شبکه عصبی رو اموزش دادن که تونست فقط با دیدن فیلمهای یوتیوب ! بفهمه یه گربه چه شکلیه!؟ البته اونا فکر کنم از ۱۶ هزار کامپیوتر استفاده کرده بودن. سال ۲۰۱۲ بود که در اصل الکس کریژوسکی و جف هینتون معروف (یکی از پایه گذاران یادگیری عمیق دنیا ) تونستن با استفاده از کارت گرافیک یه شبکه کانولوشنی رو اموزش بدن و نتایج حیرت انگیزی رو تا اون موقع بدست بیارن و اینطور بقیه محققا با دیدن این نتیجه به این سمت هجوم اوردن)
شبکه های کانولوشنی هم نوعی از شبکه های عصبی هستن که از شبکه های کاگنیترون تو دهه ۸۰ میلادی الهام گرفته شدن و تو این شبکه سعی شده روش مغز در شناسایی تصاویر رو بنوعی پیاده بشه . (از مغز انسان الهام گرفتن!) . و تقریبا کلیات شبکه  عصبی درموردش صدق میکنه بجز اینکه یکسری تقاوت هایی داره . مثلا در شبکه های عصبی ما اتصالات کامل داشتیم اینجا نداریم(نه اینکه نتونیم ولی معمولش اینه که اشتراک پارامتر داریم توضیحات بعدا تو سایت میدم) . تو شبکه عصبی ما لایه هامون مثل لیست بودن یک بعدی بودن . اما تو شبکه کانلووشن لایه کانولوشن چند بعدی هستن. و یکسری لایه ها و عملیاتهای خاص خودشو داره که توضیح بیشترش بمونه برای بعد.
امروزه برای استفاده از دیپ لرنینگ حتما حتما به یه کارت گرافیک انویدیا نیاز دارید اونم از نوع قویش!‌ (کارتهای AMD بصورت غیررسمی فقط در Torch پشتیبانی میشن تا الانی که این متن رو مینویسم.بقیه فریم ورکهای معروف همه از اندویا استفاده میکنن چون کتابخونه عالی ای داره که سرعت اموزش رو بشدت بالا میبره.) ( احتمالا طی یکی دو سال آینده کارتهای AMD‌هم پشتیبانی میشن ولی فعلا بخاطر cuda‌و cudnn انویدیا که شدیدا سرعت رو عالی میکنه همه کتابخونه ها و ابزارهای پدر مادر دار از اون استفاده میکنن . در این مورد بیشتر توضیح میدم بعدا تو بخش پیش نیازهای سخت افزاری دیپ لرنینگ). البته میشه از سی پی یو هم استفاده کرد البته فقط در دو صورت!‌۱. برای تست چند دقیقه ای که ببینید اصلا چطوریه!‌۲. کلا عمر حضرت نوح دارید و میخواید کاری که با کارت گرافیک مثلا ۱ ساعته انجام میش با سی پی یو (اونم از نوع خیلی عالیش )‌۱۰ تا ۲۰ ساعته حداقلش انجام بدید!!

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

آپدیت :

Caffe هم مثل Torch یه نسخه بتا برای OpenCL زده که از بخش ابزارها میتونید دانلود کنید. احتمالا طی امسال این پشتیبانی ها بیشترم بشه (انشاالله)

از سرویس ابری رایگان گوگل برای یادگیری عمیق میتونید استفاده کنید.

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

سید حسین حسن پور متی کلایی ۱۶ اسفند ۱۳۹۴

64 نظرات
  1. محمد می گوید

    با تشکر از سایت خوبتون
    در ورد کارت گرافیکی AMD فکر می کنم که با OpenGL می شه بجای کودا عمل کرد
    موفق باشد

    1. سید حسین حسن پور می گوید

      سلام .
      درسته OpenCL‌معادل cudda‌ تو کارتهای AMD هست اما تا جایی که من اطلاع دارم هیچ چارچوب مطرحی از کارتهای AMD‌ (و قايدتا OpenCL )پشتیبانی نمیکنه بصورت رسمی (البته Torch‌یه ورژن تو این زمینه ارایه کرده.)اما هنوز خیلی مونده تا پشتیبانی مثل کارتهای انویدیا باشه و هنوز نسخه رسمی اون فقط با کارتهای انویدیا هست.
      سرعت OpenCL‌هم نسبت به cudda‌ انگار پایین تر هست.
      اگه از کارتهای ای ام دی پشتیبانی بشه فکر کنم خیلی خوب بشه چون از لحاظ قیمتی مقرون به صرفه تر از کارتای انویدیا هستن ولی فعلا جواب نه هست.
      البته مگر اینکه یکی خودش بخواد یه چارچوب تو این زمینه بنویسه با OpenCL‌که اون بحثش جداس.

  2. کیومرث می گوید

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

    1. سید حسین حسن پور می گوید

      سلام
      خیلی ممنونم از لطف شما
      منم همین آرزو رو متعاقبا برای شما و برای همه هموطنان و فارسی زبانای عزیز دارم
      در پناه خدا انشاالله همیشه موفق و سربلند باشید

  3. پارسا می گوید

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

    1. سید حسین حسن پور می گوید

      سلام .
      خیلی ممنونم.
      انشاالله

  4. عطایی می گوید

    سلام و روز بخیر من یه مقاله در مورد یادگیری عمیق در زمینه ITمیخواستم
    ببینم میتونید مکم کنید

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

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

  5. مریم پهلوان می گوید

    سلام.
    موضوع من پروژه استفاده از DNN در تشخیص سرطان است. چند تا سوال دارم: اول اینکه در مطلب tools داریم که بتونم با اون این الگوریتم رو روی پروژه م تست بگیرم؟آیا بدون نصب اپ مثل Caffe و .. نمیتونم خروجی ها رو تولید کنم؟ دوم اینکه شما چند مدل برای این الگوریتم عنوان کردید، کار من هم تصویرکاوی هست. آیا مقالاتی برای انجام این کارها سراغ دارید؟ من چندین الگوریتم پیدا کردم اما روش اونها عمیق نیست و خیلی زیاد درگیر پیدا کردن ابزارها شدم و هنوز به نتیجه خوی نرسیدم. سوم اینکه با یک سیستم معمولی میتونم خروجی تولید کنم؟ هیچ سخت افزار غولی برای این کار در دسترس ندارم!!!!
    ممنون
    بسیار سایت مفید و خوبی دارید

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

      سلام
      متلب تو دیپ لرنینگ زیاد کاربرد نداره پتشیبانیش خیلی ضعیفه. تو این حوزه پایتون حرف اول رو میزنه (به متلب هم خیلی نزدیکه مشکلی ندارید)
      برای کارکردن و تحقیق میتونید Caffe رو نصب کنید و بعد یا از رپر متلبش استفاده کنید (یعنی از کتابخونه caffe در متلب استفاده کنید (پیشنهاد نمیکنم چون مستندات خوبی نداره)) یا اینکه از رپر پایتون استفاده کنید یا زبان سی++ یا اینکه اصلا از کد نویسی استفاده نکنید (که اموزش این تو سایت هست)
      من خودم خیلی زیاد پیشنهاد میکنم برید سراغ تنسورفلو که لینکش در بخش ابزارها اومده چون مستندات بسیار خوب و عالی ای داره و خیلی خیلی هم گسترده تر از Caffe هست . پشتیبانی خیلی خوبی هم داره.
      برای تنسورفلو میتونید از پایتون و C++ استفاده کنید.
      برای سرطان خیلی از دیپ لرنینگ استفاده شده و میشه یه سرچ ساده کنید نتایج خوبی میتونید پیدا کنید.(شبکه کانولوشن رو میتونید تو سرچتون لحاظ کنید تا نتایج بیشتری بگیرید)
      برای کار تو این زمینه باید یه سیستم قوی داشته باشید (تاکید روی کارت گرافیک هست. بقیه سیستم مثل سی پی یو یا رم معمولی باشه ایرادی نداره اما یه کارت گرافیک متوسط به بالا صد در صد نیازه)
      چون بحث تحقیقات هست ما میگیم کارت قوی ، وگرنه به اجرا بخوایید بگید با یه کارت متوسط مثل GTX750 هم میشه یکسری مدلها رو اجرا کرد اما زمان زیادی ممکنه صرف اموزش بشه . من خودم ابتدا یه کارت گرافیک متوسط مثل GTX750 داشتم با ۲ گیگ رم (کارت گرافیک) یه سی پی یو پنتیوم اینتل ۳ و ۸ گیگ رم! خیلی از وقتم صرف تست کردن پارامترهای مختلف میشد تا ببینیم نتیجه یه پارامتر چی میشه. این قضیه بشدت شما رو ضعیف میکنه تو تحقیقاتتون . من مجبور شدم برم و یه کارت قوی تر بگیرم تا بتونم مدلهای جدیدتر رو تست کنم .
      ما تو سایت پرسش و پاسخ به چندتا سوال در این زمینه جواب دادیم . الان بهترین خریدی که میتونید از کارتها داشته باشید به نسبت هزینه و کارایی سری GTX1060 هست با ۶ گیگ رم و ۱ میلیون . اگه سری کارتهای ۹۶۰ یا ۹۷۰ دسته دوم (۴ گیگ رم) بتونید گیر بیارید هم خوبه .
      این لینک و این لینک رو ببینید

  6. Mahdi می گوید

    مرسی جناب حسن پور بسیار شروع خوبی بود و امیدوارم ادامه داشته باشه.

  7. سید مجتبی حسینیان می گوید

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

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

      سلام .
      تو بخش منابع یادگیری یکسری اطلاعات هست.
      بطور کلی برمیگرده به اینکه چه زمینه ای دارید. هوش مصنوعی خوندید یا نه . اگه نه آموزش ماشین لرنینگ اندرو ان جی در کورس ایرا رو بخونید که لینکش در بخش منابع یادگیری هست.
      بعدش اگه شبکه عصبی تسلط دارید میتونید مطالب سایت رو بخونید تا انتها بعد استارت آموزش دانشگاه استنفورد رو بزنید که بازم لینکش در بخش منابع یادگیری هست.
      اگه تسلط ندارید میتونید یه کتاب بگیرید مثل شبکه عصبی مارتین هاگان یا سایمون هایکن و اونو بخونید . مباحث بک پراپگیشن و مومنتوم و Gradient Descent چیزاهایی هست که باید خوب بلد باشید. پیشنهاد میکنم با کتاب مارتین هاگان استارت بزنید تا فصل ۱۲ رو حداقل بخونید . فصل هاش کم هستن و خیلی سریع میتونید تموم کنید . بعد میتونید کتاب سایمون هایکن رو بخونید (فصول مربوط به آموزش شبکه عصبی و بحث های بک پراپگیشن و…)
      بعد از خودن مطالب سایت و دیدن ویدئو دانشگاه استنفورد به یکسری اطلاعات اولیه رسیدید و میتونید برنامه نویسی (کار با کفی ) رو استارت بزنید یا اینکه با تنسورفلو یا کراس برید جلو . از این به بعد مسیر شما رو اون موضوعی که قراره روش کار کنید مشخص میکنه
      اطلاعات تکمیلی در حوزه های مختلف رو هم میتونید با سوال کردن از بخش پرسش و پاسخ ما یا سایتهای دیگه و یا دیدن فیلم های summer school و اموزش هایی دیگه ای اینجا معرفی میشه یا خودتون پیدا میکنید بدست بیارید .

      در مورد ریاضیات هم باز موضوع مورد نظر شما و کار شما مشخص کننده اینه که چقدر نیاز به دونستن دارید ولی اطلاعات پایه از حسابان و امار و احتمالات باید داشته باشید برای درک بعضی مباحث .

  8. سید مجتبی حسینیان می گوید

    سلام.موارد کاربردی و استفاده های عملی دیپ لرنینگ چیه؟

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

      سلام
      خیلی زیاده . دسته های کلی شاملspeech recognition, natural language processing,pose estimation, classification و regression , annotation, semantic segmentation و…
      هرکدوم از این دسته ها باز کاربردهای فوق العاده زیادی دارن . مثلا کلسیفیکیشن در تشخیص بیماریهای مختلف در تشخیص اشیاء در رانندگی خودکار(بدون راننده ) و…. کاربرد داره . semantic segmentation هم در تفکیک اشیاء مختلف در تصویر چه در حوزه پزشکی چه در حوزه های دیگه کاربرد های بسیار زیادی داره . در رانندگی خودکار هم بشدت کاربرد داره . در صنایع روباتیک هم بشدت حائز اهمیت هست .
      تشخیص گفتار ، تبدیل صوت به متن، ترجمه زبانهای مختلف به همدیگه و….. نمونه خیلی کوچیکی از مثالهای کاربردی این حوزه اس

  9. سید مجتبی حسینیان می گوید

    شما خودتون الان تو چه زمینه های عملی کار میکنید؟

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

      من بطور خاص در حوزه طراحی معماری کانولوشن کار میکنم و بطور عام هم حوزه ویژن (دسته بندی اشیاء) البته تو حوزه های دیگه هم فرصت دست بده کار میکنم اما عموم فعالیت های من در این حوزه ها بوده تا بحال.

  10. سمیه می گوید

    سلام
    ممنونم از مطالب خوبتون
    یه سوال داشتم ممنون میشم جواب بدید.
    آیا با شبکه های عصبی عمیق outlier detection انجام شده؟

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

      سلام .
      متاسفانه من اطلاعی در این مورد ندارم.

      1. سمیه می گوید

        ممنون که پاسخ دادید.

  11. احسان می گوید

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

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

      سلام
      مطالب سایت برگرفته از پایان نامه من هست . شاید بیشتر هم باشه چون برای پایان نامه من ویرایش و… هم داشتم .

  12. فریده می گوید

    سلام مراحل دیپ لرنینگ رو میشه بذارید
    لطفا☺
    🙂

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

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

  13. جلیلی می گوید

    من دانشجو ارشد آی تی هستم و مبحث دیپ لرنینگ را به عنوان یک واحد درسی باید پاس کنم مباحث را تا حدودd خوندم و دنبال نمونه سوال می گردم میتونید کمکم کنید ؟

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

      سلام
      این مبحث کاملا جدید هست و تنها کتاب تقریبا مرجعی که شاید اساتید از اون بخوان استفاده کنن کتاب Deep Learning ایان گودفیلو هست که از بخش منابع یادگیری میتونید دانلود کنید.
      به غیر از اون کتاب مایک نیلسن هست که اونم از بخش منابع یادگیری میتونید ببینید
      به غیر از اینها دیگه بستگی به استادتون داره که آیا تو این حوزه وارد هستند یا نه . اگر باشن باید ببینید منابع چی بشما دادن همونو بخونید اگر منابع ندادن جزوه ایشون رو بخونید . چون این حوزه خیلی گسترده اس و نمیشه انتظار داشت دانشجوها همه چیز رو یاد بگیرن برای یک ترم .
      اگر هم استادتون ادم واردی نیست احتمال خیلی زیادی داره از همین سایت و مطالبش و یا حتی پرسش و پاسخ های صورت گرفته در سایت پرسش و پاسخ استفاده کنه .

  14. rahimizade می گوید

    سلام آقای حسن پور
    من به پیشنهاد دکتر وحیدی قرار هست رو پایان نامه شما کار کنم . در حال حاضر تو مرحله مطالعه پایان نامه شما هستم .
    خواستم راهنماییم کنید که پایان نامه خودم رو تو چه زمینه ای متمرکز کنم.
    ممنون

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

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

  15. ثریا می گوید

    سلام..
    شما برای بهبود دقت شبکه کانولوشنالم فرمودید که شبکرو عریض کنم یعنی تعداد فیلترامو هر لایه بیشتر کنم… من اینکارو کردم دقتم بهبود پیدا کرد..ولی دلیلشو نمیدونم چرا..
    مگه هرکودوم ازین فیلتر ها باعث استخراج ویژگی نمی شه ؟ اول چرا تعداد فیلترارو کمتر میذاریم بعد زیادش میکنیم؟

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

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

  16. نسترن می گوید

    سلام…
    من یک سوالی داشتم در مورد نحوه محاسبه خطا تو کانولوشن بعنوان مثال اگر ۵۰ epoch داشته باشیم که هر epochٍ، حدودا ۲۰۰ تا ایتریشن (مثلا ۲۰۰ تا دسته ۱۵۰ تا)داشته باشه… و بخواهیم خطارو بر حسب MSE بدست بیاریم… باید چطوری عمل کنیم!
    خطای هر ۱۵۰ تا رو میشه با فرمول MSE حساب کرد ولی برای EPOCH باید خطای ایتریشنارو جم کنیم؟

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

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

  17. سارا می گوید

    سلام آقای حسن پور
    مطلبی که گذاشتید به عنوان اولین مطلبی که در مورد یادگیری عمیق خوندم خیلی خوب بود، ممنونم
    من رشته ام کامپیوتر نیست ولی می خوام از شبکه عصبی برای یک پروژه استفاده کنم نمی دونم شبکه عمیق به دردم می خوره یا نه!
    من چند تا ورودی دارم فرضا A, B, C, D این ورودی ها تعیین می کنن که شرایط فیزیکی مساله در شرایط فرضا M, N و یا K قرار می گیرن. ما نهایتا می خوایم با این ورودی ها تعیین کنیم که شرایط فیزیکی در کدوم یکی از این سه شرط قرار می گیره و خروجی R رو هم پیش بینی کنیم. در حالی که خروجی R به شدت به شرایط فیزیکی بستگی داره و به ازاء هر کدوم از این شرایط ارتباط متفاوتی بین ورودی ها و خروجی وجود داره. تو یک مقاله دیدم که خیلی ساده ورودی داده بود و خروجی رو پیش بینی کرده بود و تفاوتی بین شرایط مختلف قائل نشده بود . طبعا نتایج خوبی هم نگرفته بود. ساده ترین کاری که به ذهنم می رسه اینه که برای هر کدوم از این شرایط شبکه جدا آموزش بدم. به نظرتون بهترین کاری که می تونم بکنم چیه و آیا یادگیری عمیق به دردم می خوره که برم سراغش؟
    پیشاپیش از توجهتون تشکر می کنم

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

      سلام
      من بخوبی متوجه نشدم اما بنظر میاد مساله شما یک مساله دسته بندی (کلسیفیکیشن : مشخص کردن اینکه ورودی های ABCD هرکدوم به کدوم کلاس (M ,Nو یا K ) تعلق دارند) و یک مساله رگراسیون (پیش بینی مقدار R)
      درسته؟
      اگه اینطور باشه هر دو این مسائل رو میشه در این حوزه مورد بررسی قرار داد. ولی خب نوع داده شما هم مشخص کننده است . ممکنه حتی کار شما با یک شبکه عصبی ساده هم راه بیوفته یا ممکنه شبکه عصبی اصلا انتخاب مناسبی نباشه .
      همه اینا بر میگیرده به ماهیت مساله که متاسفانه اینطوری نمیشه نظر بیشتری داد.
      اول مساله باید بخوبی تببین بشه بعد از اینکه مشخص شد داستان چیه حالا مقالاتیکه تو حوزه شما کار کردن یک مرور بشه ببینید چه کارهایی شده (همه اینها برای ایده گرفتنه. مثلا کسی سراغ شبکه عصبی رفته؟ اگه رفته چکارکرده؟ خروجیش چی بود؟ و ایا جای کار داره یا نه یا مثلا ممکنه کسی طی مطلاعاتتی کلا گفته باشه شبکه عصبی گزینه خوبی نیست و مثلا روش دیگه ای رو در پیش گرفتن . اینها خیلی کمک میکنن به اینکه در زمانتون صرفه جویی بشه و همینطور دقیقا بدونید دنبال چی هستید اونوقت سوالتون دقیقتر میشه و بهتر میشه راهنمایی کرد)

      1. سارا می گوید

        خیلی ممنون از جوابتون
        خروجی R که نوشتم افت فشار در یک لوله هست که به فاکتورهای A B C D بستگی داره (مثلا دبی سیال، قطر لوله، ضریب اصطکاک و …). بسته به این فاکتورها در وسیله شرایط متفاوتی پیش میاد که من اسمشون رو گذاشتم M N K (مثلا این که جریان آرامه یا تلاطم داره یا …) در هرکدوم از این شرایط افت فشار رفتار کاملا متفاوتی نشون می ده. برای تعیین کلاس های M N K که به همین فاکتورها بستگی داره با شبکه عصبی ساده کار زیاد انجام شده و موفق هم بوده ولی برای تعیین افت فشار فقط یک مقاله کار شده که تفاوت افت فشار رو در کلاس های مختلف در نطر نگرفته یعنی یک شبکه آموزش داده که ورودی هاش A B C D هست و خروجیش افت فشار یا همون R که اسم گذاشتم و برای همه کلاس ها یک شبکه ارائه داده. می خوام بدونم چطور می شه با شبکه عصبی کلاس های مختلف مساله رو هم برای تعیین افت فشار در نظر بگیرم.

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

          سلام
          متوجه نشدم . یعنی کلاس های M N K رو هم تاثیر بدید ؟ خب میتونید هر کلاس رو بعنوان یک ویژگی دیگه مثل A B C D به عنوان ورودی به شبکه بدید و خروجی رو با توجه به این بگیرید

          1. سارا می گوید

            سلام
            ما وقتی داریم دیتای آزمایشگاهی برای آموزش شبکه می گیریم چون لوله شیشه ای هست می تونیم داخلش رو ببینیم و چشمی تشخیص بدیم که جریان آرام هست یا متلاطم، یعنی برای آموزش دادن شبکه دیتا هایی داریم که می گه مثلا تو این رنج ورودی های A B C D، کدوم کلاس K ، M ،N برقرار هست و افت فشار رو می تونیم اندازه بگیریم. بعد از آموزش شبکه باید بتونیم در شرایط لوله واقعی از شبکه استفاده کنیم اما لوله واقعی شیشه ای نیست و ما نمی تونیم ببینییم اون تو چه خبره، تنها فاکتورهایی که در شرایط واقعی برامون قابل اندازه گیری هست فاکتورهای A، B، C و D هستن. بر اساس این اندازه گیری ها می خوایم اولا بدونیم در کدوم کلاس جریان هستیم و افت فشار رو پیش بینی کنیم.

  18. شبنم می گوید

    سلام وقت بخیر
    سایت فوق العاده ای دارید
    من دانشجوی ارشد نرم افزار دانشگاه علم و صنعت هستم میخواستم روی موضوع deep learning in digital marketing کارکنم به عنوان پایان نامه ارشد ولی نمیدونم از کجا باید شروع کنم میشه راهنمایی بفرمایید
    ممنون میشم

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

      سلام. یادگیری عمیق بلدید یا نه ؟ اگه بلدید پیشنهاد میکنم اول یک سر به arxiv sanity بزنید و چک کنید تو حوزه مورد علاقه شما جدیدترین پیپیرها چیاست اون شروع خیلی خوبی میتونه باشه
      علاوه بر اون تو گروه یادگیری عمیق (تلگرام ما) بپرسید کسی تو این زمینه شما قبلا کار کرده یا نه اگر کرده بشما پیام بده (یا میتونید در سایت پرسش و پاسخ سوال رو مطرح کنید و بعد ل ینکش رو در گروه تلگرام بزارید )
      در گام بعدی از سایت Quora و گروه یادگیری عمیق گوگل استفاده کنید و سوالتون رو هم اونجا مطرح کنید تا در کمترین زمان ممکنه از منابع مختلف پرس و جو کرده باشید .

  19. ف.ش می گوید

    سلام و خسته نباشید
    مطالب بسیار اموزنده ای ارائه دادین، آیا در کشف جوامع میشه از یادگیری عمیق استفاده کرد؟!ممنون

  20. rEzA می گوید

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

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

      سلام
      اینکه آیا Lstm ها در churn prediction‌استفاده میشن یا نه بله میشن .
      اون عبارتی که عرض کردم رو سرچ کنید مقالات و پیاده سازی های مختلفی رو پیدا میکنید که میتونه بهتون کمک کنه .

  21. saee می گوید

    سلام
    ایا مطلبی درباره autoencoder در تنسورفلو و برنامه نویسی دارین که کمک کنه
    بعد من یه مشکل هم با طول های متفاوت نمونه های دیتاست دارم
    ممنون از کمک و راهنماییتون

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

      سلام
      لطفا سوالتون رو کامل و دقیق در بخش پرسش و پاسخ بپرسید اینطور بهتر میشه راهنمایی کرد.

  22. سید اشکان می گوید

    با سلام خیلی ممنون از مطالب تون
    یه سوال داشتم من می خوام از این روش deep learning در بحث مدل سازی و شبیه سازی در بحث آب و مسائل مربوط به آب مثل پیش بینی بارش و رواناب و رسوب و …کار کنم اگه در این خصوص مطلبی دارید یا چیزی که کمکم کنه اگه به اشتراک بزارید ممنون میشم
    با تشکر

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

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

  23. afsaneh می گوید

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

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

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

  24. far می گوید

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

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

      سلام.
      سعی میکنم سرم خلوت شد یک مطلب در این باره در سایت قرار بدم انشاالله.

  25. مهدی مقیمی می گوید

    با سلام
    ممنون از لطفتون. بنده مقیمی هستم از سایت یادداشت های یک پژوهشگر. مطلب شما باب میل من بود. خواستم از شما و بینندگان عزیز خواهش کنم به سایت من هم تشریف بیارید به آدرس
    http://research-moghimi.ir
    و می خوام از شما اجازه بگیرم و مطالب شما رو با ذکر منبع در سایت قرار بدم
    با تشکر

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

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

  26. صفورا می گوید

    سلام وقتتون به خیر
    پایان نامه ی من در حوزه ی face recognition هست و اولین قسمت کارم این میشه که چهره رو از غیر چهره تشخیص بدم، ولی در اینکه از الگوریتم های قدیمی مثل ویولا جونز استفاده کنم یا دیپ لرنینگ خیلی شک دارم، ممنون میشم راهنماییم کنید، به نظرتون دیپ میتونه تو تخشیص کامل کمک کنه؟

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

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

  27. امیر می گوید

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

  28. امیر می گوید

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

  29. میثم می گوید

    سلام خسته نباشید.
    ممنون،خیلی مفید بود.
    یه سوال
    اگه یه شبکه عمیق بسازیم که مثلا تعداد افراد موجود در یک تصویر رو بشماره برای استفاده های بعدی(بعد از آموزش و آزمایش) هم به یه سیستم قوی نیاز داره؟منظورم اینه که اگه با CNN نرم افزاری کاربردی بسازیم،این نرم افزار فقط رو سیستم های قوی کار میکنه؟

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

      سلام
      بستگی به ماهیت کار شما داره (اندازه تصویر چقدر باشه سرعت مورد نظر شما(لتنسی کار) چقدر باشه و یا سخت افزاری که قراره ازش استفاده کنید چی باشه.
      تو استفاده های نرمال مساله ای ندارید عموما ولی همیشه بهترین کار تست توسط خود شما با سخت افزار مورد نظرتون و ورودی موردنظرتون هست.

  30. زهرا می گوید

    سلام آقای حسن پور
    عذرخواهی میکنم یه سوال داشتم ممنون میشم کمکم کنید.
    در زمینه deep learning از چه کارت گرافیکی باید استفاده کرد؟ GPU با چه مشخصاتی خوبه؟ و اینکه حداقل GPU ی که میشه استفاده کرد چیه؟ برای image processing در deep learning مد نظرم هست

    و اینکه من شنیدم کارت گرافیک مورد نظر رو میشه خریداری کرد و به سیستم اضافه کرد آیا درسته؟

    ممنون از پاسخگوییتون

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

      سلام
      من در این باره تقریبا مفصل اینجا توضیح دادم لطفا اینجا رو مطالعه کنید.

  31. rohollah می گوید

    سلام
    میشه چندتا موضوع جالب و مقاله خور در مورد پردازش تصویر با استفاده از دیپ لرنینگ که بشه توی ۱٫۵ – ۲ سال برای پایان نامه دوره ی ارشد جمعش کرد و مقاله خورش هم خوب باشه معرفی کنید؟؟

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

      سلام
      خیلی کلیه. این پیشنهادات بر اساس شرایط علمی /زمانی و سخت افزاری فرد ارائه میشه. همینطور نمیشه یک نسخه برای همه پیچید.
      اما بطور کلی زمینه های بهینه سازی و طراحی معماری های بهینه خیلی پرکاربردن. میتونید محدودش کنید و تو یکی از زیرشاخه ها اونو دنبال کنید.

      1. maryam می گوید

        سلام من به چه صورتی می تونم با شما در ارتباط باشم لطفا راهنمایی کنید

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

          سلام
          از طریق تماس با من یا آدرس ایمیل coderx7 در جیمیل میتونید در ارتباط باشید

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.

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