به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

0 امتیاز

۱- چطور میشه تو تنسورفلو با پایتون دیتاست تصویر ساخت؟ میدونم که داده های آموزشی و تست رو جداگانه تو یک پوشه باید قرار بدیم و در مسیر نصب کتابخانه تنسورفلو ذخیره کنم ولی چون از طریق cmd نصب میشه من مسیر اصلی رو نمی دونم و اینکه با چه دستوری می تونم این کار رو انجام بدم.
۲- تنسورفلو رو فقط از طریق cmd نصب می کنن یا نرم افزار جدا هم داره
۳- تو شبکه کانولوشن چه ایده هایی میشه داد، تو قسمتهای کانولوشن، pooling و fully connected
۴- قسمت pooling به غیر از maxو mean چه روش های دیگه ای میشه بدیم، چند روش در این قسمت استفاده میشه؟ به چه دلیل بیشتر افراد از max و mean استفاده می کنند، آیا ویژگی خاصی دارند؟
5- قسمت fully connected غیر از softmax,svm, mlp از چه روش های دیگه ای میشه استفاده کرد که هم زمان آموزش و هم شناسایی بهتری رو انجام بده؟ چرا از شبکه عصبی پرسپترون بیشتر استفاده میشه، میشه از روش های شبکه عصبی دیگه ای هم استفاده کرد؟ چه مجموعه ای از روش ها را میتونیم استفاده کنیم که اگر از چندین لایش هم استفاده کنیم مشکلی نداشته باشد؟
چه الگوریتم هایی رو میشه در cnnادغام کرد که خوب جواب بده
6 - آیا از radial basis function، یا rbf یا شبکه عصبی مبتنی بر شعاع در قسمت اتصال کامل استفاده کرد، چرا نمیشه عمق را با rbf افزایش داد؟
7 - آیا میشه از روش های الگوریتم ژنتیک در قسمت pooling استفاده کرد، میتونیم بهترین ویژگی را با استفاده از الگوریتم های ژنتیک بدست بیاریم؟
8- غیر از وزن هایی که به صورت افقی، عمودی و مورب در هر لایه کانولوشن در ویژگی های یک تصویر ضرب می شوند، چه وزن های دیگری می شود استفاده کرد که تشخیص خوبی بدست بیاید؟

