Có bao nhiêu hình ảnh trên mỗi lớp là đủ để đào tạo một CNN


11

Tôi đang bắt đầu một dự án trong đó nhiệm vụ là xác định các loại sneaker từ hình ảnh. Tôi hiện đang đọc các triển khai của TensorFlowTorch . Câu hỏi của tôi là: cần bao nhiêu hình ảnh cho mỗi lớp để đạt được hiệu suất phân loại hợp lý?


Xác định "hợp lý"? Mục tiêu của bạn là đạt được độ chính xác có thể được sử dụng trong một hệ thống sản xuất? Là mục tiêu của bạn một số điều khác? Có bao nhiêu lớp học? Có một số biến thể trong đào tạo trước và đào tạo bán giám sát có thể giúp bạn tiết kiệm công sức, vì vậy bạn có thể làm rõ liệu mối quan tâm của bạn là trong nỗ lực dán nhãn hình ảnh hay chỉ đơn giản là tìm nguồn cung cấp bất kỳ hình ảnh nào. Cuối cùng, làm thế nào sạch sẽ và đơn giản là hình ảnh mục tiêu của bạn? Hình ảnh trong đó ánh sáng và tư thế được cố định sẽ dễ dàng đào tạo hơn so với ảnh "thế giới thực" với giày thể thao được mang.
Neil Slater

Vâng, điều này sẽ được sử dụng trong sản xuất. Hiện tại tôi không biết sẽ có bao nhiêu lớp vì tôi không biết có bao nhiêu loại sneaker khác nhau trong thư viện hình ảnh. Dự đoán tốt nhất của tôi sẽ là theo thứ tự 50-100, nhưng người mô tả về sneaker, càng ít lớp (ví dụ air-jordan so với air-jordan-ultrafit). Thật không may, thư viện hình ảnh là sự pha trộn của giày thể thao được mang và giày thể thao được đặt làm vật cố định với phông nền màu trắng.
Feynman27

Câu trả lời:


1

Từ làm thế nào ít ví dụ đào tạo là quá ít khi đào tạo một mạng lưới thần kinh? trên CV:

Nó thực sự phụ thuộc vào dữ liệu của bạn và kiến ​​trúc mạng. Một nguyên tắc nhỏ mà tôi đã đọc (2) là vài nghìn mẫu mỗi lớp để mạng lưới thần kinh bắt đầu hoạt động rất tốt. Trong thực tế, mọi người thử và xem.


Một cách tốt để đánh giá đại khái mức độ có thể có ích khi có nhiều mẫu đào tạo hơn là vẽ biểu đồ hiệu suất của mạng lưới thần kinh dựa trên kích thước của tập huấn luyện, ví dụ từ (1):

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



0

Cách tiếp cận tốt nhất là thu thập càng nhiều dữ liệu bạn có thể thoải mái. Sau đó bắt đầu với dự án và tạo một mô hình dữ liệu.

Bây giờ bạn có thể đánh giá mô hình của mình để xem nó có Xu hướng cao hay Phương sai cao.

Phương sai cao : Trong tình huống này, bạn sẽ thấy lỗi Xác thực chéo cao hơn lỗi Đào tạo sau khi hội tụ. Có một khoảng cách đáng kể nếu bạn vẽ tương tự với kích thước dữ liệu đào tạo.

Xu hướng cao : Trong tình huống này Lỗi xác thực chéo cao hơn một chút so với lỗi đào tạo, bản thân nó rất cao khi âm mưu so với kích thước dữ liệu đào tạo. Ý tôi là chống lại kích thước dữ liệu đào tạo, ý tôi là, bạn có thể nhập tập hợp con của dữ liệu đào tạo bạn có và tiếp tục tăng kích thước tập hợp con và lỗi âm mưu.

Nếu bạn thấy mô hình của mình có phương sai cao (overfit), việc thêm nhiều dữ liệu thường sẽ giúp tương phản với mô hình có độ lệch cao (underfit) trong đó việc thêm dữ liệu đào tạo mới không giúp ích gì.

Ngoài ra, mỗi lớp bạn phải cố gắng có được cùng số lượng hình ảnh nếu không bộ dữ liệu có thể bị sai lệch (nhiều hơn một loại).

Ngoài ra, tôi đề nghị nếu bạn đang sử dụng TensorFlow , hãy đọc thêm về Trình phân loại hình ảnh INCEPTION của GOOGLE . Nó đã được đào tạo phân loại trên cơ sở dữ liệu hình ảnh của google và bạn có thể sử dụng nó cho hình ảnh của mình, theo cách đó, yêu cầu về số lượng hình ảnh giảm mạnh.


Tôi đã thực hiện một thử nghiệm nhanh bằng cách sử dụng Inor-v3 của TensorFlow. Điều tốt nhất có thể làm là cho tôi một phân loại khóa học, chẳng hạn như "giày chạy bộ", nhưng tôi cần một cái gì đó chi tiết hơn một chút, chẳng hạn như "air-jordan-ultrafit." Đây là lý do tại sao tôi đang xây dựng một bộ đào tạo mới để sử dụng với Inception.
Feynman27
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.