تعلُّم الآلة في Earth Engine

واجهات برمجة تطبيقات تعلُّم الآلة

تعلُّم الآلة (ML) هو أسلوب فعّال لتحليل بيانات مراقبة الأرض. يتضمّن Earth Engine إمكانات مدمجة تتيح للمستخدمين إنشاء نماذج تعلُّم آلي واستخدامها في سيناريوهات شائعة باستخدام واجهات برمجة تطبيقات سهلة الاستخدام.

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

  • التصنيف الخاضع للإشراف: إحدى تقنيات تعلُّم الآلة لتصنيف الأراضي هي استخدام أمثلة من الحقيقة الأساسية لتعليم نموذج كيفية التمييز بين الفئات. تتيح المصنّفات الخاضعة للإشراف المضمّنة في Earth Engine تنفيذ هذه العملية.
  • التصنيف غير الموجّه: في التصنيف غير الموجّه، لا يتم تقديم أي أمثلة صحيحة إلى خوارزمية التدريب. بدلاً من ذلك، تقسم الخوارزمية البيانات المتاحة إلى مجموعات استنادًا إلى الاختلافات المتأصلة. تكون المصنّفات غير الخاضعة للإشراف في Earth Engine مفيدة بشكل خاص عندما لا تتوفّر بيانات صحيحة، أو عندما لا تعرف العدد النهائي للفئات، أو عندما تريد إجراء تجربة سريعة.
  • الانحدار: بينما يحاول نموذج التصنيف تقسيم كل إدخال إلى فئة منفصلة، يحاول نموذج الانحدار التنبؤ بمتغيّر مستمر لكل إدخال. على سبيل المثال، يمكن لنموذج الانحدار التنبؤ بجودة المياه أو النسبة المئوية لمساحة الغابات أو النسبة المئوية لغطاء السحب أو إنتاج المحاصيل. لمزيد من المعلومات، يُرجى الرجوع إلى قسم الانحدار الخطي في ee.Reducers.

التدريب والتوقّع خارج Earth Engine

التعلّم العميق والشبكات العصبية هما من تقنيات تعلُّم الآلة التي يمكن أن تكون فعّالة مع البيانات المعقّدة، مثل صور الأقمار الصناعية. لا تتوافق واجهات برمجة التطبيقات الخاصة بتعلُّم الآلة في Earth Engine مع التعلُّم العميق أو الشبكات العصبية. بدلاً من ذلك، للاستفادة من هذه الميزات، عليك استخدام إطار عمل، مثل TensorFlow أو PyTorch، وتدريب النموذج خارج Earth Engine.

يمكنك أيضًا التدريب خارج Earth Engine إذا كنت معتادًا على إطار عمل، مثل scikit-learn للتعلم الآلي التقليدي أو XGBoost لأشجار القرارات المعزّزة بالتدرّج.

أخيرًا، يمكنك تدريب نموذج خارج Earth Engine إذا كانت مجموعة البيانات كبيرة جدًا وتتجاوز الحدود الموضّحة أدناه.

تصدير البيانات من Earth Engine للتدريب

الحصول على توقّعات من نموذج خارج Earth Engine

إذا درّبت نموذجًا خارج Earth Engine، تتوفّر لك بعض الخيارات للحصول على توقّعات من هذا النموذج.

أسباب أخرى لتدريب النماذج خارج Earth Engine

بالإضافة إلى الألفة والتفضيل، يمكنك تدريب نموذج خارج Earth Engine إذا أردت استخدام بنى نماذج (مثل الشبكات العصبية الالتفافية) غير متوافقة مع واجهات برمجة التطبيقات الخاصة بتعلُّم الآلة في Earth Engine، أو إذا أردت استخدام المزيد من ميزات Vertex AI، أو إذا واجهت حدودًا للتوسيع باستخدام واجهات برمجة التطبيقات الخاصة بتعلُّم الآلة في Earth Engine.

حدود مجموعة التدريب

يكون التدريب باستخدام ee.Classifier أو ee.Clusterer فعّالاً بشكل عام مع مجموعات البيانات التي تصل إلى 100 ميغابايت. كإرشادات تقريبية جدًا، وبافتراض دقة 32 بت (أي قيمة عائمة)، يمكن أن يستوعب ذلك مجموعات بيانات التدريب التي تستوفي ما يلي (حيث n هو عدد الأمثلة وb هو عدد النطاقات):

nb ≤ (100 * 2 20) / 4

على سبيل المثال، إذا كنت تستخدم 100 نطاق للتدريب، يجب أن يكون عدد الأمثلة المستخدمة للتدريب أقل من 200,000.

حدود الاستدلال

بما أنّ Earth Engine تعالج مربّعات صور بحجم 256×256، يجب أن تتضمّن طلبات الاستدلال على الصور أقل من 400 نطاق (مع افتراض دقة 32 بت للصور).

يمكنك إعادة تدريب المصنّف أكثر من مرة للحفاظ على مجموعة البيانات لكل عملية تدريب ضمن الحدود المسموح بها.

      var trainings = ee.List.sequence(0, 3).map(function(cover) {
          return image.addBands(landcover.eq(cover).stratifiedSample()
      })

      var classifier = ee.Classifier.smileCart()
          .train(trainings.get(0), "cover")
          .train(trainings.get(1), "cover")
          .train(trainings.get(2), "cover")
          .train(trainings.get(3), "cover")
    

الحدود القصوى لحجم النموذج

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

      var classifier = ee.Classifier.smileRandomForest({
          numberOfTrees: 10,
          minLeafPopulation: 10,
          maxNodes: 10000
      })