Vì vậy, tôi đang cố gắng dạy cho mình các mạng lưới thần kinh (đối với các ứng dụng hồi quy, không phân loại hình ảnh của mèo).
Các thử nghiệm đầu tiên của tôi là đào tạo một mạng để thực hiện bộ lọc FIR và Biến đổi Fourier rời rạc (đào tạo các tín hiệu "trước" và "sau"), vì cả hai đều là các hoạt động tuyến tính có thể được thực hiện bởi một lớp duy nhất không có chức năng kích hoạt. Cả hai đều hoạt động tốt.
Vì vậy, sau đó tôi muốn xem liệu tôi có thể thêm một abs()
và làm cho nó học một phổ biên độ hay không. Đầu tiên tôi nghĩ về việc cần bao nhiêu nút trong lớp ẩn và nhận ra rằng 3 ReLU là đủ cho một xấp xỉ thô abs(x+jy) = sqrt(x² + y²)
, vì vậy tôi đã thử nghiệm hoạt động đó bằng chính các số phức (2 đầu vào → 3 nút ReLU ẩn lớp → 1 đầu ra). Thỉnh thoảng nó hoạt động:
Nhưng hầu hết những lần tôi thử nó, nó bị kẹt ở mức tối thiểu cục bộ và không tìm được hình dạng phù hợp:
Tôi đã thử tất cả các tối ưu hóa và các biến thể ReLU trong Keras, nhưng chúng không tạo ra nhiều khác biệt. Có điều gì khác tôi có thể làm để làm cho các mạng đơn giản như thế này hội tụ một cách đáng tin cậy không? Hoặc tôi chỉ đang tiếp cận điều này với thái độ sai lầm, và bạn có nghĩa vụ phải ném nhiều nút hơn mức cần thiết vào vấn đề và nếu một nửa trong số họ chết thì đó không phải là vấn đề lớn?