خانه » آموزش » شبکه عصبی چیست؟ آموزش کامل ساختار و عملکرد Neural Network

شبکه عصبی چیست؟ آموزش کامل ساختار و عملکرد Neural Network

0
شبکه عصبی چیست

شبکه عصبی چیست

فصل چهارم: ورود به دنیای شبکه‌های عصبی (Neural Networks)

قسمت دوازدهم: شبکه عصبی چیست؟ آشنایی با لایه‌های ورودی، پنهان و خروجی

از یک نورون تا یک شبکه هوشمند

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

تحقیق و تدوین مهدی گمرکی

همچنین دیدیم که هر نورون مصنوعی سه وظیفه اصلی بر عهده دارد:

  • دریافت اطلاعات از محیط یا نورون‌های دیگر
  • اعمال وزن (Weight) به هر ورودی بر اساس میزان اهمیت آن
  • تولید یک خروجی با کمک تابع فعال‌سازی (Activation Function)

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

اما در همان جلسه یک سؤال مهم بی‌پاسخ ماند.

اگر یک نورون مصنوعی تنها می‌تواند یک محاسبه ساده انجام دهد، پس چگونه هوش مصنوعی قادر است تصاویر را تشخیص دهد، متن ترجمه کند، صدای انسان را درک کند یا حتی مانند ChatGPT به سؤال‌های ما پاسخ دهد؟

پاسخ این سؤال، موضوع اصلی این جلسه است.

آیا یک نورون مصنوعی به‌تنهایی کافی است؟

قبل از اینکه به این سؤال پاسخ دهیم که شبکه عصبی چیست، اجازه دهید یک مثال ساده از دنیای واقعی بررسی کنیم.

فرض کنید از شما بخواهند تنها با دیدن یک ویژگی، تشخیص دهید فردی که روبه‌روی شما ایستاده دوستتان است یا خیر.

اگر فقط رنگ لباس را ببینید، آیا می‌توانید با اطمینان تصمیم بگیرید؟

احتمالاً خیر.

ممکن است افراد زیادی لباس آبی پوشیده باشند.

اگر فقط قد فرد را بدانید چه؟

باز هم پاسخ منفی است.

حالا فرض کنید علاوه بر رنگ لباس، اطلاعات زیر را نیز در اختیار داشته باشید:

  • قد
  • مدل مو
  • رنگ چشم
  • فرم صورت
  • نوع راه رفتن
  • صدای فرد

اکنون مغز شما می‌تواند تمام این اطلاعات را کنار هم قرار دهد و با احتمال بسیار زیادی تشخیص دهد که این شخص همان دوست شماست.

نکته جالب اینجاست که مغز انسان این کار را تنها در چند صدم ثانیه انجام می‌دهد؛ بدون اینکه متوجه مراحل پیچیده پردازش اطلاعات شوید.

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

هوش مصنوعی نیز دقیقاً از همین ایده الهام گرفته است.

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

به این سیستم شبکه عصبی (Neural Network) گفته می‌شود.

شبکه عصبی چیست؟

اگر بخواهیم یک تعریف ساده و قابل فهم ارائه کنیم، می‌توان گفت:

شبکه عصبی (Neural Network) مجموعه‌ای از نورون‌های مصنوعی است که به صورت لایه‌لایه به یکدیگر متصل شده‌اند و با همکاری هم، الگوهای موجود در داده‌ها را یاد می‌گیرند و بر اساس آن‌ها تصمیم می‌گیرند.

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

هیچ بازیکنی به‌تنهایی نمی‌تواند یک مسابقه را ببرد؛ همان‌طور که یک نورون مصنوعی نیز به‌تنهایی قادر نیست مسائل پیچیده را حل کند.

قدرت واقعی زمانی به وجود می‌آید که اعضای تیم با یکدیگر همکاری کنند.

در شبکه‌های عصبی نیز همین اصل برقرار است.

چرا به آن «شبکه» گفته می‌شود؟

شاید برایتان سؤال باشد که چرا از واژه «شبکه» استفاده می‌کنیم.

