سلام
آقا سوال زیبایی بود، لایک
اگه همه چیزهایی که در مورد تئوریهای مثل universality رو کنارهم بذاریم، میشه فرض کرد که بشه شبکهای پیدا کرد که یه تبدیل مثل تبدیل فوریه، یا بهتر (در صورت وجود) رو با دقت مورد انتظار ما تقریب بزنه که نتیجتا توی این فرایند بتونه مساله ما رو با دقت قابل قبول حل کنه
اما توی استفاده از این تئوری ها باید چندتا نکته رو توجه کرد:
1- این تئوریها به طور عام در مورد وجود شبکهای با خصوصیات خاص حرف می زنن
برای مثال قضیه universal approximator برای شبکههای عصبی یا gmm یا .... می گن برای هر تابع f یه شبکه وجود داره که با تقریب دلخواه تابع f رو مدل کنه. اما اینکه دقیقا چه خواصی داره شبکه به طور عام مشخص نیست
2- با فرض اینکه شما بتونید دقیقا ساختار شبکهای که قادر به مدل کردن تبدیل شما باشه رو پیدا کنید، بحث بهینه سازی وزنها و آموزشش پیش می یاد
یعنی می دونیم این شبکه می تونه یاد بگیره، اما کی می خواد یادش بده؟ :))
الگوریتم هایی که داریم معمولا از فرض های غلطی (مثل convex بودن) بدست اومده و به طور عمده هم ریشه در بهینه سازی convex داره و جالبتر اینکه خیلی وقتا این فرض های غلط با هم ترکیب میشه و کارایی رو بهتر میکنه!!!!
برای یه سری ایده و حرف در این مورد حتما توصیه می کنم مقاله adversarial spheres که اخیرا هم رو arxiv اومده رو بخونید
تهش هم بحث سره همینه که ما به طور کامل فضایی که در حال کار و بهینه سازی توش هستیم رو نمی شناسیم
به طور خاص هم برای سوالتون در مورد آموزش شبکه برای یادگیری fft، یه مقاله قبلا دیده بودم که این ایده رو پیاده کرده بود
Discrete Fourier Transform Computation Using Neural Networks
http://ieeexplore.ieee.org/document/4724626
حتی اگه اشتباه نکنم در مورد چیزهایی مثل dct و بقیه فضاهای تبدیل هم یه سری کار شده بود، که بعضی هاش به نسبت هم قوی بودن، اما متاسفانه الان حضور ذهن ندارم چی بودن
این مقاله هم اومده و یه جوری فرمولاسیون dft رو توی ساختار شبکه مدل کرده و نه اینکه مثلا این طرف سیگنال داده باشه اون طرف هم به عنوان label تبدیل فوریه سیگنال رو داده باشه و گفته که با این روش با جایی نرسیدیم
حالا اینکه چرا؟ واقعا نمی دونم میشه بهش جواب دقیق و با پایه ریاضی داد یا نه
یه نکته دیگه هم که بیشتر به بحث بهینه سازی وابستس، یادگیری الگوریتم (مثل همین محاسبه fft) توسط شبکه های عصبیه که هنوز به طور عمده به صورت بازه و چیزهایی مثل differential neural computer و این مدل کارا دارن سعی می کنن قابلیت یادگیری الگوریتم ها رو به شبکه های عصبی اضافه بکنن اما به نظر میاد هنوز جای کار زیادی مونده
اگه ویدئو مربوط به information bottleneck رو هم ببینید، یه سری ایده جالب توش مطرح میشه که فعلا با این وضع الگوریتم های بهینه سازی و شبکه هایی که داریم، چه اتفاقی داره حین یادگیری می افته
چون خودم هنوز خیلی نفهمیدمش راسیتش نمی دونم چطوری سرراست توضیح بدم اما اگه وقت کردید ببینیدش و ایده هاش رو کنار حرفهایی که تا حالا زدیم قرار بدین، یه سری نکات بیشتر مشخص بشه(مثلا اینکه چرا یادگیری یه الگوریتم با شبکه عصبی سخته)