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
- TFRecord veri biçimi, TensorFlow'da eğitim için optimize edilmiştir. Makine öğrenimi örnekleri sayfasında, TFRecords kullanılarak bir modelin nasıl eğitileceğini gösteren çeşitli TensorFlow iş akışları yer alır.
- Alternatif olarak, Google Cloud Dataflow'da barındırılan Apache Beam'i kullanarak verilerin nasıl indirileceğini ve ardından TensorFlow'u kullanarak Vertex AI'da nasıl eğitileceğini gösteren bir örnek için lütfen Arazi Örtüsü Sınıflandırma Eğitimi'ni ziyaret edin ve colab not defterini takip edin.
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 veee.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 })