دلیل آن بسیار ساده است.

هر نورون مصنوعی از طریق ارتباط‌هایی به نورون‌های دیگر متصل می‌شود.

اگر این ارتباط‌ها را روی کاغذ رسم کنیم، شکلی شبیه یک شبکه به وجود می‌آید.

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

به همین دلیل این ساختار را شبکه عصبی مصنوعی (Artificial Neural Network) می‌نامند.

یک مثال واقعی؛ چگونه هوش مصنوعی یک گربه را تشخیص می‌دهد؟

فرض کنید می‌خواهیم به یک رایانه آموزش دهیم که تصاویر گربه را از تصاویر سگ تشخیص دهد.

شاید در نگاه اول تصور کنید رایانه مانند انسان تصویر را می‌بیند، اما واقعیت کاملاً متفاوت است.

کامپیوتر هرگز تصویر را مانند ما مشاهده نمی‌کند.

برای رایانه، تصویر فقط مجموعه‌ای از اعداد است.

هر پیکسل تصویر دارای یک عدد است که میزان روشنایی یا رنگ آن را مشخص می‌کند.

بنابراین وقتی تصویری وارد رایانه می‌شود، چیزی شبیه جدول زیر دریافت می‌کند:

125   123   130   135
122   124   129   136
120   121   128   138
119   122   130   140

برای ما این جدول هیچ معنایی ندارد، اما برای رایانه، تمام تصویر از همین اعداد تشکیل شده است.

حال سؤال این است:

چگونه این اعداد به جمله «این تصویر متعلق به یک گربه است» تبدیل می‌شوند؟

پاسخ این است که این اعداد وارد شبکه عصبی می‌شوند.

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

این دقیقاً همان کاری است که مغز انسان نیز انجام می‌دهد، با این تفاوت که مغز از سلول‌های عصبی واقعی استفاده می‌کند و رایانه از نورون‌های مصنوعی.

شبکه عصبی چگونه اطلاعات را پردازش می‌کند؟

تصور کنید اطلاعات مانند مسافرانی هستند که قصد دارند از یک ایستگاه به ایستگاه دیگر بروند.

در ابتدا همه اطلاعات وارد اولین ایستگاه می‌شوند.

سپس در هر ایستگاه، بخشی از اطلاعات بررسی، پالایش و تحلیل می‌شود.

✅ بیشتر بخوانیم 👈👈👈  رشته در پایتون؛ آموزش Indexing و Slicing با مثال | جلسه ۱۱

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

در شبکه‌های عصبی این ایستگاه‌ها را لایه (Layer) می‌نامیم.

هر لایه وظیفه مشخصی دارد و اطلاعات را برای لایه بعدی آماده می‌کند.

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

شبکه عصبی چگونه اطلاعات را پردازش میکند
شبکه عصبی چگونه اطلاعات را پردازش میکند

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

تقریباً تمام شبکه‌های عصبی، صرف‌نظر از اندازه و پیچیدگی، از سه بخش اصلی تشکیل شده‌اند:

  • لایه ورودی (Input Layer)
  • لایه یا لایه‌های پنهان (Hidden Layer)
  • لایه خروجی (Output Layer)

هر یک از این لایه‌ها نقش متفاوتی در پردازش اطلاعات دارند.

در ادامه، با اولین و مهم‌ترین آن‌ها یعنی لایه ورودی آشنا می‌شویم.

لایه ورودی (Input Layer) چیست؟

لایه ورودی، اولین نقطه ورود داده‌ها به شبکه عصبی است.

تمام اطلاعات خام، ابتدا وارد این بخش می‌شوند.

نکته مهم این است که لایه ورودی هیچ تصمیمی نمی‌گیرد.

این لایه فقط داده‌ها را دریافت کرده و آن‌ها را برای پردازش به لایه‌های بعدی ارسال می‌کند.

برای درک بهتر، یک مثال ساده را بررسی کنیم.

فرض کنید می‌خواهیم قیمت یک خانه را پیش‌بینی کنیم.

