Làm thế nào để sử dụng dừng sớm đúng cách để đào tạo mạng lưới thần kinh sâu?


19

Tôi có một mô hình mạng nơ-ron sâu và tôi cần đào tạo nó trên tập dữ liệu của mình bao gồm khoảng 100.000 ví dụ, dữ liệu xác nhận của tôi chứa khoảng 1000 ví dụ. Bởi vì cần có thời gian để đào tạo từng ví dụ (khoảng 0,5 giây cho mỗi ví dụ) và để tránh bị quá mức, tôi muốn áp dụng dừng sớm để ngăn chặn tính toán không cần thiết. Nhưng tôi không chắc chắn làm thế nào để đào tạo mạng lưới thần kinh của mình đúng cách với việc dừng sớm, một số điều tôi chưa hiểu rõ bây giờ:

  • Điều gì sẽ là một tần số xác nhận tốt? Tôi có nên kiểm tra mô hình của mình trên dữ liệu xác nhận ở cuối mỗi kỷ nguyên không? (Cỡ lô của tôi là 1)

  • Đây có phải là trường hợp mà một vài kỷ nguyên đầu tiên có thể mang lại kết quả tồi tệ hơn trước khi nó bắt đầu hội tụ để có giá trị tốt hơn? Trong trường hợp đó, chúng ta có nên đào tạo mạng của mình trong vài kỷ nguyên trước khi kiểm tra dừng sớm không?

  • Làm thế nào để xử lý trường hợp khi mất xác nhận có thể lên xuống? Trong trường hợp đó, dừng sớm có thể ngăn mô hình của tôi học thêm, phải không?

Cảm ơn bạn trước.


Tôi thực sự khuyên bạn nên một kích thước lô lớn hơn một. Kích thước thông thường là 32, 64 và 128.
ComputerSellectist

Câu trả lời:


20

Điều gì sẽ là một tần số xác nhận tốt? Tôi có nên kiểm tra mô hình của mình trên dữ liệu xác nhận ở cuối mỗi kỷ nguyên không? (Cỡ lô của tôi là 1)

Không có quy tắc vàng, tính toán lỗi xác nhận sau mỗi kỷ nguyên là khá phổ biến. Vì xác thực của bạn được đặt nhỏ hơn nhiều so với tập huấn luyện của bạn, nên nó sẽ không làm chậm quá trình đào tạo.

Đây có phải là trường hợp mà một vài kỷ nguyên đầu tiên có thể mang lại kết quả tồi tệ hơn trước khi nó bắt đầu hội tụ để có giá trị tốt hơn?

Vâng

Trong trường hợp đó, chúng ta có nên đào tạo mạng của mình trong vài kỷ nguyên trước khi kiểm tra dừng sớm không?

Bạn có thể, nhưng vấn đề là bạn nên bỏ qua bao nhiêu kỷ nguyên. Vì vậy, trong thực tế, hầu hết thời gian mọi người không bỏ qua bất kỳ kỷ nguyên nào.

Làm thế nào để xử lý trường hợp khi mất xác nhận có thể lên xuống? Trong trường hợp đó, dừng sớm có thể ngăn mô hình của tôi học thêm, phải không?

Mọi người thường xác định một sự kiên nhẫn, tức là số lượng kỷ nguyên phải chờ trước khi dừng sớm nếu không có tiến triển nào về bộ xác nhận. Sự kiên nhẫn thường được đặt ở đâu đó trong khoảng từ 10 đến 100 (10 hoặc 20 là phổ biến hơn), nhưng nó thực sự phụ thuộc vào dữ liệu và mạng của bạn.

Ví dụ với sự kiên nhẫn = 10:

nhập mô tả hình ảnh ở đây


Có nên sử dụng mô hình khi dừng sớm hoặc các patiencekỷ nguyên mô hình trước khi dừng ( mô hình 'tốt nhất' không có cải tiến nào nữa)?
stackunderflow 30/03/2017

2
@displayname kỷ nguyên kiên nhẫn trước khi dừng lại
Franck Dernoncourt 30/03/2017

10

Gần đây tôi đã bắt gặp một bài báo có tiêu đề "Dừng sớm - nhưng khi nào?" bởi Lutz Prechelt có nhiều ví dụ tuyệt vời về cách sử dụng dừng sớm với những giải thích rõ ràng về những gì từng làm và công thức cho chúng.

Hy vọng rằng nhìn vào đó có thể giúp đỡ.


Bài viết được viết theo phong cách kỳ lạ nhưng thông tin rất hữu ích.
Giô

3

Để thêm vào các câu trả lời xuất sắc khác, bạn cũng có thể - không dừng lại. Tôi thường:

  • chạy NN trong thời gian dài hơn tôi có thể nghĩ là hợp lý,
  • lưu trọng lượng mô hình mỗi N kỷ nguyên và
  • Khi tôi thấy tổn thất đào tạo đã ổn định, tôi chỉ chọn mô hình có tổn thất xác nhận thấp nhất.

Tất nhiên điều đó chỉ có ý nghĩa khi bạn không trả tiền theo phút (hoặc chi phí đủ nhỏ) và khi bạn có thể dừng việc đào tạo bằng tay. Ưu điểm là dễ dàng hơn nhiều để xác định lỗi xác nhận thấp nhất trong nhận thức muộn.


1
Tôi cũng làm điều này Mặc dù giống như bạn, tôi biết đó là một sự xa xỉ. Khi các mô hình bắt đầu chiếm nhiều dung lượng, tôi thấy rằng bằng cách sử dụng các số liệu thua lỗ và điểm f trước đó, tôi có thể xác định bằng cách lập trình khi nào cũng xóa các mô hình trước đó - vì vậy bạn kết thúc với một cửa sổ di chuyển của các mô hình tốt nhất ứng cử viên tiêu thụ gần như nhiều dung lượng đĩa cứng vì chúng có thể có giá trị.
Tập thể QA
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.