Machine Learning APIs
แมชชีนเลิร์นนิง (ML) เป็นเทคนิคที่มีประสิทธิภาพในการวิเคราะห์ข้อมูลการสังเกตการณ์โลก Earth Engine มีความสามารถในตัวที่ช่วยให้ผู้ใช้สร้างและใช้โมเดลแมชชีนเลิร์นนิงสำหรับสถานการณ์ทั่วไป ด้วย API ที่ใช้งานง่าย
งาน ML ทั่วไปคือการจัดหมวดหมู่พิกเซลในภาพจากดาวเทียมเป็น 2 หมวดหมู่ขึ้นไป แนวทางนี้มีประโยชน์สำหรับการทำแผนที่การใช้ที่ดินและการปกคลุมของที่ดิน รวมถึงแอปพลิเคชันยอดนิยมอื่นๆ
- การแยกประเภทที่มีการควบคุมดูแล: เทคนิค ML อย่างหนึ่งสำหรับการแยกประเภทที่ดินคือการใช้ตัวอย่างข้อมูลที่ได้จากการสังเกตการณ์เพื่อสอนโมเดลให้แยกความแตกต่างระหว่างคลาส เครื่องมือแยกประเภทแบบมีผู้ดูแล ใน Earth Engine รองรับกระบวนการนี้
- การจัดประเภทแบบไม่มีการควบคุมดูแล: ในการจัดประเภทแบบไม่มีการควบคุมดูแล จะไม่มีตัวอย่างข้อมูลจากการสังเกตการณ์โดยตรง ให้กับอัลกอริทึมการฝึก แต่อัลกอริทึมจะแบ่งข้อมูลที่มีอยู่ ออกเป็นคลัสเตอร์ตามความแตกต่างโดยธรรมชาติ เครื่องมือแยกประเภทแบบไม่มีการกำกับดูแลของ Earth Engine มีประโยชน์อย่างยิ่งเมื่อไม่มีข้อมูลความจริงภาคพื้นดิน เมื่อคุณไม่ทราบจำนวนคลาสสุดท้าย หรือเมื่อต้องการทำการทดลองอย่างรวดเร็ว
- การถดถอย: ในขณะที่โมเดลการจัดประเภทพยายามจัดกลุ่มอินพุตแต่ละรายการลงใน คลาสที่ไม่ต่อเนื่อง โมเดลการถดถอยพยายามคาดการณ์ตัวแปรต่อเนื่องสำหรับอินพุตแต่ละรายการ ตัวอย่างเช่น โมเดลการถดถอยอาจคาดการณ์คุณภาพน้ำ เปอร์เซ็นต์พื้นที่ป่า เปอร์เซ็นต์ เมฆปกคลุม หรือผลผลิตพืช ดูข้อมูลเพิ่มเติมได้ที่ ส่วนการถดถอยเชิงเส้นของ ee.Reducers
การฝึกและการคาดการณ์ภายนอก Earth Engine
ดีปเลิร์นนิงและโครงข่ายประสาทเป็นเทคนิคแมชชีนเลิร์นนิงที่ใช้ได้ดีกับข้อมูลที่ซับซ้อน เช่น ภาพถ่ายจากดาวเทียม ทั้งดีปเลิร์นนิงและโครงข่ายประสาทไม่ได้รับการรองรับ ในแมชชีนเลิร์นนิง API ของ Earth Engine แต่หากต้องการใช้ประโยชน์จากโมเดลเหล่านี้ คุณจะต้อง ใช้เฟรมเวิร์ก เช่น TensorFlow หรือ PyTorch และฝึกโมเดลภายนอก Earth Engine
นอกจากนี้ คุณยังอาจต้องการฝึกโมเดลภายนอก Earth Engine หากคุ้นเคยกับ เฟรมเวิร์กอย่าง scikit-learn สำหรับแมชชีนเลิร์นนิงแบบคลาสสิก หรือ XGBoost สำหรับการไล่ระดับ ต้นไม้ตัดสินใจ
สุดท้ายนี้ คุณอาจต้องฝึกโมเดลภายนอก Earth Engine หากชุดข้อมูลมีขนาดใหญ่มากและ เกินขีดจำกัดที่ระบุไว้ด้านล่าง
การส่งออกข้อมูลจาก Earth Engine เพื่อการฝึก
- รูปแบบข้อมูล TFRecord ได้รับการเพิ่มประสิทธิภาพสำหรับ การฝึกใน TensorFlow หน้าตัวอย่างแมชชีนเลิร์นนิงมีเวิร์กโฟลว์ TensorFlow หลายรายการ ที่แสดงวิธีฝึกโมเดลโดยใช้ TFRecord
- หรือหากต้องการดูตัวอย่างวิธีดาวน์โหลดข้อมูลโดยใช้ Apache Beam ที่โฮสต์ใน Google Cloud Dataflow แล้วฝึกใน Vertex AI โดยใช้ TensorFlow โปรดไปที่บทแนะนำการจัดประเภทการปกคลุมของพื้นดิน และทำตามสมุดบันทึก Colab
รับการคาดการณ์จากโมเดลภายนอก Earth Engine
หากฝึกโมเดลภายนอก Earth Engine คุณจะมีตัวเลือก 2-3 ตัวเลือกในการรับการคาดการณ์จากโมเดลนั้น
-
แพ็กเกจ
ee.Model
ของ Earth Engine ช่วยให้สามารถคาดการณ์โดยใช้ข้อมูลใน Earth Engine และโมเดลที่ฝึกแล้วซึ่งโฮสต์อยู่ใน Vertex AI ของ Google คุณสามารถโฮสต์โมเดลที่ฝึกแบบกำหนดเองใน Vertex AI และทำการอนุมานใน Earth Engine ได้โดยตรงโดยใช้ee.Model.fromVertexAi
ดูข้อมูลเพิ่มเติมได้ที่คู่มือการคาดการณ์รูปภาพหรือ คู่มือการคาดการณ์ตาราง - หรือคุณจะดู บทแนะนำการจัดประเภทการปกคลุมของพื้นดิน เพื่อดูวิธีทำการคาดการณ์โดยใช้บริการระบบคลาวด์ เช่น Cloud Functions ก็ได้
เหตุผลอื่นๆ ในการฝึกโมเดลภายนอก Earth Engine
นอกเหนือจากความคุ้นเคยและความชอบแล้ว คุณอาจต้องการฝึกโมเดลภายนอก Earth Engine หากต้องการใช้สถาปัตยกรรมโมเดล (เช่น เครือข่ายประสาทแบบคอนโวลูชัน) ที่ ไม่รองรับโดย Machine Learning API ของ Earth Engine หากต้องการใช้ฟีเจอร์เพิ่มเติมของ Vertex AI หรือหากพบขีดจำกัดการปรับขนาดด้วย Machine Learning API ของ Earth Engine
การจำกัดชุดการฝึก
โดยทั่วไป การฝึกโดยใช้ ee.Classifier
หรือ ee.Clusterer
จะมีประสิทธิภาพ
กับชุดข้อมูลที่มีขนาดไม่เกิน 100 MB โดยคร่าวๆ แล้ว หากสมมติว่ามีความแม่นยำ 32 บิต (เช่น ลอย)
ค่านี้จะรองรับชุดข้อมูลการฝึกที่ตรงตามเงื่อนไข (โดย n คือจำนวนตัวอย่าง
และ b คือจำนวนแถบ) ดังนี้
nb ≤ (100 * 2 20) / 4
ตัวอย่างเช่น หากคุณฝึกโดยใช้ 100 แถบ จำนวนตัวอย่างที่ใช้ในการฝึกควรน้อยกว่า 200,000
ขีดจำกัดการอนุมาน
เนื่องจาก Earth Engine ประมวลผลไทล์รูปภาพขนาด 256x256 คำขออนุมานเกี่ยวกับภาพจึงต้องมี แบนด์น้อยกว่า 400 แบนด์ (อีกครั้งที่สมมติว่ามีความแม่นยำ 32 บิตของภาพ)
คุณฝึกตัวแยกประเภทซ้ำได้มากกว่า 1 ครั้งเพื่อให้ชุดข้อมูลสำหรับการฝึกแต่ละครั้งอยู่ภายใน ขีดจำกัด
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 MB เครื่องมือคัดแยกหลายรายการของเราสามารถ กำหนดค่าเพื่อจำกัดความซับซ้อนและขนาดได้ เช่น
var classifier = ee.Classifier.smileRandomForest({ numberOfTrees: 10, minLeafPopulation: 10, maxNodes: 10000 })