چه اطلاعاتی برای این کار لازم است؟

احتمالاً مواردی مانند:

  • متراژ خانه
  • سن ساختمان
  • تعداد اتاق‌ها
  • وجود پارکینگ
  • موقعیت جغرافیایی
  • طبقه ساختمان

تمام این اطلاعات، ویژگی‌های ورودی (Features) هستند.

در یک شبکه عصبی، هر ویژگی می‌تواند به یک نورون در لایه ورودی تبدیل شود.

بنابراین اگر شش ویژگی داشته باشیم، معمولاً شش نورون نیز در لایه ورودی خواهیم داشت.

به همین دلیل است که تعداد نورون‌های لایه ورودی، معمولاً برابر با تعداد ویژگی‌های داده است.

یک مثال دیگر؛ تشخیص ایمیل هرزنامه

فرض کنید می‌خواهیم یک شبکه عصبی تشخیص دهد که آیا یک ایمیل، هرزنامه (Spam) است یا خیر.

چه اطلاعاتی وارد شبکه می‌شوند؟

برای مثال:

  • آیا کلمه «رایگان» در متن وجود دارد؟
  • آیا ایمیل دارای لینک‌های متعدد است؟
  • آیا فرستنده ناشناس است؟
  • آیا تعداد تصاویر زیاد است؟
  • آیا عنوان ایمیل اغراق‌آمیز است؟

تمام این اطلاعات وارد لایه ورودی می‌شوند.

اما آیا همین اطلاعات برای تصمیم‌گیری کافی هستند؟

خیر.

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

از ورود اطلاعات تا کشف الگوها

در بخش اول یاد گرفتیم که شبکه عصبی چیست و چگونه اطلاعات از طریق لایه ورودی (Input Layer) وارد شبکه می‌شوند. همچنین دیدیم که لایه ورودی تنها نقش انتقال داده‌ها را بر عهده دارد و هنوز هیچ تصمیمی در آن گرفته نمی‌شود.

اما سؤال اصلی اینجاست:

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

پاسخ این سؤال در مهم‌ترین بخش شبکه‌های عصبی نهفته است؛ یعنی لایه‌های پنهان (Hidden Layers).

لایه پنهان (Hidden Layer) چیست؟

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

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

عبارت «الگوهای پنهان» کلید فهم لایه‌های پنهان است.

این لایه‌ها دقیقاً همان جایی هستند که یادگیری واقعی اتفاق می‌افتد.

به همین دلیل، آن‌ها را قلب شبکه‌های عصبی می‌دانند.

چرا به آن «لایه پنهان» می‌گویند؟

بسیاری از افراد تصور می‌کنند واژه «پنهان» به معنای مخفی یا رمزآلود بودن این لایه‌هاست، اما دلیل نام‌گذاری بسیار ساده‌تر است.

کاربر تنها ورودی را به شبکه می‌دهد و خروجی را مشاهده می‌کند. آنچه بین این دو رخ می‌دهد، مستقیماً قابل مشاهده نیست. این بخش میانی همان لایه‌های پنهان هستند.

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

یک مثال از زندگی روزمره

فرض کنید دوستتان را از فاصله دور می‌بینید.

آیا مغز شما فقط با یک ویژگی تصمیم می‌گیرد؟

خیر.

ابتدا قد او را بررسی می‌کند.

سپس رنگ لباس.

بعد مدل مو.

بعد فرم صورت.

بعد نحوه راه رفتن.

در نهایت تمام این اطلاعات را کنار هم قرار می‌دهد و نتیجه می‌گیرد:

«بله، این دوست من است.»

مغز انسان این تصمیم را در چند صدم ثانیه می‌گیرد.

شبکه عصبی نیز دقیقاً همین مسیر را طی می‌کند.

مثال تشخیص گربه

فرض کنید هزاران تصویر گربه و سگ به شبکه داده‌ایم.

در ابتدا شبکه هیچ تفاوتی میان آن‌ها نمی‌داند.

