Earth Engine'da makine öğrenimi

Makine Öğrenimi API'leri

Makine öğrenimi (ML), Dünya'yı Gözlem verilerini analiz etmek için kullanılan güçlü bir tekniktir. Earth Engine, kullanıcıların kolayca kullanılabilecek API'lerle yaygın senaryolar için makine öğrenimi modelleri oluşturup kullanmasına olanak tanıyan yerleşik özelliklere sahiptir.

Sık kullanılan bir makine öğrenimi görevi, uydu görüntülerindeki pikselleri iki veya daha fazla kategoriye ayırmaktır. Bu yaklaşım, arazi kullanımı ve arazi örtüsü haritalama ile diğer popüler uygulamalar için faydalıdır.

  • Gözetimli Sınıflandırma: Arazi sınıflandırması için kullanılan bir makine öğrenimi tekniği, bir modele sınıflar arasında ayrım yapmayı öğretmek üzere kesin referans örneklerini kullanmaktır. Earth Engine'in yerleşik denetimli sınıflandırıcıları bu süreci destekler.
  • Gözetimsiz Sınıflandırma: Gözetimsiz 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ümeler halinde ayırır. Earth Engine'in gözetimsiz sınıflandırıcıları, özellikle gerçek verilerin olmadığı, son sınıf sayısını bilmediğiniz veya hızlı denemeler yapmak istediğiniz durumlarda kullanışlıdır.
  • Regresyon: Sınıflandırma modeli her girişi ayrı bir sınıfa yerleştirmeye çalışırken regresyon modeli her giriş için sürekli bir değişkeni tahmin etmeye çalışır. Örneğin, bir regresyon modeli su kalitesini, orman örtüsü yüzdesini, bulut örtüsü 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 veriler için iyi sonuçlar verebilen makine öğrenimi teknikleridir. Earth Engine'in makine öğrenimi API'lerinde ne derin öğrenme ne de nöral ağlar desteklenir. Bunun yerine, bu avantajlardan 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 artırılmış karar ağaçları için XGBoost gibi bir çerçeveye aşinaysanız Earth Engine dışında da eğitim yapabilirsiniz.

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'den Veri 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.

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

Tanıdıklık ve tercihin yanı sıra, Earth Engine'in Machine Learning API'leri tarafından desteklenmeyen model mimarilerini (ör. evrişimli sinir ağları) kullanmak, Vertex AI'ın daha fazla özelliğini kullanmak veya Earth Engine'in Machine Learning API'leri ile ölçeklendirme sınırlarıyla karşılaşmak istiyorsanız Earth Engine dışında bir model eğitmek isteyebilirsiniz.

Eğitim Seti Sınırları

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

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.

Çıkarım Sınırları

Earth Engine, 256x256 boyutundaki resim parçalarını işlediğinden, görüntülerle ilgili çıkarım isteklerinde 400'den az bant olmalıdır (görüntülerin 32 bit hassasiyetinde olduğu varsayılır).

Her eğitim çalıştırması için veri kümesini sınırlar içinde 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ırları

Ayrıca, modelin boyutu 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
      })