Công nghệ học máy trong Earth Engine

API học máy

Học máy (ML) là một kỹ thuật mạnh mẽ để phân tích dữ liệu quan trắc Trái đất. Earth Engine có các chức năng tích hợp cho phép người dùng tạo và sử dụng các mô hình học máy cho các tình huống phổ biến bằng các API dễ sử dụng.

Một nhiệm vụ phổ biến của học máy là phân loại các pixel trong hình ảnh vệ tinh thành hai hoặc nhiều danh mục. Phương pháp này hữu ích cho việc lập bản đồ Lớp phủ đất và mục đích sử dụng đất cũng như các ứng dụng phổ biến khác.

  • Phân loại có giám sát: Một kỹ thuật máy học để phân loại đất là sử dụng các ví dụ về giá trị thực để dạy mô hình phân biệt giữa các lớp. Các thuật toán phân loại có giám sát tích hợp sẵn của Earth Engine hỗ trợ quy trình này.
  • Phân loại không giám sát: Trong phương pháp phân loại không giám sát, thuật toán huấn luyện sẽ không được cung cấp ví dụ về giá trị thực. Thay vào đó, thuật toán chia dữ liệu có sẵn thành các cụm dựa trên những điểm khác biệt vốn có. Trình phân loại không giám sát của Earth Engine đặc biệt hữu ích khi không có dữ liệu thực tế, khi bạn không biết số lượng lớp cuối cùng hoặc khi bạn muốn thử nghiệm nhanh.
  • Phương pháp hồi quy: Trong khi mô hình phân loại cố gắng phân nhóm từng dữ liệu đầu vào vào một lớp riêng biệt, thì mô hình hồi quy cố gắng dự đoán một biến liên tục cho từng dữ liệu đầu vào. Ví dụ: một mô hình hồi quy có thể dự đoán chất lượng nước, tỷ lệ che phủ rừng, tỷ lệ che phủ của mây hoặc năng suất cây trồng. Để biết thêm thông tin, vui lòng tham khảo phần hồi quy tuyến tính của ee.Reducers.

Huấn luyện và dự đoán bên ngoài Earth Engine

Học sâu và mạng nơron là các kỹ thuật học máy có thể hoạt động hiệu quả đối với dữ liệu phức tạp như hình ảnh vệ tinh. API Học máy của Earth Engine không hỗ trợ công nghệ học sâu hay mạng nơron. Thay vào đó, để tận dụng các mô hình này, bạn cần sử dụng một khung như TensorFlow hoặc PyTorch và huấn luyện mô hình bên ngoài Earth Engine.

Bạn cũng có thể muốn huấn luyện bên ngoài Earth Engine nếu đã quen thuộc với một khung như scikit-learn cho công nghệ học máy cổ điển hoặc XGBoost cho cây quyết định tăng cường theo độ dốc.

Cuối cùng, bạn có thể muốn huấn luyện một mô hình bên ngoài Earth Engine nếu tập dữ liệu của bạn rất lớn và vượt quá các giới hạn được ghi lại ở bên dưới.

Xuất dữ liệu từ Earth Engine để huấn luyện

Nhận thông tin dự đoán từ một mô hình bên ngoài Earth Engine

Nếu huấn luyện một mô hình bên ngoài Earth Engine, bạn có một số lựa chọn để nhận thông tin dự đoán từ mô hình đó.

Các lý do khác để huấn luyện mô hình bên ngoài Earth Engine

Ngoài sự quen thuộc và lựa chọn ưu tiên, bạn nên huấn luyện mô hình bên ngoài Earth Engine nếu muốn sử dụng các cấu trúc mô hình (ví dụ: mạng nơron tích chập) không được API Máy học của Earth Engine hỗ trợ, nếu bạn muốn sử dụng nhiều tính năng hơn của Vertex AI hoặc nếu bạn gặp phải giới hạn về quy mô với API Máy học của Earth Engine.

Giới hạn tập huấn luyện

Việc huấn luyện bằng ee.Classifier hoặc ee.Clusterer thường hiệu quả với các tập dữ liệu có kích thước tối đa 100 MB. Dưới đây là nguyên tắc rất sơ bộ, giả sử độ chính xác 32 bit (tức là dấu phẩy động), điều này có thể đáp ứng các tập dữ liệu huấn luyện thỏa mãn (trong đó n là số lượng ví dụ và b là số lượng dải tần):

nb ≤ (100 * 2 20) / 4

Ví dụ: nếu bạn huấn luyện bằng 100 dải tần số, thì số lượng ví dụ dùng để huấn luyện phải ít hơn 200.000.

Giới hạn suy luận

Vì Earth Engine xử lý các ô hình ảnh 256x256, nên các yêu cầu suy luận về hình ảnh phải có ít hơn 400 dải (lại giả định độ chính xác 32 bit của hình ảnh).

Bạn có thể huấn luyện lại một bộ phân loại nhiều lần để giữ cho tập dữ liệu của mỗi lần chạy huấn luyện nằm trong giới hạn.

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

Giới hạn về kích thước mô hình

Ngoài ra, bản thân mô hình phải có dung lượng dưới 100 MB. Bạn có thể định cấu hình nhiều trình phân loại của chúng tôi để giới hạn độ phức tạp và do đó là kích thước của các trình phân loại đó. Ví dụ:

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