دالة الفقد أو دالة التكلفة Loss function Or Cost function

دالة الفقد ، و المعروفة أيضًا باسم دالة التكلفة أو دالة الهدف ، هي دالة رياضية تستخدم لتقييم الفقد أو “الخسارة” بين النتائج المتوقعة للنموذج والمخرجات الفعلية. الهدف من نموذج التعلم الآلي هو تقليل قيمة دالة الفقد، والتي تقيس مدى قدرة النموذج على إجراء تنبؤات دقيقة.

يعتمد اختيار دالة الفقد على نوع المهمة التي يتم حلها و أهداف النموذج. على سبيل المثال ، في مهام التصنيف الثنائي ، فإن دالة الفقد الأكثر شيوعًا هي فقد الانتروبيا التقاطعية الثنائية Binary cross-entropy loss. في مهام التنبؤ او الإنحدار، يعتبر متوسط الخطأ التربيعي (MSE) دالة الفقد الشائعة الإستخدام.

توفر دالة الفقد مقياسًا لمدى قدرة النموذج على ملاءمة البيانات ، ويؤدي تحسين دالة الفقد أثناء عملية التدريب إلى نموذج يقدم أفضل التنبؤات الممكنة في ضوء البيانات المدرب عليها. تعد دالة الفقد مكونًا مهمًا في أي نموذج للتعلم الآلي ، والفهم الجيد لدالة الفقد المستخدمة أمر ضروري لضمان أن النموذج يناسب البيانات بشكل صحيح.

في هذا المقال، سنتطرق إلى دور دوال الفقد  في تدريب الشبكات العصبية للتعلم العميق وكيفية اختيار دالة الفقد المناسبة لمهام لنمذجة التنبؤية.

تعلم الشبكة العصبية ك طريقة من طرق التحسين (الإستمثال الرياضي)

تتعلم الشبكة العصبية تعيين مجموعة من المدخلات لمجموعة من المخرجات من بيانات التدريب. نظرا لصعوبة التمكن من حساب الأوزان المثالية للشبكات العصبية يتم إعتبار مشكلة التعلم على أنها مشكلة بحث أو تحسين ويتم استخدام خوارزميات مثل خوارزمية النزول الإشتقاقي Gradient Descant للتنقل في مساحة المجموعات المحتملة من الأوزان التي قد يستخدمها النموذج من أجل عمل تنبؤات جيدة بدرجة كافية. عادة ، يتم تدريب نموذج الشبكة العصبية باستخدام خوارزمية تحسين النسب العشوائية ويتم تحديث الأوزان باستخدام خوارزمية الانتشار العكسي Backpropagation. تسعى خوارزمية النزول الإشتقاقي Gradient Descant إلى تغيير الأوزان بحيث يقلل التقييم التالي نسبة الخطأ ، مما يعني أن خوارزمية التحسين تتنقل إلى أسفل تدرج (أو ميل) للخطأ.

الآن بعد أن علمنا أن تدريب الشبكات العصبية يحل مشكلة التحسين ، يمكننا النظر في كيفية حساب خطأ مجموعة معينة من الأوزان.

ما هي دالة الفقد في الشبكة العصبية؟

في سياق خوارزمية التحسين optimization algorithm ، يشار إلى الدالة المستخدمة لتقييم حل مرشح معين (أي مجموعة من الأوزان) على أنها دالة الهدف. قد نسعى إلى زيادة أو تقليل دالة الهدف ، مما يعني أننا نبحث عن حل مرشح له أعلى أو أدنى درجة على التوالي. عادة ، مع الشبكات العصبية ، نسعى لتقليل الخطأ. على هذا النحو ، غالبًا ما يشار إلى دالة الهدف على أنها دالة التكلفة أو دالة الفقد ويشار إلى القيمة المحسوبة بواسطة دالة الفقد ببساطة باسم “فقد Loss“. قد نسميها أيضًا دالة التكلفة cost function أو دالة الفقد loss function أو دالة الخطأ error function.

الآن بعد أن أصبحنا على دراية بمعنى الفقد و دالة الفقد ، نحتاج إلى معرفة الدوال التي يجب استخدامها.

التقدير حسب الإمكانية القصوى Maximum Likelihood

