شبکه عصبی چیست؟
تابع فعال‌سازی در شبکه های عصبی چه کاربردی دارد؟
اگر اخبار دنیای فناوری و به ویژه هوش مصنوعی را با دقت دنبال کنید، مشاهده می‌کنید که در سال‌های اخیر، شبکه‌های عصبی مهم‌ترین و جذاب‌ترین حوزه هوش مصنوعی بوده‌اند. به طوری که پژوهش‌گران تحقیقات زیادی در ارتباط با این شبکه‌ها انجام داده‌اند. روزانه، معماری‌های جدیدی از شبکه‌های عصبی پیشنهاد و راه‌حل‌های مختلفی برای بهبود عملکرد ساختار مدل‌های عمیق ارائه می‌شوند. یکی از مولفه‌های کلیدی و تاثیرگذار شبکه‌های عصبی، تابع فعال‌سازی (Activation Function) است که نقش آن در فرآیند یادگیری شبکه عصبی، تفکیک اطلاعات مهم داده‌های ورودی از اطلاعات اهمیت زیادی دارد. در این مطلب تابع فعالسازی در شبکه‌های عصبی را تعریف کرده و توضیحاتی در ارتباط با انواع مختلف توابع فعال‌سازی در شبکه‌های عصبی ارائه خواهیم کرد.

1606683296_1_0.gif

تابع فعال‌سازی‌ چیست؟

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

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

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

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

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

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

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

اجزای شبکه‌های عصبی مصنوعی کدامند‌؟

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

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

اتصالات: اتصالات بین نورون‌ها مسئول انتقال اطلاعات در شبکه عصبی هستند. هر اتصال دارای وزن است که نشان دهنده اهمیت آن اتصال در فرایند تصمیم‌گیری است. وزن‌ها در حین آموزش شبکه تعیین می‌شوند و نقش مهمی در عملکرد شبکه دارند.

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

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

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

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

  • لایه ورودی (Input Layer): این لایه وظیفه دریافت ورودی‌ها از محیط را دارد. هر گره در لایه ورودی یک ورودی را دریافت می‌کند که ممکن است مستقیما از داده‌های ورودی یا از خروجی لایه‌های قبلی باشد. تعداد گره‌ها در لایه ورودی معمولا با تعداد ویژگی‌های ورودی مطابقت دارد.
  • لایه‌های پنهان (Hidden Layers): این لایه‌ها بین لایه ورودی و لایه خروجی قرار می‌گیرند و محاسبات میانی را انجام می‌دهند. هر لایه پنهان شامل گروهی از گره‌ها است که با هم ارتباط دارند. لایه‌های مخفی به شبکه عصبی امکان می‌دهند الگوها و روابط پیچیده‌تر را در داده‌ها تشخیص دهند.
  • لایه خروجی (Output Layer): این لایه وظیفه تولید خروجی نهایی شبکه را بر عهده دارد. تعداد گره‌ها در این لایه معمولا با تعداد کلاس‌ها یا بعد خروجی مطابقت دارد. هر گره در لایه خروجی معمولا یک مقدار خروجی را تولید می‌کند که می‌تواند برای تصمیم‌گیری یا پیش‌بینی استفاده شود.

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

گره یا Node در شبکه های عصبی چیست ؟

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

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

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

مفاهیم مرتبط با توابع فعالسازی در شبکه های عصبی

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

  • تابع سیگموئید (Sigmoid Function): تابع سیگموئید یک تابع غیرخطی با محدوده خروجی بین 0 و 1 است. این تابع برای تبدیل ورودی‌های متناهی به خروجی‌های غیرمتناهی استفاده می‌شود. تابع سیگموئید معمولاً در شبکه‌های عصبی بازگشتی و شبکه‌های پیش‌خور پیشرو استفاده می‌شود.
  • تابع ReLU سرنام  (Rectified Linear Unit): تابع ReLU تابعی خطی است که ورودی مثبت را بدون تغییر باقی می‌گذارد و ورودی‌های منفی را به صفر تبدیل می‌کند. این تابع به عنوان یک تابع فعال‌سازی پرکاربرد در شبکه‌های عصبی پیشرو به خصوص در وظایف شناسایی الگوها و دسته‌بندی استفاده می‌شود.
  • تابع تانژانت هیپربولیک (Hyperbolic Tangent Function): تابع تانژانت هیپربولیک نیز یک تابع غیرخطی است که محدوده خروجی آن بین -1 و 1 قرار دارد. این تابع مشابه تابع سیگموئید است، اما با محدوده خروجی بزرگتر. تابع تانژانت هیپربولیک عموما در شبکه‌های عصبی پیش‌خور و بازگشتی استفاده می‌شود.
  • تابع Softmax: تابع Softmax یک تابع غیرخطی است که ورودی‌های عددی را به یک توزیع احتمالی چندجمله‌ای تبدیل می‌کند. این تابع برای مسائل دسته‌بندی چندکلاسه مانند تشخیص تصویر، ترجمه ماشینی و ساخت زیرنویس برای تصویر استفاده می‌شود.

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

تابع پله دودویی (Binary Step Function)

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

f(x) = {

    0, if x < 0

    1, if x >= 0

}

در اینجا، اگر ورودی به تابع کمتر از آستانه (threshold) باشد، خروجی برابر با صفر (0) است و در غیر این صورت، خروجی برابر با یک (1) است. تابع پله دودویی به عنوان یک تابع فعالسازی ساده استفاده می‌شود، اما به دلیل خطی بودن و عدم توانایی مدل‌سازی رفتارهای پیچیده‌تر، در شبکه‌های عصبی عموما استفاده نمی‌شود. به جای آن، توابع فعالسازی غیرخطی مانند تابع سیگموید (sigmoid)، تابع ReLU و تابع تانژانت هایپربولیک (tanh) مورد استفاده قرار می‌گیرند که قدرت بیشتری در مدل‌سازی رفتارهای پیچیده دارند و بهبود عملکرد شبکه‌های عصبی را ممکن می‌سازند.

تابع فعالسازی خطی (Linear Activation Function)

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

f(x) = x

در اینجا، خروجی تابع برابر با ورودی است، بدون هیچ تبدیل یا تغییری در آن.

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

در عمل، توابع فعالسازی غیرخطی مانند تابع سیگموید (sigmoid)، تابع ReLU و تابع تانژانت هایپربولیک (tanh) قدرت بیشتری دارند و به شبکه‌های عصبی امکان می‌دهند الگوهای غیرخطی را بهبود بخشند و عملکرد بهتری داشته باشند.

تابع فعالسازی غیرخطی (Non-linear Activation Function)

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

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

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

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