الرياضيات في التعلم العميق
Mathematics for deep learning
الجزء السابع (Part Seven)
إعداد
المهندس حسن فنجان عداي
مقدمة:
بسم إلله الرحمـن الرحيـم
في هذا الجزء سنقوم إنشاء ألله تعالى بتوضيح أحد المفاهيم في الجبر الخطي ألا وهو المعيار (Norm), والذي كثيراً مانراه مستخدماً في مواضيع تعلم الآلة (Machine learning) وكذلك في مواضيع التعلم العميق (Deep learning), حيث يستخدم في تقييم الخطأ في النموذج المدرب, على سبيل المثال ، يتم استخدامه لحساب الخطأ بين ناتج الشبكة العصبية وما هو متوقع (التسمية أو القيمة الفعلية).
المعايير (Norms)
المعيار (Norm) هو طريقة للتعبير عن المتجه (Vector) بواسطة قيمة موجبة, حيث إنَّه في بعض الحالات نحتاج إلى قياس حجم المتجه, وفي مواضيع تعلم الآلة نستخدم لهذا الغرض دالة تسمى المعيار (Norm). إنَّ معيار المتجه (x) يمثل المسافة من نقطة الأصل إلى النقطة (x), ونستطيع الحصول على معيار أي متجه وبالمرتبة التي نريدها حسب القانون التالي:
فلو فرضنا أنه كان لدينا المتجه:
[4 3] = x
وأردنا أن نحسب معياره من المرتبة الثانية أي:
p = 2
فنقوم بتطبيق القانون وكما يلي:
وعادة يكتب معيار المتجه داخل قوسين كل قوس هو عبارة عن خطين عموديين.
ويشترط في المعايير (Norms) أن تتوفر فيها الخصائص التالية:
1 – المعايير تكون دائماً قيم غير سالبة (non-negative values), وهذا أمر طبيعي حيث إننا لو نظرنا إلى المعيار على أنه يمثل طول المتجه (Vector), لعرفنا سريعاً لماذا لايكون ذو قيمة سالبة.
2 – تكون قيمة المعيار صفراً في حالة فريدة هي عندما يكون المتجه هو متجهاً صفرياً (Zero vector).
3 – إذا قمنا بضرب معيار المتجه في عدد (Scalar), فإنَّ القيمة الناتجة تكون مساوية للقيمة المطلقة لهذا العدد (Scalar) مضروباً في معيار المتجه, وكما موضح أدناه:
4 – تتبع معايير المتجهات (Norms) لما يسمى بقواعد التباين في المثلثات (Triangle inequality) في حساب الأطوال.
التباين في المثلثات (Triangle inequality)
هذا في المثلثات أما في الهندسة الأقليدية (Euclidean geometry) فتستخدم هذه النظرية في حساب المسافات وتتم إعادة صياغة هذه القاعدة بإستخدام المتجهات وأطوال المتجهات أي معايير المتجهات (Norms) بدل أطوال اضلاع المثلث وكما موضح أدناه:
حيث يتم التعبير عن هذه القاعدة بأنَّ معيار حاصل جمع متجهين هو أصغر من أو يساوي لمجموع معياري هذين المتجهين.
مثال رقم (1):
إذا كان لدينا المتجهان:
حيث نقوم بجمع الإحداثي السيني للمتجه الأول مع الإحداثي السيني للمتجه الثاني وأيضاً كذلك بالنسبة للإحداثي الصادي فينتج لنا متجه جديد إحداثياته (5, 8), ثم نقوم بإستخراج الطول أو المعيار (Norm) لهذا المتجه الجديد وكما يلي:
نقوم بعدها بإستخراج الطول أو المعيار (Norm) لكل واحد من المتجهين ثم نقوم بجمع المعيارين أي الطولين وكما يلي:
نلاحظ بأنَّ النتيجة الثانية أكبر من النتيجة الأولى وهذه نتيجة معقولة من الناحية النظرية بإعتبارها لم تخرج عن منطوق القاعدة العامة.
والآن نقوم بتنفيذ المثال برمجياً بواسطة الحاسوب وبإستخدام مكتبة (Numpy) وكما يلي:
نقوم بالإعلان عن المتجهان:
نقوم بعدها بجمع المتجهان وإستخراج طول أو معيار (Norm) المتجه الجديد:
نقوم بعدها بحساب طولي المتجهين وجمعهما بسطر أوامر واحد:
نلاحظ بأنَّ النتيجة التي حصلنا عليها مطابقة لتلك التي حصلنا عليها بطريقة الحسابات اليدوية.
أنواع المعايير للمتجهات (P-norms)
القواعد العامة لحساب المعايير (General rules)
يتم حساب المعيار (Norm) لأي متجه (Vector) ولأي مرتبة (Power) حسب الخطوات التالية:
1 – نأخذ القيمة المطلقة (Absolute value) لكل عنصر من عناصر المتجه المراد حساب معياره.
2 – نرفع كل قيمة من القيم المطلقة إلى الأس (p).
3 – نقوم بجمع القيم بعد رفعها إلى الأس المطلوب.
4 – نرفع القيمة الناتجة إلى الأس (1 / p).
ويمكن تلخيص الخطوات أعلاه بالعلاقة التالية:
المعيار ذو المرتبة (0)
(The L0 norm)
وهو عبارة عن عدد العناصر في المتجه التي قيمها ليس صفراً, حيث إنِّه لايعتبر معياراً حقيقياً وإنما صيغة للتعبير عن هذه المرتبة, لأنه لايمكن تطبيق العلاقة أعلاه بإستخدام الأس (0), لأننا إذا رفعنا أي عدد إلى الأس (0) فإننا سوف نحصل على العدد (1) إلاَّ في حالة العدد (0), وبذلك لايمكن تطبيق القاعدة أعلاه, وعوضاً عن ذلك نستخدم طريقة أخرى لحساب هذه الرتبة من المعايير وهي حساب عدد العناصر في المتجه التي لاتحمل القيمة (0).
المعيار ذو المرتبة (1)
(The L1 norm)
وهو عبارة عن المجموع الجبري للقيم المطلقة لعناصر المتجه (Vector), وكما موضح أدناه:
ونلجأ إلى إستخدام هذا النوع من المعايير في الحالات التي يكون من الضروري التمييز بين العناصر التي تكون قيمها صفراً والعناصر التي قيمها صغيرةً جداً ولكن ليست صفراً.
يستخدم هذا النوع من المعايير في خوارزميات تعلم الآلة (Machine Learning) في الحالات التي يكون الفرق بين القيم الصفرية للعناصر والقيم الغير صفرية مهم جداً.
المعيار ذو المرتبة (2) أو المعيار الأقليدي
(The Euclidean norm (L2 norm))
هو عبارة عن المسافة الأقليدية بين نقطة الأصل والنقطة التي تمثل نهاية المتجه. يتم حساب هذا النوع من المعايير حسب العلاقة التالية:
حيث نقوم أولاً بإيجاد القيم المطلقة لعناصر المتجه وبعدها نقوم بتربيع هذه القيم, وبعد ذلك نجمعها ومن ثمَّ نقوم بإستخراج الجذر التربيعي للناتج.
كثيراً مايستخدم هذا النوع من المعايير في خوارزميات تعلم الآلة (Machine Learning), كدالة كلفة (Cost).
مثال رقم (2):
ذكرنا بأنَّ المعيار الأقليدي (Euclidean norm) في البيئة الرسومية (Graphically) يمثل طول المتجه الذي يصل بين نقطة الأصل والنقطة التي ينتهي عندها المتجه, فلو فرضنا بأنَّ لدينا المتجه:
وأردنا حساب المسافة الأقليدية له فإننا نحسبه كما موضح أدناه:
ويمكننا الحصول على هذه النتيجة وذلك بإستخدام الحاسوب ومكتبة (Numpy) وكما يلي:
والآن نقوم برسم المتجه لكي نتبين بأن طوله والذي هو عبارة عن المعيار الأقليدي سوف يكون مساوياً لما حصلنا عليه من تطبيق القاعدة العامة لحساب المعيار, وسوف نستخدم المكتبة (matplotlib) لهذا الغرض وكما يلي:
وعند تنفيذ هذا الكود نحصل على الشكل الرسم التالي:
إنَّ هذا النوع من المعايير (Euclidean norm) لايختص بالفضاءات ثنائية الأبعاد ولكن يستخدم أيضاً في فضاءات ذات أبعاد أكثر من ذلك, ويتم حسابه كما موضح أدناه:
مربع المعيار الأقليدي (Squared L2 norm)
هذا النوع من المعايير هو عبارة عن مربع قيمة المعيار الأقليدي الذي تناولناه في الفقرة السابقة, ويمكن حسابة حسب القانون التالي:
ويفضل إستخدام هذا النوع من المعايير (Norms) لسهولة حسابه لأننا سوف نتخلص من الجذر التربيعي الموجود في المعيار الأقليدي وبالتالي تصبح عملية الحساب عبارة عن جمع مربعات القيم المطلقة للمتجه, كذلك يفضل إستخدامه في خوارزميات تعلم الآلة لسهولة حسابه بإستخدام قوانين المصفوفات وذلك لسهولة إجراء الحسابات ضمن هذه القوانين, وكما مبين أدناه:
حيث يتم الحصول على قيمة مربع المعيار الأقليدي من خلال ضرب منقول المتجه (Transpose) في المتجه نفسه, وهذه العملية سوف تكون سهلة ولاتستغرق وقتاً طويلاً خاصة في المتجهات ذات العناصر المتعددة.
مثال رقم (3):
إذا كان لدينا المتجه التالي:
وأردنا حسب مربع المسافة الأقليدية له بإستخدام منقول المتجه (Transpose), فإننا نستخرج منقول المتجه أولاً ثم نقوم بعملية ضربه مع المتجه الأصلي وكما موضح أدناه:
والآن نقوم بإستخدام الحاسوب لإجراء نفس عملية الحساب وكما يلي:
قمنا أولاً بالإعلان عن متجه (x). نقوم بعدها بحساب مربع المعيار الأقليدي بشكل مباشر عن طريق إستخدام منقول المتجه وكما يلي:
وللتأكد من صحة هذه الطريقة نقوم بإستخدام الطريقة التقليدية وهي حساب المعيار الأقليدي ثم نحسب مربع هذه القيمة وكما يلي:
نلاحظ بأنَّ النتيجة متطابقة مع النتيجة الأولى.
ذكرنا بأنَّ أحد الفوائد من إستخدامنا لمربع المعيار الأقليدي هو لسهولة إجراء الحسابات وذلك لتخلصنا من الجذر التربيعي أو لإمكانية إستخدامنا طريقة منقول المتجه (Transpose) في عملية الحساب لسهولتها, ونذكر هنا فائدة أخرى لهذا النوع من المعايير وهو سهولة العمليات الرياضية, وكمثال على ذلك فإنَّ مشتقة هذا المعيار بالنسبة إلى أي عنصر من عناصره يتعلق بالعنصر المقصود فقط, بينما بالنسبة للمعيار الأقليدي بدون تربيع سوف تكون المشتقة له بالنسبة لكل عنصر من عناصرة تعتمد هذه المشتقة على جميع عناصر ذلك المتجه, وسوف نوضح ذلك تفصيليا وبالأمثلة كما يلي:
مشتقة مربع المعيار ذو المرتبة (2) أو المعيار الأقليدي
(Derivative of the squared L2 norm)
فإذا كان لدينا المتجه:
نقوم بعده بتطبيق القانون لحساب مربع المعيار الأقليدي وكما يلي:
نقوم بعده بإشتقاق مربع المعيار الأقليدي بالنسبة لكل عنصر من عناصر المتجه وكما يلي:
نلاحظ بأنَّ المشتقة في كل حالة تعتمد على عنصر واحد فقط من عناصر المتجه.
مشتقة المعيار ذو المرتبة (2) أو المعيار الأقليدي
(Derivative of the L2 norm)
أما في حالة المعيار ذو المرتبة (2) أو المعيار الأقليدي فإنَّ المشتقة له بالنسبة إلى أي عنصر من عناصر المتجه تكون أكثر تعقيداً حيث إنها تعتمد على كل عناصر المتجه.
فلو كان لدينا نفس المتجه في الحالة السابقة فنقوم أولاً بحساب المعيار الأقليدي له أولاً وكما يلي:
بعدها نقوم بعملية التفاضل لهذا المعيار بالنسبة للعنصر الأول من عناصر المتجه وكما يلي:
وبقية الإشتقات للمعيار بالنسبة لبقية العناصر تكون على الهيئة التالية:
نلاحظ بأنَّ كل مشتقة من مشتقات المعيار بالنسبة إلى أحد عناصر المتجه تكون عناصر المتجه بأكملها داخلة في الحسابات وذلك بسبب وجود الجذر التربيعي وهذا مايعقد هذه العمليات الرياضية.
ملاحظة: توجد مشكلة عند إستخدامنا (Squared L2 norm) وهي عدم التمييز بين القيم الصفرية والقيم القريبة من الصفر بسبب الزيادة البطيئة في هذه الدالة, علماً بأنَّ التمييز بين هذه القيم يكون مهماً جداً في بعض الحالات خاصة في خوارزميات تعلم الآلة وخوارزميات التعلم العميق, لذلك في بعض الحالات نضطر إلى إستخدام (L1 norm).
معيار الحد الأقصى (The max norm)
ويرمز لهذا المعيار بالرمز:
وهو عبارة عن القيمة المطلقة (Absolute value) للعنصر الأكبر من عناصر المتجه, وكما موضح أدناه:
معيار المصفوفات أو معيار فروبينيوس
(Matrix norms: the Frobenius norm)
وهو نفس المعيار من نوع (L2 norm) ولكن يحسب للمصفوفة (Matrix) بعد تحويلها إلى متجه (Vector) عن طريق إجراء عملية (Flattening) عليها, وحسب القانون التالي:
وبهذا نكون قد إنتهينا من هذا الجزء من المقالة والذي تناولنا فيه موضوع المعيار (Norm) والذي يعتبر من المواضيع المهمة والذي يستخدم كثيراً في خوارزميات تعلم الآلة والتعلم العميق وخاصة في حساب دوال الفقد, وقد تناولناه بشيء من التفصيل وطبقنا فيه أمثلة لزيادة الفائدة.
آمل أن أكون قد وفقت في توضيح الموضوع ومن ألله تعالى نسأل العون والتسديد.
المهندس حسن فنجان عداي
تعليقات
إرسال تعليق