توسط (100 امتیاز)
ویرایش شده توسط
سلام .چون آقای نوروزی جواب دادن و خوب هم مطرح کردن من جواب جداگانه نمیدم . صرفا بعنوان دیدگاه برخی مسائل رو یکم توضیح میدم :
سلام
1.قبلا اینجا سوالهای مشابه داشتیم مثلا [این][1]، این موارد ساده رو ببینید تا ایده بگیرید . البته روش های اصولی تر در خود تنسورفلو وارد شده که جناب نوروزی بخوبی اشاره کردن
2.تنسور فلو رو میتونید به زبان سی++ دریافت و کامپایل کنید و یا خیلی راحت اینترفیس پایتون اون رو از طریق pip نصب کنید.  
3.اگر قصد ایده دادن دارید قبل از هرچیزی باید یک مشکل یا مساله رو پیدا کنید و سعی کنید اون رو مرتفع کنید. بی هوا گشتن هیچ کمکی نمیکنه . مثلا شما باید بدونید دنبال چه چیزی هستید! چی میخوایید! و بعد فاز تحقیق شروع بشه . بهترین کار اول از هرچیزی مطالعه معماری های مختلف و روشهای پیشنهادی اونهاست و بعد با توجه به حوزه کاری خودتون یا علاقه خودتون یک مورد رو انتخاب و کار کنید. در همه بخش ها میتونید کار کنید ولی خب باید بدونید چی میخوایید وگرنه زمان از دست میدید.
4.max pooling دو کار انجام میده 1. ساب سمپلینگ و 2. ایجاد translation invariance (تا حدودی) . البته یک شهود دیگه هم هست و اون اینکه از بین ویژگی های مختلف ، اون ویژگی ای که بیشترین فعال سازی رو داره میتونه معرفی بهتری برای یک شی باشه یعنی وجود یک مشخصه قوی در اون شی رو نشون میده پس منطقیه که نورون هایی که بیشترین فعالسازی رو تولید میکنن انتخاب بشن
4.روشهای مختلفی برای پولینگ ها اومده stochastic pooling ,  spatial pyrimid pooling و fractional pooling چند نمونه از اونها هستن در حال حاضر به خاطرم میاد یادم میاد  نمونه های بیشتری هم قبلا دیدم . کلا هرکدوم از اینها یک مساله رو مطرح و سعی کردن اون رو برطرف کنن به همین دلیل شما هم اگر قرار بر موفق بودن دارید لازمه اش ابتدا مشخص کردن یک مساله اس. با خوندن مقالات مربوط به اینها میتونید ایده بگیرید و متوجه عرائض بنده بشید.
5.بحث شناسایی اصلا مربوط به لایه فولی کانکتد اخر نیست مجموعه مختلفی ازعوامل دخیل هستن.لایه های تماما متصل صرفا در معماری های اولیه (الکس نت وی جی جی نت و امثالهم) بوده الان از اون استفاده نمیشه (مگر در معماری های سنتی مثل الکس نت و وی جی جی نت و معماری های همزاد) چون اصلا بهینه نیستند. این بخش که چرا از شبکه پرسپترون استفاده میکنن واضح نیست در کل میگید یا منظورتون در شبکه کانولوشن هست ؟
7.آیا میشه یا خیر اولین بخشش بستگی به مقیاس کار داره در حالت پیشفرض کار نمیشه چون تعداد پارامترها بسیار زیاده هست. در بخش دوم یکسری تحققیات نه الزاما در پولینگ ؛ بلکه در خود شبکه کانولوشن اگر اشتباه نکرده باشم بصورت محدود صورت گرفته که اونها هم روی معماری های عمیق نبوده اگه درست خاطرم مونده باشه .  همونطور که آقای نوروزی عزیز اشاره کردن باید بتونید در درجه اول یکسری خصائص مشابه در ویژگی های مناسب رو پیدا و یا تعریف کنید و بعد میتونید تست کنید .
8. این بخش کاملا گنگ هست.  

  [1]: http://qa.deeplearning.ir/search?q=%D8%B3%D8%A7%D8%AE%D8%AA%20%D8%AF%DB%8C%D8%AA%D8%A7%D8%B3%D8%AA%20%D8%AA%D9%86%D8%B3%D9%88%D8%B1%D9%81%D9%84%D9%88

1 پاسخ

+2 امتیاز

1 - راستش سوالتون رو متوجه نشدم ، اما اگه منظورتون لود کردن تصاویر(یا هر مدل داده دیگه) باشه، مثال‌های خوده مستندات tensorflow خیلی کامله

https://www.tensorflow.org/programmers_guide/reading_data

=================================
2 - اینکه مثل متلب یا برنامه‌های دیگه یه برنامه setup اجرا کنید و نصب بشه من ندیدم تا حالا، اما راحتی نصب با pip یا conda اگه آناکندا رو داشته باشید یه چیزی شبیه همون setup هستش. حتی دیگه next next هم لازم نیست بزنید D:
روی ویندوز مثل اینکه فقط پایتون 3.5 ساپورت میشه و اگه بقیه پیش نیازها(مثلا درایور nvidia و cuda و ...) رو نصب کردید کافیه بزنید

pip3 install --upgrade tensorflow-gpu

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

https://www.tensorflow.org/install

=================================
3 - هر ایده‌ای که فکرش رو بکنید. الان مقالات کنفرانس CVPR رو ببینید برای نمونه. خیلی از ایده‌های فعلی در ویژن با شبکه های کانولوشن انجام میشه و هرکسی هم یه کاری انجام داده (که اکثر کارها بسیار بسیار ساده هستن)

http://www.cv-foundation.org/openaccess/CVPR2016.py

=================================
4 - باز هم هر عملیاتی که چندتا عدد بگیره و تجمیع شدش رو برگردونه رو می تونید به عنوان pooling استفاده کنید. مثلا به جای max مثلا بگید که من برای فلان اپلیکیشن و ساختار شبکه می خوام از min استفاده کنم. اینکه چه خاصیتی هر کدوم داره رو میشه به صورت کلی بحث کرد که مثلا max pooling نسبت به translation ویژگی‌ها مقاوم تره و از این مدل ایده‌ها
اما تئوری‌های قوی‌ای پشتشون نیست(حداقل خوده من توی کنفرانسهایی مثل COLT هم چیزه خاصی ندیدم) و بسته به کاربرد و تجربه بیشتر ازشون استفاده میشه.

