Mạng TensorFlow (TFL)

TensorFlow Lattice là một thư viện triển khai các mô hình dựa trên mạng lưới linh hoạt, được kiểm soát và có thể giải thích được. Thư viện này cho phép bạn đưa kiến ​​thức chuyên môn vào quá trình học thông qua các ràng buộc hình dạng dựa trên kinh nghiệm hoặc 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 giữa các cặp. Thư viện này cũng cung cấp các mô hình dựng sẵn dễ thiết lập.

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 hiệu chỉnh đơn điệu (Monotonic Calibrated Interpolated Look-Up Tables) , JMLR 2016.

Mạng lưới

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

Ví dụ đơn giản ở trên là một hàm có 2 đặc trưng đầu vào và 4 tham số:\(\theta=[0, 0.2, 0.4, 1]\), đó là các giá trị của hàm tại 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.

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

Với \(D\) Với các đặc điểm và 2 đỉnh dọc theo mỗi chiều, một mạng lưới đều sẽ có \(2^D\) các tham số. Để phù hợp với một hàm linh hoạt hơn, bạn có thể chỉ định một lưới chi tiết 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 lưới là liên tục và khả vi vô hạn từng phần.

Sự định cỡ

Giả sử lưới mẫu ở trên thể hiện mức độ hài lòng của người dùng đối với một quán cà phê địa phương được đề xuất, được tính toán dựa trên các đặc trưng:

  • Giá cà phê, trong khoảng từ 0 đến 20 đô la.
  • Khoảng cách đến 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 học được mức độ hài lòng của người dùng với gợi ý về quán cà phê địa phương. 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 đặc trưng đầu vào về phạm vi được chấp nhận bởi lưới: từ 0,0 đến 1,0 trong ví dụ lưới ở trên. Sau đây là các ví dụ về các hàm hiệu chỉnh như vậy với 10 điểm chính:

Việc sử dụng các phân vị của các đặc trưng làm điểm khóa đầu vào thường là một ý tưởng hay. Các mô hình dựng sẵn của TensorFlow Lattice có thể tự động thiết lập các điểm khóa đầu vào thành các phân vị của đặc trưng.

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

Các nhóm nhạc

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

Thư viện cung cấp hai biến thể của các nhóm nhạc này:

  • Mạng 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ác đặc trưng (có thay thế).

  • Thuật toán Crystals : Đầu tiên, thuật toán này huấn luyện một mô hình tiền điều chỉnh để ước tính tương tác giữa các cặp đặc trưng. Sau đó, nó sắp xếp tập hợp cuối cùng sao cho các đặc trưng có tương tác phi tuyến tính nhiều hơn nằm trong cùng một mạng lưới.

Tại sao nên chọn 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 TF Blog này.

Khả năng giải thích

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

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

Sử dụng các lưới có độ phân giải cao, bạn có thể tạo ra các hàm phức tạp tùy ý chỉ với một lớp lưới duy nhất. Việc sử dụng nhiều lớp bộ hiệu chuẩn và lưới thường mang lại hiệu quả tốt trong thực tế và có thể sánh ngang hoặc vượt trội hơn các mô hình DNN có kích thước tương tự.

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

Dữ liệu huấn luyện thực tế có thể không đủ để đại diện cho dữ liệu trong quá trình hoạt động. Các giải pháp học máy linh hoạt như mạng nơ-ron sâu (DNN) hoặc rừng thuật toán thường hoạt động không như mong đợi, thậm chí là hỗn loạn ở những phần của không gian đầu vào không được bao phủ bởi dữ liệu huấn luyện. 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 tính công bằng bị vi phạm.

Mặc dù các phương pháp điều chỉnh thông thường có thể dẫn đến ngoại suy hợp lý hơn, nhưng các bộ điều chỉnh tiêu chuẩn không thể đảm bảo hành vi hợp lý của mô hình trên toàn bộ không gian đầu vào, đặc biệt là với đầ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ể gây tổn thất nghiêm trọng đến độ chính xác của mô hình.

TF Lattice cho phép 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 chuyên môn vào quá trình học tập thông qua các ràng buộc hình dạng dựa trên ngữ nghĩa thông thường hoặc chính sách:

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

  • Tính lồi/lõm : Bạn có thể chỉ định rằng hình dạng của hàm có thể là 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 phải thể hiện sự giảm dần hiệu quả đối với một đặc điểm nhất định.

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

  • Độ tin cậy theo cặp : Ràng buộc này hoạt động trên một cặp đặc trưng và cho thấy một đặc trưng đầu vào phản ánh về mặt ngữ nghĩa độ tin cậy vào một đặc trưng khác. Ví dụ, số lượng đánh giá càng nhiều thì bạn càng 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 bằng các yếu tố điều chỉnh

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

  • Bộ điều chỉnh Laplacian : Đầu ra của các đỉnh/điểm khóa trên lưới/điểm hiệu chuẩn được điều chỉnh về phía giá trị của các điểm lân cận tương ứng. Điều này dẫn đến một hàm phẳng hơn .

  • Bộ điều chỉnh Hessian : Bộ điều chỉnh này sẽ phạt đạo hàm bậc nhất của lớp hiệu chuẩn PWL để làm cho hàm số trở nên tuyến tính hơn .

  • Bộ điều chỉnh nếp nhăn : Chức năng này điều chỉnh đạo hàm bậc hai của lớp hiệu chuẩn PWL để tránh những thay đổi đột ngột về độ cong. Nó giúp làm cho hàm số mượt mà hơn.

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

Kết hợp và phối hợp với các lớp Keras khác.

Bạn có thể sử dụng các lớp TF Lattice kết hợp với các lớp Keras khác để xây dựng các mô hình bị ràng buộc một phần hoặc được điều chỉnh. Ví dụ, các lớp Lattice hoặc lớp hiệu chuẩn 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 embedding hoặc các lớp Keras khác.

Các bài báo

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 dựng sẵn của Keras . 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 TF Lattice Keras hoặc kết hợp với các lớp Keras khác. Hãy xem tài liệu API đầy đủ để biết thêm chi tiết.