Machine Learning di Earth Engine

Daftar Machine Learning API

Machine Learning (ML) adalah teknik canggih 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 umum adalah mengklasifikasikan piksel dalam citra satelit ke dalam dua kategori atau lebih. Pendekatan ini berguna untuk pemetaan Land Use Land Cover dan aplikasi populer lainnya.

  • Klasifikasi Terawasi: Salah satu teknik ML untuk mengklasifikasikan lahan adalah dengan menggunakan contoh kebenaran dasar untuk mengajari model membedakan antara kelas. Pengklasifikasi yang diawasi bawaan Earth Engine mendukung proses ini.
  • Klasifikasi Tanpa Pengawasan: Dalam klasifikasi tanpa pengawasan, tidak ada contoh kebenaran dasar yang diberikan ke algoritma pelatihan. Sebagai gantinya, algoritma membagi data yang tersedia ke dalam beberapa cluster berdasarkan perbedaan yang melekat. Pengklasifikasi tanpa pengawasan Earth Engine sangat berguna jika tidak ada data ground truth, jika Anda tidak mengetahui jumlah akhir kelas, atau jika Anda ingin melakukan eksperimen cepat.
  • Regresi: Sementara model klasifikasi mencoba mengelompokkan setiap input ke dalam class diskrit, model regresi mencoba memprediksi variabel berkelanjutan untuk setiap input. Misalnya, model regresi dapat memprediksi kualitas air, persentase tutupan hutan, persentase tutupan awan, atau hasil panen. Untuk mengetahui 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 gambar satelit. Deep learning maupun jaringan neural tidak didukung di API Machine Learning 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 pohon keputusan dengan gradient boosting.

Terakhir, Anda mungkin ingin 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.

  • Paket ee.Model Earth Engine memungkinkan prediksi menggunakan data di Earth Engine dan model terlatih yang dihosting di Vertex AI Google. Anda dapat menghosting model yang dilatih khusus di Vertex AI dan melakukan inferensi langsung di Earth Engine menggunakan ee.Model.fromVertexAi. Lihat panduan prediksi gambar atau panduan prediksi tabel untuk mengetahui informasi selengkapnya.
  • Atau, tutorial Klasifikasi Penutup Lahan menunjukkan cara melakukan prediksi menggunakan layanan cloud seperti Cloud Functions.

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 neural konvolusional) yang tidak didukung oleh Machine Learning API Earth Engine, jika ingin menggunakan lebih banyak fitur Vertex AI, atau jika 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 contoh, jika Anda melakukan pelatihan menggunakan 100 band, jumlah contoh yang digunakan untuk pelatihan harus kurang dari 200.000.

Batas Inferensi

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

Anda dapat melatih ulang pengklasifikasi lebih dari sekali untuk menjaga set data untuk setiap proses pelatihan 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")
    

Batas Ukuran Model

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

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