t-distributed Stochastic Neighbor Embedding (t-SNE) là một kỹ thuật mạnh mẽ được sử dụng để giảm chiều , chủ yếu được thiết kế để trực quan hóa các tập dữ liệu có chiều cao trong không gian có chiều thấp, thường là hai hoặc ba chiều. Được phát triển bởi Laurens van der Maaten và Geoffrey Hinton , t-SNE rất xuất sắc trong việc tiết lộ cấu trúc cục bộ cơ bản của dữ liệu, chẳng hạn như cụm và đa tạp. Điều này giúp các tập dữ liệu phức tạp được tạo hoặc xử lý bởi các mô hình Trí tuệ nhân tạo (AI) và Học máy (ML) dễ diễn giải hơn thông qua kiểm tra trực quan. Nó được sử dụng rộng rãi trong nhiều lĩnh vực, bao gồm thị giác máy tính (CV) và Xử lý ngôn ngữ tự nhiên (NLP) .
Cách t-SNE hoạt động
Ý tưởng cốt lõi đằng sau t-SNE là ánh xạ các điểm dữ liệu chiều cao vào không gian chiều thấp (ví dụ: biểu đồ 2D) theo cách bảo toàn sự tương đồng giữa các điểm. Nó mô hình hóa sự tương đồng giữa các cặp điểm chiều cao dưới dạng xác suất có điều kiện và sau đó cố gắng tìm nhúng chiều thấp trong đó xác suất có điều kiện giữa các điểm được ánh xạ là tương tự nhau. Quá trình này tập trung vào việc duy trì cấu trúc cục bộ – các điểm gần nhau trong không gian chiều cao phải vẫn gần nhau trong bản đồ chiều thấp.
Không giống như các phương pháp tuyến tính như Phân tích thành phần chính (PCA) , t-SNE là phi tuyến tính và xác suất. Điều này cho phép nó nắm bắt các mối quan hệ phức tạp, phi tuyến tính, như các đa tạp cong, mà PCA có thể bỏ sót. Thuật toán tính toán các điểm tương đồng bằng cách sử dụng phân phối Gaussian trong không gian chiều cao và phân phối t của Student (với một bậc tự do) trong không gian chiều thấp. Sử dụng phân phối t giúp phân tách các điểm không giống nhau xa hơn trong bản đồ chiều thấp, giảm thiểu "vấn đề chen chúc" khi các điểm có xu hướng tập trung lại với nhau. Nhúng tối ưu được tìm thấy bằng cách giảm thiểu sự phân kỳ (cụ thể là sự phân kỳ Kullback-Leibler) giữa hai phân phối xác suất bằng cách sử dụng các kỹ thuật tối ưu hóa như giảm dần độ dốc . Để hiểu sâu hơn về mặt kỹ thuật, hãy tham khảo bài báo t-SNE gốc .
t-SNE so với PCA
Mặc dù cả t-SNE và PCA đều là những kỹ thuật giảm chiều phổ biến, nhưng chúng có sự khác biệt đáng kể:
- Tính tuyến tính: PCA là một kỹ thuật tuyến tính, trong khi t-SNE là phi tuyến tính. PCA tìm ra các thành phần chính tối đa hóa phương sai, về cơ bản là xoay dữ liệu. t-SNE mô hình hóa sự tương đồng theo từng cặp.
- Trọng tâm: PCA hướng đến mục tiêu bảo toàn cấu trúc toàn cục và độ biến thiên tối đa trong dữ liệu. t-SNE ưu tiên bảo toàn cấu trúc cục bộ (các vùng lân cận của điểm).
- Trường hợp sử dụng: PCA thường được sử dụng để nén dữ liệu, giảm nhiễu và là bước xử lý dữ liệu trước khi áp dụng các thuật toán ML khác. t-SNE chủ yếu được sử dụng để trực quan hóa và khám phá dữ liệu do khả năng phát hiện các cụm.
- Khả năng diễn giải: Các trục trong biểu đồ PCA biểu diễn các thành phần chính và có cách diễn giải toán học rõ ràng liên quan đến phương sai. Các trục và khoảng cách giữa các cụm trong biểu đồ t-SNE không có cách diễn giải toàn cầu trực tiếp như vậy; trọng tâm là nhóm các điểm tương đối.
Ứng dụng trong AI và ML
t-SNE đóng vai trò là công cụ trực quan hóa vô giá để hiểu dữ liệu phức tạp, đa chiều thường gặp trong các quy trình AI và ML, chẳng hạn như khám phá các nhúng được học bởi các mô hình học sâu .
- Trực quan hóa các tính năng hình ảnh: Trong thị giác máy tính , t-SNE có thể trực quan hóa các bản đồ tính năng hoặc nhúng có chiều cao được tạo ra bởi Mạng nơ-ron tích chập (CNN) , giống như các bản đồ trong các mô hình YOLO Ultralytics được sử dụng để phát hiện đối tượng hoặc phân loại hình ảnh . Bằng cách áp dụng t-SNE vào các tính năng được trích xuất từ một tập dữ liệu như ImageNet hoặc COCO , các nhà nghiên cứu có thể xem liệu mô hình có học cách nhóm các hình ảnh hoặc lớp đối tượng tương tự lại với nhau trong không gian tính năng hay không, cung cấp thông tin chi tiết về khả năng hiểu của mô hình. Điều này giúp phân tích hiệu suất của mô hình vượt ra ngoài các số liệu về độ chính xác tiêu chuẩn (xem Số liệu về hiệu suất YOLO ).
- Khám phá nhúng từ: Trong NLP , t-SNE được sử dụng để trực quan hóa nhúng từ (ví dụ, từ Word2Vec , GloVe hoặc BERT ) trong 2D. Điều này cho phép kiểm tra các mối quan hệ ngữ nghĩa; ví dụ, các từ như "vua", "nữ hoàng", "hoàng tử" và "công chúa" có thể tạo thành các cụm riêng biệt hoặc thể hiện các vị trí tương đối có ý nghĩa, chứng minh chất lượng của mô hình ngôn ngữ . Các công cụ như TensorFlow Projector thường sử dụng t-SNE để trực quan hóa nhúng.
- Hiểu dữ liệu đào tạo: Trước hoặc trong quá trình đào tạo mô hình , t-SNE có thể giúp trực quan hóa cấu trúc của chính dữ liệu đào tạo , có khả năng phát hiện các cụm riêng biệt, giá trị ngoại lai hoặc các vấn đề về nhãn trong các tập dữ liệu được quản lý thông qua các nền tảng như Ultralytics HUB .
Những cân nhắc
Mặc dù có khả năng trực quan hóa mạnh mẽ, t-SNE có một số lưu ý sau:
- Chi phí tính toán: Có thể tốn kém về mặt tính toán và chậm đối với các tập dữ liệu rất lớn do tính toán từng cặp. Các kỹ thuật như xấp xỉ t-SNE hoặc áp dụng PCA trước có thể giúp ích.
- Siêu tham số: Kết quả có thể nhạy cảm với các siêu tham số như "độ phức tạp" (liên quan đến số lượng hàng xóm gần nhất được xem xét) và số lần lặp lại để giảm dần độ dốc .
- Cấu trúc toàn cục: t-SNE tập trung vào cấu trúc cục bộ; khoảng cách tương đối giữa các cụm trong sơ đồ cuối cùng có thể không phản ánh chính xác sự tách biệt trong không gian nhiều chiều ban đầu. Kích thước cụm cũng có thể gây hiểu lầm. Các triển khai có sẵn trong các thư viện như Scikit-learn và các khuôn khổ như PyTorch .