Tại sao bộ giải mã tự động thường là kiến ​​trúc ngược như bộ mã hóa?


7

Mọi kiến ​​trúc bộ mã hóa tự động mà tôi thấy có một kiến ​​trúc tương tự nhau, chủ yếu là bộ giải mã chỉ là mặt trái của bộ mã hóa. Nếu mục tiêu của bộ giải mã tự động là học tính năng chiều thấp, tại sao bộ giải mã không đơn giản? Một ví dụ sẽ là một phép biến đổi tuyến tínhFW Ở đâu F là một n quan sát bởi f ma trận tính năng (tức là nút cổ chai) và W là một ma trận trọng lượng đã học mà bản đồ Fđến kích thước tính năng đầu vào ban đầu. Trong trường hợp bộ mã hóa tự động sâu có nhiều lớp ẩn, bộ giải mã trong ví dụ trên sẽ có dung lượng thấp so với bộ mã hóa.

Trực giác của tôi là như sau:

Nếu bộ giải mã đơn giản, thì bộ mã hóa tự động buộc phải tìm hiểu các tính năng chất lượng cao hơn trong nút cổ chai để bù lại. Ngược lại, nếu bộ giải mã có khả năng biểu diễn cao, nó có thể ánh xạ một nút cổ chai được học kém để tái cấu trúc đầu ra một cách hiệu quả. Lỗi tái cấu trúc có thể thấp hơn trong trường hợp này, nhưng điều đó không nhất thiết có nghĩa là các tính năng đã học thực sự tốt hơn.

Trong ứng dụng của riêng tôi (tính năng học trên biểu đồ), tôi đã thấy rằng một bộ giải mã đơn giản dẫn đến các tính năng được học tốt hơn so với bộ giải mã chỉ phản chiếu bộ mã hóa. Trong bài báo này , các tác giả thiết kế một bộ giải mã tự động đồ thị với bộ giải mã rất đơn giản nhưA^=σ(ZZT) Ở đâu A^ là ma trận kề đồ thị được xây dựng lại, Z là ma trận tính năng đã học và σ là một số chuyển đổi phi tuyến tính như ReLU.

Tôi đã tìm kiếm một câu trả lời cho câu hỏi này trong một thời gian nhưng tôi không tìm thấy bất kỳ lời giải thích hoặc kết quả lý thuyết nào về lý do tại sao một bộ giải mã công suất cao hơn là thích hợp hơn với một công suất thấp (hoặc ngược lại ). Nếu bất cứ ai có thể cung cấp một lời giải thích hoặc chỉ cho tôi đi đúng hướng tôi sẽ biết ơn.

Câu trả lời:


1

Trực giác của bạn là chính xác, nhưng nó không đúng ngữ cảnh. Để bắt đầu, hãy định nghĩa "các tính năng chất lượng cao" là các tính năng có thể được tái chế để đào tạo các mô hình khác , ví dụ như có thể chuyển nhượng. Ví dụ: đào tạo một bộ mã hóa (không gắn nhãn) trên ImageNet có thể giúp đưa ra một đường cơ sở vững chắc để phân loại trên ImageNet và trên các bộ dữ liệu hình ảnh khác.

Hầu hết các bộ tự động cổ điển được đào tạo về một số dạng mất L2 (thường xuyên). Điều này có nghĩa là sau khi mã hóa một đại diện, bộ giải mã sau đó phải sao chép hình ảnh gốc và bị phạt dựa trên lỗi của từng pixel . Mặc dù chính quy có thể giúp ở đây, đây là lý do tại sao bạn có xu hướng nhận được hình ảnh mờ. Vấn đề là sự mất mát không phải là ngữ nghĩa: nó không quan tâm rằng con người có tai, nhưng không quan tâm rằng màu da có xu hướng đồng nhất trên khuôn mặt. Vì vậy, nếu bạn thay thế bộ giải mã bằng thứ gì đó thực sự đơn giản, đại diện có thể sẽ tập trung vào việc lấy màu trung bình ngay trong từng vùng của hình ảnh (kích thước của nó sẽ tỷ lệ thuận với độ phức tạp của bộ giải mã và tỷ lệ nghịch với ẩn của bạn kích thước lớp).

Mặt khác, có rất nhiều kỹ thuật tự giám sát chung có thể tìm hiểu các tính năng ngữ nghĩa chất lượng cao hơn . Chìa khóa ở đây là tìm một chức năng mất tốt hơn. Bạn có thể tìm thấy một bộ slide thực sự đẹp của Andrew Zisserman tại đây . Một ví dụ đơn giản là một mạng lưới xiêm được đào tạo để dự đoán vị trí tương đối của các cặp cây trồng ngẫu nhiên:

nhập mô tả hình ảnh ở đây

Ở phần trên, vụ mùa đầu tiên trên khuôn mặt của mèo và mạng cần dự đoán rằng vụ tai sẽ xảy ra ở phía đông bắc khuôn mặt của mèo. Lưu ý rằng các loại cây trồng được chọn ngẫu nhiên và mẹo là cân bằng khoảng cách tối thiểu và tối đa giữa các loại cây trồng, để các vụ mùa liên quan xảy ra thường xuyên.

Nói cách khác, mạng sử dụng một bộ mã hóa chia sẻ và phân loại thô sơ để so sánh các nhúng của các loại cây trồng khác nhau. Điều này buộc mạng phải tìm hiểu những gì một con mèo thực sự trái ngược với một tập hợp mềm mại của màu sắc trung bình và hình dạng đặc trưng.

Bạn sẽ tìm thấy nhiều ví dụ khác trong các trang trình bày ở trên, điều này cũng cho thấy các phần nhúng này chuyển tốt hơn đáng kể so với trình tự động mã hóa khi học được đào tạo để dự đoán các lớp.


1

Tôi tự hỏi liệu một phần lý do có thể là lịch sử (rõ ràng bài báo năm 2006 của Hinton đã cho thấy nó được thực hiện theo cách này) và bởi vì (tôi tin) nó đã / là phổ biến để buộc các trọng số. Tức là bộ giải mã đang sử dụng cùng trọng số với bộ mã hóa và chúng thực sự được học cùng nhau.

Câu hỏi và câu trả lời này https://stackoverflow.com/q/36889732/841830 thảo luận về những lợi ích của việc sử dụng trọng lượng gắn liền. Và một số thông tin khác tại đây: https://amirusavi.net/blog/2018/08/25/tied-autoencoders

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.