مهدی مشایخی
مهدی مشایخی
خواندن ۱۴ دقیقه·۲ سال پیش

بهترین الگوریتم های یادگیری عمیق - مهدی مشایخی

بهترین الگوریتم های یادگیری عمیق - مهدی مشایخی
بهترین الگوریتم های یادگیری عمیق - مهدی مشایخی

یادگیری عمیق چیست؟

یادگیری عمیق از شبکه های عصبی مصنوعی برای انجام محاسبات پیچیده بر روی مقادیر زیادی داده استفاده میکند. این یک نوع یادگیری ماشینی است که بر اساس ساختار و عملکرد مغز انسان کار می کند.

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

تعریف شبکه های عصبی

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

  • لایه ورودی | input layer
  • لایه های مخفی | hidden layer
  • لایه خروجی | output layer
تعریف شبکه های عصبی - مهدی مشایخی
تعریف شبکه های عصبی - مهدی مشایخی


داده ها به هر گره اطلاعاتی را در قالب ورودی ارائه می کنند. گره ورودی ها را با وزن های تصادفی ضرب می کند، آنها را محاسبه می کند و یک بایاس اضافه می کند. در نهایت، توابع غیرخطی، که به عنوان توابع فعال سازی نیز شناخته می شوند، برای تعیین اینکه کدام نورون باید شلیک شود، اعمال می شود.

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

در حالی که الگوریتم‌های یادگیری عمیق دارای نمایش‌های خودآموز هستند، به شبکه‌های عصبی مصنوعی وابسته هستند که نحوه محاسبه اطلاعات توسط مغز را منعکس می‌کنند. در طول فرآیند آموزش، الگوریتم ها از عناصر ناشناخته در توزیع ورودی برای استخراج ویژگی ها، گروه بندی اشیاء و کشف الگوهای داده مفید استفاده می کنند. بسیار شبیه ماشین‌های آموزشی برای خودآموزی، این امر در سطوح چندگانه با استفاده از الگوریتم‌ها برای ساخت مدل‌ها رخ می‌دهد.

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


انواع الگوریتم های مورد استفاده در یادگیری عمیق

در اینجا لیستی از 10 الگوریتم برتر یادگیری عمیق وجود دارد:

  • شبکه های عصبی کانولوشن (CNN) Convolutional Neural Networks
  • شبکه های حافظه کوتاه مدت (LSTM) Long Short Term Memory Networks
  • شبکه های عصبی مکرر (RNN) Recurrent Neural Networks
  • شبکه های متخاصم مولد (GAN) Generative Adversarial Networks
  • شبکه های تابع پایه شعاعی (RBFN) Radial Basis Function Networks
  • پرسپترون های چند لایه (MLP) Multilayer Perceptrons
  • نقشه‌های خود سازماندهی (SOM) Self Organizing Maps
  • شبکه های باور عمیق (DBN) Deep Belief Networks
  • ماشین‌های محدود بولتزمن (RBM) Restricted Boltzmann Machines
  • رمزگذارهای خودکار (AE) Auto Encoders

الگوریتم های یادگیری عمیق تقریباً با هر نوع داده ای کار می کنند و برای حل مسائل پیچیده به مقدار زیادی قدرت محاسباتی و اطلاعات نیاز دارند.


1. شبکه های عصبی کانولوشن (CNN)

  • سی ان ان CNN که به عنوان Convolutional Neural Networks نیز شناخته می شود، از چندین لایه تشکیل شده است و عمدتاً برای پردازش تصویر و تشخیص اشیا استفاده می شود. Yann LeCun اولین CNN را در سال 1988 توسعه داد که LeNet نام داشت. برای تشخیص کاراکترهایی مانند کدهای پستی و ارقام استفاده می شد.

سی ان ان CNN به طور گسترده برای شناسایی تصاویر ماهواره ای، پردازش تصاویر پزشکی، پیش بینی سری های زمانی و تشخیص ناهنجاری ها استفاده می شود.


سی ان ان ها CNN چگونه کار می کنند؟

سی ان ان CNN دارای لایه های متعددی است که ویژگی ها را از داده ها پردازش و استخراج می کند:


  • لایه پیچیدگی | Convolution Layer

سی ان ان CNN دارای یک لایه کانولوشن است که چندین فیلتر برای انجام عملیات کانولوشن دارد.

  • واحد خطی اصلاح شده (ReLU) | Rectified Linear Unit

