인공 신경망 (NN)으로 시작했을 때 나는 주요 문제로 과적 합과 싸워야한다고 생각했다. 그러나 실제로는 NN이 20 %의 오류율 장벽을 넘어 설 수조차 없습니다. 나는 임의의 숲에서 내 점수를 이길 수 없습니다!
나는 NN이 데이터의 트렌드를 포착하기 위해해야 할 일에 대해 매우 일반적인 조언을 찾고 있습니다.
NN을 구현하기 위해 Theano Stacked Auto Encoder 를 자습서의 코드 와 함께 사용 하여 MNIST 데이터 세트를 분류하는 데 훌륭한 (오류율 5 % 미만) 작동합니다. 이것은 다층 퍼셉트론이며, softmax 레이어가 맨 위에 있고 나중에 각각의 숨겨진 인코더가 자동 인코더로 사전 학습 됩니다 ( 자습서 8 장에 자세히 설명되어 있음 ). ~ 50 개의 입력 기능과 ~ 10 개의 출력 클래스가 있습니다. NN은 시그 모이 드 뉴런을 가지며 모든 데이터는 [0,1]로 정규화됩니다. 나는 많은 다른 구성을 시도했습니다 : 숨겨진 레이어와 뉴런 (100-> 100-> 100, 60-> 60-> 60, 60-> 30-> 15 등), 다른 학습 및 사전 훈련 요금 등
그리고 내가 얻을 수있는 가장 좋은 것은 유효성 검사 세트에서 20 % 오류율과 테스트 세트에서 40 % 오류율입니다.
다른 한편으로, scikit-learn에서 Random Forest를 사용하려고하면 유효성 검사 세트에서 12 %의 오류율과 테스트 세트에서 25 % (!)를 쉽게 얻습니다.
사전 훈련을받은 나의 깊은 NN이 어떻게 그렇게 나쁜 행동을 할 수 있습니까? 어떻게해야합니까?