چگونه تعداد لایه ها و نورون های لایه پنهان را در شبکه عصبی تعیین کنیم؟
یادگیری عمیق بخشی از هوش مصنوعی است که در آن سعی شده از عملکرد شبکه عصبی مغز انسان برای تصمیمگیری، تقلید شود. تفاوت عمده بین یادگیری عمیق و یادگیری ماشین در نحوه ارائه داده ها به ماشین است. یادگیری ماشین برای یادگیری، به حجم وسیعی از داده ها (چه ساختاریافته و چه بدون ساختار) نیاز دارد. از آن برای پیش بینی آینده استفاده می کند. در حالی که شبکه های یادگیری عمیق روی چندین لایه از شبکه های عصبی مصنوعی برای پیش بینی آینده کار می کنند.
ساختار کلی شبکه عصبی:
یک شبکه عصبی دارای لایه(های) ورودی، لایه(های مخفی) و لایه(های خروجی) است. هنگامی که ویژگی ها همبستگی خطی دارند؛ معمولاً به جای شبکه عصبی، استفاده از یادگیری ماشین ترجیح داده می شود. حتی در همبستگی خطی در صورت استفاده از شبکه های عصبی، نیازی به لایه پنهان نیست.
شبکه های عصبی مجموع وزنی را محاسبه می کنند. مجموع وزن های محاسبه شده، به عنوان ورودی به تابع فعال سازی در لایه های پنهان ارسال می شود. تابع فعال سازی تابعی برای نگاشت ورودی ها به خروجی مورد نظر است. “مجموع وزنی ورودی” را به عنوان ورودی تابع می گیرد، یک بایاس اضافه می کند و تصمیم می گیرد . لایه خروجی خروجی پیش بینی شده را می دهد خروجی مدل با خروجی واقعی مقایسه می شود. پس از آموزش شبکه عصبی، مدل از روش پس انتشار برای بهبود عملکرد شبکه استفاده می کند. تابع هزینه به کاهش نرخ خطا کمک می کند.
تعداد نورون ها در لایه های ورودی و خروجی:
نورون های لایه ورودی برابر با تعداد ویژگی های داده ها است. در موارد بسیار نادر، یک لایه ورودی برای بایاس وجود خواهد داشت. در حالی که تعداد نورون ها در خروجی بستگی به این دارد که آیا مدل به عنوان یک رگرسیون یا طبقه بندی کننده استفاده می شود. اگر مدل یک رگرسیون باشد، لایه خروجی فقط یک نورون دارد. اما اگر مدل طبقهبندیکننده باشد،بسته به برچسب کلاس مدل،یک نورون یا چند نورون خواهد داشت.
تعداد نورون ها و تعداد لایه ها در لایه پنهان:
وقتی صحبت از لایههای پنهان میشود، نگرانی اصلی این است که چند لایه پنهان و چند نورون مورد نیاز است؟
در مقدمهای بر شبکههای عصبی برای جاوا، ویرایش دوم توسط جف هیتون ذکر شده است که تعداد لایههای پنهان به شرح زیر تعیین میشود.
روشهای متعددی برای تعیین تعداد صحیح نورونها برای استفاده در لایههای پنهان وجود دارد، مانند موارد زیر تعداد نورون های پنهان باید:
- بین اندازه لایه ورودی و اندازه لایه خروجی باشد.
- 2/3 اندازه لایه ورودی به اضافه اندازه لایه خروجی باشد.
- کمتر از دو برابر اندازه لایه ورودی باشد.
علاوه بر این، تعداد نورونها و تعداد لایههای مورد نیاز برای لایه پنهان نیز به موارد آموزشی، مقدار نقاط پرت، پیچیدگی، دادههایی که باید آموخته شوند، و نوع توابع فعالسازی مورد استفاده بستگی دارد.
بسیاری از مشکلات را می توان با استفاده از یک لایه پنهان با تعداد نورون های برابر با میانگین لایه ورودی و خروجی حل کرد. اگر تعداد نورون کمتری انتخاب شود، منجر به underfitting می شود. در حالی که اگر تعداد زیادی نورون را انتخاب کنیم ممکن است منجر به overfitting، واریانس بالا و افزایش زمان لازم برای آموزش شبکه شود.
هرس:
هرس را می توان برای بهینه سازی تعداد نورون های پنهان و افزایش عملکرد محاسباتی استفاده کرد. در حین تمرین، با شناسایی نورون هایی که هیچ تاثیری بر عملکرد شبکه ندارند، حذف می کند. همچنین با بررسی وزن نورون ها می توان آن را شناسایی و حذف کرد، وزن هایی که نزدیک به صفر هستند اهمیت نسبتاً کمتری دارند.
دیدگاهتان را بنویسید