Phần phụ thuộc dữ liệu

Dữ liệu cũng quan trọng đối với nhà phát triển công nghệ máy học giống như mã đối với các lập trình viên truyền thống. Bài học này tập trung vào các loại câu hỏi bạn nên đặt ra cho dữ liệu của mình.

Phần phụ thuộc dữ liệu

  • Dữ liệu đầu vào (tính năng) xác định hành vi của hệ thống máy học.
    • Chúng ta viết kiểm thử đơn vị cho thư viện phần mềm, nhưng còn dữ liệu thì sao?
  • Bạn phải cẩn thận khi chọn tín hiệu đầu vào.
    • Thậm chí có thể quan tâm hơn so với việc quyết định dựa vào thư viện phần mềm nào?
  • Độ tin cậy
    • Điều gì sẽ xảy ra khi không có tín hiệu? Quý vị có biết?
  • Độ tin cậy
    • Điều gì sẽ xảy ra khi không có tín hiệu? Quý vị có biết?
  • Lập phiên bản
    • Hệ thống tính toán tín hiệu này có bao giờ thay đổi không? Tần suất như thế nào? Điều gì sẽ xảy ra?
  • Độ tin cậy
    • Điều gì sẽ xảy ra khi không có tín hiệu? Quý vị có biết?
  • Lập phiên bản
    • Hệ thống tính toán tín hiệu này có bao giờ thay đổi không? Tần suất như thế nào? Điều gì sẽ xảy ra?
  • Sự cần thiết
    • Liệu sự hữu ích của tín hiệu này có phù hợp với chi phí của việc đưa tín hiệu vào không?
  • Tương quan
    • Có tín hiệu đầu vào nào gắn liền với nhau đến mức chúng ta cần thêm chiến lược để thuyết phục không?
  • Tương quan
    • Có tín hiệu đầu vào nào gắn liền với nhau đến mức chúng ta cần thêm chiến lược để thuyết phục không?
  • Vòng phản hồi
    • Dữ liệu đầu vào của tôi có thể bị ảnh hưởng bởi đầu ra của mô hình?

Video tóm tắt bài giảng

Hành vi của hệ thống máy học phụ thuộc vào hành vi và chất lượng của các tính năng đầu vào. Khi dữ liệu đầu vào cho các tính năng đó thay đổi, mô hình của bạn cũng sẽ thay đổi. Đôi khi, bạn muốn thực hiện thay đổi đó, nhưng đôi khi không phải như vậy.

Trong quá trình phát triển phần mềm truyền thống, bạn tập trung nhiều vào mã hơn là dữ liệu. Trong quá trình phát triển công nghệ máy học, mặc dù việc lập trình vẫn là một phần trong công việc, nhưng bạn cần phải mở rộng tiêu điểm để cung cấp dữ liệu. Ví dụ: trong các dự án phát triển phần mềm truyền thống, phương pháp hay nhất là viết mã kiểm thử đơn vị để xác thực mã. Trong các dự án ML, bạn cũng phải liên tục kiểm tra, xác minh và giám sát dữ liệu đầu vào của mình.

Ví dụ: bạn nên liên tục theo dõi mô hình của mình để xoá các tính năng không dùng đến (hoặc ít sử dụng). Hãy tưởng tượng một tính năng nhất định đang đóng góp rất ít hoặc không đóng góp gì cho mô hình. Nếu dữ liệu đầu vào cho tính năng đó đột ngột thay đổi, hành vi của mô hình cũng có thể đột ngột thay đổi theo cách không mong muốn.

Độ tin cậy

Một số câu hỏi để tìm hiểu về độ tin cậy của dữ liệu đầu vào của bạn:

  • Tín hiệu sẽ luôn có sẵn hay đến từ một nguồn không đáng tin cậy? Ví dụ:
    • Có phải tín hiệu đến từ máy chủ gặp sự cố trong khi tải nặng không?
    • Có phải tín hiệu đến từ những người đi nghỉ mỗi tháng 8 không?

Lập phiên bản

Một số câu hỏi để hỏi về cách tạo phiên bản:

  • Hệ thống tính toán dữ liệu này có bao giờ thay đổi không? Nếu có:
    • Tần suất như thế nào?
    • Làm cách nào để biết khi nào hệ thống đó thay đổi?

Đôi khi, dữ liệu đến từ một quá trình ngược dòng. Nếu quá trình đó đột ngột thay đổi, mô hình của bạn có thể gặp khó khăn.

Hãy cân nhắc tạo bản sao dữ liệu của riêng bạn mà bạn nhận được từ quy trình ngược dòng. Sau đó, chỉ chuyển đến phiên bản tiếp theo của dữ liệu ngược dòng khi bạn chắc chắn rằng mình có thể làm điều này một cách an toàn.

Sự cần thiết

Câu hỏi sau đây có thể nhắc bạn về việc chuẩn hoá:

  • Tính hữu ích của tính năng có phù hợp với chi phí của tính năng đó không?

Bạn luôn nên thêm các tính năng khác vào mô hình. Ví dụ: giả sử bạn tìm thấy một tính năng mới có phần bổ sung giúp mô hình của bạn chính xác hơn một chút. Độ chính xác cao hơn chắc chắn là âm thanh tốt hơn độ chính xác thấp. Tuy nhiên, giờ bạn vừa thêm vào gánh nặng bảo trì của mình. Tính năng bổ sung đó có thể suy giảm đột ngột, vì vậy, bạn phải theo dõi tính năng đó. Hãy suy nghĩ kỹ trước khi thêm các tính năng dẫn đến các chiến thắng ngắn hạn.

Tương quan

Một số tính năng tương quan (tích cực hoặc tiêu cực) với các tính năng khác. Hãy tự hỏi những điều sau:

  • Có tính năng nào gắn kết với nhau đến mức bạn cần có thêm chiến lược để thuyết phục họ không?

Vòng phản hồi

Đôi khi, một mô hình có thể ảnh hưởng đến dữ liệu huấn luyện của chính mô hình đó. Ví dụ: kết quả từ một số mô hình lần lượt là các tính năng đầu vào trực tiếp hoặc gián tiếp cho cùng một mô hình đó.

Đôi khi, một mô hình có thể ảnh hưởng đến một mô hình khác. Ví dụ: hãy xem xét hai mô hình để dự đoán giá cổ phiếu:

  • Mô hình A là mô hình dự đoán không hợp lệ.
  • Kiểu máy B.

Vì Mô hình A có lỗi, nên nó đã quyết định mua cổ phiếu X một cách nhầm lẫn. Các giao dịch mua hàng này sẽ làm tăng giá cổ phiếu X. Mô hình B sử dụng giá của cổ phiếu X làm tính năng đầu vào, vì vậy, mô hình B có thể dễ dàng đưa ra một số kết luận sai lệch về giá trị của cổ phiếu X. Do đó, Mô hình B có thể mua hoặc bán cổ phiếu X dựa trên hành vi lỗi của Mô hình A. Hành vi của Mô hình B lần lượt có thể ảnh hưởng đến Mô hình A, có thể kích hoạt tâm lý hoặc trang trình bày trong cổ phiếu của Công ty X