Làm thế nào và tại sao Batch Chuẩn hóa sử dụng các đường trung bình di động để theo dõi độ chính xác của mô hình khi nó đào tạo?


20

Tôi đã đọc giấy bình thường hóa hàng loạt (BN) (1) và không hiểu nhu cầu sử dụng đường trung bình di động để theo dõi độ chính xác của mô hình và ngay cả khi tôi chấp nhận rằng đó là điều đúng đắn, tôi không hiểu những gì họ đang làm chính xác.

Theo hiểu biết của tôi (mà tôi đã sai), bài báo đề cập rằng nó sử dụng số liệu thống kê dân số thay vì số liệu thống kê nhỏ, một khi mô hình đã hoàn thành đào tạo. Sau một số cuộc thảo luận về các ước tính không thiên vị (điều đó có vẻ tiếp tuyến với tôi và không hiểu tại sao nó nói về điều đó), họ đi và nói:

Thay vào đó, sử dụng đường trung bình di động, chúng tôi theo dõi độ chính xác của mô hình khi nó đào tạo.

Đó là phần khó hiểu với tôi. Tại sao họ lại di chuyển trung bình để ước tính độ chính xác của mô hình và trên tập dữ liệu nào?

Thông thường những gì mọi người làm để ước tính tổng quát hóa mô hình của họ, họ chỉ theo dõi lỗi xác thực của mô hình của họ (và có khả năng sớm dừng việc giảm độ dốc để thường xuyên hóa). Tuy nhiên, có vẻ như bình thường hóa hàng loạt đang làm một cái gì đó hoàn toàn khác. Ai đó có thể làm rõ những gì và tại sao nó làm một cái gì đó khác nhau?


1 : Ioffe S. và Szegedy C. (2015),
"Bình thường hóa hàng loạt: Tăng tốc đào tạo mạng lưới sâu bằng cách giảm sự thay đổi đồng biến nội bộ",
Kỷ yếu của Hội nghị quốc tế về học máy lần thứ 32 , Lille, Pháp, 2015.
Tạp chí Nghiên cứu về máy học: Khối lượng W & CP 37


Bạn có hài lòng với câu trả lời nâng cao? Đó hoàn toàn không phải là một "câu trả lời", nếu bạn hỏi tôi; nếu vẫn còn liên quan, tôi có thể cung cấp một câu trả lời tốt hơn.
OverLordGoldDragon

Câu trả lời:


8

Khi sử dụng batch_n normalization, điều đầu tiên chúng ta phải hiểu là nó hoạt động theo hai cách khác nhau khi trong Đào tạo và Kiểm tra .

  1. Trong đào tạo, chúng ta cần tính toán trung bình lô nhỏ để bình thường hóa lô

  2. Trong suy luận, chúng tôi chỉ áp dụng thống kê lô nhỏ được tính toán trước

Vì vậy, trong điều thứ 2 làm thế nào để tính toán thống kê lô nhỏ này

Ở đây có trung bình di chuyển

running_mean = momentum * running_mean + (1 - momentum) * sample_mean
running_var = momentum * running_var + (1 - momentum) * sample_var

Điều này không trả lời câu hỏi nào; "Tại sao" và "làm thế nào" được hỏi, và một "cái gì" hời hợt đã được đưa ra. Nó không nên được nâng cấp.
OverLordGoldDragon

1

Họ đang nói về bình thường hóa hàng loạt, mà họ đã mô tả cho quy trình đào tạo nhưng không phải là suy luận.

Đây là một quá trình bình thường hóa các đơn vị ẩn bằng cách sử dụng phương tiện mẫu, v.v.

Trong phần này họ giải thích phải làm gì cho giai đoạn suy luận, khi bạn chỉ đưa ra dự đoán (tức là sau khi đào tạo đã hoàn thành).

Tuy nhiên, khi dừng xác thực, bạn xen kẽ dự đoán vào tập xác thực với đào tạo để ước tính lỗi xác thực của bạn.

Vì vậy, trong quá trình này, bạn không có trung bình dân số (mức trung bình vẫn thay đổi khi bạn đào tạo), do đó, bạn sử dụng trung bình đang chạy để tính toán các tham số định mức hàng loạt để tính hiệu suất trên bộ xác thực.

Theo nghĩa này

Thay vào đó, sử dụng đường trung bình di động, chúng tôi theo dõi độ chính xác của mô hình khi nó đào tạo.

không có gì để làm với nghĩa đen là sử dụng phương tiện đang chạy như một thước đo cho hiệu suất mạng thần kinh.

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.