پرش به محتوا

شبکه عصبی باقی‌مانده

از ویکی‌پدیا، دانشنامهٔ آزاد
نمودار تابع هزینه برای زمان تمرین (training) و زمان تست (test) یک شبکه عصبی مستقیم (بدون لایه پرشی) که نشان‌دهنه این است که هرچه تعداد لایه‌ها افزایش پیدا می‌کند، خطای مدل نیز افزایش پیدا خواهد کرد.[۱]
در این شکل، یک بلاک از شبکه عصبی باقی‌مانده نشان داده شده است که در آن نیز از تابع فعال ساز یکسو کننده استفاده شده است.[۱]

شبکه عصبی پس‌مانده (ResNet)[۲] یک نوع شبکه عصبی مصنوعی می‌باشد. این شبکه در واقع یک نوع دروازه باز یا بدون دروازه شبکه بزرگراه,[۳] که اولین شبکه بسیار عمیق پیشخور با هزاران لایه و بسیار عمیق‌تر از شبکه‌های قبلی است. در این نوع از شبکه عصبی معمولا از لایه های پرشی و میانبر بین لایه‌ها استفاده می‌شود که در پیاده‌سازی، هر لایه پرشی معمولا از دو یا سه لایه به همراه توابع غیرخطی مانند یکسوساز و نرمال کننده دسته‌ای استفاده می‌شود. مدل‌هایی که دارای چندین لایه پرشی موازی هستند، شبکه‌های متراکم[۴] نام دارند. در زمینه شبکه‌های عصبی باقی‌مانده، معمولا شبکه‌هایی که لایه پرشی ندارند، شبکه ساده توصیف می‌شوند.

همانند حالت شبکه‌های عصبی بازگشتی با حافظه طولانی کوتاه-مدت[۵]، دو دلیل اصلی برای اضافه کردن لایه‌‌های پرشی وجود دارد: برای جلوگیری از مشکل ناپدید شدن گرادیان‌ها[۶]، بنابراین منجر به بهینه‌سازی شبکه‌های عصبی آسان‌تر می‌شود، جایی که مکانیسم‌های دروازه‌ای جریان اطلاعات را در بسیاری از لایه‌ها تسهیل می‌کنند ("بزرگراه‌های اطلاعات")[۷][۸]، یا برای کاهش مشکل تخریب (اشباع دقت). که در آن افزودن لایه های بیشتر به یک مدل عمیق مناسب منجر به خطای آموزشی بالاتر می شود. در طول تمرین (training) شبکه، وزن‌ها برای خنثی کردن لایه بالادستی و تقویت لایه‌ای که قبلاً حذف شده بود، سازگار می‌شوند. در ساده‌ترین حالت، فقط وزن‌های اتصال لایه مجاور تطبیق داده می‌شوند، بدون وزن صریح برای لایه بالادست. زمانی که یک لایه غیرخطی منفرد از آن عبور می‌کند، یا زمانی که لایه‌های میانی همگی خطی هستند، بهترین کار را انجام می‌دهد. اگر نه، پس باید یک ماتریس وزن صریح برای اتصال پرشی آموخته شود (یک شبکه بزرگراه باید استفاده شود).

پرش به طور مؤثر شبکه را ساده می کند و از لایه های کمتری در مراحل اولیه آموزش استفاده می کند. این امر با کاهش تأثیر گرادیان های در حال از بین رفتن سرعت یادگیری را افزایش می دهد، زیرا لایه های کمتری برای انتشار وجود دارد. سپس شبکه با یادگیری فضای ویژگی، به تدریج لایه های پرش شده را بازیابی می کند. در پایان آموزش، وقتی همه لایه‌ها گسترش می‌یابند، به منیفولد نزدیک‌تر می‌ماند [روشن‌سازی لازم] و بنابراین سریع‌تر یاد می‌گیرد. یک شبکه عصبی بدون قطعات باقیمانده بیشتر فضای ویژگی را بررسی می کند. این باعث آسیب پذیری بیشتر آن در برابر اختلالاتی می شود که باعث خروج آن از منیفولد می شود و نیاز به داده های آموزشی اضافی برای بازیابی دارد.

یک شبکه عصبی باقیمانده برای برنده شدن در رقابت ImageNet 2015[۹] استفاده شد و به پر استنادترین شبکه عصبی قرن بیست و یکم تبدیل شد. [۱۰]

انتشار به سمت جلو در شبکه

[ویرایش]

اگر ماتریس وزن برای اتصال از لایه ام به لایه ام و ماتریس برای اتصال از لایه ام به لایه ام درنظر بگیریم، در این صورت حاصل انتشار رو به جلو از میان تابع فعال‌ساز برابر خواهد بود با:

که

خروجی نورون‌های در لایه ام،
تابه فعال‌ساز برای لایه ام،
وزن برای اتصال بین لایه‌های ام و ام
و خروجی لایه ام هستند.
اگر تعداد نورون‌های لایه ام با تعداد نورون‌های لایه ام باشد و ماتریس همانی باشد، در این صورت حاصل انتشار رو به جلو می‌تواند به صورت ساده شود. در این حالت به اتصال بین لایه ام و لایه ام بلوک همانی گفته می‌شود.
در قشر مغز چنین پرش های رو به جلو برای چندین لایه انجام می شود. معمولاً همه پرش های به جلو از یک لایه شروع می شوند و به طور متوالی به لایه های بعدی متصل می شوند. در حالت کلی این به صورت (معروف به DenseNets) بیان می شود.

