Earth Engine'da makine öğrenimi

Makine Öğrenimi API'leri

Makine öğrenimi (ML), Dünya Gözlem verileri analiz etmek için güçlü bir tekniktir. Earth Engine, kullanıcıların kullanımı kolay API'lerle yaygın senaryolar için yapay zeka modelleri oluşturmasına ve kullanmasına olanak tanıyan yerleşik özelliklere sahiptir.

Uydu görüntülerindeki pikselleri iki veya daha fazla kategoriye sınıflandırmak yaygın bir makine öğrenimi görevidir. Bu yaklaşım, arazi kullanımı ve arazi örtüsü haritalaması ile diğer popüler uygulamalar için faydalıdır.

  • Gözetimli sınıflandırma: Araziyi sınıflandırmak için kullanılan makine öğrenimi tekniklerinden biri, bir modele sınıflar arasında ayrım yapmayı öğretmek için gerçek örneklerinden yararlanmaktır. Earth Engine'ın yerleşik gözetimli sınıflandırıcıları bu süreci destekler.
  • Gözetimsiz sınıflandırma: Gözetimli sınıflandırmada, eğitim algoritmasına gerçek referans değer örnekleri sağlanmaz. Bunun yerine, algoritma mevcut verileri doğal farklılıklara göre kümelere ayırır. Earth Engine'ın gözetimsiz sınıflandırıcıları, özellikle gerçek veri olmadığında, sınıfların nihai sayısını bilmediğinizde veya hızlı denemeler yapmak istediğinizde kullanışlıdır.
  • Regresyon: Sınıflandırma modelleri her girişi ayrı bir sınıfa ayırmaya çalışırken regresyon modelleri her giriş için sürekli bir değişkeni tahmin etmeye çalışır. Örneğin, bir regresyon modeli; su kalitesini, orman kaplı alan yüzdesini, bulut kaplı alan yüzdesini veya ürün verimini tahmin edebilir. Daha fazla bilgi için lütfen ee.Reducers'ın Doğrusal Regresyon bölümüne bakın.

Earth Engine dışında eğitim ve tahmin

Derin öğrenme ve nöral ağlar, uydu görüntüleri gibi karmaşık verilerde iyi sonuç verebilecek makine öğrenimi teknikleridir. Earth Engine'ın Makine Öğrenimi API'lerinde derin öğrenme veya nöral ağlar desteklenmez. Bunun yerine, bu kaynaklardan yararlanmak için TensorFlow veya PyTorch gibi bir çerçeve kullanmanız ve modelinizi Earth Engine dışında eğitmeniz gerekir.

Klasik makine öğrenimi için scikit-learn veya gradyan destekli karar ağaçları için XGBoost gibi bir çerçeveye aşinaysanız Earth Engine dışında da eğitim alabilirsiniz.

Son olarak, veri kümeniz çok büyükse ve aşağıda belirtilen sınırları aşıyorsa Earth Engine dışında bir model eğitmek isteyebilirsiniz.

Eğitim için Earth Engine'dan Verileri Dışa Aktarma

Earth Engine dışındaki bir modelden tahmin alma

Earth Engine dışında bir model eğitirseniz bu modelden tahmin almak için birkaç seçeneğiniz vardır.

  • Earth Engine'ın ee.Model paketi, Earth Engine'daki verileri ve Google'ın Vertex AI'ında barındırılan eğitilmiş bir modeli kullanarak tahminler yapılmasına olanak tanır. Özel olarak eğittiğiniz modeli Vertex AI'da barındırabilir ve ee.Model.fromVertexAi kullanarak doğrudan Earth Engine'da çıkarım yapabilirsiniz. Daha fazla bilgi için Vertex AI'da barındırılan modellere bağlanma başlıklı makaleyi inceleyin.
  • Alternatif olarak, Arazi Örtüsü Sınıflandırma Eğitimi'nde, Cloud Functions gibi bir bulut hizmetini kullanarak nasıl tahminde bulunabileceğiniz gösterilmektedir.

Earth Engine dışında model eğitmenin diğer nedenleri

Aşinalık ve tercihe ek olarak, Earth Engine'ın Makine Öğrenimi API'leri tarafından desteklenmeyen model mimarilerini (ör.卷积神经网络) kullanmak istiyorsanız, Vertex AI'ın daha fazla özelliğini kullanmak istiyorsanız veya Earth Engine'ın Makine Öğrenimi API'leriyle ölçeklendirme sınırlarıyla karşılaşıyorsanız bir modeli Earth Engine dışında eğitmek isteyebilirsiniz.

Eğitim seti sınırları

ee.Classifier veya ee.Clusterer kullanılarak yapılan eğitim, genellikle 100 MB'a kadar veri kümelerinde etkilidir. Çok kaba bir kılavuz olarak, 32 bit (ör. kayan nokta) hassasiyet varsayıldığında bu, aşağıdaki koşulları karşılayan eğitim veri kümelerini barındırabilir (n, örnek sayısı ve b, bant sayısıdır):

nb ≤ (100 * 2 20) / 4

Örneğin, 100 bant kullanarak eğitim yapıyorsanız eğitim için kullanılan örnek sayısı 200.000'den az olmalıdır.

Çıkarsama Sınırları

Earth Engine, 256x256 resim karolarını işlediği için görüntülerle ilgili çıkarım isteklerinde 400'den az bant olmalıdır (yine, görüntünün 32 bit hassasiyete sahip olduğu varsayılır).

Her eğitim çalıştırması için veri kümesini sınırlar dahilinde tutmak amacıyla sınıflandırıcıyı birden fazla kez yeniden eğitebilirsiniz.

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

Model Boyutu Sınırlamaları

Ayrıca, modelin kendisi 100 MB'tan küçük olmalıdır. Sınıflandırıcılarımızın çoğu, karmaşıklıklarını ve dolayısıyla boyutlarını sınırlayacak şekilde yapılandırılabilir. Örneğin:

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