ما هي Sigmoid Function؟
عندما أن تريد أن تدرس مجالات الذكاء الأصطناعي بما فيها مجال تعلم الالة Machine Learning ومجال الشبكات العصبية Neural Network،لابد أن تتعرف على مفهوم Sigmoid Function فهذه الدالة مهمة جداً في هذه ألمجالات وبلأخص في الشبكات العصبية وخوارزمية Logistic Regression.
وسنتطرق في هذه المقالة ألى تعريف Sigmoid Function وكيفية عملها وتوضيحها في مثال عملي تم أنشاءه بلغة بايثون الرائعة. ويمكننا أن نعَرف هذه الدالة بأنها دالة نموذجية مستخرجة من الدالة الأصل وهي Function Logisticوألتي تكون صيغتها الرياضية بالشكل التالي:
K: أنحدار المنحنى.
x0: قيمة x في منتصف الدالة.
وعند التعويض في ألقيم (L=1, k=1, x0=0) سنكون قد أستخرجنا لدينا Sigmoid Function وألتي ستكون صيغتها الرياضية بالشكل التالي:
كما نرى في الشكل أدناه، ألدالة عند رسمها بيانياً متخذةً شكل منحنى (S).
نلاحظ من خلال الشكل أن قيم x تحتوي على أعداد موجبة وسالبة، أي أنها تكون محصورة بين +ꚙ و -ꚙ. و ناتج الدالة Sigmoid(x) أو y تكون القيم محصورة بين 0 و 1. لذلك هنا تتجلى لنا أهمية دالة Sigmoid فعندما تكون لدينا قيم سالبة في المدخل input للدالة سيكون الناتج دائما موجب(وهذا شيء مهم في عملية التصنيف Classification،فمن غير ألمنطقي أن نحصل على ناتج أعداد سالبة!!!).
يتم أستخدام هذه الدالة في عمليات ألتصنيف للحصول على نتيجة yes/No، 10/..الخ، عن طريق أختيار قيمة threshold وتكون قيمتها عادةً 0.5،ونقول أذا كان الناتج أكبر من 0.5 فسينتمي الى فئة yes، وأذا كان الناتج أصغر من 0.5 فسينتمي الى فئة No وهكذا. ويمكن أيضاً الحصول على قيم الأحتمالية Probability ألتي تكون محصورة بين 0 و 1.والأن نأتي الى رسم هذه الدالة بلغة بايثون من خلال المثال البسيط ألتالي:
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(-10, 10, 100)
z = 1 / (1 + np.exp(-x))
plt.plot(x, z)
plt.xlabel("x")
plt.ylabel("Sigmoid(X)")
plt.show()
والآن نأتي ألى نهاية ألمقال وأرجوا أن نال أستحسانكم وأن شاء الله تم أستيعاب هذا المفهوم في مجالات تعلم الآلة والشبكات ألعصبية وأستودعكم ألله ودمتم بحفظه ورعايته.وأذا كان لديكم أي سؤال وأستفسار فأتركوه لي في خانة التعليقات في الأسفل.
عاشت ايدك
ردحذفوايدك العايشة
حذف