آموزش شبکه عصبی مصنوعی در یادگیری عمیق با پایتون

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

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

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

آکسون انتهایی

برای یک شبکه، به دو نورون نیاز داریم. این نورون‌ها اطلاعات را از طریق سیناپس میان دندریت‌های یک نورون و آکسون انتهایی نورون دیگر منتقل می‌کنند.

انتقال اطلاعات توسط نورون‌ها

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

مدل احتمالی

ساختار شبکه عصبی مصنوعی

یک شبکه عصبی به صورت زیر خواهد بود:

شبکه عصبی

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

هر ستون یک لایه است. اولین لایه داده‌های شما لایه ورودی است. سپس، تمام لایه‌های بین لایه ورودی و لایه خروجی لایه‌های پنهان هستند.

اگر یک یا چند لایه پنهان داشته باشید، یک شبکه عصبی سطحی دارید. اگر لایه‌های پنهان زیادی داشته باشید، یک شبکه عصبی عمیق دارید.

در این مدل، شما داده‌های ورودی دارید، آن‌ها را وزن‌دهی می‌کنید و از طریق تابعی که در نورون به نام تابع آستانه یا تابع فعال‌سازی وجود دارد، عبور می‌دهید.

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

ما می‌توانیم از تابع سیگموید (شکل S) به‌عنوان تابع فعال‌سازی استفاده کنیم.

در مورد وزن‌ها، این وزن‌ها در ابتدا تصادفی هستند و برای هر ورودی به گره/نورون منحصر به فردند.

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

از اینجا باید وزن‌ها را تنظیم کنید تا خروجی شما با خروجی مطلوب شما هم‌خوانی پیدا کند.

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

داده‌های ما از ورودی به لایه‌ها به ترتیب عبور کرده و سپس به خروجی می‌رسند.

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

زمانی که به عقب می‌رویم و شروع به تنظیم وزن‌ها برای کمینه‌سازی ضرر/هزینه می‌کنیم، به این فرایند انتشار بازگشتی (back propagation) گفته می‌شود.

این یک مسئله بهینه‌سازی است. در عمل با شبکه عصبی، ما باید با صدها هزار متغیر، یا میلیون‌ها متغیر و حتی بیشتر مواجه شویم.

اولین راه‌حل استفاده از روش نزول گرادیان تصادفی به‌عنوان روش بهینه‌سازی بود. اکنون گزینه‌هایی مانند AdaGrad، Adam Optimizer و غیره وجود دارند. به‌هرحال، این یک عملیات محاسباتی عظیم است. به همین دلیل بود که شبکه‌های عصبی بیش از نیم قرن روی پیش‌خوان باقی ماندند. تنها اخیراً بود که ما قدرت و معماری لازم را در ماشین‌هایمان داشتیم که حتی بتوانیم این عملیات را انجام دهیم و داده‌های اندازه‌گیری شده به‌درستی متناسب با آن داشته باشیم.

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

برای وظایف ساده دسته‌بندی، عملکرد شبکه عصبی نسبتاً به سایر الگوریتم‌های ساده مانند K نزدیک‌ترین همسایه‌ها نزدیک است. کاربرد واقعی شبکه‌های عصبی زمانی نمایان می‌شود که داده‌های بسیار بزرگ‌تر و سؤالات پیچیده‌تری داشته باشیم، که هر دو این موارد از مدل‌های دیگر یادگیری ماشین عملکرد بهتری دارند.

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

5/5 - (1 امتیاز)

راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.

پکیج جامع و پروژه محور ASP.NET MVC + طراحی فروشگاه اینترنتی فروش فایل
  • انتشار: ۱ شهریور ۱۴۰۴

دسته بندی موضوعات

آخرین محصولات فروشگاه

مشاهده همه

نظرات

بازخوردهای خود را برای ما ارسال کنید