واژهنامه
شبکه عصبی (neural network) چیست و چه کاربردی دارد؟
تعریف به زبان ساده
شبکهٔ عصبی یک مدل محاسباتی است که از ساختار مغز انسان الهام گرفته شده و از لایههای بههمپیوستهای از «نورونهای» مصنوعی تشکیل میشود که اطلاعات را پردازش و منتقل میکنند.
در شکبههای عصبی هر نورون ورودیهایی را دریافت میکند، روی آنها محاسبات ریاضی انجام میدهد و سپس نتیجه را به نورونهای لایهٔ بعد منتقل میکند. این محاسبات با استفاده از مفاهیمی مانند «وزنها» و «توابع فعالسازی» انجام میشوند. با کنار هم قرار گرفتن تعداد زیادی از این نورونها در لایههای مختلف، شبکهٔ عصبی میتواند الگوهای موجود در دادهها را یاد بگیرد و بر اساس آنها خروجی تولید کند.
شبکههای عصبی پایهٔ «یادگیری عمیق» را تشکیل میدهند و در بسیاری از کاربردهای امروزی هوش مصنوعی، از تشخیص چهره و دستیارهای صوتی گرفته تا خودروهای خودران، به کار میروند.
تاریخچه کوتاه
در یک نگاه کلی، ایدهٔ شبکههای عصبی از نورونهای زیستی مغز انسان گرفته شده است؛ نورونهایی که از طریق سیگنالهای الکتریکی با یکدیگر ارتباط برقرار میکنند. در سال ۱۹۴۳، وارن مککالاک و والتر پیتس نخستین مدل ریاضی یک نورون را ارائه کردند و نشان دادند که واحدهای ساده میتوانند محاسباتی را انجام دهند. بعدها، در سال ۱۹۵۸، فرانک روزنبلات «پرسپترون» را معرفی کرد؛ الگوریتمی که برای تشخیص الگو طراحی شده بود. پرسپترون را میتوان جد تاریخی شبکههای عصبی امروزی دانست؛ مدلی اساساً خطی که خروجی محدودی تولید میکرد.
چرا شبکههای عصبی مهماند؟
شبکههای عصبی میتوانند به رایانهها کمک کنند تا با دخالت محدود انسان، تصمیمهای هوشمندانه بگیرند. دلیلش این است که میتوانند روابط پیچیده و غیرخطی میان دادههای ورودی و خروجی را از دادهها یاد بگیرند و آنها را مدلسازی کنند. برای مثال، شبکههای عصبی میتوانند کارهای زیر را انجام دهند.
تعمیم و استنباط
شبکههای عصبی میتوانند دادههای بدون ساختار را درک کنند و بدون اینکه برای تکتک حالتها بهطور صریح آموزش دیده باشند، الگوهای کلی را تشخیص دهند و از آنها نتیجهگیری کنند.
برای مثال، میتوانند تشخیص دهند که دو جملهٔ متفاوت، معنای مشابهی دارند:
- «میتونی بگی چطور باید پرداخت رو انجام بدم؟»
- «چطور میتونم پول انتقال بدم؟»
شبکهٔ عصبی میتواند تشخیص دهد که منظور هر دو جمله تقریباً یکسان است. همچنین میتواند بهطور کلی تشخیص دهد که «Baxter Road» نام یک مکان است، در حالی که «Baxter Smith» نام یک شخص است.
شبکههای عصبی چگونه کار میکنند؟
برای درک سادهتر نحوهٔ کار شبکههای عصبی، میتوانیم تشخیص ایمیلهای اسپم را مثال بزنیم. یک ایمیل وارد شبکه میشود و ویژگیهایی مانند کلمات یا عبارتهایی مثل «جایزه»، «پول»، «عزیز» یا «برنده شو» بهعنوان ورودی در نظر گرفته میشوند. نورونهای لایههای ابتدایی شبکه بررسی میکنند که هرکدام از این نشانهها چقدر اهمیت دارند. سپس لایههای بعدی این اطلاعات را با هم ترکیب میکنند تا الگوهای پیچیدهتری، مثل زمینه و لحن متن، را تشخیص دهند. در نهایت، لایهٔ آخر احتمال اسپم بودن ایمیل را محاسبه میکند. اگر این احتمال بهاندازهٔ کافی بالا باشد، ایمیل بهعنوان اسپم شناسایی میشود.
به زبان ساده، شبکهٔ عصبی یاد میگیرد که چگونه ویژگیهای ساده و خام را به الگوهای معنادار تبدیل کند و از این الگوها برای پیشبینی استفاده کند.
این فرایند بر دو مفهوم اساسی استوار است: «وزنها» و «پارامترهای تنظیمکننده (bias)». وزنها مشخص میکنند که هر ویژگی ورودی تا چه اندازه بر تصمیم نهایی تأثیر بگذارد. برای مثال، ممکن است کلمهٔ «جایزه» برای تشخیص اسپم اهمیت بیشتری داشته باشد و وزن بالاتری بگیرد، در حالی که کلمهای رایج مثل «سلام» وزن کمتری داشته باشد.
پارامترهای تنظیمکننده (bias) نیز مقادیری هستند که آستانهٔ فعالشدن نورون را تنظیم میکنند. به کمک این پارامترها، یک نورون میتواند حتی زمانی که ورودیها بهتنهایی چندان قوی نیستند، فعال شود. وزنها و پارامترهای تنظیمکننده در مجموع از مهمترین مقادیر قابلآموزش مدل هستند و تعیین میکنند هر نورون در محاسبات شبکه چه نقشی داشته باشد.
شبکه در طول فرایند آموزش، این وزنها و پارامترهای تنظیمکننده را بارها تغییر میدهد تا بهتدریج یاد بگیرد پیشبینیهای دقیقتری انجام دهد؛ در این مثال، یعنی تشخیص دهد یک ایمیل اسپم است یا نه.
از نظر ریاضی، یک شبکهٔ عصبی تابعی مانند f(X) را یاد میگیرد که بردار ورودی X=(x1,x2,x3,...) را به یک خروجی یا پاسخ پیشبینیشدهٔ Y تبدیل میکند. چیزی که شبکههای عصبی را از بسیاری از الگوریتمهای سنتی یادگیری ماشین متمایز میکند، ساختار لایهلایهٔ آنها و تواناییشان در انجام تبدیلهای غیرخطی است.
شبکههای عصبی چه کاربردهایی دارند؟
شبکههای عصبی در صنایع و حوزههای مختلف کاربردهای زیادی دارند. برای مثال:
- تشخیص بیماری از طریق تحلیل و دستهبندی تصاویر پزشکی
- بازاریابی هدفمند از طریق تحلیل رفتار کاربران و فیلتر کردن محتوای شبکههای اجتماعی
- پیشبینیهای مالی با استفاده از دادههای تاریخی مربوط به ابزارهای مالی
- پیشبینی میزان مصرف برق و تقاضای انرژی
- کنترل فرایندها و بررسی کیفیت
- شناسایی ترکیبات شیمیایی
در ادامه، چهار مورد از مهمترین کاربردهای شبکههای عصبی را بررسی میکنیم.
بینایی ماشین
بینایی ماشین به توانایی رایانهها برای استخراج اطلاعات و دریافت بینش از تصاویر و ویدئوها گفته میشود. شبکههای عصبی به رایانهها کمک میکنند تصاویر را تا حد زیادی شبیه انسانها تشخیص دهند و از یکدیگر متمایز کنند. برخی از کاربردهای بینایی ماشین عبارتاند از:
- تشخیص بصری در خودروهای خودران برای شناسایی علائم راهنمایی و رانندگی و سایر کاربران جاده
- نظارت بر محتوا برای شناسایی و حذف خودکار محتوای ناامن یا نامناسب از آرشیوهای تصویری و ویدئویی
- تشخیص چهره برای شناسایی چهرهها و ویژگیهایی مانند باز بودن چشمها، عینک و موی صورت
- برچسبگذاری تصاویر برای شناسایی لوگوهای برندها، لباسها، تجهیزات ایمنی و سایر جزئیات موجود در تصاویر
تشخیص گفتار
شبکههای عصبی میتوانند گفتار انسان را با وجود تفاوت در الگوهای گفتاری، زیر و بمی صدا، لحن، زبان و لهجه تحلیل کنند. دستیارهای مجازی مانند آمازون الکسا و نرمافزارهای تبدیل گفتار به متن از فناوری تشخیص گفتار برای انجام کارهایی مانند موارد زیر استفاده میکنند:
- کمک به کارکنان مراکز تماس و دستهبندی خودکار تماسها
- تبدیل مکالمات پزشکی به متن و ثبت همزمان آنها در اسناد مربوط به بیمار
- تولید زیرنویس دقیق برای ویدئوها و فایلهای ضبطشدهٔ جلسات، با هدف دسترسی افراد بیشتری به این محتوا
پردازش زبان طبیعی
پردازش زبان طبیعی (NLP) به توانایی رایانهها برای پردازش متن طبیعیِ تولیدشده توسط انسان گفته میشود. شبکههای عصبی به رایانهها کمک میکنند اطلاعات و معنای موجود در متنها و اسناد را استخراج و تحلیل کنند. برخی از کاربردهای پردازش زبان طبیعی عبارتاند از:
- دستیارهای مجازی خودکار و چتباتها
- سازماندهی و دستهبندی خودکار دادههای متنی
- تحلیل اسناد طولانی، مانند ایمیلها و فرمها، برای استخراج اطلاعات موردنیاز کسبوکار
- شناسایی و دستهبندی عبارتهایی که نشاندهندهٔ احساسات و دیدگاه کاربران هستند؛ برای مثال، تشخیص نظرات مثبت و منفی در شبکههای اجتماعی
- خلاصهسازی اسناد و تولید مقاله دربارهٔ یک موضوع مشخص
موتورهای پیشنهاددهنده
شبکههای عصبی میتوانند فعالیت کاربران را بررسی کنند تا پیشنهادهایی متناسب با علایق هر کاربر ارائه دهند. همچنین میتوانند رفتار کاربران را در مقیاس گسترده تحلیل کنند و محصولات یا خدمات جدیدی را که ممکن است برای یک کاربر خاص جذاب باشند، شناسایی کنند.
برای مثال، یک شرکت نوپای مستقر در فیلادلفیا به نام Curalate به برندها کمک میکند پستهای شبکههای اجتماعی را به فروش تبدیل کنند. برندها از سرویس «برچسبگذاری هوشمند محصولات» این شرکت استفاده میکنند تا جمعآوری و سازماندهی محتوای تولیدشده توسط کاربران را خودکار کنند. این سرویس با استفاده از شبکههای عصبی، محصولات مرتبط با فعالیت کاربران در شبکههای اجتماعی را بهطور خودکار شناسایی و پیشنهاد میکند.
در نتیجه، کاربران لازم نیست برای پیدا کردن محصولی که در یک تصویر شبکهٔ اجتماعی دیدهاند، در میان کاتالوگهای آنلاین جستوجو کنند. آنها میتوانند از قابلیت برچسبگذاری خودکار محصولات استفاده کنند و محصول موردنظر را بهسادگی خریداری کنند.
انواع شبکههای عصبی
شبکههای عصبی مصنوعی را میتوان بر اساس نحوهٔ انتقال داده از گرهٔ ورودی به گرهٔ خروجی دستهبندی کرد. در ادامه، چند نمونه از انواع شبکههای عصبی را میبینیم.
شبکههای عصبی پیشرونده(Feedforward neural networks)
در شبکههای عصبی شبکههای عصبی پیشرونده، دادهها فقط در یک جهت حرکت میکنند؛ یعنی از گرههای ورودی به سمت گرههای خروجی. هر گره در یک لایه به همهٔ گرههای لایهٔ بعد متصل است.
این شبکه با استفاده از فرایند بازخورد، بهمرور وزنهای خود را تنظیم میکند تا پیشبینیهای دقیقتری داشته باشد.
الگوریتم پسانتشار خطا(Backpropagation algorithm)
شبکههای عصبی مصنوعی با استفاده از چرخههای بازخورد و اصلاح خطا، بهتدریج یاد میگیرند و عملکرد خود را در پیشبینی بهتر میکنند.
برای سادهتر شدن موضوع، میتوان تصور کرد که داده از گرهٔ ورودی به سمت گرهٔ خروجی، از مسیرهای مختلفی در شبکه عبور میکند. از میان این مسیرها، مسیری که در نهایت ورودی را به خروجی درست میرساند، مسیر مناسب است. شبکه برای پیدا کردن این مسیر و بهبود عملکرد خود، از یک فرایند بازخورد استفاده میکند:
- هر گره پیشبینی میکند که داده باید به کدام گرهٔ بعدی منتقل شود.
- شبکه بررسی میکند که این پیشبینی درست بوده است یا نه. مسیرهایی که به پیشبینیهای درستتری منجر شدهاند، وزن بیشتری میگیرند و وزن مسیرهایی که به پیشبینیهای نادرست منجر شدهاند، کاهش پیدا میکند.
- هنگام دریافت دادهٔ بعدی، شبکه با استفاده از مسیرهایی که وزن بیشتری دارند، پیشبینی جدیدی انجام میدهد و این فرایند دوباره تکرار میشود.
با تکرار این فرایند، شبکه بهتدریج یاد میگیرد کدام مسیرها و ارتباطها برای رسیدن به پیشبینی درست اهمیت بیشتری دارند.
شبکههای عصبی کانولوشنی(Convolutional)
در شبکههای عصبی کانولوشنی، لایههای پنهان شبکه عملیات ریاضی مشخصی را روی دادهها انجام میدهند که «کانولوشن» نام دارد. این شبکهها بهویژه برای دستهبندی تصاویر کاربرد دارند، زیرا میتوانند ویژگیهای مهم موجود در تصویر را استخراج کنند و از آنها برای شناسایی و دستهبندی تصویر استفاده کنند.
در هر لایه، ویژگیهای متفاوتی از تصویر استخراج و پردازش میشود. برای مثال، لایههای ابتدایی ممکن است لبهها و خطوط تصویر را تشخیص دهند و لایههای بعدی ویژگیهای پیچیدهتری مانند شکل، رنگ و عمق را شناسایی کنند. در این فرایند، اطلاعات تصویر به شکلی تبدیل میشود که پردازش آن برای شبکه آسانتر باشد، بدون اینکه ویژگیهای مهم موردنیاز برای یک پیشبینی دقیق از بین بروند.
چگونه شبکههای عصبی را آموزش میدهند؟
آموزش شبکهٔ عصبی فرایندی است که طی آن شبکه یاد میگیرد یک کار مشخص را انجام دهد. شبکههای عصبی در ابتدا حجم زیادی از دادهها را، که میتوانند دارای برچسب یا بدون برچسب باشند، پردازش میکنند. شبکه با استفاده از این دادهها و الگوهایی که از آنها یاد میگیرد، میتواند بعداً ورودیهای جدید و ناشناخته را با دقت بیشتری پردازش و پیشبینی کند.
یادگیری نظارتشده
در یادگیری نظارتشده، دانشمندان داده مجموعهدادههایی برچسبگذاریشده در اختیار شبکهٔ عصبی مصنوعی قرار میدهند؛ یعنی پاسخ درست از قبل برای هر داده مشخص شده است.
برای مثال، فرض کنید یک شبکهٔ یادگیری عمیق برای تشخیص چهره آموزش داده میشود. در مرحلهٔ آموزش، شبکه صدها هزار تصویر از چهرهٔ انسانها را دریافت میکند و هر تصویر با برچسبهایی دربارهٔ ویژگیهایی مانند کشور یا منطقهٔ مبدأ و احساسات فرد همراه است.
شبکه بهتدریج از این دادهها یاد میگیرد، زیرا پاسخ درست برای نمونههای آموزشی از قبل مشخص شده است. پس از پایان آموزش، شبکه میتواند تصویر جدیدی از یک چهرهٔ انسانی را که قبلاً ندیده است بررسی کند و دربارهٔ ویژگیهایی مانند کشور یا منطقهٔ مبدأ یا احساسات فرد پیشبینی انجام دهد.
منابع:
