Tôi có nên lấy các yếu tố ngẫu nhiên cho việc giảm độ dốc hàng loạt nhỏ không?


8

Khi thực hiện giảm độ dốc theo lô nhỏ cho các mạng thần kinh, điều quan trọng là phải lấy các phần tử ngẫu nhiên trong mỗi lô nhỏ? Hoặc nó là đủ để xáo trộn các yếu tố khi bắt đầu đào tạo một lần?

(Tôi cũng quan tâm đến các nguồn chắc chắn nói những gì họ làm.)

Câu trả lời:


6

Nó là đủ để xáo trộn các yếu tố khi bắt đầu đào tạo và sau đó đọc chúng tuần tự. Điều này thực sự đạt được mục tiêu tương tự như lấy các yếu tố ngẫu nhiên mọi lúc, đó là phá vỡ mọi loại cấu trúc được xác định trước có thể tồn tại trong tập dữ liệu ban đầu của bạn (ví dụ: tất cả các tích cực trong phần đầu, hình ảnh liên tiếp, v.v.).

Mặc dù nó sẽ hoạt động để tìm nạp các phần tử ngẫu nhiên mọi lúc, thao tác này thường không tối ưu về hiệu suất. Các bộ dữ liệu thường lớn và không được lưu trong bộ nhớ của bạn với quyền truy cập ngẫu nhiên nhanh, mà là trong ổ cứng chậm của bạn. Điều này có nghĩa là các lần đọc tuần tự là khá nhiều lựa chọn duy nhất bạn có để có hiệu suất tốt.

Ví dụ, Caffe sử dụng LevelDB, không hỗ trợ tìm kiếm ngẫu nhiên hiệu quả. Xem https://github.com/BVLC/caffe/issues/1087 , xác nhận rằng tập dữ liệu được đào tạo với hình ảnh luôn theo thứ tự.


3
Tôi muốn thêm nó có thể có ích để cải tổ lại dữ liệu sau mỗi lần lặp lại đầy đủ của bộ dữ liệu để tạo các lô nhỏ mới trên các lần lặp tiếp theo.
MèoLoveJazz
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.