Earth Engine में मशीन लर्निंग

मशीन लर्निंग एपीआई

मशीन लर्निंग (एमएल), Earth के ऑब्ज़र्वेशन डेटा का विश्लेषण करने के लिए एक बेहतरीन तकनीक है. Earth Engine में पहले से मौजूद सुविधाओं की मदद से, उपयोगकर्ता सामान्य स्थितियों के लिए, इस्तेमाल में आसान एपीआई की मदद से, एमएल मॉडल बना सकते हैं और उनका इस्तेमाल कर सकते हैं.

एमएल का एक सामान्य टास्क, सैटलाइट इमेज में मौजूद पिक्सल को दो या उससे ज़्यादा कैटगरी में बांटना है. यह तरीका, ज़मीन के इस्तेमाल और कवरेज की मैपिंग के लिए मददगार है. साथ ही, यह अन्य लोकप्रिय ऐप्लिकेशन के लिए भी काम का है.

  • सुपरवाइज़्ड क्लासिफ़िकेशन: लैंड को अलग-अलग कैटगरी में बांटने के लिए, मशीन लर्निंग की एक तकनीक है. इसमें, ग्राउंड ट्रूथ के उदाहरणों का इस्तेमाल करके, मॉडल को अलग-अलग कैटगरी के बीच अंतर करने का तरीका सिखाया जाता है. Earth Engine में पहले से मौजूद सुपरवाइज़्ड क्लासिफ़ायर इस प्रोसेस के साथ काम करते हैं.
  • बिना निगरानी वाले क्लासिफ़िकेशन: बिना निगरानी वाले क्लासिफ़िकेशन में, ट्रेनिंग एल्गोरिदम को कोई ग्राउंड ट्रूथ उदाहरण नहीं दिया जाता. इसके बजाय, एल्गोरिदम, उपलब्ध डेटा को क्लस्टर में बांटता है. Earth Engine के बिना निगरानी वाले क्लासिफ़ायर खास तौर पर तब काम के होते हैं, जब कोई ग्राउंड ट्रूथ डेटा मौजूद न हो, जब आपको क्लास की कुल संख्या न पता हो या जब आपको तुरंत प्रयोग करना हो.
  • रिग्रेशन: क्लासिफ़िकेशन मॉडल, हर इनपुट को अलग-अलग कैटगरी में बांटने की कोशिश करता है. वहीं, रिग्रेशन मॉडल हर इनपुट के लिए, लगातार बदलने वाले वैरिएबल का अनुमान लगाने की कोशिश करता है. उदाहरण के लिए, किसी रेग्रेसन मॉडल से, पानी की क्वालिटी, वन क्षेत्र का प्रतिशत, बादल के कवर का प्रतिशत या फ़सल की पैदावार का अनुमान लगाया जा सकता है. ज़्यादा जानकारी के लिए, कृपया ee.Reducers का लीनियर रिग्रेशन सेक्शन देखें.

Earth Engine के बाहर ट्रेनिंग और अनुमान लगाना

डीप लर्निंग और न्यूरल नेटवर्क, मशीन लर्निंग की तकनीकें हैं. ये सैटलाइट इमेज जैसे मुश्किल डेटा के लिए बेहतर तरीके से काम कर सकती हैं. Earth Engine के मशीन लर्निंग एपीआई में, डीप लर्निंग और न्यूरल नेटवर्क, दोनों काम नहीं करते. इसके बजाय, इनका फ़ायदा पाने के लिए, आपको TensorFlow या PyTorch जैसे फ़्रेमवर्क का इस्तेमाल करना होगा. साथ ही, Earth Engine के बाहर अपने मॉडल को ट्रेन करना होगा.

अगर आपको पहले से ही क्लासिकल मशीन लर्निंग के लिए scikit-learn या ग्रेडिएंट बूस्ड डिसीज़न ट्री के लिए XGBoost जैसे फ़्रेमवर्क के बारे में पता है, तो हो सकता है कि आप Earth Engine के बाहर ट्रेनिंग करना चाहें.

आखिर में, अगर आपका डेटा सेट बहुत बड़ा है और यहां दी गई सीमाओं से ज़्यादा है, तो हो सकता है कि आप Earth Engine के बाहर किसी मॉडल को ट्रेन करना चाहें.

ट्रेनिंग के लिए, Earth Engine से डेटा एक्सपोर्ट करना

Earth Engine से बाहर के मॉडल से अनुमान पाना

अगर आपने Earth Engine के बाहर किसी मॉडल को ट्रेन किया है, तो उस मॉडल से अनुमान पाने के लिए आपके पास कुछ विकल्प हैं.

Earth Engine के बाहर मॉडल को ट्रेन करने की अन्य वजहें

Earth Engine के अलावा किसी दूसरे प्लैटफ़ॉर्म पर मॉडल को ट्रेन करने की वजहें कई हो सकती हैं. जैसे, अगर आपको ऐसे मॉडल आर्किटेक्चर (उदाहरण के लिए, कॉन्वोल्यूशनल न्यूरल नेटवर्क) का इस्तेमाल करना है जो Earth Engine के मशीन लर्निंग एपीआई के साथ काम नहीं करते, Vertex AI की ज़्यादा सुविधाओं का इस्तेमाल करना है या Earth Engine के मशीन लर्निंग एपीआई के साथ स्केलिंग की सीमाएं आ रही हैं.

ट्रेनिंग सेट की सीमाएं

ee.Classifier या ee.Clusterer का इस्तेमाल करके ट्रेनिंग, आम तौर पर 100 एमबी तक के डेटासेट के लिए कारगर होती है. एक बहुत ही सामान्य दिशा-निर्देश के तौर पर, 32-बिट (यानी फ़्लोट) सटीक मानते हुए, इसमें ऐसे ट्रेनिंग डेटासेट शामिल किए जा सकते हैं जो इन शर्तों को पूरा करते हैं (जहां n, उदाहरणों की संख्या है और b, बैंड की संख्या है):

nb ≤ (100 * 2 20) / 4

उदाहरण के लिए, अगर 100 बैंड का इस्तेमाल करके ट्रेनिंग दी जाती है, तो ट्रेनिंग के लिए इस्तेमाल किए गए उदाहरणों की संख्या 2,00,000 से कम होनी चाहिए.

अनुमान लगाने की सीमाएं

Earth Engine, 256x256 इमेज टाइल को प्रोसेस करता है. इसलिए, इमेज पर अनुमान लगाने के अनुरोधों में 400 से कम बैंड होने चाहिए. यह भी माना जाता है कि इमेज 32-बिट की है.

हर ट्रेनिंग के लिए डेटासेट को सीमाओं में रखने के लिए, क्लासिफ़ायर को एक से ज़्यादा बार फिर से ट्रेन किया जा सकता है.

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

मॉडल के साइज़ से जुड़ी सीमाएं

इसके अलावा, मॉडल का साइज़ 100 एमबी से कम होना चाहिए. हमारे कई क्लासिफ़ायर को कॉन्फ़िगर किया जा सकता है, ताकि उनकी जटिलता और साइज़ को कम किया जा सके. उदाहरण के लिए:

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