Trang này được dịch bởi Cloud Translation API.
Switch to English

TensorFlow Lattice (TFL)

TensorFlow Lattice là một thư viện triển khai các mô hình dựa trên mạng tinh thể linh hoạt, được kiểm soát và có thể diễn giải được. Thư viện cho phép bạn đưa kiến ​​thức miền vào quá trình học tập thông qua các ràng buộc hình dạng theo hướng thông thường hoặc theo chính sách. Điều này được thực hiện bằng cách sử dụng một tập hợp các lớp Keras có thể đáp ứng các ràng buộc như tính đơn điệu, tính lồi và độ tin cậy theo cặp. Thư viện cũng cung cấp các công cụ ước tính đóng hộp dễ thiết lập.

Các khái niệm

Phần này là phiên bản đơn giản hóa của mô tả trong Bảng tra cứu nội suy được hiệu chỉnh đơn sắc , JMLR 2016.

Lưới

Mạng tinh thể là một bảng tra cứu nội suy có thể ước lượng các mối quan hệ đầu vào - đầu ra tùy ý trong dữ liệu của bạn. Nó chồng lên một lưới thông thường lên không gian đầu vào của bạn và tìm hiểu các giá trị cho đầu ra trong các đỉnh của lưới. Đối với điểm kiểm tra $ x $, $ f (x) $ được nội suy tuyến tính từ các giá trị mạng xung quanh $ x $.

Ví dụ đơn giản ở trên là một hàm có 2 tính năng đầu vào và 4 tham số: $ \ theta = [0, 0.2, 0.4, 1] $, là các giá trị của hàm ở các góc của không gian đầu vào; phần còn lại của hàm được nội suy từ các tham số này.

Hàm $ f (x) $ có thể nắm bắt các tương tác phi tuyến tính giữa các đối tượng địa lý. Bạn có thể coi các thông số mạng là chiều cao của các cực đặt trên mặt đất trên một lưới thông thường, và chức năng kết quả giống như một tấm vải được kéo chặt vào bốn cực.

Với các đặc trưng $ D $ và 2 đỉnh dọc theo mỗi chiều, một mạng tinh thể thông thường sẽ có các tham số $ 2 ^ D $. Để phù hợp với một chức năng linh hoạt hơn, bạn có thể chỉ định một mạng tinh thể mịn hơn trên không gian đặc trưng với nhiều đỉnh hơn dọc theo mỗi chiều. Các hàm hồi quy mạng là liên tục và từng phần có thể phân biệt vô hạn.

Hiệu chuẩn

Giả sử mạng mẫu trước đại diện cho mức độ hài lòng của người dùng đã học được với một quán cà phê địa phương được đề xuất được tính toán bằng cách sử dụng các tính năng:

  • giá cà phê, trong khoảng 0 đến 20 đô la
  • khoảng cách với người dùng, trong phạm vi từ 0 đến 30 km

Chúng tôi muốn mô hình của mình tìm hiểu mức độ hạnh phúc của người dùng với gợi ý về một quán cà phê địa phương. Các mô hình TensorFlow Lattice có thể sử dụng các hàm tuyến tính từng phần (với tfl.layers.PWLCalibration ) để hiệu chỉnh và chuẩn hóa các tính năng đầu vào theo phạm vi được chấp nhận bởi mạng: 0,0 đến 1,0 trong mạng tinh thể ví dụ ở trên. Dưới đây là các ví dụ về chức năng hiệu chuẩn với 10 điểm chính:

Thường là một ý kiến ​​hay khi sử dụng các lượng tử của các tính năng làm các điểm chính đầu vào. Các công cụ ước tính đóng hộp TensorFlow Lattice có thể tự động đặt các điểm chính đầu vào cho các lượng tử tính năng.

Đối với các tính năng phân loại, TensorFlow Lattice cung cấp hiệu chuẩn phân loại (với tfl.layers.CategoricalCalibration ) với giới hạn đầu ra tương tự để đưa vào một mạng tinh thể.

Bộ quần áo

Số lượng tham số của một lớp mạng tăng theo cấp số nhân với số lượng các tính năng đầu vào, do đó không mở rộng tốt đến các kích thước rất cao. Để khắc phục hạn chế này, TensorFlow Lattice cung cấp các cụm mạng kết hợp (trung bình) một số mạng nhỏ , cho phép mô hình phát triển tuyến tính về số lượng các tính năng.

Thư viện cung cấp hai biến thể của các quần thể này:

  • Lưới nhỏ ngẫu nhiên (RTL): Mỗi mô hình con sử dụng một tập hợp con ngẫu nhiên của các tính năng (có thay thế).

  • Crystals : Thuật toán Crystals đầu tiên đào tạo một mô hình prefitting ước tính các tương tác tính năng theo cặp. Sau đó, nó sắp xếp quần thể cuối cùng sao cho các đặc điểm có nhiều tương tác phi tuyến tính hơn nằm trong cùng một mạng lưới.

Tại sao TensorFlow Lattice?

Bạn có thể tìm thấy phần giới thiệu ngắn gọn về TensorFlow Lattice trong bài đăng trên Blog TF này.

Khả năng diễn giải

Vì các tham số của mỗi lớp là đầu ra của lớp đó, nên dễ dàng phân tích, hiểu và gỡ lỗi từng phần của mô hình.

Mô hình chính xác và linh hoạt

