كيفية ترويض الوادي - خارقة هسه خالية لتحسين #NeuralNetworks كبيرة

دعنا نقول أن لديك هدية الرحلة (أو أنك تركب المروحية). أنت أيضًا جاسوس (كما في أفلام جيمس بوند). يتم إعطاؤك التضاريس لوادي ضيق طويل كما هو موضح في الصورة ويتم إعطاؤك نقطة التقاء لمقابلة مساعد محتمل لديه معلومات استخبارية مفيدة لهدفك. المعلومات الوحيدة التي لديك عن نقطة الالتقاء هي كما يلي:

"قابلني في أقل تنسيق من" هذا الوادي الطويل "في 4 ساعات"

كيف يمكنك العثور على أقل نقطة تنسيق؟ أكثر من ذلك ، كيف تنوي العثور عليه في فترة زمنية محددة؟

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

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

في المنشورات السابقة ، استخدمنا خوارزميات التدرج اللوني أثناء النشر الخلفي الذي ساعدنا في تقليل الأخطاء. يمكنك العثور على التقنيات في المنشور المعنون "Backpropagation - كيف تتعلم الشبكات العصبية السلوكيات المعقدة"

حدود التدرج المنحدر

لا يوجد خطأ جوهري في خوارزمية هبوط التدرج [أو هبوط مؤشر ستوكاستيك الهبوط (SGD) بدقة]. في الواقع ، لقد أثبتنا أنه فعال جدًا بالنسبة لبعض أمثلة "موجز التغذية" التي استخدمناها في الماضي. تنشأ مشكلة SGD عندما يكون لدينا شبكات عصبية "عميقة" تضم أكثر من طبقة مخفية. خاصة عندما تكون الشبكة كبيرة إلى حد ما.

فيما يلي بعض الرسوم التوضيحية لسطح خطأ غير رتيب لشبكة Deep Neural Network للحصول على فكرة.

خطأ السطح - 2خطأ السطح - 2

لاحظ أن هناك العديد من الحدود الدنيا والصغيرة في الرسم التوضيحي. دعونا نلقي نظرة سريعة على عملية تحديث الوزن في SGD

تحديثات الوزن SGD

مشكلة استخدام SGD للتوضيحات هي كما يلي:

  • نظرًا لأن SGD يستخدم طريقة تحسين الدرجة الأولى ، فإنه يفترض أن سطح الخطأ يشبه دائمًا المستوى (في اتجاه الهبوط) ولا يمثل الانحناء.
  • عندما يكون هناك انحناء تربيعي ، فإننا نطبق بعض الحيل للتأكد من أن SGD لا ترتد من السطح كما هو موضح في معادلة تحديث الوزن.
  • نحن نتحكم في قيمة الزخم باستخدام بعض ألفا محددة سلفًا ونتحكم في السرعة من خلال تطبيق epsilon لمعدل التعلم.
  • تقوم alpha و epsilon بتخزين سرعة واتجاه SGD وتبطئ عملية التحسين حتى نلتقي. يمكننا فقط ضبط هذه المعلمات المفرطة للحصول على توازن جيد للسرعة مقابل فعالية SGD. لكنهم ما زالوا يبطئوننا.
  • في الشبكات الكبيرة ذات الانحناءات المرضية كما هو موضح في الرسم التوضيحي ، يعد ضبط هذه المعلمات المفرطة تحديًا كبيرًا.
  • يمكن أن يبدأ الخطأ في SGD في الارتفاع فجأة عندما تتحرك في اتجاه التدرج عندما تعبر وادي طويل ضيق. في الواقع ، يمكن أن تتوقف SGD تقريبًا قبل أن تتمكن من إحراز أي تقدم على الإطلاق.

نحتاج إلى طريقة أفضل للعمل مع الشبكات العصبية الكبيرة أو العميقة.

الدرجة الثانية الأمثل للإنقاذ

SGD هي مشكلة تحسين من الدرجة الأولى. طرق الترتيب الأول هي الطرق التي لها منحنيات محلية خطية. نفترض أنه يمكننا تطبيق تقريب خطي لحل المعادلات. بعض أمثلة أساليب الدرجة الأولى كالتالي:

  • هبوط التدرج
  • التدرج-جنوب
  • المترافقة التدرج
  • تنسيق عشوائي النسب

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

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

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

ميزة طريقة الترتيب الثاني هي أنه لا يجب أن يتجاهل انحناء سطح الخطأ. نظرًا لحقيقة أن الانحناء يتم النظر فيه ، تعتبر أساليب الترتيب الثاني ذات أداء تدريجي أفضل.

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

