Các mạng lưới thần kinh có thường mất một thời gian để đá kick trong khi tập luyện không?


10

Tôi đang cố gắng đào tạo một mạng lưới thần kinh sâu để phân loại, sử dụng lan truyền ngược. Cụ thể, tôi đang sử dụng một mạng nơ ron tích chập để phân loại hình ảnh, sử dụng thư viện Tensor Flow. Trong quá trình đào tạo, tôi gặp phải một số hành vi kỳ lạ, và tôi chỉ tự hỏi liệu điều này là điển hình hay liệu tôi có thể làm sai điều gì không.

Vì vậy, mạng nơ ron tích chập của tôi có 8 lớp (5 chập, 3 kết nối đầy đủ). Tất cả các trọng số và độ lệch được khởi tạo ở các số ngẫu nhiên nhỏ. Sau đó, tôi đặt kích thước bước và tiến hành đào tạo với các lô nhỏ, sử dụng Trình tối ưu hóa Adam của Flowor Flow.

Hành vi kỳ lạ mà tôi đang nói đến là trong khoảng 10 vòng đầu tiên thông qua dữ liệu đào tạo của tôi, nói chung, tổn thất đào tạo không giảm. Các trọng số đang được cập nhật, nhưng tổn thất đào tạo vẫn ở cùng một giá trị, đôi khi tăng lên và đôi khi đi xuống giữa các đợt nhỏ. Nó duy trì như vậy trong một thời gian, và tôi luôn có ấn tượng rằng sự mất mát sẽ không bao giờ giảm.

Sau đó, đột nhiên, mất tập luyện giảm đáng kể. Ví dụ, trong khoảng 10 vòng lặp thông qua dữ liệu đào tạo, độ chính xác đào tạo tăng từ khoảng 20% ​​đến khoảng 80%. Từ đó trở đi, mọi thứ kết thúc hội tụ độc đáo. Điều tương tự cũng xảy ra mỗi lần tôi chạy đường ống huấn luyện từ đầu, và bên dưới là biểu đồ minh họa một lần chạy ví dụ.

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

Vì vậy, điều tôi băn khoăn là liệu đây có phải là hành vi bình thường với việc đào tạo mạng lưới thần kinh sâu hay không, do đó phải mất một thời gian để "khởi động". Hoặc có khả năng là có điều gì đó tôi đang làm sai gây ra sự chậm trễ này?

Cảm ơn rất nhiều!


Tôi đoán tôi đến bữa tiệc muộn một chút. Nhưng có lẽ tôi vẫn có thể thêm một số giá trị cho cuộc trò chuyện. Soo ... với tôi nghe như chức năng kích hoạt sigmoid. Vì đạo hàm của sigmoid là nhỏ đối với các giá trị rất nhỏ hoặc rất lớn, nên việc đào tạo có thể chậm đối với "các nơ-ron bão hòa". Thật không may, tôi không thể nói chính xác CNN của bạn như thế nào từ mô tả bạn đã đưa ra.
Nima Mousavi

Câu trả lời:


7

Việc thuật toán mất một thời gian để "khởi động" không có gì đáng ngạc nhiên.

Nói chung, chức năng đích được tối ưu hóa đằng sau các mạng thần kinh có tính đa phương thức cao. Như vậy, trừ khi bạn có một số loại giá trị ban đầu thông minh cho vấn đề của mình, không có lý do gì để tin rằng bạn sẽ bắt đầu đi xuống dốc. Như vậy, thuật toán tối ưu hóa của bạn sẽ gần như ngẫu nhiên lang thang cho đến khi nó tìm thấy một thung lũng khá dốc để bắt đầu đi xuống. Một khi điều này đã được tìm thấy, bạn nên mong đợi hầu hết các thuật toán dựa trên độ dốc sẽ ngay lập tức bắt đầu thu hẹp vào chế độ cụ thể mà nó gần nhất.

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.