Tại sao nên khởi tạo trọng số và độ lệch trong khoảng 0?


12

Tôi đọc cái này:

Để huấn luyện mạng thần kinh của chúng tôi, chúng tôi sẽ khởi tạo từng tham số W (l) ijWij (l) và mỗi b (l) ibi (l) thành một giá trị ngẫu nhiên nhỏ gần 0 (nói theo Bình thường (0, ϵ2) Bình thường (0 , ϵ2) phân phối cho một số nhỏ say, giả sử 0,01)

từ Stanford Hướng dẫn học sâu ở đoạn thứ 7 trong Thuật toán Backpropagation

Điều tôi không hiểu là tại sao việc khởi tạo trọng số hoặc độ lệch phải ở khoảng 0 ?

Câu trả lời:


11

Giả sử bình thường hóa dữ liệu khá hợp lý, kỳ vọng về các trọng số nên bằng 0 hoặc gần với nó. Sau đó, có thể hợp lý khi đặt tất cả các trọng số ban đầu về 0 vì trọng lượng ban đầu dương sẽ có thêm nếu nó thực sự là một trọng số âm và ngược lại. Điều này, tuy nhiên, không hoạt động. Nếu tất cả các trọng số là như nhau, tất cả chúng đều có cùng một lỗi và mô hình sẽ không học được gì - không có nguồn bất đối xứng giữa các nơ-ron.

Thay vào đó, những gì chúng ta có thể làm là giữ trọng lượng rất gần với 0 nhưng làm cho chúng khác biệt bằng cách khởi tạo chúng thành các số nhỏ, khác không. Đây là những gì được đề xuất trong hướng dẫn mà bạn liên kết. Nó có cùng một lợi thế của khởi tạo hoàn toàn bằng không ở chỗ nó gần với giá trị kỳ vọng 'dự đoán tốt nhất' nhưng tính đối xứng cũng đã bị phá vỡ đủ để thuật toán hoạt động.

Cách tiếp cận này có thêm vấn đề. Không nhất thiết là số lượng nhỏ hơn sẽ hoạt động tốt hơn, đặc biệt là nếu mạng lưới thần kinh sâu. Độ dốc tính toán trong backpropagation tỷ lệ thuận với các trọng số; trọng lượng rất nhỏ dẫn đến độ dốc rất nhỏ và có thể dẫn đến mạng mất nhiều thời gian hơn để đào tạo hoặc không bao giờ hoàn thành.

Sqrt(d)d[-1d,1d]


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.