حامد جاویدپور
حامد جاویدپور
خواندن ۲ دقیقه·۳ سال پیش

جمع بندی مراحل یادگیری عمیق و مفهوم epoch

در مجموعه مقالات " آموزش کلیات یادگیری عمیق به زبان ساده " تا به اینجا مراحل مختلف train کردن شبکه های عصبی (شبکه های عصبی : مدل های یادگیری عمیق ) را با زبان ساده بررسی کردیم؛ در این مقاله قصد داریم از مراحل مختلف به یک جمع بندی دست پیدا کنیم و با توصیف یک epoch از شبکه عصبی ببینیم هر کدام از این مراحل در کدام نقطه از یادگیری عمیق استفاده می شوند؟

1) در مرحله اول ما باید ساختار شبکه عصبی خود را مشخص کنیم. ساختار شبکه عصبی یعنی این که نقشه شبکه عصبی و در واقع نورون هایی که فعلا کار خاصی را یاد نگرفته اند را مشخص می کنیم. ساختار شبکه عصبی از تعدادی لایه از شبکه عصبی ( L ) که در هر لایه ما تعداد مشخصی نورون داریم ( که به شمار این نورون ها NL گفته می شود. ) یکی از قسمت های مهم در شکل گیری ساختار اولیه شبکه عصبی، Weight Initialization است؛ یعنی ما باید مقدار اولیه و در اکثر موارد random به پارامتر های شبکه عصبی خودمان نسبت دهیم. (W, b )

2) همان طور که در مقاله " شبکه های عصبی چگونه می آموزند؟ " مطالعه کردید، یادگیری و به اصطلاح، Train کردن یک شبکه عصبی از دو مرحله انتشار جلوگرد و انتشار عقب گرد تشکییل شده است.

3) در مرحله انتشار جلوگرد (Forward Propagation )، داده هایی که از قبل آماده کرده ایم، از لایه ورودی ( input layer )، وارد شبکه عصبی می شود، خروجی هر کدام از لایه های میانی، به عنوان ورودی به لایه بعدی وارد می شود تا در نهایت خروجی شبکه عصبی شکل بگیرد. به عنوان مثال خروجی لایه اول وارد لایه دوم و خروجی لایه 2 به عنوان ورودی وارد لایه 3 می شود و به همین ترتیب خروجی لایه i وارد لایه i+1 میشود تا در نهایت خروجی شبکه شکل بگیرد. به این مرحله، Forward Propagation از شبکه های عصبی گفته می شود.

4) بعد از این که تمامی داده هایی که در دسترس داریم، وارد شبکه عمیق شد در این جای کار ما باید برای این که شبکه عصبی و پارامتر های آن را در جهت بهبود در پیش بینی ها آموزش دهیم، با استفاده از مقایسه مقدار پیش بینی حاصل از شبکه عصبی با داده های واقعی، تابع ضرر یا Loss Function را تعریف می کنیم.

5) مرحله بعد Back propagation یا انتشار عقب گرد می باشد. حال وقت آن رسیده که پارامتر های شبکه عصبی خود را با استفاده تابع Loss ،در جهت پیش بینی های بهتر به روز کنیم. این به روز رسانی داده ها در روش Gradient Descent با استفاده از معادلات زیر قابل انجام است:

w’ = w – learning_rate * ( dLoss / dw )

b’ = b – learning_rate * ( dLoss / db )

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


در تصویر زیر می توانیم تمام مراحل فوق را به صورت شماتیک در یک epoch، مشاهده کنید:



شبکه عصبییادگیری ماشینیادگیری عمیقدیتاساینسهوش مصنوعی
علاقه مند و برنامه نویس حوزه هوش مصنوعی در سلامت و علم داده - دانش جوی پزشکی
شاید از این پست‌ها خوشتان بیاید