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
- TFRecord veri biçimi, TensorFlow'da eğitim için optimize edilmiştir. Makine öğrenimi örnekleri sayfasında, TFRecord'ları kullanarak model eğitmenin nasıl yapılacağını 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ği ve ardından TensorFlow kullanılarak Vertex AI'da nasıl eğitileceği ile ilgili bir örnek için lütfen Arazi Örtüsü Sınıflandırması eğitimini 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'in
ee.Model
paketi, Earth Engine'deki veriler ve Google'ın Vertex AI'ında barındırılan eğitilmiş bir model kullanılarak tahminler yapılmasına olanak tanır. Özel olarak eğitilmiş modelinizi Vertex AI'da barındırabilir veee.Model.fromVertexAi
kullanarak doğrudan Earth Engine'de çıkarım yapabilirsiniz. Daha fazla bilgi için resim tahminleri kılavuzuna veya tablo tahminleri kılavuzuna göz atın. - Alternatif olarak, Arazi Örtüsü Sınıflandırması Eğitimi, Cloud Functions gibi bir bulut hizmetini kullanarak nasıl tahmin yapabileceğinizi gösterir.
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 })