هناك العديد من الدوال التي يمكن استخدامها لتقدير خطأ مجموعة من الأوزان في الشبكة العصبية.

الأفضلية تكون للدوال التي تعين مساحة الحلول المرشحة على توزيع طبيعي سلس (ولكن عالي الأبعاد) بحيث يمكن لخوارزمية التحسين التنقل بشكل معقول عبر التحديثات التكرارية لأوزان النموذج.

تقدير الإمكانية القصوى Maximum Likelihood Estimation ، أو MLE ، هي إطار عمل للاستدلال للعثور على أفضل التقديرات الإحصائية للمعلمات من بيانات التدريب المحفوظة: بالضبط ما نحاول القيام به مع الشبكة العصبية.

يسعى تقدير الإمكانية القصوى Maximum Likelihood للعثور على القيم المثلى للمعلمات من خلال تكبير دالة الاحتمالية likelihood function المستمدة من بيانات التدريب.

لدينا مجموعة بيانات تدريبية مع واحد أو أكثر من متغيرات الإدخال ونطلب نموذجًا لتقدير معلمات وزن النموذج التي تعين أفضل الأمثلة على المدخلات إلى الناتج أو المتغير المستهدف.

بالنظر إلى المدخلات ، يحاول النموذج إجراء تنبؤات تتوافق مع توزيع بيانات المتغير المستهدف. في ظل أقصى احتمال ، تقدر دالة الغفد مدى تطابق توزيع التنبؤات التي قدمها النموذج مع توزيع المتغيرات المستهدفة في بيانات التدريب.

تتمثل إحدى طرق تفسير تقدير الإمكانية القصوى Maximum Likelihood في النظر إليه على أنه تقليل الاختلاف بين التوزيع التجريبي […] المحدد بواسطة مجموعة التدريب وتوزيع النموذج ، مع قياس درجة الاختلاف بين الاثنين بواسطة اختلاف KL. […] التقليل من هذا الاختلاف KL يتوافق تمامًا مع تقليل الانتروبيا التبادلية بين التوزيعات.

تتمثل فائدة استخدام أقصى احتمال كإطار عمل لتقدير معلمات النموذج (الأوزان) للشبكات العصبية وفي التعلم الآلي بشكل عام في أنه مع زيادة عدد العينات في مجموعة بيانات التدريب ، يتحسن تقدير معلمات النموذج. وهذا ما يسمى بخاصية “التناسق consistency” .

في الظروف القياسية المناسبة ، يتمتع تقدير الإمكانية القصوى Maximum Likelihood بخاصية الاتساق ، مما يعني أنه مع اقتراب عدد عينات التدريب من اللانهاية ، يتقارب الحد الأقصى لتقدير الاحتمالية للمعامل مع القيمة الحقيقية للمعامل.

الإمكانية القصوى مقابل الانتروبيا المتقاطعة maximum likelihood vs cross entropy

في إطار الإمكانية القصوى Maximum Likelihood للإطار ، يتم قياس الخطأ بين توزيعين احتماليين باستخدام الانتروبيا المتقاطعة cross entropy.

عند نمذجة مسائل التصنيف حيث نحن مهتمون بتعيين متغيرات الإدخال لتسمية فئة معينة ، يمكننا نمذجة المسألة على أنها توقع احتمالية أحد الأمثلة التي تنتمي إلى كل فئة. في مسألة التصنيف الثنائي ، سيكون هناك فئتان ، لذلك قد نتوقع احتمالية انتماء المثال إلى الفئة الأولى. أما في حالة التصنيف متعدد الفئات ، يمكننا التنبؤ باحتمالية المثال الذي ينتمي إلى كل فئة من الفئات.

في مجموعة بيانات التدريب Trianing Dataset، سيكون احتمال وجود مثال ما ينتمي إلى فصل معين إما 0 أو 1 ، حيث أن كل عينة في مجموعة بيانات التدريب هي مثال من المجال.

لذلك ، في ظل تقدير الإمكانية القصوى Maximum Likelihood ، هدفنا هو الحصول على مجموعة من أوزان النموذج التي تقلل الفرق بين التوزيع الاحتمالي المتوقع للنموذج بالنظر إلى مجموعة البيانات وتوزيع الاحتمالات في مجموعة بيانات التدريب. وهذا ما يسمى بالانتروبيا cross-entropy.

