یادگیری عمیق چیست؟
یادگیری عمیق از شبکههای عصبی مصنوعی برای انجام محاسبات پیچیده بر روی مقادیر زیادی داده استفاده میکند. یادگیری عمیق نوعی یادگیری ماشین است که بر اساس ساختار و عملکرد مغز انسان کار میکند.
الگوریتمهای یادگیری عمیق، کامپیوترها را بهوسیله یادگیری از مثالها آموزش میدهند. صنایعی مانند مراقبتهای بهداشتی، تجارت الکترونیک، سرگرمی و تبلیغات معمولاً از یادگیری عمیق استفاده میکنند.
شبکههای عصبی مصنوعی
یک شبکه عصبی مانند مغز انسان ساختاریافته است و از نورونهای مصنوعی که بهعنوان گره نیز شناخته میشوند، تشکیل شده است. این گرهها در سهلایه در کنار یکدیگر قرار میگیرند:
-
-
- لایه ورودی
- لایه(های) مخفی
- لایه خروجی
-
اطلاعات ورودی در قالب داده به لایه ورودی ارائه میشود، سپس گرههای این لایه در وزنهای تصادفی ضرب میشود، حاصل آنها محاسبه شده و یک بایاس به آن اضافه میشود. در نهایت، توابعی غیرخطی که بهعنوان توابع فعالسازی نیز نامیده میشوند، برای تعیین اینکه کدام نورون باید فعال شود، اعمال میشود.
هم رویش منتشر کرده است:
آموزش شبکه عصبی مصنوعی — از صفر به زبان ساده
الگوریتمهای یادگیری عمیق چگونه کار میکنند؟
الگوریتمهای یادگیری عمیق به شبکههای عصبی مصنوعی که نمایندهای از نحوه محاسبه اطلاعات توسط مغز هستند، وابستهاند. در طول فرایند آموزش، الگوریتمها از عناصر ناشناخته در بخش ورودی برای استخراج ویژگیها، گروهبندی اشیا و کشف الگوهای داده استفاده میکنند. درست مانند آموزش ماشین برای خودآموزی، این آموزش نیز در لایههای چندگانه و با استفاده از الگوریتمها برای ساخت مدلها انجام میگیرد.
مدلهای یادگیری عمیق از چندین الگوریتم استفاده میکنند. درحالیکه هیچ شبکهای بینقص در نظر گرفته نمیشود، برخی از الگوریتمها برای انجام وظایف خاص مناسبتر هستند. برای انتخاب الگوریتم درست، بهتر است درک کاملی از همه الگوریتمهای اصلی به دست آورید.
انواع الگوریتمهای مورداستفاده در یادگیری عمیق
در اینجا لیستی از 10 الگوریتم برتر یادگیری عمیق معرفی خواهد شد:
- شبکههای عصبی کانولوشن (CNN)
- شبکههای حافظه طولانی کوتاهمدت (LSTM)
- شبکههای عصبی بازگشتی (RNN)
- شبکههای متخاصم مولد (GAN)
- شبکههای تابع پایه شعاعی (RBFN)
- پرسپترونهای چندلایه (MLP)
- نقشههای خود سازماندهنده (SOM)
- شبکههای باور عمیق (DBN)
- ماشینهای بولتزمن محدود شده (RBM)
- خود رمزگذار (Autoencoder)
الگوریتمهای یادگیری عمیق تقریباً با هر نوع دادهای کار میکنند و برای حل مسائل پیچیده به مقدار زیادی قدرت محاسباتی و اطلاعات نیاز دارند. اکنون به 10 الگوریتم برتر یادگیری عمیق بپردازیم.
1. شبکههای عصبی کانولوشن (CNN)
CNN که بهعنوان ConvNets نیز شناخته میشود، از چندین لایه تشکیل شده است و عمدتاً برای پردازش تصویر و تشخیص اشیا استفاده میشود. Yann LeCun اولین CNN را در سال 1988 توسعه داد که LeNet نام داشت و برای تشخیص کاراکترهایی مانند کدهای پستی و ارقام استفاده می شد.
CNN به طور گسترده برای شناسایی تصاویر ماهوارهای، پردازش تصاویر پزشکی، پیشبینی سریهای زمانی و تشخیص ناهنجاریها استفاده میشود.
CNNها چگونه کار میکنند؟
CNN دارای لایههای متعددی است که ویژگیها را از دادههای ورودی پردازش و استخراج میکند. لایههایی همچون:
- لایه کانولوشن (Convolotion)
CNN دارای یکلایه کانولوشن است که چندین فیلتر برای انجام عملیات کانولوشن دارد.
- واحد یکسو شدهٔ خطی (ReLU)
CNN دارای یکلایه ReLU برای انجام عملیات بر روی عناصر است. خروجی یک نگاشت از ویژگیها بهصورت اصلاح شده است.
- لایه ادغام (Pooling)
نگاشت ویژگی اصلاح شده در مرحله بعدی به یکلایه ادغام داده میشود. ادغام یک عملیات نمونهبرداری با نرخ پایین است که ابعاد نگاشت ویژگی را کاهش میدهد و به آرایههای دوبعدی تبدیل میکند.
سپس این لایه، آرایههای دوبعدی حاصل را بهوسیله مسطح کردن آن به یک بردار طولانی، پیوسته و خطی تبدیل میکند.
- لایه کاملاً متصل (Fully Connected)
یکلایه کاملاً متصل زمانی تشکیل میشود که ماتریس مسطح از لایه ادغام بهعنوان ورودی به آن داده میشود تا تصاویر را طبقهبندی و شناسایی کند.
در زیر نمونهای از تصویرِ پردازش شده از طریق CNN است.
هم رویش منتشر کرده است:
آموزش بینایی کامپیوتر با پایتون و OpenCV ___ بسته جامع
2. شبکههای حافظه طولانی کوتاهمدت (LSTM)
LSTMها نوعی شبکه عصبی بازگشتی (RNN) هستند که میتوانند وابستگیهای طولانیمدت را یاد بگیرند و بهخاطر بسپارند. یادآوری اطلاعات گذشته برای دورههای طولانی رفتار پیشفرض در این نوع شبکه است.
LSTMها اطلاعات را در طول زمان حفظ میکنند. این شبکهها در پیشبینی سری زمانی مفید هستند؛ زیرا ورودیهای قبلی را بهخاطر میآورند. LSTMها ساختاری زنجیره مانند دارند که در آن چهارلایه متعامل به روشی منحصربهفرد با هم ارتباط برقرار میکنند. علاوه بر پیشبینیهای سری زمانی، LSTMها معمولاً برای تشخیص گفتار، تولید قطعه موسیقی و توسعه فرمولهای دارویی استفاده میشوند.
LSTMها چگونه کار میکنند؟
- ابتدا آنها بخشهای نامربوط از حالت قبلی را فراموش میکنند.
- در مرحله بعد، آنها به طور انتخابی مقادیر سلول حالت را بهروز میکنند.
- در نهایت خروجی از قسمتهای خاصی از سلول حالت گرفته میشود.
در زیر نموداری از نحوه عملکرد LSTM آورده شده است:
3. شبکههای عصبی بازگشتی (RNN)
RNNها دارای اتصالاتی هستند که چرخههای جهتدار را تشکیل میدهند. این ساختار این امر را ممکن میکند تا خروجیهای LSTM بهعنوان ورودی به فاز فعلی داده شوند. خروجی LSTM به ورودی فاز فعلی تبدیل میشود و به دلیل حافظه داخلی میتواند ورودیهای قبلی را بهخاطر بسپارد. RNNها معمولاً برای شرح تصاویر، تجزیهوتحلیل سریهای زمانی، پردازش زبان طبیعی، تشخیص دست خط و ترجمه ماشینی استفاده میشوند.
اگر RNN را باز کنیم با ترکیبی همچون شکل زیر روبهرو میشویم:
RNNها چگونه کار میکنند؟
- خروجی در زمان t-1 در زمان t به ورودی داده میشود.
- به طور مشابه، خروجی در زمان t در زمان t+1 به ورودی داده میشود.
- RNNها میتوانند ورودیهایی با هر طولی را پردازش کنند.
- محاسبات دادههای قبل انجام میشود و اندازه مدل با اندازه ورودی افزایش نمییابد.
در اینجا مثالی از نحوه کار ویژگی تکمیل خودکار گوگل آورده شده است:
4. شبکههای متخاصم مولد (GAN)
GANها الگوریتمهای یادگیری عمیق مولد هستند که نمونههای داده جدیدی را ایجاد میکنند که شبیه دادههای آموزشی است. GAN دو بخش اصلی دارد: یک مولد که یاد میگیرد دادههای ساختگی تولید کند، و یک متمایزکننده که با آن دادههای نادرست آموزش میبیند.
استفاده از GAN در طول یک دوره زمانی افزایشیافته است. آنها میتوانند برای بهبود تصاویر نجومی و شبیهسازی عدسیهای گرانشی برای تحقیقات ماده تاریک مورداستفاده قرار گیرند. توسعهدهندگان بازیهای ویدئویی از GANها برای ارتقای بافتهای با وضوح پایین و دوبعدی در بازیهای ویدئویی قدیمی با بازسازی آنها با وضوح 4K یا بالاتر از طریق آموزش تصویر استفاده میکنند. GANها به تولید تصاویر واقعی و شخصیتهای کارتونی، ایجاد عکس از چهره انسان و نمایش اشیا سهبعدی کمک میکنند.
GANها چگونه کار میکنند؟
- متمایزکننده یاد میگیرد که بین دادههای ساختگی مولد و دادههای نمونه واقعی تمایز قائل شود.
- در طول آموزش اولیه، مولد دادههای ساختگی تولید میکند و متمایزکننده بهسرعت یاد میگیرد که اشتباه بودن آن را تشخیص دهد.
- GAN نتایج را به مولد و تشخیصدهنده میفرستد تا مدل را بهروز کند. در نهایت مولد تولید داده ساختگی متشابه دادههای واقعی را یاد میگیرد.
در زیر نمونهای از نحوه عملکرد GANها آورده شده است:
5. شبکههای تابع پایه شعاعی (RBFN)
RBFNها انواع خاصی از شبکههای عصبی پیشخور هستند که از توابع پایه شعاعی بهعنوان توابع فعالسازی استفاده میکنند. آنها دارای یکلایه ورودی، یکلایه پنهان و یکلایه خروجی هستند و بیشتر برای طبقهبندی، رگرسیون و پیشبینی سریهای زمانی استفاده میشوند.
RBFNها چگونه کار میکنند؟
- RBFNها با اندازهگیری شباهت داده ورودی به نمونههایی از مجموعه آموزشی، طبقهبندی را انجام میدهند.
- RBFNها دارای یک بردار ورودی هستند که به لایه ورودی داده میشود. این لایه از نورونهای RBFتشکیل شده است.
- تابع مجموع وزنهای ورودیها را پیدا میکند. لایه خروجی دارای یک نورون در هر دسته یا کلاس داده است.
- نورونهای لایه پنهان حاوی توابع انتقال گاوسی هستند که خروجیهای آن بافاصله از مرکز نورون نسبت معکوس دارند.
- خروجی شبکه ترکیب خطی از توابع پایه شعاعی ورودی و پارامترهای نورون است.
در زیر مثالی از نحوه عملکرد RBFNها را مشاهده میکنید:
6. پرسپترونهای چندلایه (MLP)
MLPها دروازهای عالی برای شروع یادگیری در مورد فناوری یادگیری عمیق هستند.
MLPها متعلق به کلاس شبکههای عصبی مصنوعی پیشخور با لایههای متعدد پرسپترون هستند که توابع فعالسازی دارند. MLPها از یکلایه ورودی و یکلایه خروجی تشکیل شدهاند که به طور کامل به هم متصل هستند. تعداد لایههای ورودی و خروجی یکسانی دارند؛ اما ممکن است چندین لایه پنهان داشته باشند و میتوان از آنها برای ساخت نرمافزارهای تشخیص گفتار، تشخیص تصویر و ترجمه ماشینی استفاده کرد.
MLPها چگونه کار میکنند؟
- MLPها دادهها را به لایه ورودی شبکه تغذیه میکنند. لایههای نورونها در یک نمودار به هم متصل میشوند تا سیگنال در یکجهت عبور کند.
- MLPها ورودی را با وزنهایی که بین لایه ورودی و لایههای پنهان وجود دارد محاسبه میکنند.
- MLPها از توابع فعالسازی برای تعیین اینکه کدام گرهها را فعال کنند استفاده میکنند. توابع فعالسازی شامل ReLUs، توابع Sigmoid و tanh است.
- MLPها مدل را برای درک همبستگی بین دادهها و یادگیری وابستگی بین متغیرهای مستقل و هدف در مجموعهدادههای آموزشی، آموزش میدهند.
در زیر نمونهای از MLP آورده شده است. این نمودار وزنها و بایاسها را محاسبه میکند و توابع فعالسازی مناسب را برای طبقهبندی تصاویر گربهها و سگها اعمال میکند.
هم رویش منتشر کرده است:
آموزش تنسورفلو __ پیاده سازی شبکه های عصبی با TensorFlow
7. نقشههای خود سازماندهنده (SOM)
پروفسور Teuvo Kohonen این الگوریتم را ابداع کرد که تجسم دادهها را بهمنظور کاهش ابعاد آنها از طریق شبکههای عصبی مصنوعی خودسازمان دهنده امکانپذیر میکند. تجسم دادهها تلاش میکند تا مشکلی را حل کند که انسان نمیتواند بهراحتی دادههایی با ابعاد بالا را به تصویر بکشاند. SOMها برای کمک به کاربران در درک اطلاعات با ابعاد بالا ایجاد شدهاند.
SOMها چگونه کار میکنند؟
- SOMها وزنها را برای هر گره مقداردهی میکنند و یک بردار را به طور تصادفی از دادههای آموزشی انتخاب میکنند.
- SOMها هر گره را بررسی میکنند تا بفهمند کدام وزنها محتملترین بردار ورودی هستند. گره برنده بهترین واحد تطبیق (BMU) نامیده میشود.
- SOMها همسایگی BMU را پیدا میکنند و تعداد همسایگان باگذشت زمان کاهش مییابد.
- SOMها وزن منتخبی را به بردار نمونه میدهند. هر چه گره به BMUنزدیکتر باشد، وزن آن بیشتر تغییر میکند.
- هر چه همسایه از BMU دورتر باشد، کمتر یاد میگیرد. SOMها مرحله دو را برای N بار تکرار میکنند.
در زیر نمودار یک بردار ورودی با رنگهای مختلف را ببینید. این دادهها به یک SOM داده میشود و سپس دادهها را به مقادیر RGB دوبعدی تبدیل میکند. در نهایت رنگهای مختلف را جدا و دستهبندی میکند.
8. شبکههای باور عمیق (DBN)
DBNها مدلهای مولد هستند که از لایههای متعددی از متغیرهای پنهان و تصادفی تشکیل شدهاند. متغیرهای پنهان دارای مقادیر باینری هستند و اغلب واحدهای پنهان نامیده میشوند. DBNها دستهای از ماشینهای بولتزمن با اتصالات بین لایهها هستند و هر لایه RBM نیز با لایههای قبلی و هم با لایههای بعدی ارتباط برقرار میکند. شبکههای باور عمیق (DBN) برای دادههای تشخیص تصویر، تشخیص ویدئو و ضبط حرکت استفاده میشوند.
DBNها چگونه کار میکنند؟
- الگوریتمهای یادگیری حریصانه DBNها را آموزش میدهند. الگوریتم یادگیری حریصانه از رویکرد لایه به لایه برای یادگیری وزنهای تولیدی از بالابهپایین استفاده میکند.
- DBNها مراحل نمونهبرداری گیبس (Gibbs) را روی دولایه پنهان بالایی اجرا میکنند. در این مرحله یک نمونه از RBMاست که توسط دولایه پنهان بالا تعریف شده است ترسیم میشود.
- DBNها با استفاده از یک گذر از نمونهگیری اجدادی از بقیه مدل، نمونهای از واحدهای مرئی میگیرند.
- DBNها یاد میگیرند که مقادیر متغیرهای پنهان در هر لایه را چگونه میتوان با عبور واحد از پایینبهبالا استنتاج کرد.
در زیر نمونهای از معماری DBN آورده شده است:
9. ماشینهای بولتزمن محدود شده (RBM)
RBMها که توسط Geoffrey Hinton توسعهیافتهاند، شبکههای عصبی مصنوعی تصادفی هستند که میتوانند از توزیع احتمال بر روی مجموعهای از ورودیها یاد بگیرند.
این الگوریتم یادگیری عمیق برای کاهش ابعاد، طبقهبندی، رگرسیون، فیلتر مشارکتی، یادگیری ویژگی و مدلسازی موضوع استفاده میشود. RBMها بلوکهای سازنده DBNها را تشکیل میدهند.
RBMها از دولایه تشکیل شدهاند:
- واحدهای قابلمشاهده
- واحدهای پنهان
هر واحد قابلمشاهده به تمام واحدهای پنهان متصل است. RBMها دارای یک واحد بایاس هستند که به تمام واحدهای قابلمشاهده و واحدهای پنهان متصل است و هیچ گره خروجی ندارند.
RBMها چگونه کار میکنند؟
RBMها دوفاز دارند: عبور به جلو و پاس به عقب.
- RBMها ورودیها را میپذیرند و آنها را به مجموعهای از اعداد ترجمه میکنند که ورودیها را در گذر به جلو رمزگذاری میکند.
- RBMها هر ورودی را با وزن فردی و یک بایاس کلی ترکیب میکنند و سپس الگوریتم، خروجی را به لایه پنهان ارسال میکند.
- در گذر به عقب، RBMها مجموعه اعداد را میگیرند و آنها را برای تشکیل ورودیهای بازسازی شده ترجمه میکنند.
- RBMها هر فعالسازی را با وزن فردی و بایاس کلی ترکیب میکنند و خروجی را برای بازسازی به لایه قابلمشاهده ارسال میکنند.
- در لایه قابلمشاهده، RBM داده بازسازی شده را با ورودی اصلی مقایسه میکند تا کیفیت نتیجه را تجزیهوتحلیل کند.
در زیر نموداری از نحوه عملکرد RBMها آمده است:
خود رمزگذار (Autoencoder)
خود رمزگذار نوع خاصی از شبکه عصبی مصنوعی پیشخور هستند که در آن ورودی و خروجی یکساناند. Geoffrey Hinton خود رمزگذارها را در دهه 1980 برای حل مشکلات یادگیری بدون نظارت طراحی کرد. آنها شبکههای عصبی آموزش دیده ای هستند که دادهها را از لایه ورودی به لایه خروجی تکرار میکنند. خود رمزگذارها برای اهدافی مانند کشف دارو، پیشبینی محبوبیت و پردازش تصویر استفاده میشوند.
خود رمزگذارها چگونه کار میکنند؟
خود رمزگذار از سه جزء اصلی تشکیل شده است: رمزگذار، کد و رمزگشا.
- خود رمزگذارها برای دریافت ورودی و تبدیل آن به یک نمایش متفاوت ساخته شدهاند. سپس سعی میکنند ورودی اصلی را تاحدامکان و دقیق بازسازی کنند.
- هنگامی که تصویر یک رقم بهوضوح قابلمشاهده نیست، به یک شبکه عصبی خود رمزگذار داده میشود.
- خود رمزگذارها ابتدا تصویر را رمزگذاری میکنند، سپس اندازه ورودی را به یک نمایش کوچکتر کاهش میدهند.
- در نهایت، رمزگذار خودکار تصویر را رمزگشایی میکند تا تصویر بازسازی شده را تولید کند.
تصویر زیر نحوه عملکرد خود رمزگذارها را نشان میدهد:
نتیجهگیری
یادگیری عمیق در طول پنج سال گذشته تکامل بسیاری یافته است و الگوریتمهای یادگیری عمیق در بسیاری از صنایع به طور گستردهای محبوب شدهاند. اگر به دنبال ورود به حرفه هیجانانگیز علم داده هستید و میخواهید نحوه کار با الگوریتمهای یادگیری عمیق را بیاموزید، میتوانید با دوره آموزش Numpy همرویش کار خود را شروع کنید.
سؤالات متداول در مصاحبه شغلهای مرتبط با Deep Learning را بررسی کنید و شغل خود را بهعنوان یک دانشمند داده آغار کنید!
اگر پس از خواندن این مقاله سؤالاتی در مورد الگوریتم یادگیری عمیق دارید، لطفاً آنها را در بخش نظرات بنویسید تا تیم کارشناسان ما بهزودی به شما پاسخ دهند.
سؤالات متداول
- کدام الگوریتم در یادگیری عمیق بهترین است؟
پرسپترونهای چندلایه (MLPs) بهترین الگوریتم یادگیری عمیق هستند. این الگوریتم یکی از قدیمیترین تکنیکهای یادگیری عمیق است که توسط چندین رسانه اجتماعی از جمله اینستاگرام و متا استفاده میشود. MLP به بارگذاری تصاویر در شبکههای ضعیف و به فشردهسازی دادهها کمک میکند و اغلب در برنامههای کاربردی و تشخیص تصاویر استفاده میشود.
- کدام یک نمونهای از الگوریتم یادگیری عمیق است؟
تعدادی از الگوریتمهای یادگیری عمیق عبارتاند از: شبکههای تابع پایه شعاعی، پرسپترونهای چندلایه، نقشههای خود سازماندهنده، شبکههای عصبی کانولوشن و بسیاری دیگر. این الگوریتمها شامل معماریهایی هستند که از عملکرد نورونهای مغز انسان الهام گرفتهاند.
- آیا CNN یک الگوریتم یادگیری عمیق است؟
بله، CNN یک الگوریتم یادگیری عمیق است که مسئول پردازش تصاویر بوده و الهام گرفته از قشر بصری حیوانات در قالب الگوهای شبکهای است. این الگوریتم برای شناسایی خودکار و دستهبندی اشیا خاص و یادگیری سلسلهمراتب فضای ویژگیها از الگوهای سطح پایین تا سطح بالا طراحی شدهاند.
- لایه یادگیری عمیق چیست؟
شبکه عصبی سهلایه از سهلایه شامل لایه ورودی، پنهان و خروجی تشکیل شده است. هنگامی که دادههای ورودی به لایه ورودی اعمال میشود، دادههای خروجی در لایه خروجی به دست میآید. لایه پنهان مسئول انجام تمام محاسبات و وظایف “مخفی” است.
- یک مدل یادگیری عمیق چگونه کار میکند؟
مدلهای یادگیری عمیق با استفاده از معماری شبکه عصبی یا مجموعهای از دادههای برچسبگذاری شده که حاوی چندین لایه است، آموزش داده میشوند. این مدلها گاهی اوقات از سطح عملکرد انسان در حل مسئله بهخصوص فراتر میروند. این الگوریتمها ویژگیهای داده را مستقیماً از خود آنها و بدون نیاز به استخراج دستی ویژگیها یاد میگیرند.
- بهترین الگوریتمهای یادگیری عمیق کدامند؟
چه مبتدی باشید و چه حرفهای، این سه الگوریتم اصلی یادگیری عمیق به شما کمک میکند تا مسائل پیچیده مرتبط با یادگیری عمیق را حل کنید: CNN یا شبکههای عصبی کانولوشن، LSTM یا شبکههای حافظه طولانی کوتاهمدت و RNN یا شبکههای عصبی بازگشتی.
واژگان
الگوریتمهای یادگیری عمیق | درباره الگوریتم یادگیری عمیق | یادگیری ماشین | deep learning چیست | کدام الگوریتم بهتر است | شبکه عصبی مصنوعی چیست | شبکه عصبی چیست؟ | آشنایی با شبکه های عصبی هوش مصنوعی | شبکه عصبی (Neural Network) چیست؟ منظور از NN چیست؟ | الگوریتم کانولوشن | پردازش تصویر، الگوریتم CNN، کانولوشن چیست؟، کاربردهای کانولوشن | انواع الگوریتمهای یادگیری عمیق | الگوریتم یادگیری عمیق | الگوریتم های یادگیری عمیق | بهترین الگوریتم های یادگیری عمیق