CNN 교육에 충분한 클래스 당 이미지 수


12

이미지에서 운동화 유형을 식별하는 작업을 시작하는 프로젝트를 시작하고 있습니다. 현재 TensorFlowTorch 구현을 읽고 있습니다. 내 질문은 합리적인 분류 성능을 달성하기 위해 클래스 당 몇 개의 이미지가 필요한가?


"합리적인"정의? 프로덕션 시스템에서 사용할 수있는 정확도에 도달하는 것이 목표입니까? 당신의 목표는 다른 것입니까? 사전 교육 및 반 감독 교육에는 노력을 절약 할 수있는 몇 가지 변형이 있으므로 이미지에 라벨을 붙이 거나 단순히 이미지를 소싱하는 데 관심이 있는지 여부를 명확하게 알 수 있습니다 . 마지막으로 대상 이미지가 얼마나 깨끗하고 간단합니까? 조명과 포즈가 고정 된 이미지는 운동화를 착용 한 "실제"사진보다 쉽게 ​​훈련 할 수 있습니다.
Neil Slater

예, 프로덕션 환경에서 사용됩니다. 나는 이미지 라이브러리에 얼마나 많은 스니커즈 유형이 있는지 알지 못하기 때문에 현재 얼마나 많은 클래스가 있는지 알지 못합니다. 가장 좋은 추측은 50-100 정도이지만 스니커에 대한 설명은 강의가 적습니다 (예 : 에어 조던 대 에어 조던 울트라 핏). 불행히도, 이미지 라이브러리는 운동화를 착용하고 운동화를 흰색 배경으로 고정 된 항목으로 배치 한 것입니다.
Feynman27

답변:


2

에서 신경망을 훈련 할 때 어떻게 몇 훈련 사례도 몇 가지입니까? 이력서에 :

실제로는 데이터 세트 및 네트워크 아키텍처에 따라 다릅니다. 내가 읽은 경험의 한 규칙 (2)은 신경망이 매우 잘 작동하기 시작하는 클래스 당 수천 샘플입니다. 실제로 사람들은 노력하고보고 있습니다.


더 많은 훈련 샘플을 갖는 것이 어느 정도 유익한 지 대략적으로 평가하는 좋은 방법은 훈련 세트의 크기를 기준으로 신경망의 성능을 플롯하는 것입니다 (예 : (1)).

여기에 이미지 설명을 입력하십시오



0

가장 좋은 방법은 최대한 많은 데이터를 수집하는 것입니다. 그런 다음 프로젝트를 시작하고 데이터 모델을 만드십시오.

이제 모델을 평가하여 바이어스 거나 분산이 높은지 확인할 수 있습니다.

높은 분산 :이 상황에서는 수렴 후 교차 검증 오차가 훈련 오차보다 높다는 것을 알 수 있습니다. 훈련 데이터 크기에 대해 동일하게 표시하면 상당한 차이가 있습니다.

높은 편향 :이 상황에서 교차 검증 오류는 훈련 데이터 크기에 대해 플롯 할 때 자체가 높은 훈련 오류보다 약간 높습니다. 훈련 데이터 크기에 대해 플로팅하여 의미하는 훈련 데이터의 하위 세트를 입력하고 계속 증가하는 하위 세트 크기 그리고 플롯 오류.

모델에 분산 (과적 합)높으면 더 많은 데이터를 추가하면 일반적으로 새 교육 데이터를 추가해도 도움이되지 않는 높은 편향 (과적 합) 모델 과 대조적으로 도움이됩니다.

또한 클래스별로 동일한 수의 이미지를 가져와야합니다. 그렇지 않으면 데이터 세트가 왜곡 될 수 있습니다 (하나 이상의 종류).

또한 TensorFlow 를 사용하는 경우 GOOGLE의 INCEPTION 이미지 분류기에 대해 자세히 읽어보십시오 . 이미 Google의 이미지 데이터베이스에서 분류 된 분류기이며 이미지에 사용할 수 있으므로 이미지 수에 대한 요구 사항이 크게 줄어 듭니다.


이미 TensorFlow의 Inception-v3을 사용하여 빠른 테스트를 수행했습니다. 내가 할 수있는 최선의 방법은 "런닝 슈즈"와 같은 코스 분류를 제공하는 것이지만 "air-jordan-ultrafit"과 같이 좀 더 세분화 된 것이 필요합니다. 이것이 제가 Inception과 함께 사용할 새로운 교육 세트를 구축하는 이유입니다.
Feynman27

그것은“조금 더 세분화 된”이라는 이상한 정의입니다.
Jivan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.