मशीन लर्निंग एपीआई
मशीन लर्निंग (एमएल), पृथ्वी के अवलोकन से जुड़े डेटा का विश्लेषण करने की एक बेहतरीन तकनीक है. 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 से डेटा एक्सपोर्ट करना
- TFRecord डेटा फ़ॉर्मैट को TensorFlow में ट्रेनिंग के लिए ऑप्टिमाइज़ किया गया है. मशीन लर्निंग के उदाहरणों वाले पेज में, कई TensorFlow वर्कफ़्लो शामिल हैं. ये वर्कफ़्लो दिखाते हैं कि TFRecords का इस्तेमाल करके मॉडल को कैसे ट्रेन किया जाता है.
- इसके अलावा, Google Cloud Dataflow में होस्ट किए गए Apache Beam का इस्तेमाल करके डेटा डाउनलोड करने का तरीका जानने के लिए, कृपया ज़मीन के टाइप के हिसाब से क्लासिफ़िकेशन ट्यूटोरियल पर जाएं. इसके बाद, TensorFlow का इस्तेमाल करके Vertex AI में ट्रेनिंग दें. साथ ही, Colab नोटबुक का इस्तेमाल करें.
Earth Engine के बाहर मौजूद किसी मॉडल से अनुमान पाना
अगर आपने Earth Engine के बाहर किसी मॉडल को ट्रेन किया है, तो उस मॉडल से अनुमान पाने के लिए आपके पास कुछ विकल्प हैं.
-
Earth Engine का
ee.Model
पैकेज, Earth Engine में मौजूद डेटा का इस्तेमाल करके अनुमान लगाने की सुविधा देता है. साथ ही, Google के Vertex AI पर होस्ट किए गए ट्रेन किए गए मॉडल का इस्तेमाल करके भी अनुमान लगाया जा सकता है. Vertex AI में, कस्टम ट्रेनिंग वाले मॉडल को होस्ट किया जा सकता है. साथ ही,ee.Model.fromVertexAi
का इस्तेमाल करके, Earth Engine में सीधे तौर पर अनुमान लगाया जा सकता है. ज़्यादा जानकारी के लिए, इमेज के आधार पर अनुमान लगाने की गाइड या टेबल के आधार पर अनुमान लगाने की गाइड देखें. - इसके अलावा, ज़मीन के टाइप के हिसाब से क्लासिफ़िकेशन करने वाले ट्यूटोरियल में बताया गया है कि Cloud Functions जैसी क्लाउड सेवा का इस्तेमाल करके अनुमान कैसे लगाए जा सकते हैं.
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 })