سلام
توی این زمینه یکی از کارهای خیلی جالبی که دیدم، بهینه سازی خوده شبکه با یه شبکه دیگه بوده
یعنی شبکه شما یاد میگیره که الگوریتم هایی شبیه SGD و این جور چیزا رو پیاده کنه. در واقع شبکه خوده الگوریتم بهینه سازی رو یاد می گیره و لزوما رفتاری شبیه به الگوریتمهای قبلی نداره.
Learning to learn by gradient descent by gradient descent
اسم زیباییه، خودش کلی contribution محسوب میشه :)))
https://arxiv.org/abs/1606.04474
این مقاله هم در این زمینه جالبه. ایده این یکی اینه که هر لایه از شبکه بتونه به طور مجزا و موازی با بقیه لایه آموزش داده بشه. توی مقاله synthetic gradient معرفی شده که به نظرم با تغییرش میشه در زمینه بهینهسازی های دیگه هم ازش کمک گرفت
Decoupled Neural Interfaces using Synthetic Gradients
https://arxiv.org/abs/1608.05343
این یکی مقاله، اومده و یه سرچی روی توابع مختلف و رابطه های مختلف برای به روز رسانی وزنها انجام داده (کنترلش با یه شبکه RNNه و از RL هم استفاده شده) و در نهایت هم به دو تا الگوریتم PowerSign و AddSign رسیدن. رابطه خیلی جالب و الهام بخشی دارن به نظر، حداقل به نظر من و توصیه می کنم حتما این مقاله رو هم ببینید.
Neural Optimizer Search with Reinforcement Learning
https://arxiv.org/abs/1709.07417
در زمینه ای که مستقیما خوده شبکه بهینه سازی رو انجام نده اما در فرایند استفاده بشه، این مقاله یه نمونه خیلی خوبه که اومده به جای Gaussian process از شبکه برای تقریب احتمالات روی توابع استفاده کرده و بهینه سازی(که اینجا bayesian ه) رو انجام داده. مقاله جالبیه و به خصوص اگه قبلا با GP درگیر بودید حتما ارزش خوندن رو داره
Scalable Bayesian Optimization Using Deep Neural Networks
http://proceedings.mlr.press/v37/snoek15.pdf
در زمینه خوشبندی هم چیزی متاسفانه فعلا به ذهنم نمیرسه اما یه مورد خاص هست برای الگوریتم t-sne
توی الگوریتم t-sne یه مساله بهینه سازی برای embedding نقاط توی ابعاد پایین تر حل میشه
راستش من به جز برای visualization (که یکی از مهمترین هدف های t-sne ه) ازش استفاده دیگه ای نکردم، اما با فرض اینکه شما یه ایده در این زمینه دارید، خوده حل مساله بهینه سازی t-sne رو میشه با شبکه انجام داد. به نسبت هم ایده قدیمی محسوب میشه و با RBM و دوستان سالهای 2009 این کارو کرده. همین ایده رو می تونید برای embedding های دیگه هم گسترش بدید (که البته خیلی کار هم شده در این زمینه)
Learning a Parametric Embedding by Preserving Local Structure
http://proceedings.mlr.press/v5/maaten09a/maaten09a.pdf
=======================================================
چون سوالتون جالب بود و ما رو به وادی فکر و خیال برد :)) ، یه ایده به ذهنم رسید نمی دونم قبلا روش کار شده یا نه، یا اینکه اصلا چقدر می تونه جواب بده
اما برای clustering شاید بشه یه شبکه recurrent یا پیشرفته تر، چیزهایی مثل differential neural computer رو آموزش داد که همه نقاط رو بگیرن و مثلا بعد از تموم شدن ورودی، مراکز cluster ها رو تولید کنن(بر اساس یه معیار فاصله ای چیزی هم loss تعریف کنیم). یه جوری ایده Seq2Seq میشه که یه دنباله از نقاط رو میگیره و یه دنباله از نقاط دیگه که مراکز خوشه هان رو تولید می کنه اما به صورت unsupervised
برای اینکه راحت تر هم train بشه، میشه از curriculum استفاده کرد و مثلا اولش سیگنال supervised داشته باشیم و کاری کنیم که شبکه رفتار الگوریتم های ساده مثل kmeans رو تکرار کنه و توی چرخههای بعدی معیارهای سخت تر رو وارد کنیم
این ایده کاملا ساخته و پرداخته شده در عرض کمتر از یه دقیقس و اعتباری بهش نیس. اینو تاکید کردم که یهو تزتون رو بر اساس این ایده نذارید بعد ببینید جواب نداد ما رو مقصر بدونید D: