0

길쌈 신경 네트워크 (CNN) 훈련에 관한 질문이 있습니다.길쌈 신경 네트워크 교육

tensorflow을 사용하여 네트워크를 교육하여 입력 이미지 (1600 픽셀)를 가져 와서 해당 이미지와 일치하는 세 가지 클래스 중 하나를 출력합니다.

훈련 된 클래스의 변형으로 네트워크를 테스트하면 좋은 결과를 얻을 수 있습니다. 하나; 내가 다른 4 차원 이미지 (훈련 된 3 개의 이미지를 포함하지 않음)를 주면 항상 클래스 중 하나에 무작위 매치를 반환합니다.

제 질문은 이미지가 세 개의 훈련 된 이미지 중 하나에 속하지 않는다고 분류하도록 네트워크를 훈련시킬 수 있습니까? 비슷한 예입니다. mnist 데이터베이스에 대해 네트워크를 교육 한 다음 문자 "A"또는 "B"를 주면됩니다. 입력이 두 클래스 중 하나에 속하지 않는 것을 차별하는 방법이 있습니까?

답변

0

길쌈 신경망 (현지 시간) 훈련 후 정의 된 클래스의 결과를 예측 감사드립니다. CNN은 항상 정확도에 관계없이 수업 중 하나에서 돌아옵니다. 나는 비슷한 문제에 직면 해있다. 할 수있는 것은 정확도 값을 확인하는 것이다. 정확도가 임계 값 이하이면 아무 범주에도 속하지 않습니다. 희망이 도움이됩니다.

+0

이것은 거의 작동하지 않을 것입니다. CNN 분류기가 훈련되지 않은 입력을받는다면, 그것이 그것이 알고있는 특정 클래스라는 것을 확실히 알 수 있습니다. 당신은 당신의 훈련 수업을 대표하지 않는 무작위 이미지와 별도의 클래스가 필요합니다. 또한 CNN은 "항상 수업 중 하나에서 돌아 오지"않습니다. CNNS 위에 회귀를 할 수 있습니다. – Jodo

0

모델은 항상 레이블과 같은 예측을합니다. 예를 들어 모델을 MNIST 데이터로 교육하면 예측을 할 때 예측은 항상 MNIST 라벨처럼 0-9가됩니다.

먼저 이미지가 데이터 세트 A 또는 B에 속하는지 예측할 2 개의 클래스로 다른 모델을 학습하십시오. E.x. MNIST 데이터의 경우 모든 데이터에 1로 레이블을 붙이고 0-9가 아닌 다른 소스의 데이터를 추가하고 0으로 레이블을 붙입니다. 그런 다음 모델을 교육하여 이미지가 MNIST에 속하는지 여부를 찾습니다.

+0

답변 해 주셔서 감사합니다. 나는 그것에 대해 생각해 보았습니다. 그러나 다른 모델을 갖게된다면, 다른 모든 모델에 그것을 훈련시켜야한다는 것을 의미합니다 (이는 어쨌든 불가능합니다). 이미지를 4 개 또는 5 개의 세그먼트로 자른 다음 다른 클래스 (예 : 세그먼트 # 1이 출력 노드 # 1과 일치하는 등)를 조정하면 다른 솔루션을 생각하고있었습니다. 나는 그것이 다른 이미지를 제시 할 때 모든 세그먼트에서 정확한 일치를 찾는 것을 더 어렵게 만들 수 있다고 생각합니다. – fidz81

0

출력 노드가 세 개인 경우 최대 값 (one-hot 인코딩)을 선택하는 것이 좋습니다. 그것은 출력이 적기 때문에 다소 불행합니다. 인식 할 수없는 입력은 꽤 무작위로 출력되는 경향이 있습니다.

이제 3 개의 출력으로 약 7 개의 결과를 얻을 수 있습니다. 하나의 높은 값 (3 가지 가능성)을 얻을 수 있지만 인식되지 않는 입력은 2 개의 높은 출력 (3 가지 가능성) 또는 대략 동일한 출력 (3 가지 가능성)을 유발할 수도 있습니다. 따라서 무작위 입력의 적절한 기회 (~ 3/7)는 인식 된 입력에 대해서만 기대할 수있는 출력 노드에 패턴을 생성합니다.

이제 클래스가 15 개이고 출력 노드가 15 개인 경우 인식 할 수없는 입력에 대해 약 32767 개의 결과가 예상됩니다. 단 15 개만 예상되는 일회용 결과에 해당합니다.

여기에는 교육 데이터가 부족합니다. 훈련 세트에 3 개 수업 외부의 예가있는 경우이를 4 번째 '기타'카테고리에 버리고 그걸로 훈련 할 수 있습니다. 일반적으로 이론적 인 "기타"세트는 거대하지만 일반적으로 다른 입력을 감지하는 두 가지 보완적인 방법이 있습니다. "다른"출력 노드 또는 11 개의 모호한 출력 중 하나가 있습니다.

관련 문제