واجهات برمجة تطبيقات التعلم الآلي
تعلُّم الآلة (ML) هو أسلوب فعّال لتحليل بيانات رصد Earth. توفّر أداة Earth Engine إمكانات مضمّنة للسماح للمستخدمين ب إنشاء نماذج تعلُّم الآلة واستخدامها في السيناريوهات الشائعة باستخدام واجهات برمجة تطبيقات سهلة الاستخدام.
من المهام الشائعة للتعلم الآلي تصنيف وحدات البكسل في صور الأقمار الصناعية إلى فئتَين أو أكثر. يكون هذا النهج مفيدًا لإنشاء خرائط استخدامات الأراضي وغطائها والتطبيقات الشائعة الأخرى.
- التصنيف الخاضع للإشراف: من بين تقنيات تعلُّم الآلة لتصنيف الأراضي استخدام أمثلة على الحقائق الأساسية لتعليم نموذج للتفريق بين الفئات. تتيح المعرِّفات الخاضعة للإشراف المدمجة في Earth Engine تنفيذ هذه العملية.
- التصنيف غير المُوجَّه: في التصنيف غير المُوجَّه، لا يتم تقديم أمثلة على الحقائق الأساسية إلى خوارزمية التدريب. بدلاً من ذلك، تقسم الخوارزمية البيانات المتاحة إلى مجموعات استنادًا إلى اختلافات أساسية. إنّ الأدوات المصنّفة غير الخاضعة للإشراف في Earth Engine مفيدة بشكل خاص في حال عدم توفّر بيانات حقيقية، أو في حال عدم معرفة العدد النهائي للفئات أو عند إجراء تجربتين سريعتين.
- الانحدار: في حين أنّ نموذج التصنيف يحاول تجميع كل مدخلات في فئة منفصلة، يحاول نموذج الانحدار التنبؤ بمتغيّر مستمر لكل مدخل. على سبيل المثال، يمكن أن يتنبّأ نموذج الانحدار بجودة المياه أو النسبة المئوية للغطاء النباتي أو النسبة المئوية للغطاء السحابي أو إنتاج المحاصيل. لمزيد من المعلومات، يُرجى الرجوع إلى قسم "التكرار الخطي" في ee.Reducers.
التدريب والتوقّعات خارج Earth Engine
التعلّم العميق والشبكات العصبية هما من تقنيات تعلُّم الآلة التي يمكنها العمل بشكل جيد مع البيانات المعقدة، مثل الصور من الأقمار الصناعية. لا تتوفّر تقنيات التعلم العميق أو الشبكات العصبية في واجهات برمجة التطبيقات لميزة "التعلم الآلي" في Earth Engine. بدلاً من ذلك، للاستفادة منها، عليك استخدام إطار عمل مثل TensorFlow أو PyTorch وتدريب النموذج خارج Earth Engine.
يمكنك أيضًا إجراء التدريب خارج Earth Engine إذا كنت تتعلّم إطار عمل مثل scikit-learn لتعلم الآلة الكلاسيكي أو XGBoost لشجرات القرارات المحسّنة بالانحدار.
أخيرًا، قد تحتاج إلى تدريب نموذج خارج Earth Engine إذا كانت مجموعة data كبيرة جدًا وتتجاوز الحدود الموضّحة أدناه.
تصدير البيانات من Earth Engine للتدريب
- تم تحسين تنسيق بيانات TFRecord للتدريب في TensorFlow. تضمّ صفحة أمثلة تعلُّم الآلة العديد من سير عمل TensorFlow التي توضّح كيفية تدريب نموذج باستخدام TFRecords.
- بدلاً من ذلك، للحصول على مثال على كيفية تنزيل البيانات باستخدام Apache Beam، المستضافة في Google Cloud Dataflow، ثمّ التدريب في Vertex AI باستخدام TensorFlow، يُرجى الانتقال إلى الدليل التعليمي لتصنيف الغطاء الأرضي والمتابعة باستخدام دفتر ملاحظات colab.
الحصول على توقّعات من نموذج خارج Earth Engine
إذا درّبت نموذجًا خارج Earth Engine، لديك بعض الخيارات للحصول على توقّعات من هذا النموذج.
-
تتيح حزمة
ee.Model
في Earth Engine إجراء توقّعات باستخدام البيانات في Earth Engine ونموذج مدرَّب مستضاف على Vertex AI من Google. يمكنك استضافة النموذج المخصّص الذي تم تدريبه في Vertex AI وإجراء الاستنتاج مباشرةً في Earth Engine باستخدامee.Model.fromVertexAi
. اطّلِع على مقالة الاتصال بالنماذج المستضافة على Vertex AI للحصول على مزيد من المعلومات. - كحل بديل، يوضّح الدليل التعليمي لتصنيف الغطاء الأرضي كيفية إجراء توقّعات باستخدام خدمة سحابة مثل وظائف Cloud.
أسباب أخرى لتدريب النماذج خارج Earth Engine
بالإضافة إلى السهولة والاستخدام المفضّل، قد تحتاج إلى تدريب نموذج خارج Earth Engine إذا كنت تريد استخدام تصاميم النماذج (مثل شبكات الخلايا العصبية التوليدية) غير المتوافقة مع واجهات برمجة التطبيقات الخاصة بميزة "تعلُّم الآلة" في Earth Engine، أو إذا كنت تريد استخدام المزيد من ميزات Vertex AI أو إذا واجهت حدودًا في التوسيع باستخدام واجهات برمجة التطبيقات الخاصة بميزة "تعلُّم الآلة" في Earth Engine.
حدود مجموعة التدريب
يكون التدريب باستخدام ee.Classifier
أو ee.Clusterer
فعالًا بشكل عام مع مجموعات البيانات التي يصل حجمها إلى 100 ميغابايت. كإرشادات
تقريبية جدًا، بافتراض دقة 32 بت (أي أرقام عائمة)، يمكن أن تتوافق هذه الدقة مع
مجموعات بيانات التدريب التي تستوفي (حيث n هو عدد الأمثلة
b هو عدد النطاقات):
عدد العناصر ≤ (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 })