2014-11-07 1 views
1

저는 Java에서 ImageNeuralNetwork 예제를 배우고 적용하려고합니다. 지금까지 내 문제는 NN에 32X32의 이미지를 많이주고 오류를 훈련시키지 않으면 14 % 이하로 떨어지지 않으며 처음에는 점프합니다.Encog ImageNeuralNetwork 오류가 발생하지 않습니다.

내 이미지는 BW이며 27 개의 클래스로 분류됩니다. 그래서 27 개의 출력 뉴런이 있다는 것을 압니다.

내 질문에 NN이 배우지 않는 이유가 무엇인지, 나는 다른 뉴런 카운트로 다른 숨겨진 레이어 (1 또는 2 레이어)를 설정했지만 아무 도움이되지 않았습니다.

누구든지 내가 무엇을 잘못하고 있는지 아이디어를 줄 수 있습니까? 내가 NNs로 시작한 인스턴트 메신저와 약간 여기에 분실 된 메신저

편집 : 오류를 배우기 위해 입력으로 이미지를 줄이는 것 같습니다.하지만 문제가 실제로 해결되지 않습니다. 만약 내가 분류하고 싶다면 많은 이미지가 나는 절대 추락하지 않을 것입니다.

답변

1

숨겨진 레이어를 하나만 사용해야합니다. 신경망에 추가 숨겨진 레이어 정말 보편적 인 근사 정리를 참조하십시오 많이주지 않습니다. 나는 (입력 카운트 + 출력 카운트) * 1.5 숨겨진 뉴런의 숫자로 시작하려고합니다.

왜 ANN이 더 많은 이미지를 포함하지 못했는지에 관해서는 더 어렵습니다. 대부분의 경우 ANN이 모든 이미지를 분류하기 위해 추가 이미지가 너무 다양하기 때문일 수 있습니다. 간단한 피드 포워드 ANN은 그리드 기반 이미지 인식에 실제로 이상적이지 않습니다. 신경망은 어떤 픽셀이 서로 인접하는지 알지 못하며, 단지 픽셀의 직선 선형 벡터입니다. ANN은 기본적으로 각 픽셀에 어떤 픽셀이 있어야 하는지를 학습하고 있습니다. 문자 중 하나를 약간 옮기면 ANN이 그것을 인식하지 못할 수 있습니다. 이제는 훈련 된 거의 모든 픽셀을 이동했기 때문입니다.

저는 OCR에별로 도움이되지 않습니다. 그러나 이것은 깊은 학습이 탁월한 영역 인 것처럼 보입니다. 컨벌루션 뉴럴 네트워크는 서로 가까운 픽셀을 처리하고 근사해 낼 수 있습니다. 깊은 학습 응용 프로그램으로 더 나은 결과를 얻을 수 있습니다. 여기에 자세한 정보 : http://dpkingma.com/sgvb_mnist_demo/demo.html

+0

감사합니다! –