یادگیری عمیق یا Deep learning چیست؟ بخش اول

140 42,367

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

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

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

اگه مطالب این پست رو نخوندید بخونید بعد بیایید اینو بخونید

مفاهیم اصلی

یادگیری ماشین یا Machine Leaning

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

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

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

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

مهندسی ویژگی یا همون Feature Engineering

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

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

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

یادگیری ویژگی یا Feature Learning

الگوریتم های یادگیری ویژگی برای پیدا کردن و استخراج خودکار الگوهای مشترک استفاده میشن تا از ویژگیهای استخراج شده در فراینده های دسته بندی (کِلَسیفیکیشن!) و رگرسیون (رگرشن!) استفاده بشه.یادگیری ویژگی یا همون feature learning رو میشه بعنوان همون مهندسی ویژگی ای دید که بصورت خودکار داره توسط یه الگوریتم انجام میشه.

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

سلسله مراتب ویژگی ها
سلسله مراتب ویژگی ها

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

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

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

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

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

عبارت دیپ لرنینگ یا همون یادگیری عمیق از وقتی که روشها و استراتژی های جدیدی برای برطرف کردن مشکلات قبلی ارائه شد , سر زبونا افتاد و بطور خاص زمانی که توسط الکس کریژوسکی و جفری هینتون (جف هینتون) تو سال ۲۰۱۲ تونستن با یه شبکه کانولوشنی عمیق رقابت ImageNet رو با موفقیت خیلی خوبی برنده بشن و به مقام اول برسن سرعت گرفت. تقریبا بعد از موفقیت اونها بود که یکدفعه همه متوجه عملی بودن یادگیری عمیق شدن (قبل از اون خالق شبکه های کانولوشنی Yan leCunn تو دهه ۹۰ یه شبکه کانلووشنی ساخته بود که اراقام دست نویس رو تشخیص میداد اندازه تصاویر خیلی کوچیک بود ( ۲۸ در ۲۸ بود بنظرم) و کسی برای کارهای بزرگ و واقعی ازش استفاده نیمکرد چون سخت افزارهای اون موقع انقدر قوی نبودن . تو سال ۲۰۱۲ کریژوسکی با استفاده از GPU ها (دوتا کارت گرافیک GTX580 3Gig ) تونست یه شبکه ۸ لایه ای رو آموزش بده و باعث ایجاد موج جدیدی در این حوزه بشه . (اینم بگم که در مقایسه با دیتاست MNIST که  تصاویر اندازه اشون ۲۸ در۲۸ بود و سیاه و سفید. و تعداد تصاویر کلا ۶۰ هزارتا بود. دیتاست ایمیجنت ۲۰۱۲ بیش از ۱ میلیون و نیم تصاویر رنگی با اندازه ۲۲۷ در ۲۲۷ پیکسل داره که حجم این دیتاست چیزی برابر با ۱۵۰ تا ۲۰۰ گیگابایت میشه!! ورژن ۲۰۱۵ این دیتاست بیش از ۱ ترابایت حجم داره!- پس کاملا مشخصه که چرا یکدفعه از این سال دیپ لرنینگ بشدت محبوب و معروف شد!)بعدا تو یه پست جداگانه بصورت خاص به دلایل رونق دوباره گرفتن این مبحث بعد از یه بازه زمانی نسبتا زیاد میپردازیم انشاالله).

البته قبل از الکس کریژوسکی و جف هینتنون (ایشون خالق RBM ها هم هستن! یکی از دانشمندان معروف دنیا تو حوزه دیپ لرنینگ هستن ایشون) البته در اوائل سال ۲۰۱۰ نشون داده شده بود که استفاده از GPU ها و توابع فعال سازی جدید به غیر از تابع سیگموید میتونه باعث بهتر شدن جریان گرادیانت بشه و اینطور برای آموزش معماری های عمیق بدون مشکلات جدی راه باز شده بود. الکس کریژوسکی (Alex krizhevsky) و جف هینتون (Jeff hinton) هم بعنوان مثال از تابع relu بجای سگموید استفاده کرده بودن . (نگران نباشید در این باره هم توضیح میدیم اینا همه مربوط به شبکه های عصبی و کانولوشنی هست که با خوندن اینا همه چیز میاد دستتون).

تا اینجا ما هر مثالی زدیم در مورد عکس بود و تصاویر . در اصل شبکه های کانولوشنی که یکی از روش های دیپ لرننیگ هستن برای کار با تصاویر ایجاد شده بودن ولی تو حوزه دیپ لرنینگ ما تو زمینه ها پردازش صدا و جریان هم کار میکنیم . به عبارت بهتر الان با استفاده از دیپ لرنینگ فعالیت شناسی هم انجام شده یعنی شما یک فیلمی که تو اینستاگرام یا فیس بوک آپلود میکنید براحتی مشخص میکنن که چه فعالیتی در حال انجام شدن هست. مثلا دارید فوتبال بازی میکنید یا دوچرخه سواری و… این کار از طریق نوع های خاصی از شبکه های عصبی بنام long short term memory recurrrent neural network انجام میشه.

