Đây là 4 ma trận trọng lượng khác nhau mà tôi có được sau khi huấn luyện một máy Boltzman (RBM) bị hạn chế với ~ 4k đơn vị có thể nhìn thấy và chỉ 96 vectơ đơn vị / trọng lượng ẩn. Như bạn có thể thấy, các trọng số cực kỳ giống nhau - ngay cả các pixel đen trên khuôn mặt cũng được sao chép. 92 vectơ khác cũng rất giống nhau, mặc dù không có trọng số nào hoàn toàn giống nhau.
Tôi có thể khắc phục điều này bằng cách tăng số lượng vectơ trọng lượng lên 512 hoặc nhiều hơn. Nhưng tôi đã gặp vấn đề này vài lần trước đó với các loại RBM khác nhau (nhị phân, Gaussian, thậm chí tích chập), số lượng đơn vị ẩn khác nhau (bao gồm khá lớn), các tham số siêu khác nhau, v.v.
Câu hỏi của tôi là: lý do rất có thể khiến trọng lượng có được các giá trị rất giống nhau là gì? Có phải tất cả họ chỉ đạt được một số tối thiểu địa phương? Hay đó là một dấu hiệu của quá mức?
Tôi hiện đang sử dụng một loại Gaussian-Bernoulli RBM, mã có thể được tìm thấy ở đây .
CẬP NHẬT. Tập dữ liệu của tôi dựa trên CK + , chứa> 10k hình ảnh của 327 cá nhân. Tuy nhiên tôi làm tiền xử lý khá nặng. Đầu tiên, tôi chỉ cắt các pixel bên trong đường viền ngoài của khuôn mặt. Thứ hai, tôi biến đổi từng khuôn mặt (sử dụng gói affine piecewise) thành cùng một lưới (ví dụ: lông mày, mũi, môi, v.v ... ở cùng một vị trí (x, y) trên tất cả các hình ảnh). Sau khi tiền xử lý hình ảnh trông như thế này:
Khi đào tạo RBM, tôi chỉ lấy các pixel khác không, vì vậy vùng đen bên ngoài bị bỏ qua.