سی ان ان CNN دارای یک لایه ReLU برای انجام عملیات بر روی عناصر است. خروجی یک نقشه ویژگی اصلاح شده است.

  • لایه ادغام | Pooling Layer

نقشه ویژگی اصلاح شده در مرحله بعدی به یک لایه ادغام تغذیه می شود. ادغام یک عملیات نمونه برداری پایین است که ابعاد نقشه ویژگی را کاهش می دهد.

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

  • لایه کاملا متصل | Fully Connected Layer

یک لایه کاملا متصل زمانی تشکیل می شود که ماتریس مسطح از لایه ادغام به عنوان ورودی تغذیه می شود که تصاویر را طبقه بندی و شناسایی می کند.

در زیر نمونه ای از تصویر پردازش شده از طریق CNN است.

سی ان ان ها CNN چگونه کار می کنند؟ - مهدی مشایخی
سی ان ان ها CNN چگونه کار می کنند؟ - مهدی مشایخی


2. شبکه های حافظه کوتاه مدت بلند مدت (LSTM)

ال اس تی ام ها LSTM نوعی شبکه عصبی بازگشتی (RNN) هستند که می توانند وابستگی های طولانی مدت را یاد بگیرند و به خاطر بسپارند. یادآوری اطلاعات گذشته برای دوره های طولانی رفتار پیش فرض است.

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


ال اس تی ام LSTM ها چگونه کار می کنند؟

اول، آنها بخش های نامربوط از حالت قبلی را فراموش می کنند

در مرحله بعد، آنها به طور انتخابی مقادیر حالت سلول را به روز می کنند

در نهایت خروجی قسمت های خاصی از سلول حالت می گیرد

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

شبکه های حافظه کوتاه مدت بلند مدت (LSTM) - مهدی مشایخی
شبکه های حافظه کوتاه مدت بلند مدت (LSTM) - مهدی مشایخی


3. شبکه های عصبی مکرر (RNN)

آر ان ان ها RNN دارای اتصالاتی هستند که چرخه های جهت دار را تشکیل می دهند که به خروجی های LSTM اجازه می دهد تا به عنوان ورودی به فاز جاری تغذیه شوند.

خروجی LSTM به ورودی فاز فعلی تبدیل می شود و به دلیل حافظه داخلی می تواند ورودی های قبلی را به خاطر بسپارد. RNN ها معمولاً برای شرح تصاویر، تجزیه و تحلیل سری های زمانی ، پردازش زبان طبیعی، تشخیص دست خط و ترجمه ماشینی استفاده می شوند.

یک RNN باز شده به شکل زیر است:

شبکه های عصبی مکرر (RNN) - مهدی مشایخی
شبکه های عصبی مکرر (RNN) - مهدی مشایخی


آر ان ان ها RNN چگونه کار می کنند؟

  • خروجی در زمان t-1 در زمان t به ورودی وارد می شود.
  • به طور مشابه، خروجی در زمان t در زمان t+1 به ورودی وارد می شود.
  • آر ان ان RNN می توانند ورودی های هر طولی را پردازش کنند.
  • محاسبات اطلاعات تاریخی را محاسبه می کند و اندازه مدل با اندازه ورودی افزایش نمی یابد.

در اینجا مثالی از نحوه عملکرد ویژگی تکمیل خودکار گوگل آورده شده است:

عملکرد ویژگی تکمیل خودکار گوگل - مهدی مشایخی
عملکرد ویژگی تکمیل خودکار گوگل - مهدی مشایخی


4. شبکه های متخاصم مولد (GAN)

گَن ها GAN الگوریتم های یادگیری عمیق مولد هستند که نمونه های داده جدیدی را ایجاد می کنند که شبیه داده های آموزشی است. GAN دو جزء دارد: یک مولد، که یاد می گیرد داده های جعلی تولید کند، و یک تمایز کننده که از آن اطلاعات نادرست درس می گیرد.

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

گَن ها GAN به تولید تصاویر واقعی و شخصیت های کارتونی، ایجاد عکس از چهره انسان و رندر اشیاء سه بعدی کمک می کنند.


گَن ها GAN چگونه کار می کنند؟

متمایز کننده یاد می گیرد که بین داده های جعلی تولید کننده و داده های نمونه واقعی تمایز قائل شود.

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

گَن GAN نتایج را به مولد و تشخیص دهنده می فرستد تا مدل را به روز کند.

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

نحوه عملکرد شبکه GAN - مهدی مشایخی
نحوه عملکرد شبکه GAN - مهدی مشایخی


5. شبکه های تابع پایه شعاعی (RBFN)

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


