6

얼굴 표정 인식을위한 모델로 (Keras를 통해) 컨볼 루션 신경망을 사용하고 있습니다 (55 명). 내 데이터 세트는 매우 어렵고 450k 약 7 클래스입니다. 나는 각 과목과 등급별로 나의 훈련 세트를 균형 잡았다. 첫 번째 시대 이후에 불복

내가 (실시간 데이터 증가에) 매우 간단한 CNN 아키텍처 구현 : 최초의 획기적인 후

model = Sequential() 
model.add(Convolution2D(32, 3, 3, border_mode=borderMode, init=initialization, input_shape=(48, 48, 3))) 
model.add(BatchNormalization()) 
model.add(PReLU()) 
model.add(MaxPooling2D(pool_size=(2, 2))) 

model.add(Flatten()) 
model.add(Dense(256)) 
model.add(BatchNormalization()) 
model.add(PReLU()) 
model.add(Dropout(0.5)) 

model.add(Dense(nb_output)) 
model.add(Activation('softmax')) 

을 내 훈련 손실은 지속적 동안 검증 손실이 증가를 감소시킨다. overfitting 곧 그 일이있을 수 있을까요? 또는 데이터가 혼동되는 문제가 있습니까? 테스트 세트의 균형을 맞추어야합니까?

+0

지나친 부분이 문제라고 생각하면 지나친 부분을 해결하기 위해 시도 할 수 있습니다 (예 : 데이터 증가 (https://keras.io/preprocessing/image/), 더 많은 드롭 아웃, 더 간단한 넷 아키텍처 등이 있습니다. –

답변

3

과제가 해결하기 쉽고 한 획기가 모델을 풀기에 충분하다고 배웠을 때 더 많은 신기원을 훈련하면 과장이 증가 할 수 있습니다.

그러나 열차 세트와 테스트 세트가 균형을 이루지 못한 경우, 한 가지 작업 (균일하게 분산 된 데이터에 대한 표현식 인식)에 대해 교육하고 조금 다른 작업을 테스트하고있는 것이 발생할 수 있습니다. 테스트 세트가 균형을 이루지 못합니다.

+0

또한 테스트하기 전에 테스트 세트를 섞어 봤습니다. 어느 쪽이든, 테스트 정확도를 높이기 위해 테스트 세트의 균형을 맞출 것입니까? – Renz

+0

사용중인 성능 메트릭이 샘플 순서에 의존하지 않기 때문에 테스트 세트를 셔플 링하면 테스트 정확도에 아무런 영향을 미치지 않습니다. 두 번째 질문에 관해서는, 낮은 정확도가 열차와 테스트 세트가 비슷한 분포를 벗어나지 않는 경우 테스트 세트의 균형을 유지하면 테스트 정확도가 높아집니다. 거대한 overfitting의 문제라면 그것은별로 도움이되지 않습니다. – gcucurull

+0

고마워, 나는 그것에주의를 기울일 것이다, 나에게 분명하게 들린다! :) – Renz

관련 문제