سلام
این مبحث خیلی گستردس اما به چندتا نمونه هاش اشاره می کنم، انشالله بقیش رو خودتون دنبال می کنید:
1- بحث skip connection که خودتون بهش اشاره کردید و البته با شبکه های ResNet معروف شد. این نوع skip connection ها می تونه خیلی متنوع باشه. از مدل عادی ResNet که خروجی لایه های با هم جمع میشه، تا مثلا ایده DenseNet که خروجی ها با هم concat میشن. اما تهش همه به یه نحوی skip connection محسوب میشن
2- ایده deep supervision که توی googleNet هم استفاده شد و خلاصش اینطوری که به جای اینکه loss رو فقط اون آخر تعریف کنیم، توی جاهای مختلف loss رو تعریف کنیم. توی اولین مدل googleNet خیلی روش تاکید شده بود اما الان به نظر میاد مثل سابق توی بورس نیست.
3 - ایده های مرتبط با batch normalization و ایده های شبیه اون مثل layer normalization یا spectral normalization و ....
این نوع ایده ها هم به نحوی با نرمال کردن ورودی ها، در واقع اطلاعات گرادیان رو برای بهینه سازی بهبود میدن
مثلا برای batch normalization قبلا فکر می کردن چیزی به اسم internal covariate shift رو چون کاهش میده اینقدر آموزش شبکه بهتر میشه اما توی مقاله های جدید فهمیدن چیزهای دیگه دخیله.
How Does Batch Normalization Help Optimization? (No, It Is Not About Internal Covariate Shift)
https://arxiv.org/abs/1805.11604
4 - ایده های مربوط به Initialization اولیه شبکه
خیلی جاها مثلا توی مقاله IRNN فهمیدن بدون ایده های خیلی جذاب و فقط با initialization درست هم میشه دقت های خوبی گرفت. برای شبکه های cnn هم این موضوع صادقه.
5 - استفاده از روشهای بهتر برای بهینه سازی یا روشهای بدون نیاز به گرادیان
=====================
اینها فقط چندتا نمونه کارهایی که انجام شده و هم برای شبکه های CNN کار می کنه و هم برای شبکه های RNN
اما به طور اختصاصی روی شبکه های RNN هم کارهایی شده، نمونش تعریف ساختارهای جدید مثل LSTM یا GRU ه
یا توی مدل های دیگه مثل Clockwork
اما به عنوان یه تمرین بد نیست که به این ساختارها فکر کنید و اون موقع خیلی روشن میشه که این نوع ساختارها هم به شدت شبیه ایده skip connection هستن، اما هر کدوم به نوعی این کار رو انجام میدن
بعد از این تمرین می فهمید که ResNet با همه سادگیش عجب ایده ای بوده و چرا هینتون از اینکه این ایده رو حدود 10 سال پیش نگفته و دنبال نکرده پشیمونه :)))