آر بی اف ان ها RBFN ها چگونه کار می کنند؟

آر بی اف ان ها RBFN ها با اندازه گیری شباهت ورودی به نمونه هایی از مجموعه آموزشی، طبقه بندی را انجام می دهند.

آر بی اف ان ها RBFN ها یک بردار ورودی دارند که به لایه ورودی تغذیه می کند. آنها لایه ای از نورون های RBF دارند.

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

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

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


6. پرسپترون های چندلایه (MLP)

ام ال پی ها MLP مکانی عالی برای شروع یادگیری در مورد فناوری یادگیری عمیق هستند.

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


ام ال پی ها MLP چگونه کار می کنند؟

ام ال پی ها MLP ها داده ها را به لایه ورودی شبکه تغذیه می کنند. لایه های نورون ها در یک نمودار به هم متصل می شوند تا سیگنال در یک جهت عبور کند.

ام ال پی ها MLP ورودی را با وزن هایی که بین لایه ورودی و لایه های پنهان وجود دارد محاسبه می کنند.

ام ال پی ها MLP از توابع فعال سازی برای تعیین اینکه کدام گره ها را شلیک کنند استفاده می کنند. توابع فعال سازی شامل ReLUs، توابع سیگموئید و tanh است.

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

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

نمونه از نحوه عملکرد mlp - مهدی مشایخی
نمونه از نحوه عملکرد mlp - مهدی مشایخی


7. نقشه‌های خود سازماندهی (SOM)

پروفسور Teuvo Kohonen اس او ام ها SOM را اختراع کرد که تجسم داده ها را برای کاهش ابعاد داده ها از طریق شبکه های عصبی مصنوعی خود سازمان دهی می کند.

تجسم داده ها تلاش می کند تا مشکلی را حل کند که انسان نمی تواند به راحتی داده های با ابعاد بالا را تجسم کند. SOM ها برای کمک به کاربران در درک این اطلاعات با ابعاد بالا ایجاد شده اند.


اس او ام ها SOM چگونه کار می کنند؟

اس او ام ها SOM وزن ها را برای هر گره مقداردهی می کنند و یک بردار را به طور تصادفی از داده های آموزشی انتخاب می کنند.

اس او ام ها SOM هر گره را بررسی می کنند تا بفهمند کدام وزن ها محتمل ترین بردار ورودی هستند. گره برنده بهترین واحد تطبیق (BMU) نامیده می شود.

اس او ام ها SOM همسایگی BMU را کشف می کنند و تعداد همسایگان با گذشت زمان کاهش می یابد.

اس او ام ها SOM وزن برنده ای را به بردار نمونه می دهند. هر چه گره به BMU نزدیکتر باشد، وزن آن بیشتر تغییر می کند.

هر چه همسایه از BMU دورتر باشد، کمتر یاد می گیرد. SOM ها مرحله دو را برای N تکرار تکرار می کنند.

در زیر نمودار یک بردار ورودی با رنگ های مختلف را ببینید. این داده ها به یک SOM تغذیه می شود، که سپس داده ها را به مقادیر RGB 2 بعدی تبدیل می کند. در نهایت رنگ های مختلف را جدا و دسته بندی می کند.

نحوه عملکرد SOMs - مهدی مشایخی
نحوه عملکرد SOMs - مهدی مشایخی


8. شبکه های باور عمیق (DBN)

دی بی ان ها DBN مدل های مولد هستند که از لایه های متعددی از متغیرهای پنهان و تصادفی تشکیل شده اند. متغیرهای پنهان دارای مقادیر باینری هستند و اغلب واحدهای پنهان نامیده می شوند.

دی بی ان ها DBN پشته ای از ماشین های بولتزمن با اتصالات بین لایه ها هستند و هر لایه RBM با لایه های قبلی و بعدی ارتباط برقرار می کند. شبکه‌های باور عمیق (DBN) برای داده‌های تشخیص تصویر، تشخیص ویدیو و ضبط حرکت استفاده می‌شوند.


دی بی ان ها DBN چگونه کار می کنند؟

الگوریتم های یادگیری حریصانه DBN ها را آموزش می دهند. الگوریتم یادگیری حریصانه از رویکرد لایه به لایه برای یادگیری وزنه های تولیدی از بالا به پایین استفاده می کند.

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

دی بی ان ها DBN با استفاده از یک گذر از نمونه گیری اجدادی از بقیه مدل، نمونه ای از واحدهای مرئی می گیرند.