في معظم الحالات ، يحدد نموذجنا البارامتري التوزيع – ونستخدم عندئذ ببساطة مبدأ الإمكانية القصوى Maximum Likelihood. هذا يعني أننا نستخدم الانتروبيا بين بيانات التدريب وتوقعات النموذج كدالة تكلفة cost function.

Page 178, Deep Learning, 2016.

من الناحية الفنية ، الانتروبيا المتقاطعة cross-entropy من أهم مواضيع مجال نظرية المعلومات و تقاس بوحدة “البت”. يتم استخدام الانتروبيا المتقاطعة cross-entropy لتقدير الفرق بين التوزيعات الاحتمالية المقدرة والمتوقعة.

أما في حالة مسائل الانحدار حيث يتم التنبؤ بالكمية لا بالنوع ، فدالة الفقد الشائع إستخدامها هي دالة فقد متوسط الخطأ التربيعي mean squared error loss function. و دالة الخطأ عبر الانتروبيا شائع إستخدامها في مسائل التصنيف عندما يتم تفسير المخرجات على أنها احتمالات فئوية في فئة محددة.

Page 155-156, Neural Smithing: Supervised Learning in Feedforward Artificial Neural Networks, 1999.

ومع ذلك ، في إطار تقدير الإمكانية القصوى Maximum Likelihood وافتراض توزيع غاوس Gaussian distribution للمتغير المستهدف ، يمكن اعتبار متوسط الخطأ التربيعي mean squared error  ​​بمثابة إنتروبيا بين توزيع تنبؤات النموذج وتوزيع متغير الهدف.

يستخدم العديد من المؤلفين مصطلح “الانتروبيا المتقاطعة cross-entropy” لتحديد احتمالية السجل السالب negative log-likelihood (NLL) لتوزيع برنولي Bernoulli distribution أو توزيع سوفت ماكس  softmax distribution على وجه التحديد ، ولكن هذه تسمية خاطئة. التسمية الصحيحة هي أن أي فقد يتكون من احتمال سجل سالب هو إنتروبيا متقاطعة بين التوزيع التجريبي المحدد بواسطة مجموعة التدريب وتوزيع الاحتمالات المحدد بواسطة النموذج. على سبيل المثال ، متوسط ​​الخطأ التربيعي mean squared error هو إنتروبيا بين التوزيع التجريبي ونموذج غاوس.

Page 132, Deep Learning, 2016.

لذلك ، عند استخدام إطار عمل تقدير الإمكانية القصوى Maximum Likelihood، سنقوم بتنفيذ دالة فقد الانتروبيا المتقاطعة cross-entropy loss function لحل مسائل التصنيف و دالة فقد متوسط الخطأ التربيعي mean squared error loss function ​​لحل مسائل الإنحدار. بشكل عام تقريبًا ، يتم تدريب الشبكات العصبية للتعلم العميق في إطار الإمكانية القصوى Maximum Likelihood باستخدام الانتروبيا المتقاطعة كدالة فقد.

يتم تدريب معظم الشبكات العصبية الحديثة بإستخدام تقدير الإمكانية القصوى Maximum Likelihood. هذا يعني أن دالة التكلفة cost function توصف بأنها إنتروبيا مشتركة بين بيانات التدريب وتوزيع بيانات النموذج.

Page 178-179, Deep Learning, 2016

في الواقع ، يمكن اعتبار اعتماد هذا الإطار علامة فارقة في التعلم العميق ، حيث كان من الشائع سابقا أن يتم إستخدم دالة فقد متوسط الخطأ التربيعي mean squared error loss function في الشبكات العصبية المخصصة لحل مسائل التصنيف.

كان أحد هذه التغييرات الجوهرية في الخوارزميات هو استبدال دالة فقد متوسط الخطأ التربيعي mean squared error loss function ​​بدالة فقد الانتروبيا المتقاطعة cross-entropy loss function. كانت دالة متوسط ​​الخطأ التربيعي mean squared error loss function شائعة في الثمانينيات والتسعينيات ، ولكن تم استبدالها تدريجيًا بدالة فقد الانتروبيا المتقاطعة cross-entropy loss function ومبدأ الإمكانية القصوى Maximum Likelihood حيث انتشرت الأفكار بين مجتمع الإحصائين ومجتمع أخصائيي التعلم الآلي.

