Machine Learning di Earth Engine

Daftar Machine Learning API

Machine Learning (ML) adalah teknik yang efektif untuk menganalisis data Pengamatan Bumi. Earth Engine memiliki kemampuan bawaan yang memungkinkan pengguna membuat dan menggunakan model ML untuk skenario umum dengan API yang mudah digunakan.

Tugas ML yang umum adalah mengklasifikasikan piksel dalam citra satelit ke dalam dua kategori atau lebih. Pendekatan ini berguna untuk pemetaan Tutupan Lahan Penggunaan Lahan dan aplikasi populer lainnya.

  • Klasifikasi Berbantuan: Salah satu teknik ML untuk mengklasifikasikan tanah adalah menggunakan contoh ground truth untuk mengajarkan model agar dapat membedakan antar-class. Klasifikasi terbimbing bawaan Earth Engine mendukung proses ini.
  • Klasifikasi Tidak Diawasi: Dalam klasifikasi tidak diawasi, tidak ada contoh ground truth yang diberikan ke algoritme pelatihan. Sebagai gantinya, algoritma membagi data yang tersedia menjadi cluster berdasarkan perbedaan bawaan. Klasifikasi tidak terpandu Earth Engine sangat berguna jika tidak ada data ground truth, jika Anda tidak mengetahui jumlah akhir class, atau jika Anda ingin melakukan eksperimen cepat.
  • Regresi: Sementara model klasifikasi mencoba mengelompokkan setiap input ke dalam class terpisah, model regresi mencoba memprediksi variabel kontinu untuk setiap input. Misalnya, model regresi dapat memprediksi kualitas air, persentase tutupan hutan, persentase tutupan awan, atau hasil panen. Untuk informasi selengkapnya, lihat bagian Regresi Linear di ee.Reducers.

Pelatihan dan Prediksi di luar Earth Engine

Deep learning dan jaringan neural adalah teknik machine learning yang dapat berfungsi dengan baik untuk data kompleks seperti citra satelit. Deep learning maupun jaringan neural tidak didukung di Machine Learning API Earth Engine. Sebagai gantinya, untuk memanfaatkannya, Anda harus menggunakan framework seperti TensorFlow atau PyTorch dan melatih model di luar Earth Engine.

Anda juga dapat melakukan pelatihan di luar Earth Engine jika sudah memahami framework seperti scikit-learn untuk machine learning klasik atau XGBoost untuk gradient boosted decision trees.

Terakhir, Anda dapat melatih model di luar Earth Engine jika set data Anda sangat besar dan melebihi batas yang didokumentasikan di bawah.

Mengekspor Data dari Earth Engine untuk Pelatihan

Mendapatkan Prediksi dari Model di Luar Earth Engine

Jika melatih model di luar Earth Engine, Anda memiliki beberapa opsi untuk mendapatkan prediksi dari model tersebut.

Alasan Lain untuk melatih model di luar Earth Engine

Selain keakraban dan preferensi, Anda mungkin ingin melatih model di luar Earth Engine jika ingin menggunakan arsitektur model (misalnya, jaringan saraf konvolusi) yang tidak didukung oleh Machine Learning API Earth Engine, jika Anda ingin menggunakan lebih banyak fitur Vertex AI, atau jika Anda mengalami batas penskalaan dengan Machine Learning API Earth Engine.

Batas Set Pelatihan

Pelatihan menggunakan ee.Classifier atau ee.Clusterer umumnya efektif dengan set data hingga 100 MB. Sebagai panduan yang sangat kasar, dengan asumsi presisi 32-bit (yaitu float), hal ini dapat mengakomodasi set data pelatihan yang memenuhi (dengan n adalah jumlah contoh dan b adalah jumlah band):

nb ≤ (100 * 2 20) / 4

Sebagai salah satu contoh, jika Anda berlatih menggunakan 100 band, jumlah contoh yang digunakan untuk pelatihan harus kurang dari 200.000.

Batas Inferensi

Karena Earth Engine memproses ubin gambar 256x256, permintaan inferensi pada gambar harus memiliki kurang dari 400 band (sekali lagi, dengan asumsi presisi gambar 32-bit).

Anda dapat melatih ulang pengklasifikasi lebih dari sekali untuk menjaga set data untuk setiap pelatihan berjalan dalam batas.

      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")
    

Batasan Ukuran Model

Selain itu, model itu sendiri harus kurang dari 100 MB. Banyak pengklasifikasi kami dapat dikonfigurasi untuk membatasi kompleksitasnya, sehingga ukurannya. Contoh:

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