اما پس از آموزش، لایه‌های پنهان به تدریج ویژگی‌ها را یاد می‌گیرند.

برای مثال:

لایه پنهان اول

  • خطوط افقی
  • خطوط عمودی
  • لبه‌ها
  • گوشه‌ها

این لایه فقط اشکال بسیار ساده را تشخیص می‌دهد.

لایه پنهان دوم

اکنون اطلاعات لایه اول را ترکیب می‌کند.

برای مثال:

  • گوش
  • چشم
  • بینی
  • دم

لایه پنهان سوم

ویژگی‌های بزرگ‌تر ساخته می‌شوند.

مثلاً:

  • سر گربه
  • بدن گربه
  • حالت صورت

لایه آخر

تمام اطلاعات را کنار هم قرار می‌دهد.

نتیجه:

🐱 این تصویر متعلق به یک گربه است.

به همین دلیل است که هرچه تعداد لایه‌های پنهان بیشتر باشد، شبکه می‌تواند ویژگی‌های پیچیده‌تری را یاد بگیرد.

یک تصویر ذهنی

اگر بخواهیم این فرآیند را بسیار ساده نمایش دهیم، خواهیم داشت:

پردازش اطلاعات در شبکه عصبی
پردازش اطلاعات در شبکه عصبی

دقیقاً به همین دلیل است که شبکه‌های عصبی در تشخیص تصویر عملکرد فوق‌العاده‌ای دارند.

وزن (Weight) چیست؟

اکنون به یکی از مهم‌ترین مفاهیم شبکه‌های عصبی می‌رسیم.

فرض کنید می‌خواهیم قبولی یک دانشجو را پیش‌بینی کنیم.

اطلاعات زیر را داریم:

  • معدل
  • ساعت مطالعه
  • تعداد غیبت
  • رنگ خودکار
  • شماره صندلی

آیا همه این اطلاعات ارزش یکسانی دارند؟

قطعاً خیر.

هیچ استادی بر اساس رنگ خودکار دانشجو نمره نمی‌دهد.

اما ساعت مطالعه یا معدل تأثیر بسیار زیادی دارد.

پس باید اهمیت هر ویژگی مشخص شود.

در شبکه عصبی، این اهمیت با عددی به نام وزن (Weight) مشخص می‌شود.

✅ بیشتر بخوانیم 👈👈👈  خودروهای هوشمند | آینده رانندگی با هوش مصنوعی و فناوری ADAS

وزن چه کاری انجام می‌دهد؟

وزن تعیین می‌کند هر ورودی چه اندازه در تصمیم نهایی اثر بگذارد.

اگر وزن زیاد باشد،

آن ویژگی اهمیت بالایی دارد.

اگر وزن کوچک باشد،

تأثیر آن نیز کم خواهد بود.

اگر وزن تقریباً صفر باشد،

شبکه تقریباً آن ویژگی را نادیده می‌گیرد.

مثال پیش‌بینی قیمت خانه

فرض کنید قرار است قیمت خانه پیش‌بینی شود.

ورودی‌ها:

ویژگی اهمیت
متراژ بسیار زیاد
منطقه زیاد
سن ساختمان متوسط
تعداد پنجره کم
رنگ دیوار تقریباً صفر

شبکه عصبی نیز پس از آموزش دقیقاً به همین نتیجه می‌رسد.

ابتدا همه وزن‌ها تصادفی هستند.

اما پس از مشاهده هزاران نمونه، یاد می‌گیرد که متراژ مهم‌تر از رنگ دیوار است.

این همان چیزی است که ما آن را یادگیری می‌نامیم.

شبکه چگونه وزن‌ها را یاد می‌گیرد؟

فرض کنید شبکه قیمت خانه‌ای را ۵ میلیارد تومان پیش‌بینی کرده است.

اما قیمت واقعی ۶ میلیارد تومان است.

پس شبکه یک میلیارد تومان خطا کرده است.

الگوریتم آموزش این خطا را بررسی می‌کند و به شبکه می‌گوید:

  • وزن متراژ را بیشتر کن.
  • وزن منطقه را کمی تغییر بده.
  • وزن رنگ دیوار را کاهش بده.

