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

Machine Learning API

Học máy (ML) là một kỹ thuật mạnh mẽ để phân tích dữ liệu Quan sát Trái Đất. Earth Engine có các chức năng tích hợp để cho phép người dùng xây dựng và sử dụng các mô hình học máy cho các trường hợp phổ biến bằng 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 rất hữu ích cho việc lập bản đồ Sử dụng đất và Lớp phủ đấ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 học máy để phân loại đất là sử dụng các ví dụ thực tế để dạy một mô hình phân biệt giữa các lớp. Trình phân loại có giám sát tích hợp của Earth Engine hỗ trợ quy trình này.
  • Phân loại không có giám sát: Trong phân loại không có giám sát, không có ví dụ thực tế nào được cung cấp cho thuật toán huấn luyện. Thay vào đó, thuật toán sẽ chia dữ liệu có sẵn thành các cụm dựa trên sự 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ực hiện thử nghiệm nhanh.
  • Hồi quy: Trong khi mô hình phân loại cố gắng phân loại từng đầ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 đầu vào. Ví dụ: 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ủ 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.

Đào tạo và dự đoán bên ngoài Earth Engine

Học sâu và mạng nơ-ron là những 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. Cả học sâu và mạng nơron đều không được hỗ trợ trong API học máy của Earth Engine. Thay vào đó, để tận dụng các lớp này, bạn sẽ 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 học máy cổ điển hoặc XGBoost cho cây quyết định được tăng cường độ 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 có thể muốn huấn luyện một 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 các API học máy của Earth Engine hỗ trợ, nếu muốn sử dụng nhiều tính năng hơn của Vertex AI hoặc nếu gặp phải giới hạn về quy mô với các API học máy của Earth Engine.

Giới hạn về tập dữ liệu 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ó dung lượng lên đến 100 MB. Theo nguyên tắc rất chung, giả sử độ chính xác 32 bit (tức là số thực), điều này có thể đáp ứng các tập dữ liệu huấn luyện thoả 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, thì số lượng mẫu dùng để huấn luyện phải nhỏ 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 tần (giả sử độ chính xác 32 bit của hình ảnh).

Bạn có thể huấn luyện lại một trình phân loại nhiều lần để giữ tập dữ liệu cho mỗi lần huấn luyện 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 nhỏ hơn 100 MB. Bạn có thể thiết lập nhiều trình phân loại của chúng tôi để giới hạn độ phức tạp và do đó, kích thước của chúng. Ví dụ:

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