فيما يلي بعض أساليب الترتيب الثاني

  • طريقة نيوتن
  • شبه نيوتن ، غاوس نيوتن
  • BFGS ، (L) BFGS

دعنا نلقي نظرة على طريقة نيوتن التي هي طريقة أساسية وأكثر سهولة بعض الشيء بالمقارنة مع غيرها.

يو! نيوتن ، ما هي طريقتك؟

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

دعونا ننظر أولاً إلى طريقة نيوتن باستخدام اشتقاق أول دالة.

دعنا نقول أن لدينا دالة f (x) = 0 ، ولدينا بعض الحلول الأولية x_0 التي نعتقد أنها دون المستوى الأمثل. ثم تقترحنا طريقة نيوتن أن نفعل ما يلي

  1. أوجد المعادلة لخط الظل في x_0
  2. ابحث عن النقطة التي عندها يقطع الخط المماس المحور السيني ويسمي هذه النقطة الجديدة كـ x_1.
  3. ابحث عن إسقاط x_1 على الدالة f (x) = 0 والتي تكون أيضًا في x_1.
  4. الآن ، تكرر مرة أخرى من الخطوة 1 ، عن طريق استبدال x_0 بـ x_1.

حقا بهذه البساطة. التحذير هو أن الطريقة لا تخبرك بموعد التوقف لذلك نضيف خطوة خامسة على النحو التالي:

5. إذا كانت x_n (القيمة الحالية لـ x) تساوي أو تقل عن العتبة ، فإننا نتوقف.

هنا هي الصورة التي تصور ما سبق:

العثور على القيمة المثلى لـ X باستخدام طريقة نيوتن.

هذه هي الرسوم المتحركة التي تظهر نفس الشيء:

الائتمان الرسوم المتحركة

الدرجة الأولى متعددة الحدود ، البعد الواحد:

إليكم الرياضيات لوظيفة متعددة الحدود من الدرجة الأولى ذات بعد واحد.

الدرجة الثانية ، كثير الحدود ، أحادي البعد

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

من الدرجة الثانية ، متعدد الحدود ، متعدد الأبعاد

لنفترض أننا نعمل على كثير الحدود من الدرجة الثانية بأبعاد متعددة ، ثم نعمل بنفس نهج نيوتن كما وجدنا أعلاه ولكن نستبدل المشتقات الأولى بتدرج والثاني مشتق بهسي على النحو التالي:

مصفوفة Hessian هي مصفوفة مربعة للمشتقات الجزئية من الدرجة الثانية ، والتي تصف الانحناء المحلي لوظيفة متعددة المتغيرات.

على وجه التحديد في حالة الشبكة العصبية ، فإن Hessian عبارة عن مصفوفة مربعة مع عدد الصفوف والأعمدة يساوي إجمالي عدد المعلمات في الشبكة العصبية.

يبدو Hessian for Neural Network كما يلي:

مصفوفة هسيان لشبكة عصبية

لماذا هو النهج القائم على هسه نظريا أفضل من SGD؟

الآن ، يعتبر التحسين من الدرجة الثانية باستخدام طريقة نيوتن في إيجاد التكرار 'x' الأمثل هو اختراق ذكي لتحسين سطح الخطأ لأنه ، على عكس SGD حيث تتناسب مع مستوى الطائرة عند النقطة x_0 ثم تحديد قفزة الخطوة الحكيمة ، في التحسين من الدرجة الثانية ، نجد منحنىًا تربيعيًا بإحكام في x_0 ونجد الحد الأدنى للانحناء مباشرةً. هذا هو كفاءة عالية وسريعة.

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

نحن بحاجة إلى اختراق لاختراق! ويبدو أن الجواب يكمن في التدرجات المرافقة.

التدرجات المرافقة ، حيلة ذكية.

في الواقع ، هناك العديد من طرق التقريب التربيعية لوظيفة محدبة. لكن طريقة التدرج المترابط تعمل بشكل جيد للغاية في مصفوفة متماثلة ، وهي محددة بشكل إيجابي. في الواقع ، يُقصد بالتدرجات المرافقة للعمل مع أنظمة متفرقات كبيرة جدًا.

لاحظ أن Hessian متماثل حول القطر ، وعادة ما تكون معلمات الشبكة العصبية متناثرة ، و Hessian للشبكة العصبية هي محددة بشكل إيجابي (بمعنى ، لها قيم Eigen إيجابية فقط). الصبي ، هل نحن في الحظ؟

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

