Tại sao nó nguy hiểm để khởi tạo trọng lượng với số không? Có ví dụ đơn giản nào chứng minh điều đó không?
Tại sao nó nguy hiểm để khởi tạo trọng lượng với số không? Có ví dụ đơn giản nào chứng minh điều đó không?
Câu trả lời:
chỉnh sửa xem bình luận của alfa dưới đây. Tôi không phải là một chuyên gia về mạng lưới thần kinh, vì vậy tôi sẽ trì hoãn anh ta.
Sự hiểu biết của tôi khác với các câu trả lời khác đã được đăng ở đây.
Tôi khá chắc chắn rằng backpropagation liên quan đến việc thêm vào các trọng số hiện có, không nhân lên. Số tiền bạn thêm được quy định bởi quy tắc delta . Lưu ý rằng wij không xuất hiện ở phía bên phải của phương trình.
Hiểu biết của tôi là có ít nhất hai lý do chính đáng để không đặt trọng số ban đầu về 0:
Đầu tiên, mạng lưới thần kinh có xu hướng bị mắc kẹt trong cực tiểu cục bộ, do đó, nên cung cấp cho chúng nhiều giá trị bắt đầu khác nhau. Bạn không thể làm điều đó nếu tất cả bắt đầu từ 0.
Thứ hai, nếu các nơ-ron bắt đầu có cùng trọng lượng, thì tất cả các nơ-ron sẽ theo cùng một độ dốc và cuối cùng sẽ luôn làm điều tương tự như nhau.
Nếu bạn nghĩ rằng các trọng số là linh mục, như trong một mạng Bayes, thì bạn đã loại trừ khả năng những đầu vào đó có thể ảnh hưởng đến hệ thống. Một cách giải thích khác là backpropagation xác định tập các trọng số giúp giảm thiểu chênh lệch bình phương có trọng số giữa mục tiêu và các giá trị quan sát (E). Sau đó, làm thế nào bất kỳ thuật toán giảm độ dốc có thể được định hướng theo cách xác định hướng của hệ thống? Bạn đang đặt mình vào một điểm yên của không gian tham số.
Trong mỗi lần lặp của thuật toán backpropagation của bạn, bạn sẽ cập nhật các trọng số bằng cách nhân trọng số hiện có với một delta được xác định bằng backpropagation. Nếu giá trị trọng lượng ban đầu là 0, nhân nó với bất kỳ giá trị nào cho delta sẽ không thay đổi trọng số, điều đó có nghĩa là mỗi lần lặp không ảnh hưởng đến các trọng số bạn đang cố gắng tối ưu hóa.
Câu trả lời cho điều này không hoàn toàn là "Minima / Maxima cục bộ".
Khi bạn có nhiều hơn 1 Lớp ẩn và mọi trọng số đều bằng 0, cho dù thay đổi lớn / nhỏ trong Weight_i sẽ không gây ra thay đổi trong Đầu ra.
Điều này là do delta Weight_i sẽ được hấp thụ bởi Lớp ẩn tiếp theo.
Khi không có thay đổi trong Đầu ra, không có độ dốc và do đó không có hướng.
Điều này có chung đặc điểm với Minima / Maxima cục bộ, nhưng thực ra là do 0, khác biệt về mặt kỹ thuật
Vấn đề chính với việc khởi tạo tất cả các trọng số về 0 về mặt toán học dẫn đến các giá trị nơ-ron là 0 (đối với nhiều lớp) hoặc delta sẽ bằng không. Trong một trong những ý kiến của @alfa trong các câu trả lời ở trên đã có một gợi ý được cung cấp, có đề cập rằng sản phẩm của trọng lượng và delta cần phải bằng không. Điều này về cơ bản có nghĩa là đối với độ dốc gốc, nó nằm trên đỉnh đồi ngay trên đỉnh của nó và nó không thể phá vỡ tính đối xứng. Sự ngẫu nhiên sẽ phá vỡ tính đối xứng này và người ta sẽ đạt đến mức tối thiểu cục bộ. Ngay cả khi chúng tôi làm phiền trọng lượng một chút, chúng tôi sẽ theo dõi. Tham khảo: Học từ dữ liệu Bài giảng 10.
Đó là một ý tưởng tồi vì 2 lý do:
Nếu bạn đã kích hoạt sigmoid, hoặc bất cứ điều gì
Hãy chứng minh điều này (để đơn giản, tôi giả sử lớp đầu ra cuối cùng là 1 nơ ron):
Điểm 2 có thể được chỉ ra từ thực tế là sẽ bằng không. Do đó của bạn vector sẽ đầy số không, và không thể học được.