دی بی ان ها DBN یاد می گیرند که مقادیر متغیرهای پنهان در هر لایه را می توان با یک عبور واحد از پایین به بالا استنتاج کرد.

در زیر نمونه ای از معماری DBN آورده شده است:

شبکه های باور عمیق - مهدی مشایخی
شبکه های باور عمیق - مهدی مشایخی


9. ماشین‌های محدود بولتزمن (RBM)

آر بی ام ها RBM که توسط جفری هینتون توسعه یافته اند، شبکه های عصبی تصادفی هستند که می توانند از توزیع احتمال بر روی مجموعه ای از ورودی ها یاد بگیرند.

این الگوریتم یادگیری عمیق برای کاهش ابعاد، طبقه بندی، رگرسیون، فیلتر مشارکتی، یادگیری ویژگی و مدل سازی موضوع استفاده می شود. RBM ها بلوک های سازنده DBN ها را تشکیل می دهند.


آر بی ام ها RBM ها از دو لایه تشکیل شده اند:

  • واحدهای قابل مشاهده
  • واحدهای پنهان

هر واحد قابل مشاهده به تمام واحدهای پنهان متصل است. RBM ها دارای یک واحد بایاس هستند که به تمام واحدهای قابل مشاهده و واحدهای پنهان متصل است و هیچ گره خروجی ندارند.


آر بی ام ها RBM چگونه کار می کنند؟

آر بی ام ها RBM دو فاز دارند: عبور به جلو و پاس به عقب.

آر بی ام ها RBM ورودی ها را می پذیرند و آنها را به مجموعه ای از اعداد ترجمه می کنند که ورودی ها را در گذر به جلو رمزگذاری می کند.

آر بی ام ها RBM هر ورودی را با وزن فردی و یک سوگیری کلی ترکیب می کنند. الگوریتم خروجی را به لایه پنهان ارسال می کند.

در گذر به عقب، RBM ها مجموعه اعداد را می گیرند و آنها را برای تشکیل ورودی های بازسازی شده ترجمه می کنند.

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

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

در زیر نموداری از نحوه عملکرد RBM ها آمده است:

نحوه عملکرد RBMs - مهدی مشایخی
نحوه عملکرد RBMs - مهدی مشایخی


10. رمزگذارهای خودکار (Auto Encoder)

رمزگذارهای خودکار نوع خاصی از شبکه عصبی پیشخور هستند که در آن ورودی و خروجی یکسان هستند. جفری هینتون رمزگذارهای خودکار را در دهه 1980 برای حل مشکلات یادگیری بدون نظارت طراحی کرد. آنها شبکه های عصبی آموزش دیده ای هستند که داده ها را از لایه ورودی به لایه خروجی تکرار می کنند. رمزگذارهای خودکار برای اهدافی مانند کشف دارویی، پیش‌بینی محبوبیت و پردازش تصویر استفاده می‌شوند.


رمزگذارهای خودکار چگونه کار می کنند؟

رمزگذار خودکار از سه جزء اصلی تشکیل شده است: رمزگذار، کد و رمزگشا.

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

هنگامی که تصویر یک رقم به وضوح قابل مشاهده نیست، به یک شبکه عصبی رمزگذار خودکار تغذیه می شود.

رمزگذارهای خودکار ابتدا تصویر را رمزگذاری می کنند، سپس اندازه ورودی را به یک نمایش کوچکتر کاهش می دهند.

در نهایت، رمزگذار خودکار تصویر را رمزگشایی می کند تا تصویر بازسازی شده را تولید کند.

تصویر زیر نحوه عملکرد رمزگذارهای خودکار را نشان می دهد:

نحوه عملکرد Auto Encoder - مهدی مشایخی
نحوه عملکرد Auto Encoder - مهدی مشایخی


منیع



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

ارتباط با من :

وبسایت : mahdimashayekhi.ir

گیت هاب: MahdiMashayekhi-AI

لینکدین: MahdiMashayekhi

توییتر: Mashayekhi_AI

یوتیوب: MahdiMashayekhi

اینستاگرام: MahdiMashayekhi.ai

مهدی مشایخییادگیری عمیقشبکه های عصبیالگوریتم های یادگیری عمیقبرنامه نویس
مهدی مشایخی هستم. برنامه نویس هوش مصنوعی و پایتون در زمینه یادگیری ماشینی و عمیق. به همه کمک میکنم تا با هم رشد کنیم! من در توییتر: https://twitter.com/Mashayekhi_AI
شاید از این پست‌ها خوشتان بیاید