این فرآیند هزاران بار تکرار می‌شود.

در نهایت وزن‌ها به بهترین مقدار ممکن می‌رسند.

بنابراین می‌توان گفت:

شبکه عصبی چیزی را حفظ نمی‌کند؛ بلکه وزن‌های خود را تنظیم می‌کند.

بایاس (Bias) چیست؟

اکنون تصور کنید دو خانه کاملاً مشابه داریم.

هر دو:

  • ۱۲۰ متر
  • دو خوابه
  • پارکینگ
  • آسانسور

اما یکی از آن‌ها در خیابان اصلی قرار دارد.

قیمت آن کمی بیشتر است.

گاهی فقط وزن‌ها برای ایجاد این تفاوت کافی نیستند.

در اینجا مفهومی به نام بایاس (Bias) وارد عمل می‌شود.

بایاس را چگونه تصور کنیم؟

فرض کنید ترازوی دیجیتال شما قبل از قرار دادن هر وسیله، عدد ۲۰۰ گرم را نشان می‌دهد.

این مقدار اولیه، همان چیزی است که در شبکه عصبی به آن بایاس می‌گوییم.

یا تصور کنید معلمی همیشه به همه دانش‌آموزان نیم نمره ارفاق می‌دهد.

آن نیم نمره همان نقش بایاس را بازی می‌کند.

بایاس باعث می‌شود شبکه انعطاف بیشتری داشته باشد و بتواند تصمیم‌های دقیق‌تری بگیرد.

تفاوت وزن و بایاس

بسیاری از افراد این دو مفهوم را با هم اشتباه می‌گیرند.

تفاوت آن‌ها بسیار ساده است.

وزن

به هر ورودی وابسته است.

مثلاً اهمیت متراژ یا تعداد اتاق‌ها را مشخص می‌کند.

بایاس

به هیچ ورودی وابسته نیست.

بلکه یک مقدار ثابت است که قبل از تصمیم‌گیری به محاسبات اضافه می‌شود.

اگر بخواهیم یک مثال روزمره بزنیم:

  • وزن مانند شدت صدای هر ساز در یک ارکستر است.
  • بایاس مانند صدای پس‌زمینه‌ای است که همیشه وجود دارد و روی نتیجه نهایی اثر می‌گذارد.

آیا وزن‌ها همیشه ثابت هستند؟

خیر.

اتفاقاً مهم‌ترین ویژگی شبکه‌های عصبی این است که وزن‌ها دائماً تغییر می‌کنند.

هر بار که شبکه اشتباه می‌کند، وزن‌ها کمی اصلاح می‌شوند.

اگر میلیون‌ها تصویر به شبکه نشان دهیم، میلیون‌ها بار وزن‌ها تنظیم می‌شوند.

پس از پایان آموزش، شبکه به وزن‌هایی می‌رسد که بهترین عملکرد را دارند.

به همین دلیل، وقتی می‌گوییم یک مدل هوش مصنوعی آموزش دیده است، در واقع منظور این است که وزن‌های آن بهینه شده‌اند.

ادامه دارد…

در بخش بعدی با مهم‌ترین قسمت تصمیم‌گیری در شبکه‌های عصبی یعنی تابع فعال‌سازی (Activation Function) آشنا می‌شویم. سپس یک مثال کامل را از ورود داده تا تولید خروجی مرحله‌به‌مرحله بررسی خواهیم کرد، ساختار شماتیک یک شبکه عصبی را رسم می‌کنیم، کاربردهای واقعی آن را مرور خواهیم کرد و در پایان، مقدمه‌ای برای ورود به فصل پنجم: یادگیری عمیق (Deep Learning) ارائه می‌دهیم؛ جایی که خواهیم دید چگونه افزایش تعداد لایه‌ها، شبکه‌های عصبی را به مدل‌های قدرتمندی مانند ChatGPT، سامانه‌های تشخیص تصویر و مترجم‌های هوشمند تبدیل می‌کند.