بطور خلاصه باید بگم که تو یادگیری عمیق ما در اینو نوع شبکه ها میایم وابستگی های زمانی رو هم دخالت میدیم . تو شبکه های عصبی recurrent neural network ها دقیقا همینطور هستن . اگه شبکه عصبی خونده باشید مدونید که تو این نوع شبکه ها ورودی شبکه از ورودی قبلی تاثیر میپذیره و اینطور تقریبا یک حافظه تو شبکه عصبی ایجاد شده .پس یادگیری عمیق صرفا در یادگیری ویژگی های سلسله مراتبی غیرخطی عمیق خلاصه نمیشه! بلکه از اون میشه در یادگیری وابستگی های زمانی غیرخطی طولانی در داده های ترتیبی هم استفاده کرد. (نمونه هایی که در مورد تشخیص فعالیت در حال انجام گفتم با استفاده از این نوع شبکه ها بدست اومدن) اکثر الگوریتمهای دیگه ای که روی داده های ترتیبی کار میکنن حافظه ای برای ۱۰ گام زمانی اخیر دارن در حالی که شبکه LSTM (که در سال ۱۹۹۷ توسط Sepp Horchreiter و Jurgen Schmidhuber معرفی شد) به یه شبکه این اجازه رو میده که بتونه فعالیتی رو از صدها گام زمانی قبلتر انتخاب کنه تا با استفاده از اون بتونه پیش بینی دقیقی داشته باشه. شبکه های LSTM طی ده پانزده سال اخیر بهش توجه نشده بود تا اینکه بعد از سال ۲۰۱۳ یکدفعه سر زبونها افتاد! این شبکه به همراه شبکه های کانولوشنی دوتا از نمونه های بسیار موفق تو حوزه دیپ لرنینگ هستن. من خودم تو این حوزه اصلا کار نکردم (LSTM) اما تو زمینه شبکه های کانولوشنی چرا. منابع در این زمینه هم قرار میگیره ولی شاید به خوبی شبکه های کانلووشنی نباشه اما مطمئنا بکار کسی که میخواد کار کنه میاد (مفاهیم اکثرا یکی هستن به جز یکسری تفاوتهای جزئی).

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