Page 226, Deep Learning, 2016

تم اعتماد نهج الإمكانية القصوى Maximum Likelihood  بشكل شبه واسع ليس فقط بسبب الإطار النظري ، ولكن في المقام الأول بسبب النتائج الرائعة التي يعطيها. على وجه التحديد ، الشبكات العصبية في مسائل التصنيف التي تستخدم دوال التنشيط sigmoid activation function أو softmax في طبقة الإخراج تتعلم بشكل أسرع وأكثر قوة باستخدام دالة فقد الانتروبيا المتقاطعة cross-entropy loss function.

أدى استخدام دالة فقد الانتروبيا المتقاطعة cross-entropy loss function إلى تحسين أداء النماذج ذات المخرجات السينية واللينة sigmoid and softmax outputs، والتي عانت سابقًا من التشبع والتعلم البطيء عند استخدام دالة فقد متوسط ​​الخطأ التربيعي mean squared error loss function.

Page 226, Deep Learning, 2016

ما هي إستخدامات دالة الفقد Loss function؟

إن اختيار دالة الفقد loss function يرتبط ارتباطًا مباشرًا بدالة التنشيط activation function المستخدمة في طبقة المخراجات لشبكتك العصبية. و هذان العنصران متصلان إتصالا وثيقا.

يمكن النظر إلى طبقة المخرجات كأنها خيار تأطير لمسألة التنبؤ ، واختيار دالة الفقد loss function كطريقة لحساب نسبة الخطأ المتوقع من نتائج التنبؤ.

يرتبط اختيار دالة التكلفة إرتباطا وثيقا باختيار وحدة الإخراج. غالبا ، نستخدم ببساطة الانتروبيا المتقاطعة cross-entropy بين توزيع البيانات وتوزيع النموذج. حيث أن شكل دالة الانتروبيا المتقاطعة يتم تحديدها بناءا على اختيار كيفية تمثيل المخرجات.

Page 181, Deep Learning, 2016

أدناه اشهر التطبيقات لإستخدام دالة الفقد loss function:

مسائل الانحدار Regression Problems

من خلال مسائل الإنحدار نتوقع كمية ذات قيمة حقيقية.

  • تكوين طبقة الإخراج Output Layer Configuration: عقدة واحدة مع وحدة التنشيط الخطي linear activation unit.
  • دالة الفقد loss function: متوسط ​​الخطأ التربيعي Mean Squared Error (MSE).

مسائل التصنيف الثنائي Binary Classification Problems

من خلال مسائل التصنيف الثنائي يمكننا تصنيف عينة ما على أنها تنتمي إلى فئة من فئتين. يتم تأطير هذا النوع من المسائل على أنها توقع احتمالية انتماء مثال إلى الفئة الأولى ، على سبيل المثال الفئة التي تحدد قيمة العدد الصحيح 1 ، بينما يتم تعيين القيمة 0 للفئة الأخرى.

  • تكوين طبقة الإخراج Output Layer Configuration: عقدة واحدة مع وحدة تنشيط سيجمويد sigmoid activation unit.
  • دالة الفقد loss function: الانتروبيا المتقاطعة Cross-Entropy، يشار إليها أيضًا باسم الفقد اللوغاريتمي Logarithmic loss.

مسائل التصنيف متعدد الفئات Multi-Class Classification Problems

من خلال مسائل التصنيف متعدد الفئات يمكننا تصنيف عينة ما على أنها تنتمي إلى أكثر من فئتين. حيث يتم تأطير المشكلة على أنها توقع احتمالية انتماء العينة إلى كل فئة.

  • تكوين طبقة الإخراج Output Layer Configuration: عقدة واحدة مع وحدة تنشيط سوفت ماكس softmax activation function.
  • دالة الفقد loss function: الانتروبيا المتقاطعة Cross-Entropy، يشار إليها أيضًا باسم الفقد اللوغاريتمي Logarithmic loss.

كيفية تنفيذ و تطبيق دوال الفقد Loss functions؟

من أجل جعل دوال الفقد ملموسة ، في هذا القسم سيتم شرح كيفية عمل كل نوع من الأنواع الرئيسية لدوال الفقد وكيفية حساب النتيجة في ال Python.