تابع فعال‌سازی (Activation Function)؛ مغز تصمیم‌گیرنده هر نورون

تا اینجا یاد گرفتیم که هر نورون مصنوعی اطلاعات را دریافت می‌کند، برای هر ورودی یک وزن (Weight) در نظر می‌گیرد و در صورت نیاز بایاس (Bias) را نیز به محاسبات اضافه می‌کند.

اما هنوز یک سؤال مهم باقی مانده است.

فرض کنید تمام این محاسبات انجام شد و در پایان یک عدد به دست آمد.

حالا چه اتفاقی می‌افتد؟

آیا هر عددی باید به نورون بعدی ارسال شود؟

اگر پاسخ مثبت باشد، تمام نورون‌ها همیشه فعال خواهند بود و شبکه تقریباً هیچ تفاوتی میان اطلاعات مهم و غیرمهم قائل نمی‌شود. در چنین حالتی، قدرت یادگیری شبکه به شدت کاهش می‌یابد.

اینجاست که تابع فعال‌سازی (Activation Function) وارد عمل می‌شود.

نورون بایاس تایع فعال ساز
نورون بایاس تایع فعال ساز

تابع فعال‌سازی دقیقاً چه کاری انجام می‌دهد؟

تابع فعال‌سازی مانند یک نگهبان در ورودی یک ساختمان است.

فرض کنید افراد زیادی قصد ورود به یک سالن را دارند.

نگهبان همه را بدون بررسی وارد نمی‌کند. او ابتدا شرایط هر فرد را بررسی می‌کند و سپس تصمیم می‌گیرد چه کسی اجازه ورود داشته باشد.

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

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

یک مثال ساده؛ چراغ هوشمند

فرض کنید در راهروی یک ساختمان، چراغی نصب شده که به حسگر حرکتی مجهز است.

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

اما اگر حرکت از یک حد مشخص بیشتر باشد، چراغ روشن می‌شود.

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

به همین دلیل است که این تابع، نقش مهمی در تصمیم‌گیری شبکه‌های عصبی دارد.

چرا وجود تابع فعال‌سازی ضروری است؟

شاید این سؤال برایتان پیش بیاید که اگر نورون‌ها وزن و بایاس دارند، دیگر چه نیازی به تابع فعال‌سازی است؟

✅ بیشتر بخوانیم 👈👈👈  متدهای رشته در پایتون؛ آموزش کامل String Methods و فرمت‌دهی حرفه‌ای | جلسه ۱۲

پاسخ در یک واژه خلاصه می‌شود: پیچیدگی.

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

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

به همین دلیل، بسیاری از متخصصان می‌گویند:

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

معروف‌ترین توابع فعال‌سازی

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

  • Sigmoid: خروجی را بین ۰ و ۱ قرار می‌دهد و در مسائل دودویی کاربرد دارد.
  • Tanh: خروجی را بین ۱- و ۱ قرار می‌دهد و نسبت به Sigmoid متعادل‌تر است.
  • ReLU: یکی از پرکاربردترین توابع در شبکه‌های عصبی عمیق است و سرعت آموزش بالایی دارد.
  • Softmax: معمولاً در لایه خروجی برای انتخاب یکی از چندین کلاس استفاده می‌شود.

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

یک مثال کامل؛ از ورود داده تا تصمیم نهایی

اکنون بیایید تمام مفاهیمی را که در این فصل یاد گرفته‌ایم، کنار هم قرار دهیم.

فرض کنید می‌خواهیم یک شبکه عصبی تشخیص دهد که آیا یک ایمیل هرزنامه (Spam) است یا خیر.

مرحله اول: ورود اطلاعات

ویژگی‌های زیر وارد لایه ورودی می‌شوند:

  • آیا کلمه «رایگان» در متن وجود دارد؟
  • آیا تعداد لینک‌ها زیاد است؟
  • آیا فرستنده ناشناس است؟
  • آیا عنوان ایمیل اغراق‌آمیز است؟

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