أسهل طريقة لشرح تدرج Conjugate (CG) هي كما يلي:

  • ينطبق CG Descent على أي شكل تربيعي.
  • تستخدم CG قيمة "alpha" ذات حجم خطوة مشابهة لـ SGD ولكن بدلاً من alpha ثابتة ، نجد alpha من خلال خوارزمية البحث عن سطر.
  • تحتاج CG أيضًا إلى "بيتا" قيمة عددية تساعد في العثور على الاتجاه التالي الذي "يقترن" بالاتجاه الأول.

يمكنك التحقق من معظم الرياضيات حول الشعر عند الوصول إلى معادلة CG من خلال الورقة المذكورة أعلاه. سأقفز مباشرةً إلى قسم خوارزمية التدرج المتزامن:

لحل المعادلة Ax = b ، يمكننا استخدام الخوارزمية التالية:

الصورة الائتمان
  • هنا r_k هي القيمة المتبقية ،
  • p_k هو المتجه المتزامن و ،
  • يتم تحديث x_k + 1 بشكل متكرر بالقيمة السابقة x_k والمنتج النقطي لـ alpha_k بحجم الخطوة ومتجه المتزامن p_k.

نظرًا لأننا نعرف كيفية حساب تدرج Conjugate Gradient ، فلنلقِ نظرة على تقنية تحسين Hessian Free.

خوارزمية الأمثل خالية من هسه

والآن بعد أن فهمنا خوارزمية CG ، دعونا نلقي نظرة على الاختراق الذكي الأخير الذي يسمح لنا بالتحرر من منطقة Hessian.

CITATION: التحسين الخالي من Hessian هو أسلوب تم اعتماده على الشبكات العصبية من قبل James Marten في جامعة تورنتو في ورقة بعنوان "التعلم العميق عن طريق Hessian Free Optimization".

لنبدأ بتوسيع تايلور للوظيفة الثانية:

نحن هنا بحاجة إلى العثور على أفضل delta_x ثم الانتقال إلى x + delta_x والاستمرار في التكرار حتى التقارب. بمعنى آخر ، الخطوات الموضحة في التحسين الخالي من هسه هي كما يلي:

الخوارزمية:

  1. ابدأ بـ i = 0 وكرر
  2. اجعل x_i بعض x_0 المبدئي دون الأمثل الذي يتم اختياره عشوائيًا.
  3. عند x_n الحالي ، نظرًا لتوسيع Taylor الموضح أعلاه ، قم بحساب التدرج f (x_n) و hessian f (x_n)
  4. نظرًا لتوسيع Taylor ، قم بحساب x_n + 1 التالية (والتي ليست سوى delta_x) باستخدام خوارزمية التدرج اللوني.
  5. تكرار الخطوات من 2 إلى 4 حتى يتلاقى x_n الحالي.

البصيرة الحاسمة: لاحظ أنه على عكس طريقة نيوتن حيث يلزم وجود هسي لحساب x_n + 1 ، في الخوارزمية الخالية من هيسان ، نحن لسنا بحاجة إلى حساب Hessian لحساب x_n + 1. بدلا من ذلك نحن نستخدم التدرج المترابط.

Clever Hack: نظرًا لاستخدام Hessian مع المتجه x_n ، نحتاج فقط إلى تقريب Hessian مع المتجه ولا نحتاج إلى Hessian بالضبط. تقريب Hessian مع ناقل هو أسرع بكثير من حساب Hessian نفسه. التحقق من المنطق التالي.

نلقي نظرة على هسه مرة أخرى:

مصفوفة هسيان لشبكة عصبية

هنا ، يحتوي الصف الأول على مشتقات جزئية من النموذج

حيث "i" هو فهرس الصفوف و "j" هو فهرس الأعمدة. ومن هنا نتاج النقطة لمصفوفة هسي وأي متجه:

ما ورد أعلاه يعطي مشتق اتجاهي لـ "e" فيما يتعلق بـ "w" في الاتجاه "v".

باستخدام الاختلافات المحدودة ، يمكننا بعد ذلك تحسين ما سبق على النحو التالي:

في الواقع ، يوجد شرح وتقنية شاملين للتكاثر السريع لهيسيان مع ناقل في الورقة المعنونة "الضرب السريع الدقيق للهيسيان" بقلم باراك أ. بيرلماتر من شركة سيمنس لبحوث الشركات.

من خلال هذه الرؤية ، يمكننا تخطي حساب Hessian تمامًا والتركيز فقط على تقريب Hessian لتكاثر المتجهات ، مما يقلل بشكل كبير من سعة الحساب والتخزين.

لفهم تأثير تقنية التحسين ، تحقق من الرسم التوضيحي التالي.

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

على ما يبدو ، ليس من السهل أن تكون جاسوسًا ...