
شبکه عصبی چیست؟ آشنایی با مهمترین مفاهیم آن در 8 دقیقه
شبکه عصبی (Neural Network)، درونیترین لایه علم شگفت انگیزِ هوش مصنوعی (Artificial Intelligence) است. علمی که دنیای امروز ما را با چند دهه قبل بسیار متفاوت کرده و تکنولوژی بخش اعظمی از پیشرفت خود را مدیون آن است. شبکههای عصبی با سادهتر کردن زندگی انسانها در زمینههای مختلفی مثل علم پزشکی، اقتصاد، مهندسی و… تفاوتهای زیادی نسبت به شیوه زندگی در چند دهه پیش ایجاد کردهاند. شبکه عصبی، بنای علم یادگیری عمیق (Deep Learning) و یادگیری عمیق هم خود، پایه و اساس یادگیری ماشین (Machine Learning) است. این مفاهیم با هم، علمِ هوش مصنوعی را تشکیل میدهند. هدف کلی این است که یک سری اطلاعات را طوری به یک ماشین یا همان کامپیوتر بدهیم، که برای او قابل درک باشد و بتواند از آن در راستای اهداف بشر استفاده کند.
مهمترین سرفصلهای این مقاله:
- آشنایی با مفهوم شبکههای عصبی
- کاربرد آن در زندگی روزمره
- ارتباط شبکه عصبی و یادگیری عمیق
- روشهای یادگیریِ شبکههای عصبی
- انواع شبکههای عصبی
اگر میخواهید با مفهوم شبکه عصبی آشنا شوید و همچنین انواع و کاربردهای آن را بدانید در ادامهی این مقاله از فرانش با ما همراه باشید.
شما میتوانید سرفصل مدنظر خود برای یادگیری را از فهرست محتوای این مقاله انتخاب کنید تا به قسمت مربوطه هدایت شوید.
مفهوم شبکه عصبی به زبان ساده
مفهوم شبکه عصبی مثل این است که بخواهیم به یک کودک یاد بدهیم که چگونه از بین اشکال مختلف، شکل دایره را تشخیص دهد. به او چندین عکس از دایرهها در ابعاد و رنگهای مختلف نشان میدهیم. پس از مدتی یاد میگیرد که دایره چیست و میتواند از میان همه تصاویری که به او نشان داده میشود، دایرهها را تشخیص دهد. این دقیقا همان کاریست که به کمک شبکههای عصبی برای آموزش به یک ماشین انجام میدهیم؛ آموزش دادن به ماشین نهایتا باعث ایجاد هوش مصنوعی در آن میشود.
کاربرد های شبکه عصبی
شبکههای عصبی در زمینههایی مانند پزشکی، بورس، مهندسی برق و… کاربردهای زیادی دارند؛ که در ادامه به صورت کامل با آنها آشنا میشویم.
فرض کنید به کشوری سفر کردهاید که زبان آنها را نمیدانید؛ Google Real Time ابزاریست که به کمک آن میتوانید متن و صداها را به زبان مورد نظر خود تبدیل کنید. فقط کافیست از تابلوها عکس بگیرید تا مثل آب خوردن برایتان هر چیزی را ترجمه کند. این شاید یکی از ملموسترین مثالها برای کاربرد شبکه عصبی Neural Network در زندگی روزمره ما باشد.
شبکههای عصبی در زمینههای مختلفی چون:
- علم پزشکی
- بورس
- مهندسی برق
- ریاضیات
- مدیریت
- داده کاوی
- پردازش تصویر
- و…
کاربردهای فراوانی دارد که در ادامه بعضی از آنها را، جزئیتر بررسی میکنیم.
کاربرد شبکه عصبی در پزشکی
شبکههای عصبی در علم پزشکی، قابلیت تشخیص دقیق بیماریهایی چون مشکلات قلبی و عروقی، انواع سرطان و … را دارند. علاوه بر اینها توانستهاند در کاهش خسارات جانی و مالی تاثیر زیادی در روند درمان انسانها داشته باشند.
کاربرد شبکه عصبی در بورس
شبکههای عصبی در بورس میتواند به سهامداران در پیشبینیِ شاخص بازدهدهی نقدی، قیمت سهام و حتی پیشبینی ورشکستگی اقتصادی یک شرکت در بورس اوراق بهادار، کمک کنند.
تعریف شبکه عصبی
شبکههای عصبی مجموعهای از نورونها هستند که از الگوریتمهای منحصر به فردی پیروی میکنند. این مجموعه که از مغز انسان الگوبرداری و الهام گرفتهشدهاست، با هدف شناسایی الگوها طراحی میشوند و مورد استفاده قرار میگیرند.
به طور کلی میتوان گفت که شبکه عصبی شامل الگوریتمهاییست برای یادگیریِ ماشین، که منجر به طبقهبندی کردن دادههای ورودی و ارائه خروجی مطلوب میگردد. به همین دلیل است که میتوان شبکههای عصبی را به عنوان جزئی از فرایند یادگیری ماشین در نظر گرفت.
شبکههای عصبی چگونه کار میکنند؟
شبکههای عصبی دادهها را دریافت و در لایههای مخفی خود آنها را تحلیل میکنند تا نهایتا یک خروجی ارائه بدهند. این دادهها میتوانند گروهی از تصاویر، صداها، نوشتهها و… باشند که باید ترجمه و برای یک ماشین قابل درک بشوند. به کمک شبکههای عصبی، اطلاعات را طبقهبندی میکنیم؛ اطلاعات مختلف میتوانند بر اساس شباهت به مثالی مشخص، گروهبندی شوند. آنها حتی میتوانند امکانات و دادههای لازم برای تغذیه به یک الگوریتم دیگر را هم فراهم و طبقهبندی کنند.
شبکه عصبی عمیق DNN
شبکه عصبی عمیق (Deep Neural Network)، شبکه عصبیای است که بیش از سه لایه نورون تشکیل شده باشد. همان طور که در شکل 2 مشاهده میشود، لایههای مخفی میتوانند تعداد زیادی زیرلایه را در خود جای بدهد. در چنین حالتی آن را شبکه عصبی عمیق مینامند. به کمک شبکههای عصبی عمیق، مسائل به شدت پیچیده در زمینههای مختلف، مانند مسائل ساده قابل حل میشوند.
شبکههای عصبی و یادگیری عمیق
عبارت یادگیری عمیق (Deep Learning) در واقع به معنای آموزش به شبکه عصبی عمیق است؛ اگر بخواهیم مثالی ساده از نحوه عملکرد یادگیریِ عمیق بزنیم، میتوان گفت وقتی یک ماشین یک سری داده را دریافت میکند، خروجی مشخصی را در ازای آن میدهد. به این فرآیند «تقریبزدن جهانی» هم میگویند؛ چرا که آن ماشین میتواند یاد بگیرد چطور در یک تابع نامشخص مثل f(x)=y، در ازای ورودی x ،y را تقریب بزند. حتی در صورتی که x و y به هم مرتبط نباشند، یک شبکه عصبی در فرآیند یادگیری خود میتوانند مقدار درست تابع یا شیوه صحیح تبدیل کردن x و y را پیدا کند.
در فرایند یادگیری، یک شبکه عصبی مقدار صحیح f یا روش درست تبدیل x به y را پیدا میکند؛ چه تابع به صورت f(x)=2x+15 باشد یا .f(x)=7x-0.02
دورههای مرتبط در فرانش
روشهای یادگیری شبکههای عصبی عمیق
شبکههای عصبی نمیتوانند به طور مستقیم برای یک موضوع برنامه نویسی شوند. درست مانند رشد کردن مغز یک کودک که برای یادگیری به یک سری پیشنیاز لازم دارد. برای همین هم نمیتوان گفت برای یادگیری شبکههای عصبی چقدر زمان لازم است.
یادگیری با نظارت (Supervised Learning):
در روش یادگیری با نظارت Supervised Learning که به آن روش دستهبندی (Classification) هم میگویند، انسان اطلاعات دستهبندیشده خود را به صورت یک مجموعه داده، در اختیار شبکه عصبی قرار میدهد. در این حالت انتظار میرود که شبکه عصبی، رابطهی خروجی و دادههای ورودی را پیدا کند.
از این روش برای اهداف مختلفی چون:
- تشخیص چهره فرد در یک تصویر و حالت صورت او (مثلا خوشحال یا عصبانی)
- تشخیص اشیای مختلف در تصاویر
- تشخیص حرکات در ویدیو
- شناسایی صدا، تبدیل صوت به متن، و حتی تشخیص احساسات در صدا
- دستهبندی ایمیلها (مثلا مثلا اسپم بودن یا نبودن یک ایمیل)
استفاده میشود.
یادگیری بدون نظارت (Unsupervised Learning):
در یادگیری بدون نظارت Unsupervised Learning که به آن روش خوشهبندی (Clustering) هم میگویند، هدف پیدا کردن مشترکات است. در این روش، مشخصه معینی برای شناسایی شباهتها وجود ندارد. در واقعیت هم اکثر دادههای موجود در دنیا، به صورت کلاسبندینشده (Unlabeled data) هستند. یک قانون کلی در یادگیری ماشین میگوید: هر چقدر دیتای ورودی که یک الگوریتم میخواهد از آن پیروی کند بیشتر باشند، نتیجه دقیقتر است. بنابراین، روش یادگیری بدون نظارت پتانسیل این را دارد که مدلی با ضریب تقریب بالا تولید کند. این روش استفادههای مختلفی دارد؛ مانندِ:
- جستوجو و مقایسهی اسناد، تصاویر و صداها با یکدیگر برای یافتن موارد مشابه
- تشخیص تضادها و پیدا کردن ناسازگاریها در یک مجموعه داده
انواع شبکه های عصبی
شبکههای عصبی از الگوریتمهای مختلفی پیروی میکنند که هر کدام در جایگاه مورد نیاز خود، در این علم گسترده استفاده میشوند؛ در ادامه به شرح انواع شبکههای عصبی میپردازیم.
پرسپترون چند لایه یا MLP:
پرسپترون چند لایه (Perceptron Multi-Layer)، سادهترین مدل شبکه عصبی موجود است، که اختصارا آن را MLP مینامند. این شبکه عصبی عملکردی مانند نحوه انتقال اطلاعات در مغز انسان دارد. از آن جایی که در این نوع شبکه عصبی از رفتار لایهای شبکه مغز انسان و روش انتشار سیگنال در آن الهام گرفته شدهاست به آن شبکههای عصبی پیشخور (Feed Forward Neural Networks) هم میگویند. در این روش، هر نورون یا همان سلول عصبی، پس از دریافت یک داده آن را پردازش و به سلول دیگر منتقل میکند. همان طور که پیشتر اشاره کردیم این روند تا گرفتن نتیجه مطلوب، که منجر به یک اقدام میشود ادامه دارد.
شبکه عصبی شعاعی یا RBF:
شبکه عصبی شعاعی (Radial Basis Functions)، دارای الگوی رفتاریای مشابه حالت قبلی است و تفاوت چندانی با آن ندارد؛ فقط پردازندهها در موقعیت خاصی متمرکز هستند و از طریق توابع رادیال مدلسازی میشوند. البته نوع پردازش نورونها بر دادههای ورودی هم متفاوت است. این شبکه دارای فرآیند یادگیری و نتیجهگیری سریعتر است؛ آن هم فقط به دلیل این که گیرندهها در یک نقطه متمرکز هستند.
ماشین های بردار پشتیبان یا SVM:
ماشین های بردار پشتیبان با دو شبکه قبلی متفاوت هستند. در شبکههای عصبی که تا کنون مورد بحث قرار گرفتند، عمده توجه شبکه بر بهینه کردن ساختار بود، به طوری که درصد خطای شبکه عصبی به کمترین حد خود برسد. اما در شبکه های عصبیای که آنها را ماشینهای بردار پشتیبان مینامیم (Support Vector Machine) ، صرفا بر روی کاهش ریسک عملیات که ناشی از عدم عملکرد صحیح است، تمرکز میشود. فیزیک این نوع شبکه، شباهت زیادی به شبکه عصبیMLP دارد و تنها فرقاش با آن عمده، در شیوه یادگیریاش است.
شبکه عصبی کوهونن یا :SOM
شبکه عصبی کوهنون، که به آن نگاشت خودسازمانده یا SOM (Self-Organizing Map) هم میگویند، نوع خاصی از شبکه عصبی است که از هر نظر با انواع شبکههای عصبی که تا کنون مورد بررسی قرار گرفتهاند، فرق میکند. این شبکه عصبی در حل مسائل، از روش یادگیری بدون نظارت، که پیشتر درباره آن صحبت کردیم، استفاده میکند. در واقع کار اصلی این شبکه پیدا کردن شباهتها در میان انبوهی از دیتا است.
یادگیرنده رقمی ساز بردار یا :LVQ
شبکه عصبی LVQ (Learning Vector Quantization)، مدل پیشرفتهتری از شبکههای عصبی کوهنن هستند که برای یادگیریِ آن از روش حل مسائل با نظارت استفاده میشود. این نوع شبکه عصبی در حل مسائل طبقهبندی شده کاربرد دارند.
شبکههای عصبی هاپفیلد (Hopfield):
شبکه عصبی هاپفیلد، یکی از قدیمیترین انواع شبکههای عصبی است که با ساختار بازگشتی خود، فیدبکهای داخلی ایجاد میکند. هاپفیلد عملکردی شبیه به یک سیستم حرکتی با دو یا چند نقطه تعادل دارد. الگوریتم این شبکه به این صورت است که با شروع از هر وضعیت به یکی از نقاط تعادل خود همگرا میشود. از شبکه عصبی هاپفیلد میتوان به عنوان یک راه حل برای مسائل طبقهبندیشده استفاده کرد.
جمع بندی
در این مقاله آموختیم که شبکههای عصبی درونیترین زیرلایه علم هوش مصنوعیست و رابطه آن را با دیگر لایههای این علم بررسی کردیم، همچنین با:
- تعریف و مفهوم شبکههای عصبی
- شِکل شماتیک نحوه عملکرد آن
- کاربردها و مثالهایی در زندگی روزمره مانند:
- بورس
- علم پزشکی
- مهندسی برق
- داده کاوی
- و…
- و انواع شبکههای عصبی
آشنا شدیم و دیدیم که کاربرد شبکههای عصبی در زندگی روزمره ما انسانها به قدری زیاد است که نمیتوان آن را نادیده گرفت. مطمئنا در آینده نه چندان دور، این علم حرفهای بیشتری هم برای گفتن خواهد داشت.
و در آخر…
حالا که میدانیم چرا دانستن شبکههای عصبی اینقدر برای بشر اینقدر اهمیت دارد، اگر به این علم علاقهمندید، یا کسی از دوستانتان میخواهد آن را یاد بگیرد، دوره جامع و پروژهمحورِ داده کاوی و یادگیری ماشین با پایتونِ فرانش انتخاب مناسبی برای شماست. در این دوره علاوه بر یادگیری مباحث ابتدایی مورد نیاز برای یادگیری ماشین مثل زبان پایتون، بر شبکههای عصبی هم مسلط خواهید شد.
همین حالا به اطرافتان دقت کنید، شبکه عصبی چه نقشی در زندگی شما دارد؟ میتوانید مثالی متفاوت با آنچه در متن به آن اشاره شد، بزنید؟ نظراتتون رو برای ما بنویسید؛ بیصبرانه مشتاقیم با شما درباره این علم هیجانانگیز صحبت کنیم.
دورههای مرتبط در فرانش
بدون دیدگاه