انواع شبکه عصبی مصنوعی (Artificial Neural Network)

artificial neural networks

artificial neural networks


شبکه عصبی مصنوعی

زمان تخمینی مطالعه: 20 دقیقه 

شبکه عصبی مصنوعی (Artificial Neural Network) یا به اختصار شبکه عصبی، یک مدل ریاضی است که بر اساس ساختار و عملکرد سیستم عصبی بشر الهام گرفته شده است. شبکه عصبی مصنوعی برای تقلید قابلیت‌ها و عملکرد مغز انسان به کار می‌رود. این شبکه‌ها از یک مجموعه از واحدهای محاسباتی کوچک به نام نورون‌ها (Neurons) تشکیل شده‌اند که با یکدیگر در ارتباط هستند و اطلاعات را از طریق وزن‌های مختلف منتقل می‌کنند. در این مطلب با مهم‌ترین شبکه‌های عصبی مصنوعی آشنا خواهیم شد.

شبکه عصبی مصنوعی از چه لایه هایی تشکیل شده است؟

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

لایه ورودی (Input Layer): این لایه وظیفه دریافت ورودی‌ها را دارد. ورودی‌ها می‌توانند اطلاعات عددی، تصاویر، متن و غیره باشند. هر واحد در این لایه با یک ویژگی ورودی متناظر است.

لایه پنهان یا لایه‌های میانی (Hidden Layer): این لایه‌ها دستکاری و پردازش اطلاعات را بر روی ورودی‌ها انجام می‌دهند. هر نورون در لایه پنهان با وزن‌های مخصوص ورودی‌ها را دریافت کرده و خروجی خود را محاسبه می‌کند. لایه پنهان می‌تواند شامل یک یا چند لایه باشد و تعداد نورون‌ها و وزن‌ها در هر لایه متفاوت باشد.

لایه خروجی (Output Layer): این لایه نتیجه نهایی شبکه را تولید می‌کند. خروجی‌ها ممکن است عددی، دسته‌بندی، تصویر و غیره باشند. تعداد و نوع نورون‌های لایه خروجی بستگی به نوع مساله ورودی دارد.

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

لایه های شبکه عصبی

شبکه عصبی پیش‌خور

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

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

شبکه عصبی شعاعی پایه

شبکه عصبی شعاعی پایه (Radial Basis Function Neural Network) یک نوع شبکه عصبی مصنوعی است که بر اساس توابع شعاعی پایه عمل می‌کند. این شبکه برای مسایل تخمین و تقسیم بندی الگوهای پیچیده استفاده می‌شود. شبکه عصبی شعاعی پایه معمولا شامل سه لایه است: لایه ورودی، لایه مخفی و لایه خروجی. در لایه ورودی، ویژگی‌های الگوها وارد می‌شوند. در لایه مخفی، توابع شعاعی پایه به عنوان نورون‌های مخفی قرار می‌گیرند. هر نورون مخفی با یک مرکز و شعاع مشخص شده است. خروجی نورون مخفی محاسبه می‌شود با استفاده از تابع شعاعی پایه که فاصله بین ویژگی‌های ورودی و مرکز را به عنوان ورودی می‌گیرد. در لایه خروجی، خروجی نهایی شبکه محاسبه می‌شود. این خروجی می‌تواند مقدار تخمینی یک متغیر پیوسته یا برچسب دسته‌بندی شده برای الگو باشد. وزن‌های بین نورون‌های مخفی و نورون‌های خروجی برای تنظیم خروجی صحیح تنظیم می‌شوند.

فرآیند آموزش شبکه عصبی شعاعی پایه عموما شامل دو مرحله است. در مرحله اول، مراکز و شعاع نورون‌های مخفی به طور مشخص تنظیم می‌شوند. این موضوع می‌تواند به وسیله الگوریتم‌های خوشه‌بندی مانند الگوریتم k-means صورت گیرد. در مرحله دوم، وزن‌های نورون‌های خروجی تنظیم می‌شوند تا خروجی شبکه با خروجی مورد انتظار هماهنگ شود. این می‌تواند با استفاده از روش‌های یادگیری مانند روش کمترین مربعات (Least Squares) یا روش پس‌انتشار خطا (Backpropagation) صورت گیرد. شبکه عصبی شعاعی پایه به دلیل قدرت تقسیم بندی قوی و قابلیت تخمین پیچیده، در حوزه‌هایی مانند پیش‌بینی و تخمین الگوها، کنترل فرایندها، تشخیص عیب و تحلیل داده استفاده می‌شود.

شبکه عصبی پرسپترون

