Tôi muốn đào tạo một mạng lưới với các phi tuyến tính bị sự biến mất (hoặc bùng nổ vấn đề độ dốc mặc dù chủ yếu là biến mất). Tôi biết rằng cách tiêu chuẩn (hiện tại) là sử dụng chuẩn hóa hàng loạt 1 [BN] 1 hoặc đơn giản là từ bỏ tính phi tuyến tính và sử dụng các đơn vị ReLu Rectifier / ReLu .
Tôi muốn hai điều:
- Gắn bó với tính phi tuyến tính của tôi, vì vậy tôi không muốn từ bỏ nó và sử dụng ReLu (tức là không cho phép ReLu!). Tái tham số hóa phi tuyến tính là ok, giả sử đặt một số nhân trước nó như trong chẳng hạn.
- Lý tưởng nhất là tôi không muốn phụ thuộc quá nhiều vào quá trình chuẩn hóa hàng loạt (hoặc ít nhất là nếu nó được sử dụng, nó phải được sử dụng theo một cách mới lạ hơn là cách nó được sử dụng trong bài báo gốc hoặc khái quát hóa cho nhiều phi tuyến tính). Một trong những lý do tôi muốn tránh Batch Normalize là vì nó dường như chỉ hoạt động cho các phi tuyến tính cụ thể. Ví dụ, đối với sigmoids, tanh nhưng không rõ chúng hoạt động như thế nào đối với các phi tuyến tính khác, hãy nói gaussian.
Lý do tôi có những hạn chế này là vì tôi muốn giải quyết vấn đề biến mất độ dốc hoặc nổ độ dốc bằng cách xử lý vấn đề trực tiếp thay vì hack một giải pháp chỉ hoạt động cho các phi tuyến tính cụ thể hoặc chỉ tránh sự cố bằng cách đẩy vào ReLu.
Tôi đã tự hỏi, với hai ràng buộc đó, các cách khác để đối phó với vấn đề độ dốc biến mất là gì? (một phi tuyến tính khác đang được xem xét sẽ là hạt nhân gaussian RBF với tiền kích hoạt định mức euclide, sigmoid, tanh, v.v.)
Những ý tưởng có thể (mơ hồ) mà tôi có trong đầu sẽ là:
- Có khả năng khởi tạo tốt để các phi tuyến tính bão hòa không bắt đầu bão hòa (các phi tuyến bão hòa dẫn đến độ dốc gần bằng 0).
- Đối với RBF, tương tự, init tốt có thể rất quan trọng vì gaussian hầu hết có giá trị lớn gần bằng 0 (nghĩa là khi các bộ lọc tương tự như kích hoạt hoặc dữ liệu của nó). Do đó, có chúng quá lớn hoặc quá nhỏ đều có vấn đề về độ dốc biến mất tương tự.
- Tôi thực sự không biết nếu điều này quá hạn chế nhưng sẽ rất tuyệt nếu có một cách khác để sử dụng chuẩn hóa hàng loạt khác với đề xuất truyền thống của nó trong bài báo gốc (hoặc có thể một số ý tưởng BN khái quát cho một tập hợp không lớn hơn tuyến tính, hiện tại có vẻ như hầu hết các nghiên cứu cho thấy nó hoạt động cho sigmoids theo như tôi biết).
- Một trình tối ưu hóa thực chất liên quan đến gradient biến mất (hoặc ít nhất là cập nhật từng tham số khác nhau). Ví dụ, nếu một lớp gần với đầu vào hơn, thì bước học tập sẽ lớn hơn. Sẽ rất tốt nếu thuật toán học tập tự tính đến điều này để đối phó với độ dốc biến mất.
Nếu có bất kỳ đề xuất nào về cách xử lý độ dốc biến mất ngoài quy tắc hàng loạt hoặc ReLu, tôi rất muốn nghe về chúng!
1 : Ioffe S. và Szegedy C. (2015),
"Bình thường hóa hàng loạt: Tăng tốc đào tạo mạng lưới sâu bằng cách giảm sự thay đổi đồng biến nội bộ",
Kỷ yếu của Hội nghị quốc tế về học máy lần thứ 32 , Lille, Pháp, 2015.
Tạp chí Nghiên cứu về máy học: Khối lượng W & CP 37