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
- Format data TFRecord dioptimalkan untuk pelatihan di TensorFlow. Halaman contoh machine learning mencakup beberapa alur kerja TensorFlow yang menunjukkan cara melatih model menggunakan TFRecords.
- Atau, untuk mengetahui contoh cara mendownload data menggunakan Apache Beam, yang dihosting di Google Cloud Dataflow, lalu melatih di Vertex AI menggunakan TensorFlow, buka tutorial Klasifikasi Tutupan Lahan dan ikuti bersama dengan notebook colab.
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 terlatih kustom di Vertex AI dan melakukan inferensi langsung di Earth Engine menggunakanee.Model.fromVertexAi
. Lihat Menghubungkan ke model yang dihosting di Vertex AI untuk mengetahui informasi selengkapnya. - Atau, tutorial Klasifikasi Tutupan 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 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 })