فقد متوسط الخطأ التربيعي Mean Squared Error Loss

يتم حساب فقد متوسط الخطأ التربيعي Mean Squared Error Loss ، أو MSE ، على أنه متوسط ​​الفروق التربيعية بين القيم المتوقعة و القيم الفعلية.

تكون النتيجة إيجابية دائمًا بغض النظر عن علامة القيم المتوقعة والفعلية والقيمة المثالية هي 0.0. يتم تقليل قيمة الخسارة إلى الحد الأدنى ، على الرغم من أنه يمكن استخدامها في عملية التحسين القصوى من خلال جعل النتيجة سلبية.

توفر الدالة أدناه التي تم كتابتها في Python مثالا عمليًا لحساب فقد متوسط الخطأ التربيعي:

# calculate mean squared error
def mean_squared_error(actual, predicted):
    sum_square_error = 0.0
    for i in range(len(actual)):
        sum_square_error += (actual[i] - predicted[i])**2.0
    mean_square_error = 1.0 / len(actual) * sum_square_error
    return mean_square_error

و من أجل الحصول على نتائج أكثر دقة يمكن إستخدام دالة sklearn.metrics.mean_squared_error في مكتبة scikit-learn

الفقد عن طريق الانتروبيا المتقاطعة (أو فقدان السجل) Cross-Entropy Loss (or Log Loss)

غالبًا ما يشار إلى الفقد عبر الانتروبيا ببساطة على أنها “إنتروبيا متقاطعة” أو “فقد لوغاريتمي” أو “فقد لوجستي”.

تتم مقارنة كل احتمالية متوقعة بقيمة مخرجات الفئة الفعلية (0 أو 1) ويتم إحتساب النتيجة التي تعاقب الاحتمال بناءً على المسافة من القيمة المتوقعة. العقوبة لوغاريتمية ، وتقدم درجة صغيرة للاختلافات الصغيرة (0.1 أو 0.2) ودرجة هائلة لفارق كبير (0.9 أو 1.0).

يتم تقليل الفقد عبر الانتروبيا ، حيث تمثل القيم الأصغر نموذجًا أفضل من القيم الأكبر. النموذج الذي يتنبأ بالاحتمالات المثالية له إنتروبيا متقاطعة أو فقدان سجل مساوي لل 0.0.

يتم حساب الانتروبيا المتقاطعة للمسائل التنبؤية الثنائية أو ثنائية الفئة في الواقع على أنها متوسط ​​الانتروبيا عبر جميع الأمثلة.

توفر الدالة أدناه التي تم كتابتها في Python مثالا عمليًا لحساب فقد الانتروبيا المتقاطعة لقائمة من القيم 0 و 1 الفعلية مقارنة بالاحتمالات المتوقعة للفئة 1:

from math import log
# calculate binary cross entropy
def binary_cross_entropy(actual, predicted):
    sum_score = 0.0
    for i in range(len(actual)):
        sum_score += actual[i] * log(1e-15 + predicted[i])
    mean_sum_score = 1.0 / len(actual) * sum_score
    return -mean_sum_score

لاحظ أننا نضيف قيمة صغيرة جدًا (في هذه الحالة 1E-15) إلى الاحتمالات المتوقعة لتجنب حساب سجل 0.0. هذا يعني أنه من الناحية العملية ، فإن أفضل فقد ممكن ستكون قيمته قريبة جدًا من الصفر ، ولكن ليس الصفر تمامًا. يمكن حساب الانتروبيا المتقاطعة أيضا للتصنيفات متعددة الفئات. و من أجل حساب الانتروبيا المتقاطعة للتصنيفات متعددة الفئات يجب أن يكون لدى كل تصنبف ميزة ثنائية ويجب أن تحتوي التنبؤات على احتمالات تنبأت لكل فئة من الفئات. يتم بعد ذلك جمع الانتروبيا المتقاطعة عبر كل ميزة ثنائية ويتم حساب متوسطها عبر جميع الأمثلة في مجموعة البيانات.

توفر الدالة أدناه التي تم كتابتها في Python مثالا عمليًا لحساب فقد الانتروبيا المتقاطعة لقائمة من القيم 0 و 1 الفعلية مقارنة بالاحتمالات المتوقعة لكل فئة:

