توقع السلاسل الزمنية باستخدام TensorFlow: المكونات والنماذج والخطوات

نشرت: 2021-05-02

جدول المحتويات

ما هو توقع السلاسل الزمنية؟

هل تعلم أن منطقة آسيا والمحيط الهادئ هي أكبر سوق للتعلم العميق نموًا على مستوى العالم بمعدل نمو سنوي مركب (CAGR) يزيد عن 40٪؟ سلسلة زمنية تنبؤ TensorFlow هو مفهوم مهم في التعلم العميق و ML. تحتوي جميع نماذج التعلم العميق / ML على مجموعة بيانات خاصة بها عبارة عن مجموعة من الملاحظات. غالبًا ما تتضمن هذه الملاحظات عنصرًا زمنيًا. تقوم السلاسل الزمنية بترتيب الملاحظات بالتتابع في الوقت المناسب ، مما يضيف بُعدًا جديدًا إلى مجموعة البيانات ، أي الوقت.

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

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

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

مكونات السلاسل الزمنية

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

  • الاتجاهات - يتم تفسير سلوك سلسلة / مجموعة بيانات بمرور الوقت من خلال الاتجاهات. يتم تفسير السلوك المتزايد والمتناقص لسلسلة زمنية من خلال الاتجاهات.
  • المستوى - المستوى هو القيمة الأساسية للسلسلة الزمنية ، مع الأخذ في الاعتبار أن تمثيل السلسلة هو خط مستقيم. يعرّف العديد من الخبراء أيضًا المستوى على أنه متوسط ​​قيمة السلسلة.
  • الموسمية - تسمى سلوكيات المسلسل التي تتكرر بمرور الوقت بالموسمية. يصف بعض الخبراء أيضًا الموسمية على أنها تقلبات دورية.
  • الضوضاء - تحتوي كل مجموعة بيانات على بعض نقاط البيانات / القيم المتطرفة التي لا يستطيع نموذج السلاسل الزمنية تفسيرها. تمتلك مجموعات البيانات هذه خصائص غير متوقعة ولا يمكن تعيينها عبر تحليل / توقع السلاسل الزمنية.

يجب ملاحظة أن السلسلة الزمنية يجب أن يكون لها مستوى وبعض الضوضاء. ومع ذلك ، فإن الاتجاهات والمواسم في سلسلة زمنية اختيارية.

لماذا TensorFlow؟

في حين أن هناك العديد من الأطر المتاحة في السوق للتنبؤ بالسلاسل الزمنية ، يفضل متخصصو التكنولوجيا العميقة TensorFlow من بين جميع الأطر المتاحة. تمت كتابة TensorFlow بلغة Python و C ++ و CUDA التي تعد من بين لغات البرمجة المستخدمة على نطاق واسع. TensorFlow هي مكتبة برامج مفتوحة المصدر مصممة خصيصًا للتعلم الآلي والتعلم العميق.

يساعدنا TensorFlow في بناء نماذج ML أثناء تحليل السلاسل الزمنية التي سيتم استخدامها للتنبؤ. إنه يوفر للمستخدمين بناء أنواع مختلفة من النماذج مثل CNN (الشبكة العصبية التلافيفية) و RNN (الشبكة العصبية المتكررة) وما إلى ذلك. يمكن أن يساعدك TensorFlow على توقع خطوة زمنية واحدة أو عدة خطوات بناءً على المستخدم ومجموعة البيانات. أثناء التنبؤ بالسلسلة الزمنية TensorFlow ، يمكنك:

  • توقع ميزة / بُعد واحد لخطوة زمنية واحدة.
  • تنبأ بجميع أبعاد مجموعة البيانات لخطوة زمنية واحدة.
  • تنبؤ لخطوات متعددة في لقطة واحدة (عمل كل التنبؤات في وقت واحد).
  • تنبؤ لخطوات متعددة حيث يتم إجراء تنبؤ واحد في كل مرة (ارتداد تلقائي).

