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 - وزنها در حقیقت کانوالو میشن با ورودی لایه کانولوشن. اینم که چه چیزی اضافه کنیم که تشخیص خوب بشه، تشخیص چی؟ توی چه ساختاری؟ چقدر دیتا داریم؟ .........................