Giới thiệu TensorFlow Tương tự

Nút nguồn: 1079311

Giới thiệu TensorFlow Tương tự

TensorFlow Similarity là một thư viện mới được phát hành từ Google, tạo điều kiện thuận lợi cho việc đào tạo, lập chỉ mục và truy vấn các mô hình tương tự. Kiểm tra thêm tại đây.


Thường thì chúng ta cần có khả năng tìm thấy những thứ giống như những thứ khác. Tìm kiếm sự giống nhau là một kỹ thuật hữu ích để làm như vậy. Trong khoa học dữ liệu, học tập tương phản có thể được sử dụng để xây dựng các mô hình tương tự, sau đó có thể được sử dụng để tìm kiếm sự tương tự.

Các mô hình tương tự được đào tạo để xuất ra các bản nhúng trong đó các mục được nhúng trong một không gian số liệu, dẫn đến tình huống các mục tương tự ở gần nhau và xa hơn so với các mục khác nhau. Điều này liên quan trực tiếp - cả về mặt trực quan và toán học - đến các phép nhúng từ mà bạn đã quen thuộc; Paris và London gần nhau, cũng như mù tạt và tương cà, nhưng 2 nhóm này tương đối xa nhau hơn.

Theo cách này, chúng ta có thể sử dụng một mô hình tương tự để so sánh, chẳng hạn như các loại xe. Ví dụ, xe sedan của BMW và Mercedes sẽ được gắn gần nhau, trong khi xe máy của Yamaha và Kawasaki sẽ được gắn chặt với nhau. Xe máy sẽ tương đối xa hơn so với xe sedan, do đó sẽ khác xa với các phương tiện tương tự khác như thuyền, nhà máy, xe tải, xe đạp, v.v.

Hình
Tổng quan về mô hình tương tự (nguồn)

 

Học sâu được sử dụng để đào tạo các mạng nơ-ron thường được sử dụng cho các mô hình tương tự này. Để tạo điều kiện thuận lợi cho việc đào tạo các mô hình như vậy, Google gần đây đã phát hành TensorFlow giống nhau.

Tensorflow Similarity cung cấp các thuật toán hiện đại để học số liệu và tất cả các thành phần cần thiết để nghiên cứu, đào tạo, đánh giá và phục vụ các mô hình dựa trên sự tương tự.

Sau khi một mô hình được đào tạo, một chỉ mục nhúng được xây dựng để tạo điều kiện thuận lợi cho việc tìm kiếm. Để tìm kiếm, TF Tương tự sử dụng tìm kiếm Hàng xóm Gần đúng Gần nhất (ANN) để truy xuất các kết quả phù hợp nhất. Vì khoảng cách giữa các mục được nhúng là một hàm của thước đo khoảng cách, nên việc tra cứu vừa nhanh vừa chính xác bằng cách sử dụng ANN.

Các mô hình tương tự cũng linh hoạt và có thể mở rộng, cho phép thêm số lượng không giới hạn các loại mục vào mô hình mà không cần đào tạo lại; chỉ cần tính toán các lần nhúng mặt hàng mới đại diện và thêm chúng vào chỉ mục hiện có.

Hình
Tổng quan về tính tương tự của TensorFlow (nguồn)

 

TensorFlow Similarity tạo điều kiện thuận lợi cho việc đào tạo các mô hình tương tự, cũng như truy vấn tiếp theo, trực quan, đặc biệt là với sự ra đời của mô hình Keras mới SimilarityModel(), hỗ trợ nhúng lập chỉ mục và truy vấn. Với TF Tương tự, việc huấn luyện và truy vấn mô hình từ đầu đến cuối rất đơn giản.

Để chứng minh, đây là mã ví dụ từ sự tương đồng TF Kho lưu trữ GitHub đào tạo, lập chỉ mục và truy vấn một cách chính xác tập dữ liệu MNIST.

từ các lớp nhập tensorflow.keras # Nhúng lớp đầu ra với định mức L2 từ tensorflow_similarity.layers nhập MetricEmbedding # Tổn thất số liệu chuyên biệt từ tensorflow_similarity.losses nhập MultiSimilarityLoss # Kê được phân lớp phụ Mô hình có hỗ trợ lập chỉ mục từ tensorflow_similarity.models nhập Tương tựModel # Data sampels trực tiếp từ danh mục tập dữ liệu tf từ tensorflow_similarity.samplers nhập TFDatasetMultiShotMemorySampler # Công cụ hiển thị hàng xóm gần nhất từ ​​tensorflow_similarity.visualization nhập viz_neigbors_imgs # Trình lấy mẫu dữ liệu tạo ra các lô cân bằng từ MNIST dataset sampory_dung = TFDataset_mạng sử dụng các lớp Keras tiêu chuẩn đầu vào = lớp.Input (shape = (10, 28, 28)) x = lớp.Rescaling (1/1) (đầu vào) x = lớp.Conv255D (2, 64, kích hoạt = 'relu') ( x) x = các lớp.Flatten () (x) x = các lớp.Dense (3, kích hoạt = 'relu') (x) đầu ra = MetricEmbedding (64) (x) # B xây dựng mô hình mô hình Tương tự chuyên biệt = SimilarityModel (đầu vào, đầu ra) # Đào tạo mô hình Tương tự sử dụng mô hình tương phản suy hao.compile ('adam', loss = MultiSimilarityLoss ()) model.fit (sampler, epochs = 64) # Chỉ mục 5 ví dụ MNIST nhúng để làm cho chúng có thể tìm kiếm được sx, sy = sampler.get_slice (100) model.index (x = sx, y = sy, data = sx) # Tìm 0,100 ví dụ MNIST được lập chỉ mục tương tự hàng đầu cho một ví dụ cụ thể qx, qy = sampler. get_slice (5, 3713) nns = model.single_lookup (qx [1]) # Hình ảnh hóa ví dụ truy vấn và 0 hàng xóm hàng đầu của nó viz_neigbors_imgs (qx [5], qy [0], nns)


Nếu bạn thấy mình đang tìm kiếm những thứ giống với những thứ khác, TensorFlow Similarity có thể giúp bạn. Bạn có thể tìm thêm tại Repo GitHub, Hoặc kiểm tra Xin chào thế giới ví dụ để làm đúng với nó.

 
Sản phẩm liên quan:

Nguồn: https://www.kdnuggets.com/2021/09/introductioning-tensorflow-similarity.html

Dấu thời gian:

Thêm từ Xe đẩy