Sử dụng mạng tinh thể, bạn có thể nhận được các chức năng phức tạp tùy ý chỉ với một lớp mạng tinh thể. Sử dụng nhiều lớp hiệu chuẩn và mạng lưới thường hoạt động hiệu quả trong thực tế và có thể phù hợp hoặc tốt hơn các mô hình DNN có kích thước tương tự.

Các ràng buộc về hình dạng thông thường

Dữ liệu đào tạo trong thế giới thực có thể không đại diện đầy đủ cho dữ liệu thời gian chạy. Các giải pháp ML linh hoạt như DNN hoặc rừng thường hoạt động bất ngờ và thậm chí là hoang dã trong các phần của không gian đầu vào không được bao phủ bởi dữ liệu đào tạo. Hành vi này đặc biệt có vấn đề khi các ràng buộc về chính sách hoặc công bằng có thể bị vi phạm.

Mặc dù các hình thức chính quy phổ biến có thể dẫn đến phép ngoại suy hợp lý hơn, các bộ điều chỉnh tiêu chuẩn không thể đảm bảo hành vi của mô hình hợp lý trên toàn bộ không gian đầu vào, đặc biệt là với các đầu vào có chiều cao. Việc chuyển sang các mô hình đơn giản hơn với hành vi được kiểm soát và dự đoán tốt hơn có thể phải trả giá đắt cho độ chính xác của mô hình.

TF Lattice giúp bạn có thể tiếp tục sử dụng các mô hình linh hoạt, nhưng cung cấp một số tùy chọn để đưa kiến ​​thức miền vào quá trình học tập thông qua các ràng buộc hình dạng thông thường hoặc hướng chính sách có ý nghĩa về mặt ngữ nghĩa:

  • Tính đơn điệu : Bạn có thể chỉ định rằng đầu ra chỉ nên tăng / giảm đối với đầu vào. Trong ví dụ của chúng tôi, bạn có thể muốn chỉ định rằng việc tăng khoảng cách đến một quán cà phê sẽ chỉ làm giảm sở thích dự đoán của người dùng.

  • Convexity / Concavity : Bạn có thể chỉ định rằng hình dạng hàm có thể lồi hoặc lõm. Kết hợp với tính đơn điệu, điều này có thể buộc hàm biểu thị lợi nhuận giảm dần đối với một đối tượng nhất định.

  • Tính đơn phương thức : Bạn có thể chỉ định rằng hàm phải có đỉnh duy nhất hoặc thung lũng duy nhất. Điều này cho phép bạn đại diện cho các chức năng có điểm đặc biệt liên quan đến một tính năng.

  • Sự tin cậy theo cặp : Ràng buộc này hoạt động trên một cặp tính năng và gợi ý rằng một tính năng đầu vào phản ánh về mặt ngữ nghĩa sự tin tưởng vào một tính năng khác. Ví dụ: số lượng đánh giá cao hơn khiến bạn tin tưởng hơn vào xếp hạng sao trung bình của một nhà hàng. Mô hình sẽ nhạy cảm hơn đối với xếp hạng sao (tức là sẽ có độ dốc lớn hơn đối với xếp hạng) khi số lượng đánh giá cao hơn.

Tính linh hoạt được kiểm soát với bộ điều chỉnh

Ngoài các ràng buộc về hình dạng, mạng tinh thể TensorFlow cung cấp một số bộ điều chỉnh để kiểm soát tính linh hoạt và độ mượt của chức năng cho mỗi lớp.

  • Bộ điều chỉnh Laplacian : Kết quả đầu ra của mạng tinh thể / đỉnh hiệu chuẩn / điểm chính được quy định theo các giá trị của các hàng xóm tương ứng của chúng. Điều này dẫn đến một chức năng phẳng hơn .

  • Hessian Regularizer : Điều này phạt đạo hàm đầu tiên của lớp hiệu chuẩn PWL để làm cho hàm tuyến tính hơn .

  • Wrinkle Regularizer : Điều này xử lý đạo hàm thứ hai của lớp hiệu chuẩn PWL để tránh những thay đổi đột ngột về độ cong. Nó làm cho chức năng mượt mà hơn.

  • Bộ điều chỉnh độ xoắn : Các đầu ra của mạng tinh thể sẽ được điều chỉnh theo hướng ngăn chặn sự xoắn giữa các tính năng. Nói cách khác, mô hình sẽ được quy định hóa theo hướng độc lập giữa các đóng góp của các tính năng.

Trộn và kết hợp với các lớp Keras khác

Bạn có thể sử dụng các lớp Mạng lưới TF kết hợp với các lớp Keras khác để xây dựng các mô hình hạn chế hoặc chính quy một phần. Ví dụ: các lớp hiệu chuẩn mạng hoặc PWL có thể được sử dụng ở lớp cuối cùng của các mạng sâu hơn bao gồm các lớp nhúng hoặc các lớp Keras khác.

Giấy tờ

Hướng dẫn và tài liệu API

Đối với các kiến ​​trúc mô hình phổ biến, bạn có thể sử dụng các mô hình tạo sẵn của Keras hoặc Công cụ ước tính đóng hộp . Bạn cũng có thể tạo các mô hình tùy chỉnh bằng cách sử dụng các lớp Keras lưới TF hoặc trộn và kết hợp với các lớp Keras khác. Kiểm tra tài liệu API đầy đủ để biết chi tiết.