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 dạng dữ liệu TFRecord được tối ưu hoá để huấn luyện trong TensorFlow. Trang ví dụ về học máy có một số quy trình TensorFlow minh hoạ cách huấn luyện một mô hình bằng TFRecord.
- Ngoài ra, để xem ví dụ về cách tải dữ liệu xuống bằng Apache Beam, được lưu trữ trong Google Cloud Dataflow, sau đó huấn luyện trong Vertex AI bằng TensorFlow, vui lòng truy cập vào hướng dẫn về Phân loại độ che phủ đất và làm theo sổ tay colab.
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 đó.
-
Gói
ee.Model
của Earth Engine cho phép dự đoán bằng cách sử dụng dữ liệu trong Earth Engine và một mô hình đã được huấn luyện được lưu trữ trên Vertex AI của Google. Bạn có thể lưu trữ mô hình được huấn luyện tuỳ chỉnh trong Vertex AI và thực hiện suy luận trực tiếp trong Earth Engine bằngee.Model.fromVertexAi
. Hãy xem hướng dẫn dự đoán hình ảnh hoặc hướng dẫn dự đoán bảng để biết thêm thông tin. - Ngoài ra, hướng dẫn về Phân loại độ che phủ đất minh hoạ cách bạn có thể đưa ra dự đoán bằng cách sử dụng một dịch vụ đám mây như Cloud Functions.
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 })