تابع سیگموئید

تابع سیگموئید یا سیگماوار (به انگلیسی: Sigmoid function) تابعی حقیقی، یکنوا، کراندار و مشتقپذیر است که به ازای کلیه مقادیر حقیقی قابل تعریف بوده دارای مشتق نامنفی است[۱] که دارای یک نقطهی عطف است. این تابع به لحاظ گرافیکی شکلی شبیه حرف S انگلیسی و سیگما در یونانی دارد و دارای رابطه کلی زیر است:[۱]
دامنه توابع سیگموئید شامل تمامی اعداد حقیقی بوده و مقدار بازگشتی این تابع نیز به طور یکنواخت از 0 تا 1 یا باتوجه به نوع تابع از 1 تا 1- تغییر میکند. طیف گسترده ای از توابع سیگموئید از جمله توابع لجستیک و هذلولی به عنوان تابع فعالسازی در شبکههای عصبی استفاده میشود. منحنیهای سیگموئید نیز در آمار به عنوان توابع توزیع تجمعی مانند انتگرالهای چگالی لجستیک، چگالی نرمال و توابع چگالی تی-استیودنت رایج هستند.
خواص
[ویرایش | اشتراکگذاری]
تابع سیگموئید لجستیک معکوسپذیر است و معکوس آن تابع لوجیت است.
تابع سیگموئید دارای مشتق مرتبه اول است که شکلی مشابه با زنگوله (bell shaped) دارد.
تابع سیگموئید برای مقادیر کمتر از یک نقطه خاص شکلی محدب و برای مقادیر بزرگتر از آن نقطه شکلی مقعر دارد.
تابع سیگموئید دارای دو مجانب افقی است:
مشتق این تابع برابر است با:[۲]
نمونههایی از توابع سیگموئید
[ویرایش | اشتراکگذاری]
توابع سیگموئید به چندین شکل و فرم متفاوت وجود دارند و هر یک دارای خصوصیات منحصر به فرد خود میباشند. در زیر به برخی از مهمترین انواع توابع سیگموئید پرداخته شده است:
این تابع شاید معروف ترین شکل تابع سیگموئید باشد و به صورت زیر تعریف می شود:
تابع tanh
[ویرایش | اشتراکگذاری]بر خلاف تابع لجستیک، تابع tanh خروجیهایی بین -1 و 1 تولید می کند. این تابع به صورت زیر تعریف می شود:
تابع arctan
[ویرایش | اشتراکگذاری]این تابع یک نوع دیگر از تابع سیگموئید است که خروجیهای بین و تولید میکند.
تابع Gompertz
[ویرایش | اشتراکگذاری]تابع Gompertz یک تابع سیگموئید است که معمولاً در مدل سازی سیستمهایی که رشد اولیه سریع و در ادامه به کندی رشد میکند، مورد استفاده قرار میگیرد. فرمول آن به صورت زیر است:
تابع معکوس و اصلاح شده (ISRU و ISRLU)[۳]
[ویرایش | اشتراکگذاری]این دو تابع اخیراً در حوزه یادگیری عمیق معرفی شده اند. تابع ISRU (Inverted Square Root Unit) و ISRLU (Inverted Square Root Linear Unit) بر اساس تابع سیگموئید هستند و به ترتیب فرمول زیر را دارند:
کاربردها
[ویرایش | اشتراکگذاری]
بسیاری از فرآیندهای طبیعی، مانند منحنیهای فراگیری سیستم پیچیده، پیشرفتی را از ابتدای آغاز نشان میدهند که در طول زمان سرعت میگیرد و به اوج خود نزدیک میشود. هنگامی که یک مدل ریاضی خاص وجود ندارد، اغلب از یک تابع سیگموئید استفاده میشود.[۴]
در شبکه های عصبی مصنوعی، گاهی اوقات از توابع غیرساده برای افزایش بازدهی استفاده میشود که اینها به عنوان سیگموئیدهای سخت شناخته می شوند.
در پردازش سیگنال صوتی، از توابع سیگموئید به عنوان توابع انتقال شکل موج برای شبیه سازی صدای قطع الکترونیک آنالوگ استفاده می شود.
مشکلات و محدودیتها
[ویرایش | اشتراکگذاری]هرچند تابع سیگموئید بسیار کاربردی است، اما برخی محدودیت ها و مشکلاتی دارد:
اشباع و کشیدگی گرادیان
[ویرایش | اشتراکگذاری]وقتی ورودی های تابع سیگموئید خیلی بزرگ یا خیلی کوچک می شود، تابع سیگموئید به سرعت به سمت 1 یا 0 می رود. در این نقاط، مشتق تابع نزدیک به صفر است، به این معنی که تغییرات کوچک در ورودی تقریباً هیچ تأثیری بر خروجی ندارد. این موضوع می تواند به مشکلاتی در یادگیری ماشین منجر شود.
ورودی های منفی
[ویرایش | اشتراکگذاری]تابع سیگموئید فقط می تواند ورودی های حقیقی را بپذیرد. بنابراین، اگر داده ها ورودی منفی دارند، باید آنها را قبل از استفاده از تابع سیگموئید مقیاس(scale) کنید.
منابع
[ویرایش | اشتراکگذاری]- 1 2 "From natural to artificial neural computation". Archive (in English).
- ↑ "On Some Properties of the Sigmoid Function". ResearchGate (in English).
- ↑ "Improving Deep Learning by Inverse Square Root Linear Units (ISRLUs)". Arxiv (in English).
- ↑ "Variational Gaussian process classifiers". Semantic Scholar (in English).