Việc thực hiện Keras
thực hiện các tài liệu tham khảo bỏ học this paper.Việc triển khai Keras có bỏ học chính xác không?
Đoạn trích sau đây là từ giấy rằng:
Ý tưởng là sử dụng một mạng lưới thần kinh duy nhất tại thời gian thử nghiệm mà không bỏ học. Trọng số của mạng này là các phiên bản thu nhỏ của trọng số được đào tạo . Nếu một đơn vị được giữ lại với xác suất p trong đào tạo, trọng đi của đơn vị đó được nhân với p lúc kiểm tra như thể hiện trong hình 2.
Các tài liệu Keras đề cập rằng bỏ học chỉ được sử dụng vào thời điểm tàu và dòng sau từ việc thực hiện Dropout
x = K.in_train_phase(K.dropout(x, level=self.p), x)
dường như chỉ ra rằng thực sự kết quả đầu ra từ các lớp chỉ đơn giản là thông qua cùng trong thời gian thử nghiệm.
Hơn nữa, tôi không thể tìm thấy mã giảm cân sau khi đào tạo hoàn tất như bài báo đề xuất. Sự hiểu biết của tôi là bước mở rộng này về cơ bản là cần thiết để thực hiện công việc bỏ học, vì nó tương đương với việc lấy sản lượng dự kiến của các lớp trung gian trong một tập hợp các "mạng phụ". Không có nó, việc tính toán không còn có thể được coi là lấy mẫu từ bộ quần thể "mạng phụ" này nữa.
Câu hỏi của tôi là hiệu ứng mở rộng quy mô này được thực hiện ở Keras ở đâu?
Cập nhật 1: Ok, vì vậy Keras sử dụng bỏ qua ngược, mặc dù nó được gọi là bỏ học trong tài liệu và mã Keras. Liên kết http://cs231n.github.io/neural-networks-2/#reg dường như không chỉ ra rằng cả hai đều tương đương nhau. Câu trả lời cũng không ở số https://stats.stackexchange.com/questions/205932/dropout-scaling-the-activation-versus-inverting-the-dropout. Tôi có thể thấy rằng họ làm những việc tương tự, nhưng tôi chưa thấy ai nói rằng họ giống hệt nhau. Tôi nghĩ là không.
Vì vậy, câu hỏi mới: Có phải bỏ học và bỏ học tương đương không? Để rõ ràng, tôi đang tìm biện minh toán học để nói rằng họ đang có hay không.
Cảm ơn vì điều này. Bất kỳ cơ hội nào bạn có thể cung cấp thông tin chi tiết về câu hỏi thứ hai tôi đã hỏi? – user3390629
Tôi đã cập nhật câu trả lời của mình. –
Ok, bạn có thể giải thích tại sao chúng tương đương (trong câu trả lời)? Dường như các gradient được tính cho mạng 1 bằng cách bỏ học và mạng 2 bằng cách sử dụng bỏ qua ngược sẽ khác nhau, và do đó chúng sẽ hội tụ với các trạng thái cuối cùng khác nhau. – user3390629