مرحله دوم: اعمال وزن‌ها

اکنون هر ویژگی بر اساس اهمیتی که در گذشته یاد گرفته است، وزن دریافت می‌کند.

برای مثال:

  • فرستنده ناشناس → وزن زیاد
  • تعداد لینک‌ها → وزن متوسط
  • وجود کلمه «رایگان» → وزن زیاد
  • رنگ پس‌زمینه ایمیل → وزن بسیار کم

این وزن‌ها نتیجه آموزش شبکه با هزاران نمونه واقعی هستند.

مرحله سوم: اضافه شدن بایاس

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

مرحله چهارم: تابع فعال‌سازی

تابع فعال‌سازی بررسی می‌کند که آیا نتیجه محاسبات به اندازه کافی قوی است یا خیر.

اگر پاسخ مثبت باشد، سیگنال به لایه بعدی منتقل می‌شود.

مرحله پنجم: خروجی نهایی

در نهایت، لایه خروجی اعلام می‌کند:

📧 احتمال هرزنامه بودن ایمیل: ۹۸ درصد

یا

📧 این ایمیل سالم است.

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

نمای شماتیک یک شبکه عصبی

نمای شماتیک یک شبکه عصبی
نمای شماتیک یک شبکه عصبی

در این شکل:

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

شبکه‌های عصبی در دنیای واقعی چه کاربردی دارند؟

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

برخی از مهم‌ترین کاربردهای آن‌ها عبارت‌اند از:

  • تشخیص چهره برای باز کردن قفل تلفن همراه
  • پیشنهاد فیلم و موسیقی در سرویس‌های آنلاین
  • فیلتر کردن ایمیل‌های هرزنامه
  • ترجمه هم‌زمان زبان‌ها
  • تشخیص بیماری از تصاویر پزشکی
  • خودروهای خودران
  • دستیارهای صوتی مانند Siri و Google Assistant
  • تولید متن، تصویر و کد توسط مدل‌های هوش مصنوعی

تمام این سامانه‌ها بر پایه همان مفاهیمی ساخته شده‌اند که در این فصل با آن‌ها آشنا شدید.

جمع‌بندی

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

همچنین آموختیم که:

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

درک این مفاهیم، پایه‌ای ضروری برای یادگیری تمام شاخه‌های پیشرفته هوش مصنوعی است.

نگاهی به فصل پنجم؛ آغاز دنیای یادگیری عمیق

اکنون که با ساختار یک شبکه عصبی آشنا شدیم، زمان آن رسیده است که به پرسشی مهم پاسخ دهیم:

اگر به‌جای یک یا دو لایه پنهان، ده‌ها یا حتی صدها لایه داشته باشیم، چه اتفاقی می‌افتد؟

پاسخ این سؤال ما را وارد فصل جدیدی از دنیای هوش مصنوعی می‌کند؛ یادگیری عمیق (Deep Learning).

در فصل پنجم خواهیم دید که تفاوت اصلی یادگیری ماشین (Machine Learning) و یادگیری عمیق (Deep Learning) تنها در استفاده از داده‌های بیشتر نیست؛ بلکه در عمق و ساختار شبکه‌های عصبی نهفته است. خواهیم آموخت چگونه شبکه‌های عمیق می‌توانند ویژگی‌ها را به‌صورت خودکار استخراج کنند و همین قابلیت، آن‌ها را به زیربنای فناوری‌هایی مانند ChatGPT، سامانه‌های تشخیص تصویر، ترجمه ماشینی و مدل‌های مولد تبدیل کرده است.

پرسش‌های متداول (FAQ)

شبکه عصبی چیست؟

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

لایه پنهان چه وظیفه‌ای دارد؟

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

تفاوت وزن و بایاس چیست؟

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

تابع فعال‌سازی چه نقشی دارد؟

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

تحقیق و تدوین مهدی گمرکی

مشاوره تجارت الکترونیکی

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

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

برای ثبت نظر عبارت ریاضی را وارد کنید! *در حال بارگذاری کپچا...