شبکه عصبی پرسپترون (Perceptron) یک نوع ساده از شبکه عصبی مصنوعی است که برای مسایل دسته‌بندی دو کلاسه (باینری) استفاده می‌شود. پرسپترون از یک لایه ورودی و یک لایه خروجی تشکیل شده است، بدون وجود لایه پنهان. در یک شبکه پرسپترون، هر نورون ورودی با وزن‌های مختلف به خروجی متناظر مربوط می‌شود. خروجی نورون محاسبه می‌شود با جمع وزن‌های ورودی‌ها و اعمال تابع فعال‌سازی (activation function) به مقدار حاصل. اگر مقدار حاصل بیشتر از یک آستانه (threshold) باشد، خروجی نورون فعال (1) است و در غیر این صورت غیرفعال (0) است.

فرآیند آموزش پرسپترون به این صورت است که وزن‌ها با توجه به داده‌های آموزش تنظیم می‌شوند. هر بار برای یک داده آموزشی، وزن‌ها براساس قاعده به‌روزرسانی (update rule) تغییر می‌کنند. این قاعده عموما به صورت تابعی از خطا بین خروجی پیش‌بینی شده و خروجی واقعی تعریف می‌شود و با هدف کاهش خطا، وزن‌ها تنظیم می‌شوند. این فرآیند تا زمانی ادامه می‌یابد که پرسپترون بتواند به درستی داده‌های آموزشی را دسته‌بندی کند. مزیت اصلی پرسپترون این است که به سادگی قابل فهم و پیاده‌سازی است. اما دارای محدودیت‌هایی نیز است؛ به عنوان مثال، پرسپترون قادر به حل مسائل غیرخطی نیست و تنها می‌تواند داده‌های خطی‌پذیر را دسته‌بندی کند. برای حل مسایل پیچیده‌تر، شبکه‌های عصبی چندلایه با لایه‌های پنهان بیشتر استفاده می‌شوند. این شبکه‌ها با افزایش تعداد لایه‌ها و تعداد نورون‌ها، قادر به مدل‌سازی الگوها و روابط پیچیده‌تر می‌شوند.

شبکه عصبی پیش‌خور عمیق

شبکه عصبی پیش‌خور عمیق (Deep Feedforward Neural Network) یک نوع خاص از شبکه‌های عصبی پیش‌خور است که شامل چندین لایه پنهان (hidden layer) است. در این شبکه، اطلاعات از لایه ورودی به صورت تصاعدی به لایه‌های پنهان منتقل می‌شوند و سپس خروجی نهایی توسط لایه خروجی تولید می‌شود. این لایه‌های پنهان بین لایه ورودی و لایه خروجی قرار دارند و هر کدام شامل یک تابع فعال‌سازی هستند. شبکه‌های عصبی پیش‌خور عمیق با افزایش تعداد لایه‌های پنهان، توانایی مدل‌سازی روابط پیچیده‌تر را دارند. این شبکه‌ها به عنوان شبکه‌های عصبی عمیق شناخته می‌شوند زیرا تعداد لایه‌های پنهان آن‌ها نسبت به شبکه‌های پیش‌خور سنتی بسیار بیشتر است.

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

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

شبکه‌های عصبی بازگشتی

شبکه‌های عصبی بازگشتی (Recurrent Neural Networks) نوعی از شبکه‌های عصبی هستند که برای پردازش داده‌های دنباله‌ای (سری) و زمانی مناسب هستند. در این شبکه‌ها، اطلاعات درون شبکه به صورت یک حلقه بازگشتی جریان دارند، به طوری که خروجی هر لایه به عنوان ورودی برای خودش در زمان بعدی استفاده می‌شود. این ویژگی باعث می‌شود که شبکه‌های عصبی بازگشتی قابلیت حفظ حالت و یادگیری وابستگی‌های زمانی را داشته باشند. در شبکه‌های عصبی بازگشتی، به جای استفاده از وزن‌های ثابت بین لایه‌ها، از وزن‌هایی استفاده می‌شود که بین لایه‌های زمانی مختلف تغییر می‌کنند. این وزن‌ها به عنوان وزن بازگشتی (recurrent weight) شناخته می‌شوند و نقشی بسیار مهم در حفظ حالت شبکه و انتقال اطلاعات زمانی دارند.