140 نظرات
  1. عرفان می گوید

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

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

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

  2. bahar می گوید

    سلام عیدتون مبارک.
    خیلی خیلی ممنون. عالی بود.

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

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

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

    سلام، بسیار شروع خوبی هست من هم دارم رو این مبحث کار می کنم و این ترم یک درس مرتبت با این موضوع دارم.
    دیپ لرنینگ مثل یک عصای جادویی می مونه، تا اونجایی که اطلاع دارم تقریبا مسئله تشخیص تصویر صورت با ۹۹٫۹۶ درصد دقت حل شد.
    – Image recognition: 3.57 error rate, (ResNet, top-5 test, by MS Research Asia, Dec. 2015)
    – Face recognition: 99.96% accuracy (FaceNet, on LFW dataset, by Google, 2015)
    پست ها تون رو دنبال میکنم، با آرزوی موفقیت شما گام بسیار بزرگی و موثری رو برداشتید، واستون آرزوی موفقیت می کنم.

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

      سلام خیلی ممنونم و متعاقبا منم همین آرزو رو برای شما دارم. در مورد فعالیتهای صورت گرفته هم درسته فعالیتهای خوبی صورت گرفته ولی هنوز مونده . ResNet‌ مایکروسافت نرخ خطای ۵ انتخاب اولش ۳٫۵۷ هست و هنوز نرخ خطای اصلی جای کار داره .از طرفی من اعتقاد راسخ دارم طی دو سه سال آینده ما میریم بطرف کاهش تعداد لایه ها. مثلا resnet‌با اینکه تونسته با ۱۵۰ لایه! تو ایمیج نت به نرخ خطای ۳٫۵ برای ۵ انتخاب اولش برسه همین معماری تو دیتاست CIFAR10 نتونسته state of the art‌رو کنار بزنه و یه شبکه بسیار بسیار کوچیکتر نتایج بهتری گرفته . (البته اینا قابل قیاس نیستن از لحاظ حجم و اندازه و … ) ولی یه نیم نگاه به معماری های دو سه سال اخیر اینو دقیقا نشون میده . مثلا VGGNet‌با اون همه پارامتر رو در مقابل GoogLeNet‌ شما در نظر بگیرید. یا مثلا مدل بایدو که قبل از مایکروسافت state of the art این حوزه بود (نرخ خطای ۵ و خورده ای درصد تقریبا) از یه سوپر کامیپوتر و الگوریتمهای اختصاصی موازی سازی استفاده کرده بود. بعد دیدیم که گوگل چطور با batch normalization‌یی که چند ماه بعدش داد نرخ خطا رو خیلی کاهش داد و بعدش هم تیم مایکروسافت با استفاده از همین batch normalization‌و افزایش تعداد لایه ها شدن state of the art .
      مطمپنم از این به بعد ما میریم سراغ دقت بالاتر با سربار کمتر خصوصا که الگوریتم ها و روشهای مقابله با اورفیتینگ خیلی خوبی هم طی این چند سال بوجود اومده .
      در پناه حق موفق و سربلند باشید

  4. آسمان می گوید

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

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

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

  5. farzaneh می گوید

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

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

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

  6. محمد چناریان نخعی می گوید

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

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

      سلام .
      بله میشه.
      بحش دوم رو متوجه نشدم!

  7. محمد چناریان نخعی می گوید

    سلام سپاسگذارم
    منظورم این بود که خروجی به صورت پیوسته باشه یعنی مثل رگرسیون. خروجی شبکه کانولوشن عمر باقی مانده که یک متغییر پیوسته به جای کلاس ها که گسسته ان رو دراختیارمون بذاره؟

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

      بله اونم میشه.

  8. مریم می گوید

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

    ممنون می شم واقعن پاسخ بفرمایید

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

      سلام .
      من در مورد سوال اولتون نظری ندارم چون کار نکردم تو این زمینه. فکر میکنم تو گروه اگه سوال کنید نتیجه خیلی بهتری بگیرید (اگرم اونجا نگرفتید از Quora و StackOverflow بپرسید که نتیجه بگیرید)
      در مورد سوال دومتون در مورد برتری دیپ لرنینگ نسبت به شیوه های سابق , همه اش بر میگرده به اون مهندسی ویژگی که دیگه توسط ما انجام نمیشه و بصورت خودکار صورت میگیره .همین نکته اس که اونو خیلی خاص و کاربردی کرده .

  9. soroor می گوید

    سلام و وقت بخیر

    اول بی نهایت از کار زیباتون تشکر می کنم و براتون آرزوی موفقیت می کنم
    بعد ی سوال داشتم از خدمتتون:
    توی مطالبتون از حافظه ایجاد شده در شبکه های عصبی صحبت کردین “…مدونید که تو این نوع شبکه ها ورودی شبکه از ورودی قبلی تاثیر میپذیره و اینطور تقریبا یک حافظه تو شبکه عصبی ایجاد شده…” و گفتین که LSTM میتونه تا صدها گام قبلتر رو هم داشته باشه و ببینه و دقیق تر تصمیم بگیره
    میشه اینو بیشتر توضیح بدید؟ این میزان حافظه به چه اندازه هست؟

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

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

  10. متین می گوید

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

  11. هما می گوید

    سلام من در مورد deeplearning میخوام روی speech recognition یا تصویر کار کنم برا تزم. امکانش هست از شما کمک بخوام؟ مقالاتی رو خوندم. مثلا با deep belief network روی صدا کار کردن. اینکه کدوک الگوریتمو از یادگیری عمیق انتخاب کنم اصلا توی متلب چطور بنویسم؟ خیلی گیجم کرده. خواهشا کمک بفرمایید

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

      سلام .
      بله مشکلی نیست.
      DBN ها الان تقریبا دیگه استفاده نمیشن. بجای اونها شبکه های کانولوشن و LSTM ها خیلی خوب دارن کار میکنن . هم تو حوزه تصویر و هم صدا.
      مطالب سایت رو مطالعه کردید یا نه ؟ اگر نه پیشنهاد میکنم این مطالب رو شروع کنیدو یک دور بخونید
      اگر زبان مشکلی ندارید ویدئو آموزش دانشگاه استنفورد رو حتما ببینید که خیلی خوبه.
      بعدش پایه کار میاد دستتون .
      برای کار تو این حوزه متلب خوب نیست. هرچند برای CNN تولباکس matconvnet خیلی خوبه. اما جاهای دیگه و معماری های دیگه متلب خیلی کاستی داره.
      پیشنهاد میکنم برای شروع به Caffe,Torch,Deeplearning4J,Tensorflow یه نگاهی بندازید. و ببینید از کدوم بیشتر خوشتون میاد.
      من میگم اگر با cnn میخوایید کار کنید برای شروع caffe خوبه. بعدش میتونید برید سراغ گزینه های دیگه اگر نیاز بود.

  12. هما می گوید

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

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

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

  13. محمد می گوید

    سلام دکتر.ممنون از بابت مطالب فوق العادتون
    به نظر شما کسی با شرایط من که یاد SVM رو یه کم بلده چقدر طول میکشه یادگیری عمیق رو بتونه با متلب یا CAFFE بتونه پیاده سازی کنه؟
    پروژم هم تشخیص است.

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

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

  14. سحر می گوید

    سلام ممنون از سایت خوبتون یه سوال داشتم
    آیا deep learning با شبکه عصبی ارتباط صددرصد داره؟ من میخوام تو زمینه Time series analysis using deep learnin در داده کاوی کار کنم و میخوام بپرسم آیا درگیر مسائل شبکه عصبی میشو یا نه؟ ممنون میشوم اگر پاسخ بدهید

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

      سلام
      بله

  15. فهیمه می گوید

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

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

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

  16. محمد می گوید

    سلام و ادب
    الان متلب ۲۰۱۶ رو نصب کردم و وقتی به تولباکسCNN مراجعه میکنم میبینک یه سری توضیحات داره و حتی یک مثال درست و حسابی نداره.یعنی اینقدر متلب توی این حوزه ضعیفه؟
    ممنون

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

      بله. معمولا ۹۹ درصد تو این حوزه زبان اصلی و اولشون پایتون هست و تقریبا (همه!) تمام اموزش ها از پایتون استفاده میکنن و تمام مثالها تو این زمینه هم به پایتون هست در اینترنت .

  17. محمد می گوید

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

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

      مثال که هست اما نه واقعا به اندازه پایتون .
      علاوه بر اون تو متلب تنها چیزی که بدرد میخوره و من اطلاع دارم MatConvNet هست که ازش استفاده میشه .
      پیشنهاد میکنم طرف متلب نرید چون پایتون مطالب خیلی خیلی بیشتری داره و آموزش و راهنمایی و مستندات براش خیلی زیاده
      برای اینکه استادتون رو قانع کنید میتونید از همه فریم ورکهای مطرح این حوزه مثال بیارید که جز Caffe که یه رپر اونم خیلی خیلی محدود داره نسبه به رپر پایتون و مثالها و مستنداتش و matconvnet فریم ورک دیگه ای با متلب کار نمیکنه یا حتی رپر براش ارائه نداده تا جایی که من میدونم و یادمه.
      Tensorflow, torch, caffe و حتی cntk و خیلی های دیگه انتخاب اولشون یا پایتون هست یا یه رپر پایتون هم ارائه کردن و میتونید خیلی راحت به سایتهاشو مراجعه کنید و مستندادشون رو ببینید . من Theano و بلاکس و کراس و… pylearn2 و… که کلا پایتون بیس هستن رو هم نام نبردم!
      کلا انتخاب پایتون خیلی عاقلانه تره در حال حاضر و دستتون رو باز میزاره خیلی زیاد و از خیلی نمونه ها میتونید استفاده کنید.
      به متلب هم میشه گفت نزدیکه و از لحاظ سینتکس هم خیلی راحته

  18. محمد می گوید

    سلام و خسته نباشید
    من قسمت ابزار و نصب caffe رو خوندم ولی ابهام دارم
    اول میخوام caffe رو برای نتلب و بعدش برای پایتون نصب کنم
    در لینک زیر یه سری فایل هست ولی نمیدونم دقیقا کدوم برای متلب و کدوم برای پایتون است؟
    https://github.com/Microsoft/caffe/tree/master
    ممنون

  19. محمد می گوید

    ببخشید گیرم نصب caffe وکتابخونه های متناظر با پایتون و متلب است

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

      سلام
      شیوه نصب که خیلی سر راسته!
      شما ویژوال استودیو ۲۰۱۳ رو باید نصب کنید، و بعد از پوشه ویندوز فایل Caffe.sln رو اجرا کنید برای کامپایل
      شما وقتی کامپایل رو استارت بزنید خودش کتابخونه های مورد نیازش رو که حدود ۱ گیگ هست دانلود میکنه .
      شما فقط باید یه فایل CommonSettings.props.example رو به CommonSettings.props تغییر نام بدید و بعد اونو از داخل ویژوال استودیو یا یه فایل ادیتور مثل Notepad++ باز کنید (نوت پد خوب نشون نمیده ) . بعد گزینه های کامپایل رپر برای متلب و پایتون مشخص هست که باید False رو به True تنظیم کنید و عمل کامپایل رو شروع کنید.
      (دقت کنید کامپایل رو حالت Debug نباشه . روی Release کامپایل رو انجام بدید )
      بعد که کامپایل با موفقیت انجام شد.
      بر محتوای پوشیه pycaffe رو از پوشه Build\x64\Relase کپی کنید به پوشه Lib\site-packages اناکوندا و بعد هم در برنامه های پایتونتون براحتی ایمپورت کنید. (در ویندوز اناکوندا ۲ پشتیبانی میشه نه ۳ تا جایی که یادم میاد )
      برای متلب هم بر اساس اطلاعاتی که داده شده تو همون صفحه عمل کنید.
      قبل از همه اینها هم کودا ۷٫۵ و cudnn 4 نیاز دارید . (اگه از آخرین بیلد Caffe استفاده میکنید که البته دیگه برنچ مایکروسافت نیست باید cudnn5 رو بگیرید )
      اگر هم مشکلی هست لطفا تو سایت پرسش و پاسخ سوالات رو بپرسید

  20. معصومه می گوید

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

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

      خیلی زیاد! یکی از پر کاربردترین حوزه های دیپ لرنینگ حوزه پزشکی هست! شدیدا داره کار میشه تو این حوزه

  21. raha می گوید

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

    Deep Learning of Transferable Representation for Scalable Domain Adaptation

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

      سلام
      شما بنظرم مقالات Knowledge distillation و Fitnet و همینطور Progressive Neural Networks رو بخونید.
      یکسری دیگه هم بود الان حضور ذهن ندارم اما بخش دوم خصوصا اخرای بخش دوم اینجا رو بخونید و رجوع کنید به مقالاتی که اونجا در موردش صحبت شده : https://arxiv.org/abs/1608.06037

  22. tina می گوید

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

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

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

  23. مهسا می گوید

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

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

      سلام
      مطالبی که گفته شدن یک منبع ندارن اینا ماحصل چیزهایی هست که من اون زمان خونده بودم . و چیزایی هم که خوندم خیلی زیاده
      کنفرانسهای خیلی زیاد +‌مقالات مختلف .
      اینطور نبوده که یک یا چند مقاله خاص باشه من بیام اینجا بگم این بخش از اینجا گرفته شده و الخ .
      شما بخش پیشینه تحقیق رو حتما بخونید اطلاعات خوب با رفرنسهاش بدست میارید . بخش منابع یادگیری هم بشما کمک میکنه تو این زمینه
      بطور کلی چیزایی که اینجا اومده جزو مبانی اولیه اس که میتونید تو مقالات یان لیکان و مقاله الکس نت Vggnet‌و امثالهم نمونه هایی رو ببینید
      یکسری دیگه هم مربوط به کنفرانس هایی سال ۲۰۱۴ و ۲۰۱۵ تو اکسفورد و چند جا دیگه بوده که الان حضور ذهن ندارم .
      کلا پیدا کردن صحت و سقم این چیزا خیلی راحته بنظرم کتاب ایان گودفیلون از انتشارات MIT‌که تو بخش منابع یادگیری هست ممکنه براتون جذاب باشه. (البته سطحش متوسط به بالا هست)

  24. غزل می گوید

    سلام
    در قسمت توضیحاتتون ه شبکه های lstm اشاره کردین من میخوام در مورد این شبکه بیشتر بدونم شما میتونین کمکم کنین ممنونم

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

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

  25. سعید می گوید

    سلام
    باید بگم بسیار بسیار عالی بود.تشکر میکنم بابت وقتی که گذاشتین.
    یه سوال داشتم شما در مورد کاربرد یادگیری عمیق در طبقه بندی تصاویر اطلاعات دارین؟؟

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

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

  26. as می گوید

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

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

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

  27. ن می گوید

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

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

      سلام
      سلامت باشید
      واقعیتش نمیشه یه نسخه یکسان برای همه پیچید. شما باید بر اساس یکسری گام حوزه مورد علاقه اتون رو مشخص کنید .
      مثلا اول چند تا حوزه که علاقه دارید رو لیست کنید برای خودتون . میتونید بدون توجه به یادگیری عمیق پیش برید و بعد ببینید تو حوزه مور نظر شما تو یادگیری عمیق کاری انجام شده یا نه و اگر شده چقدر کار شده و اینکه چه پیش نیازهایی داره (علمی و سخت افزاری و…) بعد با شرایط خودتتون بسنجید.
      یا اینکه میتونید یک نیم نگاهی به کارهای صورت گرفته در حوزه یادگیری عمیق بزنید مثلا بخش پیشینه یادگیری عمیق رو ببینید (البته این مربوط به اواخر ۲۰۱۵ و اوایل ۲۰۱۶ هست و فقط حوزه ویژن رو در بر میگیره ولی دید کلی خوبی میده هنوز ) و بعد اینطور به حوزه هایی که ممکنه براتون جذاب باشه برسید و لیستشون کنید
      قدم بعدی شما اینه که تو حوزه هایی که انتخاب کردین دقیق تر بشید و ببینید چه کارهایی تو اون حوزه برای شما جذابه . یکی یا چندتا رو انتخاب کنید و بعد چک کنید این کارها تو یادگیری عمیق انجام شدن یا نه مثلا اینجا میتونید از بقیه هم سوال کنید ولی قبلش حتما خودتون باید سرچ کنید . برای سوال پرسیدن هم سعی کنید حتما شده یک بار از Quora‌ و stackoverflow‌(بخش cross validated ) و همینطور انجمن یادگیری عمیق گوگل که لینکش در بخش منابع یادگیری هست استفاده کنید چون خیلی معتبر هستن و محققای زیادی اونجان . از این طریق شانس دریافت بهترین اطلاعات خودتون رو افزایش میدید (چون حوزه خیلی dynamicیی هست و هی بروز میشه این بهترین کاره تا چیزی از قلم نیوفته ) .
      بعد که متوجه شدید کاری انجام شده یا نه نگاه به شرایطش میکنید با شرایط خودتون تطبیق میدید میبنید آیا از لحاظ زمانی/علمی/سخت افزاری امکانش رو دارید یا نه . بعد میتونید به جمع بندی مناسب برای انتخاب موضوع برسید .

  28. Saberi.sh می گوید

    سلام من دانشجوی کارشناسیم میخواستم ببینم این موضوع خوبه که من برای درس شیوه ارائه بردارم …‌
    یعنی میتونم منابع خوبی جمع کنم و برای اول اردیبهشت ارائه بدم یا نه ؟

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

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

  29. احسان نادرنژاد می گوید

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

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

      سلام جناب دکتر وقت شما هم بخیر
      خیلی ممنونم 🙂

  30. alien می گوید

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

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

      سلام
      وقت شما هم بخیر.
      خب ما قبلا تو بخش پرسش و پاسخ به چندتا سوال در این مورد جواب دادیم . اونجا رو ببینید خوبه .
      تو بخش منابع یادگیری هم مختصر یه چیزایی گفتیم
      بطور خلاصه این مسیر خوبیه :
      ۱٫اگه ماشین لرنینگ بلد نیستید آموزش ماشین لرنینگ اندرو ان جی از کورس ایرا رو ببینید
      ۲٫یه کتاب شبکه عصبی مثل مارتین هاگان یا سایمن هایکن که تو بخش منابع یادگیری گفتم رو بگیرید و بخونید خصوصا مباحث آموزش/بک پراپگیشن (کتاب مارتین هاگان میشه تا اول فصل ۱۲ . (فصلهاش کم هستن و خیلی ساده و روان تدریس میشه )
      لازم نیست همه رو بخونید اما دونستن شبکه عصبی Multi Perceptron الگوریتم اموزشی اون و اطلاعات مربوطه مثل نرخ یادگیری مومنتوم و امثالهم ضروریه . از طرفی خوندن بقیه کمک زیادی به درک مسائل میکنه و پیشنهاد میشه.
      بعد از این میتونید مطالب سایت رو بخونید وبا شبکه های عصبی کانولوشن اشنا بشید .
      بعد میتونید اموزش ویدئویی دانشگاه استنورد رو ببینید
      بعد هم اموزش کفی یا تنسورفلو رو دنبال کنید
      بعد دیگه هر مقاله و یا اموزش دیگه ای بخوایید میتونید دنبال کنید و پیش برید انشاالله

      1. alien می گوید

        سلام
        وقت شما بخیر
        ممنون بابت راهنمایی
        ببخشید زیرنویس انگلیسی آموزش ماشین لرنینگ اندرو ان جی را دارید داخل سایت ؟؟

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

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

          1. alien می گوید

            جناب حسن پور
            عرض سلام
            من دانلود کردم زیرنویس ندارد.
            از این سایت
            http://www.fileniko.com

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

              از خود سایت corsera دانلود کنید

  31. علی می گوید

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

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

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

  32. آرام می گوید

    سلام، خسته نباشید. ممنون از اطلاعات مفیدتون
    من یه سوالی داشتم، من میخوام یسری ویژگی از متن استخراج کنم. این ویژگی ها در قالب یک بردار مفهومی نمایش داده میشوند که در نهایت به عنوان کلمات کلیدی شناسایی می شوند. حالا واسه این کار دیتاستی دارم که فقط یسری Abstract مقالات رو داره، به نظرتون این دیتاست مناسب هست؟ میتونم ازش استفاده کنم؟

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

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

  33. هدایی می گوید

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

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

      سلام
      دو لایه lOCAL CONTRAST NORMALIZATION‌و Batch Normalization‌ هست که در معماری ها استفاده میشه . هر دوی اینهارو در سایت (اینجا) و بخش پرسش و پاسخ توضیح دادم قبلا. مطالب رو بخونید اگه سوالی بود میتونید بپرسید

  34. هدایی می گوید

    وقت بخیر ببخشید دوباره مزاحم میشم.
    فرمودید در مورد نرمالایزیشن توضیحاتی فرمودید. من یه مطلب تو قسمت پرسش و پاسخ و یه مطلب کوتاه هم در مورد
    “lateral inhibition قرار داده بودید خوندم. میشه یه لینک یا مقاله یا منبعی رو برا فهم اینکه نرمالایزشن های Batch Normalization‌ و local response normalization چطور انجام میشه رو تصویر معرفی کنید؟ تو قسمت پرسش و پاسخ یه کد بود ولی میخوام بدونم رو تصویر در واقع چه کارایی انجام میشه. من روی یه دیتا ست با دیجیت کار کردم تو لایه ها و با توجه به کدش متوجه شدم نرمالایزیشن لیرش local response normalization هستش.
    و دوم اینکه تو جواب یکی از سوالا فرمودید خروجی لایه ی کانولوشن وارد نرمالایزیشن میشه بعد وارد relu میشه یعنی میشه گفت که محاسبات وزنی که تو کانولوشن لیر انجام میشه بعدش وارد لایه ی نرمالایزشن میشه بعد میره به relu یعنی همون محاسبات وزنی توی کانوولوشن چه اتفاقی بهشون میوفته چطور نرمالیزه میشه با نرمالایزیشن لیر که بعد وارد تابع relu میشه؟

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

      سلام
      فک کنم توضیحات من در مورد local contrast normalization کامل باشه (زمانی که داشتم مینوشتم کاملتر از من جایی نگفته بود! تا جایی که یادم میاد.ولی شاید الان بیشتر باشه گوگل رو یه سرچ کنید )
      اصل این مطلب تو مقاله الکس کریژوسکی اومده سال ۲۰۱۲ اون رو مطالعه کنید .
      در مورد Batch Normalization هم تو مقاله Batch Normalization: Accelerating Deep Network Training by
      Reducing Internal Covariate Shift گوگل اومده که توضیح کامل داده . تو سایت پرسش و پاسخ هم فک کنم توضیح دادم (فک کنم بیشتر از یک سوال بوده باشه )
      لوکال کانترست نورمالیزیشن الان دیگه بندرت (اگه بگیم اصلا ! ) استفاده میشه . من تا بحال ندیدم طی این ۳ ۴ سالی.تا جایی که یادمه فقط هم تو الکس نت و VGGNet دیدم نه معماری های دیگه.
      عوضش بچ نرمالیزیشن خیلی استفاده میشه . دلیلش هم اینه که شما در هر لایه سعی میکنید داده ها رو نرمال کنید و توزیع شما تغییر نکنه . محاسباتی که بعد از هر عمل کانولوشن صورت میگیره نهایتا باعث تغییر در توزیع داده شما میشه برای همین با بچ نرمالیزیشن هر بار سعی میشه جلوی این قضیه گرفته بشه.
      آزمایشات مختلفی انجام دادن که بعضی ها میگفتن بعد relu بچ نرمالیزیشن انجام بشه بعضی ها میگفتن قبلش . خود گوگل قبل از relu رو پیشنهاد کرده بود و تجربه شخصی من هم همین بود . البته اینم بگم که نتایج مختلف بود ولی امروزه چیزی که من دیدم همه قبل relu استفاده میکنن.

  35. هدایی می گوید

    از توضیحات و اطلاعات فوق العادتون ممنونم

  36. گوران می گوید

    سلام
    ممنون از مطالب مفیدتون.
    شما مقاله DEEP REINFORCEMENT LEARNING: AN OVERVIEW رو خوندید؟

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

      سلام
      نه فکر نکنم خونده باشم اون مقاله رو

  37. گوران می گوید

    به کفه تسلط دارید؟

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

      بله چطور ؟

  38. گوران می گوید

    لطف می کنید ایمیل یا راه ارتباطی بگذارید؟
    من نیاز به آموزش کفه و نصب اون دارم.پروژه ای دارم که باید دو ماه دیگه تحویل بدم.

  39. سپیده می گوید

    عالی بود.ببخشید شما در مورد Attentive Neural Networks اطلاعاتی دارید؟

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

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

  40. شاهین می گوید

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

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

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

  41. somaie می گوید

    Hello

    We use Matlab for complete our deep learning project. At the first we use Piotr toolbox for tracking our target. After that we try to extent it with deep learning and we use Matconvonet toolbox for implementation. With Matconvnet toolbox for deep learning part we saw lots of problem for implementation.
    So, first, install this toolbox, then the first problem that appeared had to do with Visual Studio. Indeed, this toolbox needs a C++ compiler to run its functions, and as was discovered, VS 2017 version does not work with Matconvonet and need older version of VS, and that first problem was fixed once the 2013 version was installed(we got this error in Matleb: CL.EXE not found)
    Second problem came when a certain file would only be read as a matlab description, and not its C++ file. When looking for a solution online, the MatConvNet (since this was a frequently asked question) proposed that maybe the MEX files hadn’t been compiled well and to check the installation instructions -> These instructions introduce CUDA and cuDNN libraries or programs to be downloaded. Once they are, we need to call a function and enable the GPU (since this would greatly improve the speed of the neural network)
    Now for enableGPU, even more problems because the source of the problem is not clear. I check the hardware requirements, that maybe my computer just couldn’t support this toolbox. Interesting, since none of the solutions online pointed to this, but after checking the requirements for I think the cuDNN library, I saw this needed a GPU with a compute capability of 3.0 or higher, and my GPU NVIDIA Quadro 600 has a compute capability of 2.0. (Although one another page during this race for a solution I saw the minimum compute capability was of 2.0.
    I tried in another computer which had GPU of c.c. = 5.0 and the compilation still wouldn’t work. I really appreciated that if you can help me for GPU problem?

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

      سلام
      شما که ایرانی بنظر میاید، ترجیح ما اینه فارسی صحبت کنید. اما به هر حال :
      I myself dont use matconvnet, so I’m clueless here ,apart from that since you did not mention any specific error message, I really cant help you much.
      You do know that matconvnet has a usergroup where you can ask your questions right ? in case you didnt know here it is : https://groups.google.com/forum/#!forum/matconvnet
      You can also ask your questions on stackoverflow.
      If you read ans speak farsi, you might want to have a look here , It may be that you are not using the correct configurations.
      if you want to use cudnn v5, you need to have cuda toolkit 7.5 at the very minimum. and for that to work , you also would need to have matlab 2016a or a newer version installed. failing to address any of these requirements will result in failure.
      the last link which I gave you shows some useful information about each matlab version and its corresponding cuda toolkit. check that out.

  42. somaie می گوید

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

    As you mentioned in your comment, for this work, cuDNN v5, CUDA toolkit 7.5, Matlab 2016 or greater version is required. I already installed Matlab 2016a, and VS 2017(it seems MatConvNet for compile needs C++ compiler). Then because VS 2017 version does not work with Matconvonet and need an older version of VS, I change my VS to 2013 version. The first problem was solved (CL.EXE not found)
    Now my problem is GPU, Mine is GPU NVIDIA Quadra K600 and computer capability (C.C) is 5.0. According to the” MatConvNet guideline for MATLAB” this http://www.vlfeat.org/matconvnet/matconvnet-manual.pd everything should be ok, but I don’t know why in the last part we got a new error. y = “vl_nnconv(x,f,[]).” while I thought MatconvNet will work properly.
    So, what is your suggestion, Is there any way to fix the GPU problem?
    Thanks a lot for the links.

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

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

  43. somaie می گوید

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

  44. یلدا می گوید

    سلام خدا قوت
    ممنون از توضیحات عالی تون
    علم و موفقیت تون روز افزون
    من رشته ام شیمی دارویی هست و میخوام بدونم deep neural network برای کلاسیفای کردن داروهای یک بیماری موثر و مهم هست؟
    تعداد داروها حدود ۴هزار تا میشه
    بعضی هاشون موثرن برای درمان بعضی ها خیر
    من باید با کمک یک مدل کلاسترینگ این دو دسته رو از هم جدا کنم و بعد هم پیش بینی داروهای جدید
    به نظر شما این روش خوبه
    روش دیگه ای که بهتر و راحت تر باشه پیشنهاد دارید
    من با cpaan… GDQDA…KNN…LDA کار کردم
    سوال دیگه اینکه کد این الگوریتم برای دانلود موجود هست؟
    من با متلب کار می کنم
    خیلی ممنونم

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

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

      1. یلدا می گوید

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

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

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

  45. محمد تقی می گوید

    با سلام خدمت حسین پور عزیز و تشکر از مطالب مفیدشون
    من میخام از مبحث deep learning در زمینه امنیت استفاده کنم چطور میتونم از کمک شما استفاده کنم ؟
    این میل منه mt . heidarzad@gmail.com
    لطفا یه میل شماره تماس به من بدین اگه ممکنه
    ممنون

  46. محمد تقی می گوید

    سلام به همه دوستان
    از دوستان کسی تو زمینه تشخیص حملات امنیتی با استفاده از | DEEP LEARNING کار کرده ؟

    این میل منه لطفا اطلاع بدین ممنون میشم
    MT . HEIDARZAD @GMAIL.COM

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

      سلام و
      بخش پرسش و پاسخ اینجاست : http://qa.deeplearning.ir/
      و گروه یادگیری عمیق هم اینجا : https://t.me/irandeeplearning
      انتهای کانال آخرین لینک گروه هست از همونجا برای ورود استفاده کنید
      و لطفا حتما تفاهم نامه گروه رو بخونید که به بالای گروه pin شده .

  47. آزاده می گوید

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

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

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

  48. علی می گوید

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

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

      سلام
      بله خیلی ممنونم از تذکر بجای شما.
      سعی میکنم از این به بعد بیشتر رعایت کنم . انشاءالله هم موفق میشم 🙂

  49. امین می گوید

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

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

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

  50. امیرحسین می گوید

    درود برشما
    تشکر فروان بابت مطالب خوبتون

  51. مینا می گوید

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

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

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

  52. مینا می گوید

    اقای حسن پور بی زحمت لطف میکنید لینک گروه تلگرام رو اپدیت کنید؟ به من اجازه عضویت نمیده!

      1. مینا می گوید

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

  53. mir می گوید

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

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

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

  54. mry می گوید

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

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

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

  55. rEzA می گوید

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

    1. rEzA می گوید

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

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

        اینکه آیا میشه بله میشه. و اهمیتی نداره که داده شما حتما صوت یا تصویر باشه. مدلهای مختلفی وجود داره و علاوه بر اون بحث شیوه ارائه داده هم وجودداره یعنی شما داده عددی رو میتونید در قالب تصویر کد کنید و به شبکه بدید این کار بعنوان مثال در کارهایی مثل اکشن رکگنیشن و امثالهم انجام شده.
        باز این به این معنا نیست که شما همین مسیر رو باید برید الزما. این ها بیشتر حول شبکه های کانولوشن ۲ بعدی بودن . در کارتون میتونید از کانولوشن ۱ بعدی هم استفاده کنید. میتونید از سایر شبکه ها استفاده کنید.
        برای اینکه بتونید ایده بگیرید کدوم روش برای کار شما بهینه اس باید فاز مطالعه رو بخوبی انجام بدید. برای شروع هم میتونید سری به arxiv sanity بزنید و keword یا موضوع مورد نظرتون رو سرچ کنید و نسبت به مطالعه کارهای انجام شده تو حوزه مورد نظرتون اقدام کنید.

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

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

  56. سپهر می گوید

    من درباره تحلیل داده ها و هوش مصنوعی میخواستم راهنمایی بگیرم.
    من یک سیستم CRM بصورت سفارشی برای یک مجموعه تجاری بر اساس Backend:SQL/FrontEnd:MS Access پیاده سازی کرده ام که عملیات اعلان قیمت و خرید و فروش و سفارشات خارجی را انجام میدهد. به منظور ایجاد ذهنیت بیشتر، این مجموعه با حدود ۱۰۰۰۰۰ قلم کالا درگیر هستند و روزانه ۲۵۰۰ قلم کالا را قیمت اعلام میکنند و روزانه حدود ۵۰۰ قلم کالا فروخته میشود و بالتبع آن خرید و سفارشات خارجی هم وجود دارد (در صنف خرید و فروش و واردات لوازم یدکی خودرو). ارتباط با مشتریان بصورت تلفنی و بخشی هم توسط روبات تلگرام است. اطلاعات ارزشمند در فرایندهای تجاری همه ثبت میشوند و حجم بانک اطلاعات حدود ۸GB است.
    در فروش کالا، ملاحظات زیادی مانند وضعیت موجودی، وضعیت قیمت کالا در بازار ایران، وضعیت کالاهای مشابه، وضعیت قیمت خارجی و … درگیر است که عملا اعلان قیمت فروش بصورت هوشمند و توسط نیروی انسانی با تجربه صورت میگیرد. همچنین پارامترهای زیادی در خرید کالا و سفارشات خارجی موثر است، مانند بودجه بندی، میزان تقاضا، میزان موجودی، پیش بینی سود و … که این کار هم عملا با استفاده از امکانات نرم افزاری ولی در نهایت با تصمیم گیری نیروی انسانی با تجربه صورت میگیرد. این کارها در این حجم، بسیار وقت گیر و نفس گیر هستند و البته روشهای متداول مانند نقطه سفارش و … جوابگوی کار نیست.
    انواع روشهایی که با الگوریتهای ساده و اصطلاحا Procedural امکان پذیر بوده است پیاده سازی شده است تا این فرایندها تسهیل شوند و اطلاعات لازم برای تصمیم گیری در اختیار نیروهای انسانی (اپراتورهای سیستم) قرار داده شود ولی الان کاملا این نیاز احساس میشود که نرم افزار بتواند بطریق هوشمند تصمیم بگیرد و بتواند بصورت موازی در کنار نیروهای انسانی کار کند و کسب تجربه کند و سهم بیشتری از کار را به عهده بگیرد. همانند یک فرد جدید که خیلی از این ملاحظات را بتدریج فرا میگیرد و خود را بر اساس نتایج تصمیمات خود و همجنین روش کار افراد با تجربه متعادل و اصلاح میکند.

    عزیزی راهنمایی کردند که این کار را با یادگیری عمیق باید انجام دهید. سوال من این است که :
    – آیا راهکار در مقوله Deep Learning است؟
    – اگر بله که مقداری راهنمایی بیشتری داشته باشید. اگر هم نه، راهکار یا زمینه دیگری را میشناسید که معرفی نمایید؟
    – چه مفاهیم و کانسپتهایی را باید بدانم.
    – چه ابزارها و یا زبانهایی برای این موضوع کارساز است.
    با تشکر فراوان

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

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

  57. فروزان می گوید

    سلام
    میشه بگید state of the art چیه؟
    خیلی ممنون

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

      سلام .
      یعنی مطابق آخرین پیشرفت های علمی,‌آخرین, جدیدترین, بهترین,پیشرفته ترین

  58. فروزان می گوید

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

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

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

  59. حسین می گوید

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

  60. فروزان می گوید

    سلام و خدا قوت
    ببخشید Fully convolutional network همون یادگیری عمیق هست؟
    و اینکه معادل فارسی Fully convolutional network چیه؟
    خیلی ممنون

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

      سلام.
      شبکه های تماما کانولوشنال (یا تماما پیچشی)

  61. noname می گوید

    سلام
    آیا تشخیص جعلی بودن عکس چهره با یادگیری عمیق امکان پذیر هست؟

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

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

  62. هدف می گوید

    عالی بوذ. خدا خیرت بده برادر!

  63. learner می گوید

    سلام
    ببخشید ادامه این بخش و قسمت هایی که گفتید در ادامه توضیح میدهید در کدام قسمت سایت قرار دارند؟

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

      سلام.
      کدوم بخشها؟

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

    با سلام ببخشین من قصد دارم درباره تشخیص غدد سرطانی مغز و یا پستان با استقاده از یادگیری عمیق پروزوزال بدم سوالی که داشتم من اول راهم و دوماه وقت دارم پروپوزالمو بدم ولی نمیدونم سختی این موضوع در چه حدی هست (سختی از نظر برنامه نویسی و دیتاست) البته برنامه نویسی بلدم و پایتون رو هم تا حدودی سر در میارم،با این حال من میتونم دیتاست مناسب جهت انجام کارهام پیدا کنم؟اگه بله از چه دیتابیس هایی؟و اینکه ژورنال های معتبر در این زمینه چه ژورنال هایی هستند؟ممنونم
    با تشکر از جنابعالی

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

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

  65. مهرناز می گوید

    سلام
    بسیار مفید و عالی

    سپاس فراوان

  66. مهرناز می گوید

    سلام

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

  67. مهدی پور می گوید

    سلام و ممنون از مطلبتون زیباتون

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

    ممنون

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

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

  68. smy می گوید

    باسلام و تشکر از مطالب مفیدی که به اشتراک گذاشتید

    سوالی که دارم اینه که آیا برای deepLearning در هر زمینه ای (مثلا مسیر یابی) نیاز به کارت گرافیکی جانبی هست یا فقط در زمینه پردازش تصویر باید کارت گرافیکی تهیه کرد؟

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

      سلام
      بستگی به ماهیت و بزرگی/کوچکی کار داره.
      برای ترینینگ در۹۹درصد اوقات همیشه به یک کارت گرافیک نیاز هست اما در زمان تست بسته به ماهیت کار میشه از سی پی یو هم استفاده کرد.

      1. smy می گوید

        سلام
        ممنون از راهنمایی تون

        من با حدود ۷۰۰۰ داده در زمینه مسیریابی میخوام کار کنم
        برای چنین مساله ای میخوام ببینم نیاز به کارت گرافیکی جانبی دارم یا نه؟

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

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

          1. smy می گوید

            سلام
            داده ها تصویر نیست اکسل هست
            core i7

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

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

  69. محمداسماعیل حسنی می گوید

    ممنون از این آموزش.

  70. […] که قبلا بطور مختصر اشاره کرده بودیم واحد حافظه طولانی کوتاه مدت (Long Short-Term […]

ارسال یک پاسخ

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

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