إعداد البيانات للتنبؤ بالسلاسل الزمنية

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

  • الخطوة الأساسية هي استيراد البيانات أو استخراج البيانات. يجب أن يكون لديك مجموعة بيانات يمكن من خلالها استخلاص الرؤى الغنية باستخدام تنبؤ السلاسل الزمنية.
  • الخطوة التالية هي تنظيف البيانات ، حيث تقوم بإزالة نقاط البيانات المكررة أو غير ذات الصلة. يتم أيضًا معالجة البيانات المفقودة في هذه الخطوة. إذا تم اكتشاف أي قيم متطرفة في وقت مبكر ، فقم بإزالتها من مجموعة البيانات. يمكن أيضًا إصلاح الأخطاء الهيكلية تحت تنظيف البيانات.
  • الكميات في سلسلة زمنية تختلف مع الوقت تسمى إشارات. تمثل هذه الإشارات أيضًا أحداثًا فيزيائية مختلفة في سلسلة زمنية. على سبيل المثال ، إذا كانت هناك سلسلة زمنية من أوصاف الطقس لأي موقع على مدار أيام مختلفة ، فإن الإشارات ستكون الأحداث المادية مثل درجة الحرارة ، وهطول الأمطار ، وما إلى ذلك. تابع بتحويل الإشارات بتنسيق sin cos.
  • إلى جانب تحويل الإشارات إلى تنسيق sin cos ، قم بتحويل الوقت والتاريخ إلى ثوانٍ. بمجرد الانتهاء من ذلك ، ارسم دالة الوقت والخطيئة.
  • قبل التنبؤ ببياناتنا والتدريب عليها ، سنقوم بتقسيم البيانات بناءً على الوقت لمزيد من التبسيط.
  • يتم الآن تطبيع البيانات قبل التدريب. إن أبسط خطوة لتطبيع البيانات هي طرح متوسط ​​مجموعة البيانات من كل نقطة بيانات ثم تقسيمها على الانحراف المعياري.
  • بمجرد الانتهاء من تطبيع البيانات ، يجب عليك التحقق من تحيز البيانات. يتم تعريف تحيز البيانات على أنه شرط يتم فيه تمثيل بعض عناصر مجموعة البيانات بشكل كبير مقارنة بالعناصر الأخرى. تؤدي البيانات المتحيزة إلى دقة أقل إلى جانب التحليلات المنحرفة. يمكنك رسم مخطط كمان لإزالة أي تحيز للبيانات موجود في مجموعة البيانات الخاصة بك.

لف البيانات

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

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

الخروج: أشهر مشاريع Tensorflow

نماذج الخطوة الواحدة TensorFlow

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

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

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

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

يمكن أيضًا استخدام الشبكات العصبية الالتفافية عبر TensorFlow للتنبؤ بخطوة زمنية واحدة. ستتخذ طبقة الالتفاف في TensorFlow خطوات زمنية متعددة كمدخلات للتنبؤ بخطوة زمنية. تُستخدم RNNs أيضًا على نطاق واسع للتنبؤ بالسلسلة الزمنية.

تنتقل الحالة الداخلية للجهاز أيضًا من خطوة زمنية إلى أخرى لأن RNNs تعالج سلسلة زمنية خطوة بخطوة (افتراضيًا). يعد التنبؤ بالسلاسل الزمنية TensorFlow عبر RNN اختيارًا جيدًا لأن نماذج RNN تميل إلى تذكر تاريخ طويل من المدخلات (البيانات التاريخية).

نماذج TensorFlow متعددة الخطوات

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

خاتمة

يوفر توقع السلاسل الزمنية TensorFlow نتائج دقيقة مقارنة بالأطر الأخرى. ناقشنا بعض النماذج ذات الخطوة الواحدة (CNN ، RNN ، Dense ، إلخ) التي يمكن استخدامها للتنبؤ بخطوة واحدة عبر TensorFlow.

يمكنك أيضًا توقع نطاق من القيم المستقبلية باستخدام نماذج متعددة الخطوات. يجب على المرء أيضًا ملاحظة أن إعداد البيانات هو خطوة أساسية قبل تنبؤ السلاسل الزمنية TensorFlow . يمكنك معرفة المزيد حول توقع السلاسل الزمنية في DL (التعلم العميق) و ML عن طريق اختيار برنامج الشهادة المتقدم upGrad في DL & ML . ابدأ في تعلم التنبؤ بالسلاسل الزمنية مع TensorFlow!

ما هي حدود استخدام TensorFlow؟

على الرغم من أن TensorFlow يقلل من طول الشفرة ، إلا أنه يجعل الكود معقدًا بعض الشيء أيضًا. بالمقارنة مع منافسيها ، TensorFlow بطيئة وأقل قابلية للاستخدام. يتأخر TensorFlow في الأوقات التي يتعلق الأمر فيها بتقديم حلقات رمزية للتسلسلات غير المحددة. يحتوي TensorFlow على دعم NVIDIA GPU ودعم برمجة Python GPU. ليس لديها أشكال أخرى من الدعم. ليس لديها العديد من المزايا لمستخدمي نظام التشغيل Windows.

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

هل من الصعب تعلم TensorFlow؟

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