انتشار به سمت عقب

[ویرایش]

در هنگام یادگیری به سمت عقب برای یک مسیر ساده داریم:

و برای یک مسیر پرشی داریم:

که در هردو حالت:

نرخ یادگیری است (0<
سیگنال خطا (مشتق تابع هزینه نسبت به مقدار عدد ورودی به نورون) برای نورون‌های لایه ام،
بردار خروجی نورون‌ها برای لایه ام هستند.
اگر مسیر پرش وزن‌های ثابتی داشته باشد (مثلاً ماتریس همانی، مانند بالا)، آنها به‌روزرسانی نمی‌شوند. در حالت کلی می‌تواند K ماتریس وزن برای لایه‌های پرشی وجود داشته باشد که:
از آنجایی که قوانین یادگیری مشابه هستند، ماتریس های وزن را می توان با هم ادغام کرد و در همان مرحله یاد گرفت.

انواع معماری شبکه عصبی باقی‌مانده

[ویرایش]
در این شکل انواع معماری شبکه ResNet که برای طبقه‌بندی داده‌های موجود در مجموعه دادگان ImageNet. استفاده شده است. شماره برای نام‌گذاری هر معماری، نشان‌دهنده تعداد لایه و عمق آن شبکه است. به عنوان مثال، ResNet18 دارای 18 لایه است.

برای شبکه عصبی باقی‌مانده، معماری‌های با تعداد‌ لایه ‌های مختلف وجود دارد که برای زمانی که نیاز داریم تا مدل پیچیدگی بیشتری داشته باشد و بتواند الگوهای سخت‌تری را یاد بگیرد، می‌توانیم از شبکه‌های با عمق بیشتر استفاده کنیم (اما همچنان در این مدل‌ها نیز با افزایش تعداد لایه‌ها و پارامتر‌ها، خطر مشکل ناپدید شدن گرادیان‌ها و بیش برازش وجود دارد).

پیاده‌سازی‌های موجود

[ویرایش]

در کتابخانه PyTorch، مدل‌های 18 لایه، 34 لایه، 52 لایه 101 و 152 لایه پیاده‌سازی شده‌اند که میتوان از آنها به صورت آماده استفاده کرد و همچنین در کتابخانه TensorFlow نیز معماری‌های 52 لایه، 101 لایه و 152 لایه موجود هستند.

منابع

[ویرایش]
  1. ۱٫۰ ۱٫۱ He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian (2016). Deep Residual Learning for Image Recognition. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas, NV, USA: IEEE. pp. 770–778. arXiv:1512.03385. doi:10.1109/CVPR.2016.90. ISBN 978-1-4673-8851-1.
  2. He, Kaiming; Zhang, Xiangyu; Ren, Shaoqing; Sun, Jian (2016). Deep Residual Learning for Image Recognition. 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Las Vegas, NV, USA: IEEE. pp. 770–778. arXiv:1512.03385. doi:10.1109/CVPR.2016.90. ISBN 978-1-4673-8851-1.
  3. Srivastava, Rupesh Kumar; Greff, Klaus; Schmidhuber, Jürgen (2015-05-02). "Highway Networks". arXiv:1505.00387 [cs.LG].
  4. Huang, Gao; Liu, Zhuang; Van Der Maaten, Laurens; Weinberger, Kilian Q. (2017). Densely Connected Convolutional Networks. 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Honolulu, HI: IEEE. pp. 2261–2269. arXiv:1608.06993. doi:10.1109/CVPR.2017.243. ISBN 978-1-5386-0457-1.
  5. Sepp Hochreiter; Jürgen Schmidhuber (1997). "Long short-term memory". Neural Computation. 9 (8): 1735–1780. doi:10.1162/neco.1997.9.8.1735. PMID 9377276. S2CID 1915014.
  6. Hochreiter, Sepp (1991). Untersuchungen zu dynamischen neuronalen Netzen (PDF) (diploma thesis). Technical University Munich, Institute of Computer Science, advisor: J. Schmidhuber.
  7. Srivastava, Rupesh Kumar; Greff, Klaus; Schmidhuber, Jürgen (2 May 2015). "Highway Networks". arXiv:1505.00387 [cs.LG].
  8. Srivastava, Rupesh K; Greff, Klaus; Schmidhuber, Juergen (2015). "Training Very Deep Networks". Advances in Neural Information Processing Systems 28. Curran Associates, Inc. 28: 2377–2385.
  9. Deng, Jia; Dong, Wei; Socher, Richard; Li, Li-Jia; Li, Kai; Fei-Fei, Li (2009). "Imagenet: A large-scale hierarchical image database". CVPR.
  10. Schmidhuber, Jürgen (2021). "The most cited neural networks all build on work done in my labs". AI Blog. IDSIA, Switzerland. Retrieved 2022-04-30.