نکات و ترفندهای شبکه های عصبی

  • 2021-03-27

شبکه های عصبی عمیق می توانند برای درک ، آموزش و استفاده پیچیده باشند. یادگیری عمیق تا حد زیادی یک علم تجربی است. به همین دلیل است که دریافت برخی از بهترین شیوه ها می تواند در استفاده بیشتر از قابلیت هایی که شبکه های عصبی ارائه می دهند ، حیاتی باشد. در این مقاله نکات و ترفندهای خوبی برای درک ، آموزش و استفاده از یادگیری عمیق ارائه شده است.

1. بازنمودهای توزیع شده برای شبکه های عصبی عمیق ضروری است

بازنمایی های توزیع شده یکی از ترفندهایی است که می تواند عملکرد شبکه عصبی را تا حد زیادی تقویت کند.

ساده ترین راه برای نمایش چیزها با شبکه های عصبی اختصاص دادن یک نورون به هر چیز است. درک ، نمایندگی و یادگیری آسان است. این یک نمایندگی محلی است.

با این حال ، بیایید بگوییم که شما یک طبقه بندی کننده دارید که باید افرادی را که مرد/زن هستند ، عینک داشته باشند یا عینک ندارند ، و بلند/کوتاه هستند. با نمایندگی های غیر توزیع شده ، شما با 2*2*2 = 8 کلاس مختلف مردم سر و کار دارید. برای آموزش یک طبقه بندی دقیق ، باید برای هر یک از این 8 کلاس داده های آموزشی کافی داشته باشید.

در یک نمایش توزیع شده ، هر نورون مفاهیم زیادی را نشان می دهد ، و یک مفهوم در عین حال توسط بسیاری از نورون ها نشان داده شده است. با بازنمودهای توزیع شده ، هر یک از خصوصیات مربوط به یک شی می تواند با ابعادی متفاوت ضبط شود. این بدان معنی است که حتی اگر طبقه بندی کننده شما هرگز با عینک با مردان قد بلند روبرو نشده باشد ، می تواند آنها را تشخیص دهد ، زیرا یاد گرفته است که از همه نمونه های دیگر جنسیت ، عینک و قد را به طور مستقل تشخیص دهد.

تفاوت بین نمایندگی های بومی سازی شده و توزیع شده در شکل های زیر نشان داده شده است. در شکل اول می توانید یک نمایش محلی را مشاهده کنید که در آن هر نورون در مورد یک شکل می آموزد.

localised representation in a deep neural net

شکل زیر نمونه ای از نمایندگی توزیع شده را نشان می دهد ، که در آن خصوصیات آموخته شده به اشتراک گذاشته می شود.

distributed representation in deep learning

در شکل زیر می توانید ببینید که چگونه این کار در عمل به شرح دایره ای ترجمه می شود که همچنین نشان می دهد که چگونه دایره با سایر شکل ها ارتباط دارد.

deep learning distributed representation

این ترفندی است که کلمه تعبیه (و Word2Vec) از آن استفاده می کند ، که نمونه های بسیار چشمگیری به ما داده است.

2. حداقل محلی در ابعاد بالا مشکلی ندارد

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

در زیر نمودار نشان می دهد که یک شبکه در حین آموزش ، نوسان بین دو حالت: نزدیک شدن به یک نقطه زین و سپس فرار از آن.

neural network gradient descent example

با توجه به یک بعد خاص ، احتمال کمی وجود دارد که یک نقطه حداقل محلی باشد ، اما حداقل جهانی نیست ، در آن بعد. در حالی که احتمال یک نقطه در یک فضای 1000 بعدی که یک حداقل محلی نادرست در همه اینها باشد بسیار اندک است ، احتمال اینکه حداقل آن در برخی از این ابعاد حداقل محلی باشد ، در واقع بسیار زیاد است. و هنگامی که ما این حداقل را در بسیاری از ابعاد به طور همزمان بدست می آوریم ، به نظر می رسد که آموزش می تواند گیر بیفتد تا اینکه مسیر درست پیدا کند.

3. استراتژی اولیه سازی وزن

اولیه سازی Xavier (همچنین به آن Glorot Initialisation نیز گفته می شود) در شبکه های عصبی عمیق از استانداردی کوتاه شده است. این در تمام چارچوب های یادگیری عمیق اجرا می شود و باید اولیه کننده وزن پیش فرض شما باشد.

4- ترفندهای آموزش عمومی شبکه عصبی عمیق

چند پیشنهاد عملی از هوگو لاروشل:

    یا داده های با ارزش واقعی را عادی کنید.
  • برای جلوگیری از بیش از حد بر Optima جهانی ، میزان یادگیری را در طول آموزش کاهش دهید.
  • برای رسیدن به فلات از حرکت استفاده کنید.
  • اگر هیچ سرنخی برای استفاده از پارامترهایی برای آموزش ندارید ، آدم می تواند اولین انتخاب خوب به عنوان یک الگوریتم بهینه سازی باشد.