=================================
5 - بازهم مثل 2 تا سوال قبلی جوابش اینه که هرچیزی تقریبا بهش فکر کنید می تونید به عنوان لایه شبکه در نظر بگیرید. svm و این مدلها که ساده هستن، حتی مدلهای احتمالاتی مثل conditional random field ها یا CRF ها رو هم می تونید به سادگی به عنوان یه لایه Recurrent مدل کنید.
اینم که چرا از پرسپترون استفاده میشه، جواب سادش اینه که چون خوب کار میده فعلا. اما اینطوری هم نیست که اکثرا از پرسپترون باشه. مثلا اگه شما سمت مدلهای generative برید، درسته الان GAN توی بورسه و خیلی موضوع داغیه، اما قبلترش که چیزایی مثل deep belief net یا deep boltzman machine ها روشون بحث میشد (هنوز هم میشه اما بیشتر توی کنفرانس‌های PGM)، در حقیقت بلاک سازندشون RBM ها بودن که یه مدل ساده گراف احتمالاتی هستن نه پرسپترون
این سوال شما خیلی کلی هستش و هنوز هم کلی تحقیق داره قسمت‌های مختلف هوش مصنوعی از جمله همین شبکه‌های عصبی میشه و هنوز هم جواب یگانه‌ای که بگیم فلان ساختار دیگه آخرشه نداریم

=================================
6 - نه اینکه بگم نمیشه ولی یه جورایی غیر منطقی می تونه باشه، به خصوص برای شبکه‌های عمیق.
چرا؟ چون ما از RBF استفاده می‌کنیم که لایه اول بر اساس یه سری خصوصیات، شباهت بین ورودی و داده‌های آموزش رو پیدا بکنه. اما توی شبکه‌های عمیق، خود به خود توی تعداد زیادی لایه این اتفاق می افته
از طرف دیگه، توی لایه‌های آخر تعریف معیار شباهت به راحتی لایه اول نیست. ذخیره کردن داده‌های آموزشی معمولا هزینه زیادی داره و ....
از یه جهت دیگه هم RBF ها جز خانواده local ها هستند توی مدل کردن ورودی اما شبکه‌های پرسپترونی distributed ه نمایش ویژگی‌هاشون. خلاصه که حداقل من خیلی دلیل مشخصی نمی بینم که از RBF استفاده کنیم توی لایه‌های آخر. البته شاید ترکیب ویژگی‌هایی که شبکه عمیق استراج می کنه با ترکیب ویژگی‌هایی که RBF استخراج می کنه مفید باشه که فقط یه حدسه.
یه چیزی هم هست به اسم deep kernel learning که یه جوری میشه از این دید بهش نگاه کرد که گسترش لایه اول مدلهایی شبیه RBF به تعداد لایه‌های بیشتره. یعنی در مورد چرا نمیشه عمق رو افزایش داد هم یه سری فکر ها و ایده ها شده. اما از عملکردشون راستشو بخواید خبر ندارم متاسفانه

=================================
7 - جواب‌های شما در نگاه سطح بالا کلا اینه که چرا نشه D:
اما باید دید آیا ارزش کاربردی یا تئوری داره یا خیر. مثلا به دیدگاه شخصی، جایی که بشه از روش‌های بهینه‌سازی دیگه استفاده کرد، سعی میکنم سراغ ژنتیک نرم. اینجا هم شما می‌تونید لایه‌های pooling پارامتر دار داشته باشید که خوده شبکه طی فرایند backprop یاد بگیره که چه کاری انجام بده.
اگه منظورتون از بهترین ویژگی در زمان اجرا هستش که یه نقطه ضعف دیگه استفاده از الگوریتم ژنتیک اینه که اولا نیاز داره تعریف کنید بهترین ویژگی یعنی چی اصلا، از نظر زمانی هم هزینه زیادی پرداخت میکنید

=================================
8 - وزن‌ها در حقیقت کانوالو میشن با ورودی لایه کانولوشن. اینم که چه چیزی اضافه کنیم که تشخیص خوب بشه، تشخیص چی؟ توی چه ساختاری؟ چقدر دیتا داریم؟ .........................

توسط (1.6k امتیاز)
...