یادگیری عمیق

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


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

می‌توان گفت پیشینهٔ این یادگیری به دههٔ 1940 میلادی برمی‌گردد، زمانی که والتر پیتز و وارن مک کالوچ یک مدل رایانه‌ای بر اساس شبکه‌های عصبی مغز انسان ایجاد کردند که روند فکرکردن را تقلید می‌کرد؛ بعد از آن، روند پرداختن به این موضوع ادامه پیدا می‌کند تا اینکه یادگیری عمیق اولین‌بار در دههٔ ۱۹۸۰م. به‌صورت تئوری مطرح می‌شود. بااین‌حال استفاده از این یادگیری درگذشته به علت در دسترس نبودن کلان داده (big data) و سخت‌افزارهای موردنیاز مانند GPU محدود بوده است و امروزه با ازبین‌رفتن چنین محدودیت‌هایی و همچنین پیشرفت در حوزهٔ نرم‌افزار، یادگیری عمیق موردتوجه قرار گرفته است.

اما یادگیری عمیق چگونه کار می‌کند؟

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

(Artificial Neural Network (ANN)) وابسته‌اند.

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

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

1- لایهٔ ورودی که داده یا اطلاعات را به‌عنوان ورودی دریافت می‌کند.

2-لایه‌های مخفی که روی اطلاعات ورودی، عملیات‌های ریاضی انجام می‌دهند. در واقع واژهٔ عمیق (Deep) در یادگیری عمیق (Deep learning) مربوط به داشتن بیش از یک‌لایهٔ مخفی در شبکهٔ عصبی است و هرچه تعداد لایه‌ها بیشتر باشند، شبکه عمیق‌تر است.

3-لایهٔ خروجی که خروجی موردنظر را برمی‌گرداند.

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

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

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

• شبکه‌های عصبی پیچشی Convolutional Neural Networks) یا به‌اختصار (CNNs

• شبکه‌های حافظهٔ کوتاه‌مدت Long Short Term Memory Networks) یا به‌اختصار (LSTMs

• شبکه‌های عصبی بازگشتی Recurrent Neural Networks) یا به‌اختصار (RNNs

• شبکه‌های مولد تخاصمی Generative Adversarial Networks) یا به‌اختصار (GANs

• پرسپترون چندلایهMultilayer Perceptrons) یا به‌اختصار (MLPs

• نقشه‌های خودسازمانده Self-Organizing Maps) یا به‌اختصار (SOMs

• شبکه‌های تابع پایهٔ شعاعی عصبی Radial Basis Function Networks) یا به‌اختصار (RBFNs

• شبکه‌های باور عمیق Deep Belief Networks) یا به‌اختصار (DBNs

• ماشین‌های بولتزمن محدود Restricted Boltzmann Machines) یا به‌اختصار (RBMs

• خود رمزگذار(Autoencoders)

لازم به ذکر است که هرکدام از این الگوریتم‌ها برای کاربردهای خاصی استفاده می‌شوند مثلاً از CNNs برای پردازش تصویر استفاده می‌شود درحالی‌که LSTMs برای پردازش صدا کاربرد دارد.

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

منابع:

medium.com

simplilearn.com

dataversity.net