from math import log

# calculate categorical cross entropy
def categorical_cross_entropy(actual, predicted):
    sum_score = 0.0
    for i in range(len(actual)):
        for j in range(len(actual[i])):
            sum_score += actual[i][j] * log(1e-15 + predicted[i][j])
        mean_sum_score = 1.0 / len(actual) * sum_score
    return -mean_sum_score

و من أجل الحصول على نتائج أكثر دقة يمكن إستخدام دالة scikit-Learn log_loss في مكتبة scikit-learn.

دوال الفقد Loss functions وأداء النموذج

بالنظر إلى إطار الإمكانية القصوى ، نعلم أننا نحتاج إلى استخدام دالة الإنتروبيا المتقاطعة أو دالة فقد متوسط الخطأ التربيعي تحت Stochastic gradient descent.

ومع ذلك ، فقد نستطيع الإبلاغ عن أداء النموذج باستخدام دوال الفقد أو بإستخدام طرق أحرى.

على سبيل المثال ، يعد تفسير الفقد اللوغاريتمي logarithmic loss أمرًا صعبًا ، خاصة بالنسبة لأصحاب المصلحة الممارسين غير المتخصصين في التعلم الآلي. يمكن قول الشيء نفسه عن متوسط ​​الخطأ التربيعي. بدلاً من ذلك ، قد يكون من المهم الإبلاغ عن الدقة accuracy و جذر متوسط الخطأ التربيعي root mean squared error للنماذج المستخدمة للتصنيف والانحدار على التوالي.

قد يكون من المرغوب أيضًا اختيار النماذج بناءً على هذه المقاييس بدلاً من الفقد. يعد هذا اعتبارًا مهمًا ، حيث قد لا يكون النموذج الذي يحتوي على الحد الأدنى من الخسارة هو النموذج الذي يحتوي على أفضل مقياس مهم لأصحاب المصلحة في المشروع.

التقسيم الجيد الذي يجب مراعاته هو استخدام الفقد لتقييم وتشخيص مدى جودة تعلم النموذج. يتضمن ذلك جميع اعتبارات عملية التحسين ، مثل فرط التناسب فرط التعلم overfitting، و عدم التعلم underfitting، والتقارب convergence. يمكن بعد ذلك اختيار مقياس بديل له معنى لأصحاب المصلحة في المشروع لتقييم أداء النموذج وإجراء اختيار النموذج المناسب.

  • الفقد Loss: يستخدم لتقييم وتشخيص تحسين النموذج فقط.
  • المقياس Metric: يستخدم لتقييم واختيار النماذج المناسب في سياق المشروع.

يمكن استخدام نفس المقياس لكلا الغرضين ولكن من المرجح أن تختلف اهتمامات عملية التحسين عن أهداف المشروع وستكون هناك حاجة إلى درجات مختلفة. ومع ذلك ، غالبًا ما يتحسن تحسين الفقد أو ، في أسوأ الأحوال ، ليس له تأثير على مقياس الفائدة.

الخلاصة

في هذا المنشور ، تعلمنا دور الفقد ز دوال الفقد في تدريب الشبكات العصبية وكيفية اختيار دالة الفقد المناسبة لمسائل النمذجة التنبؤية. بالإضافة إلى كيف يتم تدريب الشبكات العصبية باستخدام عملية تحسين optimization التي تتطلب دالة فقد loss function  لحساب خطأ النموذج. أيضا تعلمنا أن، الإمكانية القصوى Maximum Likelihood توفر إطارًا لاختيار دالة الفقد عند تدريب الشبكات العصبية ونماذج التعلم الآلي بشكل عام. أخيرا تعلمنا أن دالتي الانتروبيا المتقاطعة Cross-entropy و دالة متوسط الخطأ التربيعي mean squared error النوعين الرئيسيين من دوال الفقد التي يجب استخدامها عند تدريب نماذج الشبكات العصبية.

المراجع

المرجع الاول

المرجع الثاني

المرجع الثالث

المرجع الرابع

 

Share on facebook
فيسبوك
Share on twitter
تويتر
Share on linkedin
لينكدإن
Share on whatsapp
واتساب

اترك تعليقاً

المشاركات الاخيرة

أحدث التعليقات

أفحص بحثك بالمجان

رفع الملف