Có rất nhiều bằng chứng thực nghiệm cho thấy mạng lưới thần kinh đủ sâu có thể ghi nhớ các nhãn ngẫu nhiên trên các bộ dữ liệu khổng lồ (Chiyuan Zhang, Samy Bengio, Moritz Hardt, Benjamin Recht, Oriol Vinyals, "Hiểu sâu về học tập đòi hỏi phải suy nghĩ lại về khái quát hóa"). Do đó, về nguyên tắc bằng cách có được một NN đủ lớn, chúng ta luôn có thể giảm sai số đào tạo xuống các giá trị cực kỳ nhỏ, bị giới hạn trong thực tế bởi độ chính xác bằng số, cho dù nhiệm vụ có vô nghĩa đến mức nào.
Mọi thứ khá khác nhau đối với lỗi tổng quát hóa . Chúng tôi không thể chắc chắn rằng đối với mỗi vấn đề học tập, tồn tại một mô hình NN có thể học được có thể tạo ra lỗi tổng quát hóa thấp như mong muốn. Vì lý do này, bước đầu tiên là
1. Đặt kỳ vọng của bạn một cách chính xác
Tìm một tài liệu tham khảo có uy tín cho bạn biết rằng có một kiến trúc có thể gặp phải lỗi tổng quát hóa mà bạn đang tìm kiếm, trên tập dữ liệu của bạn hoặc trên một tài liệu tương tự nhất mà bạn có thể tìm thấy tài liệu tham khảo. Ví dụ, nhìn vào đây
Các mạng lưới thần kinh tích chập hiện đại là gì?
để tìm hiệu suất hiện tại (tại thời điểm trả lời) SOTA (State Of The Art) cho các CNN trên các nhiệm vụ khác nhau. Bạn nên thử tái tạo các kết quả như vậy trên các tập dữ liệu tham chiếu này, trước khi bạn tập luyện trên tập dữ liệu của riêng mình, như một bài kiểm tra rằng tất cả cơ sở hạ tầng của bạn đã được đặt đúng chỗ.
2. Hãy chắc chắn rằng quy trình đào tạo của bạn là hoàn hảo
Tất cả các kiểm tra được mô tả trong các câu trả lời cho câu hỏi
Tôi nên làm gì khi mạng lưới thần kinh của tôi không học?
để đảm bảo rằng quy trình đào tạo của bạn ổn, là điều kiện tiên quyết để giảm thành công lỗi tổng quát hóa (nếu NN của bạn không học, nó không thể học cách khái quát hóa). Những kiểm tra này bao gồm, trong số những thứ khác:
- kiểm tra đơn vị
- kiểm tra tập dữ liệu (xem xét một vài mẫu đầu vào / nhãn ngẫu nhiên cho cả tập huấn luyện và tập kiểm tra và kiểm tra xem các nhãn có đúng không, kiểm tra độ rộng và kích thước của hình ảnh đầu vào; xáo trộn các mẫu trong tập huấn / kiểm tra và xem nó có ảnh hưởng không kết quả, v.v.)
- xét nghiệm ngẫu nhiên
- chuẩn hóa các phiên bản tiền xử lý và gói của bạn
- giữ một cuốn nhật ký thí nghiệm số
3. Cố gắng để có được siêu năng lực
Sự hội tụ siêu cấp: Đào tạo rất nhanh các mạng lưới thần kinh bằng cách sử dụng tốc độ học tập lớn của Leslie N. Smith và Nicholay Topin cho thấy trong một số trường hợp, sự kết hợp giữa tốc độ học tập lớn với phương pháp học tập theo chu kỳ của Leslie N. Smith hoạt động như một người bình thường , tăng tốc độ hội tụ theo một trật tự cường độ và giảm nhu cầu chính quy hóa rộng rãi. Vì vậy, đây là một điều tốt để thử trước
4. Đặt mức độ chính quy của bạn thành MAXXX
Chính quy hóa thường làm tăng thời gian đào tạo (xấu), tăng lỗi đào tạo và giảm lỗi tổng quát hóa (tốt), nhưng quá nhiều chính quy có thể thực sự làm tăng cả hai lỗi (thiếu). Vì lý do này và vì thời gian đào tạo tăng lên, nên thường xuyên giới thiệu các kỹ thuật chính quy hóa khác nhau cùng một lúc, sau khi bạn quản lý thành công để phù hợp với tập huấn luyện. Lưu ý rằng chính nó không nhất thiết ngụ ý lỗi tổng quát hóa của bạn sẽ nhỏ hơn: mô hình phải có công suất đủ lớn để đạt được các đặc tính tổng quát hóa tốt. Điều này thường có nghĩa là bạn cần một mạng lưới đủ sâu, trước khi bạn có thể thấy những lợi ích của việc chính quy hóa.
Các phương pháp chính quy lâu đời nhất có lẽ là dừng sớm và giảm cân. Một số người khác:
- m = 16
- sử dụng SGD thay vì tối ưu hóa thích ứng: điều này đã được @shimao trình bày, do đó tôi chỉ đề cập đến nó vì mục đích hoàn chỉnh
- sử dụng bỏ học: nếu bạn sử dụng LSTM, chỉ sử dụng bỏ học tiêu chuẩn cho các đơn vị đầu vào và đầu ra của lớp LSTM. Đối với các đơn vị định kỳ (cổng) sử dụng bỏ học định kỳ, như lần đầu tiên được hiển thị bởi Yarin Gal trong Ph.D. luận án . Tuy nhiên, nếu bạn sử dụng CNN, việc bỏ học được sử dụng ít thường xuyên hơn bây giờ. Thay vào đó, bạn có xu hướng
- ... sử dụng chuẩn hóa hàng loạt: các kiến trúc CNN gần đây nhất bỏ qua eschew để ủng hộ chuẩn hóa hàng loạt. Đây có thể chỉ là một mốt nhất thời, hoặc có thể là do thực tế là dường như bỏ học và bình thường hóa hàng loạt không chơi tốt với nhau (Xiang Li, Shuo Chen, Xiaolin Hu, Jian Yang, Hiểu về sự bất hòa giữa Dropout và Batch bình thường hóa bởi phương sai Thay đổi ). Vì định mức hàng loạt có hiệu quả hơn so với bỏ học khi bạn có bộ dữ liệu khổng lồ, đây có thể là một lý do khiến việc bỏ học không được ưa chuộng đối với các kiến trúc CNN. Nếu bạn sử dụng chuẩn hóa hàng loạt, hãy xác minh rằng phân phối trọng số và độ lệch cho mỗi lớp trông xấp xỉ tiêu chuẩn bình thường. Đối với RNN, việc thực hiện định mức lô rất phức tạp: bình thường hóa trọng lượng (Tim Salimans, Diederik P. Kingma,Bình thường hóa trọng lượng: Một thông số hóa đơn giản để tăng tốc đào tạo mạng lưới thần kinh sâu ) là một sự thay thế khả thi.
- sử dụng dữ liệu tăng cường: nó cũng có tác dụng thường xuyên.
5. Tìm kiếm siêu tham số / kiến trúc
Nếu không có gì khác giúp bạn, bạn sẽ phải kiểm tra nhiều cài đặt siêu tham số khác nhau (Tối ưu hóa Bayes có thể giúp ở đây) hoặc nhiều thay đổi kiến trúc khác nhau (ví dụ: có thể trong kiến trúc GAN của bạn và đối với tập dữ liệu bạn đang làm việc, chỉ tiêu theo lô chỉ hoạt động trong máy phát điện, nhưng khi thêm vào bộ phân biệt đối xử quá nó làm cho mọi thứ tồi tệ hơn). Hãy chắc chắn để theo dõi kết quả của các thí nghiệm dài và nhàm chán này trong một nhật ký được sắp xếp tốt.
PS cho một GAN không có ý nghĩa gì khi nói về lỗi tổng quát hóa: ví dụ trên chỉ có ý nghĩa như một dấu hiệu cho thấy vẫn còn rất nhiều thuật giả kim trong Deep Learning và đôi khi bạn sẽ làm việc tốt, đôi khi không 'hoặc ngược lại, một cái gì đó hoạt động tốt nhiều lần, đột nhiên thèm muốn bạn lấy một bộ dữ liệu mới.