5. نظم زبانی چندمودال

تعبیه های کلمه (که قبلاً ذکر شد) یکی از برجسته ترین کاربردهای شبکه های عصبی است. با استفاده از تعبیه های کلمه ، شبکه های عصبی می توانند شروع به درک معنای کلمات کنند.

word embeddings in deep learning

با این حال ، همین ترفند را می توان برای سایر مفاهیم استفاده کرد. به عنوان مثال ، Kiros و همکاران ، 2015 ، نشان دادند که چگونه می توان از این کار برای انجام عملیات بر روی تصاویر و کلمات استفاده کرد.

deep neural network embeddings

6. مینی بوچ

محاسبات در مینی بوچ ها نه تنها می تواند عملکرد را بهبود بخشد بلکه می تواند سرعت را نیز بهبود بخشد. این از برخی از عملیات حافظه جلوگیری می کند ، و GPU ها در پردازش ماتریس های بزرگ به طور موازی بسیار عالی هستند.

با این حال ، افزایش اندازه دسته بیش از حد احتمالاً شروع به صدمه زدن به الگوریتم آموزش می کند و همگرا می تواند طولانی تر شود. پیدا کردن یک تعادل خوب برای به دست آوردن بهترین نتیجه در کمترین زمان مهم است.

minibatch size for deep neural network training

7. آموزش در مورد نمونه های مخالف

در حالی که شبکه های عصبی عمیق در بینایی رایانه ما موفقیت بزرگی به ما داده اند ، آنها به اندازه اعتقاد بر آنها کامل نیستند. ما می توانیم شبکه های عصبی را با استفاده از سر و صدایی که در عین حال غیرقابل نفوذ به چشم انسان است ، فریب دهیم ، می تواند آنها را به طور کامل طبقه بندی کند. این تصویر از پست وبلاگ آندره کارپتی "شکستن طبقه بندی کننده های خطی در ImageNet" است ، جایی که می توانید اطلاعات بیشتری در مورد این موضوع بخوانید. این یک یادآوری خوب است که هنگام کار با جعبه های سیاه ، ما هرگز نمی توانیم کاملاً مطمئن باشیم که مدل عملکرد دارد و بعضی اوقات می توانیم با شگفتی های بد غیر منتظره روبرو شویم.

deep learning computer vision system tricked by noise

8. شبکه های عصبی مخالف

این ایده باعث تولد شبکه های مخالف مولد شد. در این چارچوب دو شبکه وجود دارد. شبکه عصبی D یک سیستم تبعیض آمیز است که هدف آن طبقه بندی داده های واقعی و داده های تولید شده مصنوعی است. Neural Network G یک سیستم تولیدی است که سعی در تولید داده های مصنوعی دارد ، که D به طور نادرست به عنوان واقعی طبقه بندی می شود.

معماری این نوع شبکه در شکل زیر نشان داده شده است.

generative adversarial networks

همانطور که ما یکی را آموزش می دهیم ، دیگری نیز باید بهتر شود. این به معنای دو چیز است. اول ، ما از تبعیض های بسیار بهتری برخوردار می شویم. ثانیا ، ژنراتورها می توانند داده های مصنوعی واقع بینانه مانند تصاویر جعلی از اتاق خواب هایی را که در زیر مشاهده می کنید تولید کنند (گرفته شده از رادفورد و همکاران 2015). به غیر از فاکتور خنک کننده ، از GAN ها می توان برای بسیاری از برنامه های دیگر مانند دفع یا کمک به خلاقیت انسان استفاده کرد.

fake bedroom images produced by generative adversarial neural networks

9. بهینه سازی به روزرسانی های شیب در آموزش شبکه عصبی

در یک روش شیب قطعی ، شیب را در کل مجموعه داده محاسبه می کنیم و سپس به روزرسانی را اعمال می کنیم. هزینه تکرار با اندازه مجموعه داده خطی است.

در روش های شیب تصادفی ، شیب را در یک DataPoint محاسبه می کنیم و سپس به روزرسانی را اعمال می کنیم. هزینه تکرار مستقل از اندازه مجموعه داده است.

هر تکرار از نزول شیب تصادفی بسیار سریعتر است ، اما معمولاً تکرارهای بیشتری برای آموزش شبکه طول می کشد ، همانطور که این نمودار نشان می دهد:

2015_DLSS_ConvexOptimization

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

آیا علاقه مند به کسب اطلاعات بیشتر در مورد شبکه های عصبی هستید؟حتماً برخی از فیلم های من را در زیر بررسی کنید:

می خواهید طی 3 ماه یک دانشمند داده شوید و یک کار تضمین شده بدست آورید؟سپس باید این را بررسی کنید!

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.