یکی از معروف‌ترین شبکه‌های عصبی بازگشتی LSTM سرنام (Long Short-Term Memory) است. در شبکه LSTM، واحدهای حافظه وابسته به زمان گنجانده شده‌اند که به آن‌ها “سلول حافظه” یا “سلول LSTM” می‌گویند. این سلول‌ها قادر هستند اطلاعات را به مدت طولانی‌تری نگه دارند و با استفاده از ساختارهای خاصی مانند دروازه‌ها (gates)، تنظیم انتقال اطلاعات را انجام دهند. این ویژگی‌ها باعث می‌شود که شبکه LSTM بتواند با موفقیت بازدهی بهتری در مسایل بازگشتی داشته باشد و با مشکل ناپدید شدن گرادیان در زمان طولانی مقابله کند. شبکه‌های عصبی بازگشتی به خاطر قابلیتشان در پردازش داده‌های دنباله‌ای و زمانی، در حوزه‌هایی مانند پردازش زبان طبیعی، ترجمه ماشینی، تولید متن، تشخیص گفتار، تولید موسیقی، پیش‌بینی سری‌های زمانی و بسیاری دیگر استفاده می‌شوند.

حافظه کوتاه مدت بلند

حافظه کوتاه مدت بلند LSTM سرنام (Long Short-Term Memory) یک نوع واحد حافظه در شبکه‌های عصبی بازگشتی است که برای حفظ و مدیریت اطلاعات در طول زمان طولانی استفاده می‌شود. LSTM از ساختارهای خاصی مانند دروازه‌ها (gates) برای کنترل جریان اطلاعات داخل شبکه استفاده می‌کند و به شبکه‌های عصبی بازگشتی امکان یادگیری وابستگی‌های زمانی طولانی را می‌دهد. در یک واحد LSTM، سه دروازه اصلی وجود دارد: دروازه فراموشی (Forget Gate)، دروازه ورودی (Input Gate) و دروازه خروجی (Output Gate). هر دروازه از یک لایه تمام متصل (Fully Connected Layer) تشکیل شده است که توسط توابع فعال‌سازی سیگمویید فعال می‌شود. این دروازه‌ها با کنترل جریان اطلاعات درون واحد LSTM، تصمیم می‌گیرند که چه مقدار اطلاعات حفظ شود، چه مقدار اطلاعات جدید وارد شود و چه مقدار اطلاعات به‌روزرسانی شده را به خروجی بفرستند.

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

شبکه عصبی واحد بازگشتی گِیتی

شبکه عصبی واحد بازگشتی گیتی GRU سرنام (Gated Recurrent Unit) نیز همانند شبکه LSTM یک نوع واحد حافظه در شبکه‌های عصبی بازگشتی است. GRU در سال 2014 توسط چونگ و همکاران آن را معرفی کردند. GRU سعی در ساده‌سازی ساختار LSTM دارد و تعداد دروازه‌ها را کاهش می‌دهد. شبکه GRU دارای دو دروازه اصلی است که به نام‌های دروازه تعیین مقدار (Update Gate) و دروازه بازیابی (Reset Gate) شناخته می‌شوند. این دروازه‌ها به صورت خودکار توسط شبکه آموزش دیده می‌شوند و کنترل جریان اطلاعات درون شبکه را انجام می‌دهند.

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

شبکه عصبی خود رمزگذار

شبکه عصبی خودرمزگذار (Autoencoder Neural Network) یک نوع از شبکه‌های عصبی است که برای یادگیری تمثیلی از داده و کاهش بعد استفاده می‌شود. این شبکه از دو بخش اصلی تشکیل شده است: رمزگذار (Encoder) و رمزگشا (Decoder). رمزگذار وظیفه تبدیل ورودی را به نمایش فشرده‌تری از داده انجام می‌دهد. در این مرحله، اطلاعات ویژگی‌های مهم و معنادار از داده استخراج می‌شود و در فضای نهان نمایش داده می‌شود. این فضای نهان معمولا ابعاد کمتری نسبت به فضای ورودی دارد. رمزگشا وظیفه بازسازی ورودی از فضای نهان را دارد. این بخش اقدام به بازسازی داده فشرده شده را می‌کند و سعی می‌کند نزدیک‌ترین نمایش را به داده اصلی بیابد. در این مرحله، داده بازسازی شده به عنوان خروجی شبکه تولید می‌شود.

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

شبکه عصبی خود رمزگذار متغیر

شبکه عصبی خودرمزگذار متغیر VAE سرنام (Variational Autoencoder) یک نوع از شبکه‌های عصبی خودرمزگذار است که از مفهوم مدل مولد متغیر استفاده می‌کند. VAE با استفاده از توزیع احتمالاتی در فضای نهان، می‌تواند نمایشی مستمر و چگال از داده را یاد بگیرد. VAE از دو بخش اصلی تشکیل شده است: رمزگذار (Encoder) و رمزگشا (Decoder)، که هر دو از شبکه‌های عصبی تشکیل شده‌اند. رمزگذار مسئول تبدیل ورودی به فضای نهان است. با استفاده از لایه‌های مخفی متغیر، که یک توزیع احتمالاتی را نمایش می‌دهند، نمایش فشرده از داده ایجاد می‌شود. این توزیع احتمالاتی معمولا یک توزیع نرمال است که میانگین و واریانس را مشخص می‌کند. رمزگشا وظیفه بازسازی داده را از فضای نهان به دست می‌آورد. با دریافت نمایش فشرده از داده، رمزگشا سعی می‌کند داده را بازسازی کند و نمایشی نزدیک به داده اصلی را تولید کند. این بخش نیز از لایه‌های عصبی تشکیل شده است.

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

