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

- شبکههای عصبی مصنوعی – از صفر تا صد
- ساخت شبکه عصبی — راهنمای مقدماتی
- شبکه عصبی در متلب — از صفر تا صد
- ساخت شبکه عصبی (Neural Network) در پایتون — به زبان ساده
- شبکه عصبی مصنوعی و پیادهسازی در پایتون — راهنمای کاربردی
- کدنویسی شبکههای عصبی مصنوعی چند لایه در پایتون — راهنمای کامل
- شبکههای عصبی در پایتون و R – درک و کد نویسی از صفر تا صد
- ساخت شبکه های عصبی در نرم افزار R
انواع شبکههای عصبی مصنوعی
در ادامه، ۲۷ مورد از انواع شبکه های عصبی مصنوعی، معرفی شده است. در تصویر زیر، راهنمای جامع انواع شبکههای عصبی ارائه شده است.
شبکه عصبی پرسپترون
«پرسپترون» (Perceptron | P)، سادهترین و قدیمیترین مدل از نورون محسوب میشود که تاکنون توسط بشر شناخته شده است. پرسپترون، تعدادی ورودی را دریافت، آنها را تجمیع و تابع فعالسازی را روی آنها اعمال میکند و در نهایت، آنها را به لایه خروجی پاس میدهد. در این قسمت، معجزه اصلی شبکههای عصبی مصنوعی به وقوع نمیپیوندد.

شبکه عصبی پیشخور
«شبکههای عصبی پیشخور» (Feed Forward Neural Networks | FF) نیز از اعضای قدیمی خانواده شبکههای عصبی محسوب میشوند و رویکرد مربوط به آنها از دهه ۵۰ میلادی نشأت میگیرد. عملکرد این الگوریتم، به طور کلی از قواعد زیر پیروی میکند:
- همه گرهها کاملا متصل هستند.
- فعالسازی از لایه ورودی به خروجی، بدون داشتن حلقه رو به عقب، جریان پیدا میکند.
- یک لایه (لایه پنهان) بین ورودی و خروجی وجود دارد.

در اغلب مواقع، این نوع از شبکههای عصبی با استفاده از روش «پسانتشار» (Backpropagation) آموزش داده میشوند.
شبکه عصبی شعاعی پایه
«شبکههای عصبی شعاعی پایه» (Radial Basis Networks | RBF) در واقع شبکههای عصبی پیشخوری (FF) هستند که از «تابع شعاعی پایه» (Radial Basis Function)، به جای «تابع لجستیک» (Logistic Function)، به عنوان تابع فعالسازی استفاده میکنند. سوالی که در این وهله مطرح میشود این است که تفاوت شبکه عصبی شعاعی پایه با شبکه عصبی پیشخور چیست؟

شبکه عصبی پیشخور عمیق
«شبکه عصبی پیشخور عمیق» (Deep Feed Forward Neural Networks | DFF)، در اوایل دهه ۹۰ میلادی، مقدمهای بر بحث شبکههای عصبی شد. این نوع از شبکههای عصبی نیز شبکههای عصبی پیشخور هستند، ولی بیش از یک «لایه پنهان» (Hidden Layer) دارند. سوالی که در این وهله پیش میآید آن است که تفاوت این نوع از شبکههای عصبی با شبکههای عصبی پیشخور سنتی در چیست؟
در هنگام آموزش دادن یک شبکه عصبی پیشخور، تنها بخش کوچکی از خطا به لایه پیشین پاس داده میشود. به همین دلیل، استفاده از لایههای بیشتر، منجر به رشد نمایی زمان آموزش میشود و همین موضوع، موجب میشود که شبکههای عصبی پیشخور عمیق، عملا بدون کاربرد و غیر عملی باشند. در اوایل سال دو هزار میلادی، رویکردهایی توسعه پیدا کردند که امکان آموزش دادن یک شبکه عصبی پیشخور عمیق (DFF) را به صورت موثر فراهم میکردند. امروزه، این شبکههای عصبی، هسته سیستمهای یادگیری ماشین مدرن را تشکیل میدهند و هدفی مشابه با هدف شبکههای عصبی پیشخور (FF) را پوشش میدهند؛ اما نتایج بهتری را دربردارند.

شبکههای عصبی بازگشتی
«شبکههای عصبی بازگشتی» (Recurrent Neural Networks | RNN) نوع متفاوتی از سلولها با عنوان «سلولهای بازگشتی» (Recurrent Cells) را معرفی میکنند. اولین شبکه از این نوع، «شبکه جردن» (Jordan Network) است؛ در این نوع از شبکه، هر یک از سلولهای پنهان، خروجی خود را با تاخیر ثابت - یک یا تعداد بیشتری تکرار- دریافت میکنند. صرف نظر از این موضوع، شبکه جردن مشابه با شبکههای عصبی پیشخور متداول بود.

حافظه کوتاه مدت بلند
شبکه عصبی پیشخور میتواند متن را با «به خاطر سپردن» ده کلمه پیشین پردازش کند. این در حالی است که LSTM میتواند قابهای ویدئو را با «به خاطر سپردن» چیزی که در قابهای بسیار پیشین اتفاق افتاده است پردازش کند.


Xهای موجود در نمودار، گیتها هستند و وزن و گاهی تابع فعالسازی خود را دارند. برای هر نمونه، Xها تصمیم میگیرند دادهها را به جلو پاس دهند یا خیر، حافظه را پاک کنند یا نه و به همین ترتیب. گیت ورودی، تصمیم میگیرد که چه میزان اطلاعات از آخرین نمونه در حافظه نگهداری میشود. گیت خروجی میزان دادههای پاس داده شده به لایه بعدی را تنظیم میکند و گیت فراموشی، نرخ خارج شدن از موارد ذخیره شده در حافظه را کنترل میکند. آنچه بیان شد، یک شکل بسیار ساده از سلولهای LSTM است و معماریهای متعدد دیگری نیز برای این نوع از شبکههای عصبی، موجود است.
شبکه عصبی واحد بازگشتی گِیتی
«واحد بازگشتی گیتی» (Gated Recurrent Unit | GRU) نوعی از LSTM با گیتها و دوره زمانی متفاوت است. این نوع از شبکه عصبی ساده به نظر میآید. در حقیقت، فقدان گیت خروجی، تکرار چندین باره یک خروجی مشابه را برای ورودیها سادهتر میسازد.

شبکه عصبی خود رمزگذار
با توجه به ساختار این شبکهها (که در آن تعداد لایههای پنهان کوچکتر از تعداد سلولهای ورودی است و تعداد سلولهای خروجی برابر با سلولهای ورودی است) و اینکه AE به نوعی آموزش داده میشود که خروجی تا حد امکان به ورودی نزدیک باشد، شبکه عصبی خود رمزگذار مجبور میشود دادهها را تعمیم دهد و به دنبال الگوهای متداول بگردد.

شبکه عصبی خود رمزگذار متغیر
«شبکه عصبی خود رمزگذار متغیر» (Variational Auto Encoder | VAE) در مقایسه با شبکه عصبی خود رمزگذار، احتمالات را به جای ویژگیها فشرده میکند. علارغم تغییرات کوچک که بین دو شبکه عصبی مذکور اتفاق افتاده است، هر یک از این انواع شبکه های عصبی مصنوعی به پرسش متفاوتی پاسخ میدهند. شبکه عصبی خودرمزگذار به پرسش «چگونه میتوان دادهها را تعمیم داد؟» پاسخ میدهد، در حالی که شبکه عصبی خود رمزگذار متغیر به پرسش «اتصال بین دو رویداد چقدر قوی است؟ آیا باید خطا را بین دو رویداد توزیع کرد یا آنها به طور کامل مستقل هستند؟» پاسخ میدهد.

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

شبکه عصبی خود رمزگذار اسپارس
شبکه عصبی «خود رمزگذار اسپارس» (Sparse AutoEncoder | SAE) نیز یک نوع دیگر از شبکههای عصبی مصنوعی خود رمزگذار است که در برخی موارد، میتواند برخی از الگوهای گروهی پنهان موجود در دادهها را آشکار کند. ساختار شبکه عصبی خود رمزگذار اسپارس نیز مشابه با AE است، در این نوع از شبکههای عصبی، تعداد لایه پنهان، بیشتر از تعداد سلول لایه ورودی/خروجی است.

زنجیره مارکوف
زنجیرههای مارکوف، شبکههای عصبی به شیوه کلاسیک نیستند و میتوانند برای دستهبندی بر پایه احتمالات (مانند فیلترهای بیزی)، برای خوشهبندی (برخی از انواع) و «ماشین حالت متناهی» (Finite State Machine) استفاده شوند.

شبکه عصبی هاپفیلد

ماشین بولتزمن
«ماشینهای بولتزمن» (Boltzmann Machines | BM) از این جهت که برخی از سلولها به عنوان ورودی علامتگذاری میشوند و پنهان باقی میمانند، شباهت بسیاری زیادی به شبکههای هاپفیلد دارند. سلولهای ورودی به محض اینکه سلولهای پنهان حالت خود را به روز رسانی میکنند، به سلولهای خروجی مبدل میشوند (در طول آموزش، ماشین بولتزمن/شبکه هاپفیلد، سلولها را یکی یکی به روز رسانی میکند و این کار به صورت موازی انجام نمیشود).

ماشین بولتزمن محدود
«ماشین بولتزمن محدود» (Restricted Boltzmann Machine) در ساختار شبیه به BM است. اما به دلیل محدود بودن، فقط امکان آموزش دادن آن با استفاده از پسانتشار، صرفا به عنوان پیشخور وجود دارد (تنها با این تفاوت که دادههای پاس داده شده پسانتشار، یکبار به لایه ورودی برگشت داده میشوند).

شبکه باور عمیق
«شبکه باور عمیق» (Deep Belief Network | DBN) که در تصویر بالا قابل مشاهده است، در واقع پشتهای از ماشینهای بولتزمن است (با خودرمزگذار متغیر احاطه شده است).
آنها را میتوان به صورت زنجیرهای با یکدیگر قرار داد (هنگامی که یک شبکه عصبی دیگری را آموزش میدهد) و برای تولید دادهها با یک الگوی یاد گرفته شده، قابل استفاده است.

شبکه پیچشی عمیق

شبکه دکانولوشنی
«شبکه دکانولوشنی» (Deconvolution Network | DN)، معکوس DCN است. شبکه دکانولوشنی تصویر گربه را دریافت و برداری مانند میسازد. شبکه پیچشی عمیق میتواند این بردار را دریافت کند و بر اساس آن، تصویر یک گربه را بکشد.

شبکه گرافیکی معکوس پیچشی عمیق
«شبکه گرافیکی معکوس پیچشی عمیق» (Deep Convolutional Inverse Graphics Network | DCIGN) که در تصویر بالا نمایش داده شده، به گونهای است که به نظر میرسد DCN و DN به یکدیگر چسبانده شدهاند؛ اما این درست نیست. در واقع، DCIGN یک خود رمزگذار است. DCN و DN به عنوان شبکههای مجزا عمل نمیکنند، در عوض، آنها فاصلهگذارهایی برای ورودی و خروجی شبکه هستند. این نوع از شبکهها که بیشتر برای پردازش تصویر مورد استفاده قرار میگیرند، میتوانند تصاویری را پردازش کنند که پیش از این، با آنها آموزش ندیده باشند. DCIGNها به دلیل سطوح انتزاعی که دارند، میتوانند شی خاصی را از تصویر حذف کنند، آن را از نو بکشند و یا مثلا، اسبها را با گورهخرها جایگزین کنند (مانند کاری که با CycleGAN در یک پژوهشی انجام شده است).

شبکه مولد تخاصمی
این نوع از شبکههای عصبیِ دائما در حال تحول، در شرایطی که بتوان توازن آموزش را بین این دو شبکه (در دوتایی) حفظ کرد، میتوانند تصاویر واقعی تولید کنند.

ماشین حالت سیال
«ماشین حالت سیال» (Liquid State Machine | LSM) یک شبکه عصبی اسپارس (کاملا متصل نیست) است که در آن، توابع فعالسازی با سطح آستانه جایگزین شدهاند. سلول، مقادیر را از نمونههای ترتیبی تجمیع میکند و خروجی را تنها هنگامی میدهد که به آستانه رسیده باشد.

ماشین یادگیری حداکثری
«ماشین یادگیری حداکثری» (Extreme Learning Machine | ELM) تلاشی برای کاهش پیچیدگی نهفته در پس شبکههای عصبی پیشخور است. این کار با ساخت لایههای پنهان اسپارس با اتصالات تصادفی، انجام میشود.
این نوع از شبکههای عصبی به قدرت محاسباتی کمتری نیاز دارند، اما کارایی واقعی آنها به شدت بستگی به وظیفه قابل انجام و دادهها دارد.

شبکه حالت پژواک
«شبکه حالت پژواک» (Echo State Network | ESN)، زیرنوعی از شبکههای عصبی بازگشتی با رویکرد آموزشی ویژهای است. دادهها به ورودی و سپس، در صورتی که برای تکرارهای چندگانه مورد نظارت باشند، به خروجی پاس داده میشود (بدین شکل، این امکان فراهم میشود که ویژگیهای بازگشتی دخیل شوند). پس از انجام این کار، فقط وزنهای بین سلولهای پنهان به روز رسانی میشود. البته، این نوع از شبکههای عصبی کاربردهای قابل توجهی ندارند.

شبکه باقیمانده عمیق
«شبکه باقیمانده عمیق» (Deep Residual Network | DRN) یک شبکه عمیق است که در آن، بخشی از دادههای ورودی به لایههای بعدی پاس داده میشوند. این ویژگی، به این شبکهها این امکان را میدهد که حقیقتا عمیق باشند (تا ۳۰۰ لایه)، اما در واقع، نوعی از شبکههای پیچشی عمیق بدون تاخیر صریح هستند.

شبکه عصبی کوهنن
«شبکه عصبی کوهنن» (Kohonen Network | KN)، ویژگی فاصله تا سلول را معرفی میکند. این نوع از شبکههای عصبی برای دستهبندی استفاده میشوند و تلاش میکنند تا سلولهای خود را برای بیشینه واکنش به یک ورودی خاص آماده کنند. هنگامی که برخی از سلولها به روز رسانی میشوند، نزدیکترین همسایههای آنها نیز به همین ترتیب به روز رسانی میشوند. همچون «ماشین بردار پشتیبان» (Support Vector Machine)، این نوع از شبکهها نیز معمولا همیشه به عنوان شبکههای عصبی «واقعی» به حساب نمیآیند.

ماشین بردار پشتیبان
ماشینهای بردار پشتیبان، در اغلب مواقع به عنوان شبکههای عصبی در نظر گرفته نمیشوند.

ماشین تورینگ عصبی
شبکههای عصبی به نوعی مانند جعبه سیاه هستند. این شبکهها را میتوان آموزش داد، نتایج آنها را دریافت کرد، آنها را بهبود بخشید؛ ولی مسیر تصمیمگیری آنها در اغلب مواقع از چشم انسان پنهان است. «ماشین تورینگ عصبی» (Neural Turing Machine | NTM)، تلاشی برای حل این مشکل است.
این نوع از شبکه عصبی، در واقع یک شبکه عصبی پیشخور (FF) با سلولهای حافظه استخراج شده است. برخی از پژوهشگران نیز بر این باورند که ماشین عصبی تورینگ، نوعی از انتزاع بر فراز LSTM است. در این نوع از شبکههای عصبی، حافظه به وسیله محتوای آن ارجاع داده میشود و شبکه میتواند بسته به حالت کنونی، از حافظه بخواند و در آن بنویسند.

اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای شبکههای عصبی مصنوعی
- آموزش شبکههای عصبی مصنوعی در متلب
- مجموعه آموزشهای هوش مصنوعی
- آموزش کاربردی شبکههای عصبی مصنوعی
- ساخت شبکه عصبی (Neural Network) در پایتون — به زبان ساده
- ساخت شبکه های عصبی در نرم افزار R
- شبکه عصبی مصنوعی و پیادهسازی در پایتون — راهنمای کاربردی
^^
مطالب مجله فرادرس را در جستجوی گوگل سریعتر ببینید
















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