در مقاله شبکه عصبی مصنوعی به زبان ساده سهلایهی شبکه عصبی (ورودی، مخفی و خروجی) بیان شدند. سپس شبکه عصبی پرسپترون معرفی شد که سادهترین شکل یک شبکه عصبی روبهجلو بود. در این بخش، برای حل مشکل پرسپترون که خروجی دودویی بود، نورون سیگموید بررسی میشود. در پایان، به عنوان آخرین بحث شبکه عصبی، بررسی می کنیم یادگیری عمیق چیست و کاربردهای آن را مطرح میکنیم.
. . . .
تابع سیگموید (Sigmoid function) چیست؟
یک جایگزین برای پرسپترون، نورون سیگموید (Sigmoid Neuron) است. نورون سیگموید و پرسپترون شباهت زیادی دارند ولی تابع سیگموید میتواند هر مقداری بین 0 و 1 را قبول کند. پذیرش هر مقداری بین 0 و 1، انعطافپذیری بیشتر برای جذب تغییرات کوچک در وزن یالها (بدون تولید نتایج معکوس) را به همراه دارد – ازآنجاییکه خروجی دیگر دودویی نیست. به بیان دیگر، نتیجه خروجی تنها بهخاطر یک تغییر کوچک در وزن یک یال یا مقدار ورودی، معکوس نمیشود.
معادله سیگموید به شکل زیر است، همانطور که قبلاً در مقاله رگرسیون چیست دیده شد.
نورون سیگموید انعطاف بیشتری نسبت به یک پرسپترون دارد، ولی قادر به تولید مقادیر منفی نیست. در نتیجه انتخاب سوم، تابع تانژانت هایپربولیک (Hyperbolic Tangent Function) است (شکل زیر).
تا اینجا شبکههای عصبی ساده را بررسی کردیم؛ برای ساخت شبکه عصبی پیشرفتهتر میتوانیم نورونهای سیگمویدی و دیگر دستهبندها را برای ساخت شبکهای با تعداد بیشتری لایه یا ترکیبی از چندین پرسپترون (برای ساخت یک پرسپترون چندلایه (Multi-Layer Perceptron))، به هم متصل کنیم.
دوره آموزشی: از بقیه شنیدید برای یادگیری هوش مصنوعی باید ریاضیات بلد باشید و نگرانید که ریاضی را فراموش کردید؟ آموزش رایگان جبر خطی را در کانال یوتیوب دیتاهاب ببینید تا خیالتان راحت شود.
یادگیری عمیق چیست؟
برای تحلیل الگوهای ساده، یک شبکه عصبی ساده یا یک ابزار دستهبندی جایگزین مثل رگرسیون منطقی و k نزدیکترین همسایه کفایت میکند. بااینحال، هر چهقدر الگوهای درون داده پیچیدهتر میشوند – بهخصوص تعداد زیاد ورودیها مثل تعداد کل پیکسلها در یک تصویر – مدلهای ساده، تحلیل قابلاعتماد و مناسبی ارائه نمیدهند. این به این خاطر است که با افزایش ورودیها، مدل به طور نمایی پیچیده میشود و در شبکههای عصبی این به معنای لایهها و گرههای ورودی بیشتر است. بااینحال، یک شبکه عصبی عمیق (تعداد زیادی از لایهها که شبکه را عمیق میکنند)، قادر خواهد بود تا الگوهای پیچیده را به الگوهای سادهتر بشکند، همانطور که در شکل زیر نشاندادهشده است. در این شکل، شناسایی چهره (Facial Recognition) با استفاده از یادگیری عمیق (Deep Learning) را میبینید (منبع kdnuggets.com)
این شبکه عمیق، از لبهها، برای تشخیص ویژگیهای فیزیکی مثل خطهای مورب استفاده میکند ولی هدف اصلی تشخیص چهره است. شبکه، مثل واحدهای سازنده (Building Blocks)، نتایج گرهها را ترکیب میکند تا ورودیها را دستهبندی کند برای مثال دستهبندی چهره انسان یا چهره گربه. سپس پردازش را ادامه میدهد تا یک چهره خاص را شناسایی کند.
این فرایند بهعنوان یادگیری عمیق شناخته میشود. چیزی که یادگیری عمیق را “عمیق” میکند، وجود حداقل 5 الی 10 لایه است. برای مثال در شناسایی اشیا پیشرفته بیشتر از 150 لایه استفاده میشود.
یک کاربرد معروف از یادگیری عمیق، شناسایی اشیا (Object Recognition) است. شناسایی اشیا در خودروهای خودران استفاده میشود – برای شناسایی اشیایی مثل عابران و دیگر خودروها. کاربردهای معمول دیگر یادگیری ماشین شامل تحلیل سریهای زمانی (Time Series) برای تحلیل روندهای (Trend) داده در بازههای زمانی مشخص، بازشناسی گفتار (Speech Recognition) و عملیات پردازش متن از جمله تحلیل عواطف (Sentiment Analysis)، تقسیمبندی موضوعی (Topic Segmentation) و تشخیص موجودیتهای نامدار (Named Entity Recognition) است. سناریوهای بیشتری از استفادهها و تکنیکهای ترکیبی یادگیری عمیق در شکل زیر قرار دارد.
همانطور که در جدول دیده میشود، پرسپترونهای چندلایه توسط تکنیکهای جدید یادگیری عمیق مثل شبکههای کانولوشنی (Convolution Networks)، شبکههای بازگشتی (Recurrent Networks)، شبکههای باور عمیق (Deep Belief Networks) و شبکههای تنسور عصبی بازگشتی (Recursive Neural Tensor Networks) محاصره شدهاند. استفاده از ورژنها و انواع پیشرفتهتر شبکههای عصبی، تأثیر مثبتی روی بعضی از برنامههای کاربردی و رایج امروزی دارد. با اینکه شبکههای کانولوشنی شاید معروفترین و قدرتمندترین تکنیک یادگیری عمیق هستند، ولی روشهای جدید و تغییرات، پیوسته درحالتوسعه هستند.
. . . .
و در انتها…
توضیحات شبکه عصبی را با ساختار و لایههای آن شروع کردیم. سپس شبکه عصبی پرسپترون را بیان کردیم که نقطه ضعف آن، خروجی دودویی بود. بنابراین نورون سیگموید را معرفی کردیم، اما قادر به تولید مقادیر منفی نبود. پس تابع تانژانت هایپربولیک برای حل این مشکل مطرح شد. در نهایت، درباره شبکه عصبی عمیق و یادگیری عمیق صحبت کردیم. کاربردهای یادگیری عمیق و انواع پیشرفتهتر شبکههای عصبی در آخر معرفی شدند.
در قسمت بعد کتابخانه های یادگیری عمیق را معرفی می کنیم.
دوره آموزشی: برای آشنایی بیشتر با یادگیری ماشین و انجام پروژه، آموزش رایگان یادگیری ماشین را در کانال یوتیوب دیتاهاب ببینید.