شبکه عصبی خود رمزگذار اسپارس

شبکه عصبی خودرمزگذار اسپارس (Sparse Autoencoder) یک نوع از شبکه‌های عصبی خودرمزگذار است که با استفاده از فشردگی در نمایش ویژگی‌ها، تلاش می‌کند تا نمایشی بیش از حد زیاد از داده را کدگذاری کند. در شبکه عصبی خودرمزگذار اسپارس، هدف اصلی این است که تنها یک تعداد کم از ویژگی‌ها فعال باشند و بیشتر ویژگی‌ها غیرفعال باشند.

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

شبکه عصبی خود رمزگذار دینوزینگ

شبکه عصبی خودرمزگذار دینوزینگ (Denosing Autoencoder) یک نوع از شبکه‌های عصبی خودرمزگذار است که با استفاده از حذف نویز و تمیز کردن داده ورودی، نمایش فشرده و بازسازی دقیق‌تری از داده را یاد می‌گیرد. هدف اصلی این شبکه عصبی این است که بازسازی دقیق از داده را تحقق دهد، حتی در حضور نویز و اختلالات در داده‌های ورودی.

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

زنجیره مارکوف

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

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

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

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

شبکه عصبی هاپفیلد (Hopfield Neural Network) یک نوع از شبکه‌های عصبی بازگشتی است که برای مدل کردن و حل مسایل بهینه‌سازی و حافظه‌ی مشابه با استفاده از فعالیت همزمانی در عناصر شبکه مورد استفاده قرار می‌گیرد. این شبکه با تعیین یک تابع انرژی و استفاده از تغییر وزن‌ها، به یک حالت پایدار و مینیمم محلی همگرا می‌شود.

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

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

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

ماشین بولتزمن

ماشین بولتزمن (Boltzmann Machine) یک نوع از شبکه‌های عصبی بازگشتی است که برای مدل کردن و تحلیل داده‌های احتمالاتی و تصادفی مورد استفاده قرار می‌گیرد. این شبکه از تعدادی واحد یا نورون تشکیل شده است که با یکدیگر به صورت دوطرفه وزن‌دار ارتباط برقرار می‌کنند. ماشین بولتزمن از توزیع احتمالی بولتزمن (Boltzmann Distribution) برای مدل کردن داده‌ها استفاده می‌کند. این توزیع احتمالی بر اساس تابع انرژی تعریف می‌شود که وابسته به وزن‌ها و حالت‌های شبکه است. هدف این شبکه بهینه‌سازی تابع انرژی است تا به یک حالت پایدار برسد و توزیع احتمالی داده‌ها را مدل کند.

ماشین بولتزمن دارای دو نوع نورون است: نورون‌های مشاهده‌شونده (Visible Neurons) و نورون‌های پنهان (Hidden Neurons). نورون‌های مشاهده‌شونده ورودی‌های شبکه هستند و نورون‌های پنهان فعالیت‌هایی را انجام می‌دهند که تاثیری روی نورون‌های مشاهده‌شونده دارند. وزن‌ها بین این دو نوع نورون تعیین می‌شوند و مشخص می‌کنند که چه میزان تاثیری از نورون‌های پنهان بر نورون‌های مشاهده‌شونده دارند. آموزش ماشین بولتزمن معمولا با استفاده از الگوریتم نمونه‌برداری مارکوف (Markov Chain Monte Carlo) یا الگوریتم تحلیل تبدیلی متغیر (Contrastive Divergence) صورت می‌گیرد. این الگوریتم‌ها برای تنظیم وزن‌ها و بهبود عملکرد شبکه استفاده می‌شوند.

ماشین بولتزمن در بسیاری از حوزه‌ها مانند پردازش زبان طبیعی، تطبیق الگو، تشخیص تغییرات در داده‌ها و تحلیل داده‌های احتمالاتی استفاده می‌شود. همچنین، این شبکه در مسایلی مانند تشخیص تصویر، تحلیل حرکت (Motion Analysis) و پیش‌بینی سری‌های زمانی نیز مورد استفاده قرار می‌گیرد.

5/5 - (3 امتیاز)

1 دیدگاه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *