2014-02-24 3 views
2

내 모델에 역 전파 알고리즘을 사용하고 있습니다. 그것은 단순한 xor 케이스를 완벽하게 작동시키고, 실제 데이터의 더 작은 하위 세트를 테스트했을 때 유용합니다.Backpropogation 신경망 - 수렴하지 못함

총 3 개의 입력과 하나의 출력 (0,1,2)이 있습니다.
데이터 세트를 학습 세트 (약 5.5k에 해당하는 80 %)와 나머지 20 %를 유효성 검사 데이터로 분할했습니다.

필자는 델타 가중치를 계산할 때 trainingRate 및 momentum을 사용합니다.

난 sklearn 수입 전처리에서

아래와 같이 입력을 정규화 한

min_max_scaler = preprocessing.MinMaxScaler()
X_train_minmax = min_max_scaler.fit_transform (input_array)

입력 숨김 및 숨김 출력 각각에 대해 Sigmoid 및 선형 활성화 함수가있는 숨겨진 레이어를 1 개 사용합니다.

trainingRate = 0.0005, 운동량 = ​​0.6, Epoch = 100,000으로 학습합니다. 어떤 더 높은 trainingRate는 Nan에게 오류를 발생시킵니다. 0.5와 0.9 사이의 운동량 값은 정상적으로 작동하고 다른 값은 오차 Nan을 만듭니다.

3,6,9,10과 같이 숨겨진 계층에서 다양한 노드를 시도했으며 각각의 경우 4140.327574로 수렴 오류가 발생했습니다. 나는 이것을 줄이는 방법을 모르겠다. 정품 인증 기능을 변경해도 도움이되지 않습니다. 가우스 액티베이션 기능을 가진 또 다른 숨겨진 레이어를 추가하려고 시도했지만 오류를 줄일 수는 없습니다.

이상 값 때문입니까? 교육 데이터에서 해당 값을 정리해야합니까?

어떤 제안이든 활성화 기능, 숨겨진 레이어 등 많은 도움이 될 것입니다. 저는 꽤 오랜 시간 동안이 작업을 시도해 왔으며 지금은 고민 중입니다.

+0

가설을 테스트하려면 간단한 경우에 이상 치를 추가하고 반응하는 방법을 확인하십시오. – SlimJim

+0

일부 오차 값 정리에서 오류가 ~ 1.5k로 줄어 들었습니다. 그러나 데이터가 좋지 않아서 모델이 좋지 않다. 백 프로덕션에 대한 나의 적응은 아마도 두 가지 모두 일 것이다. – user2489122

답변

0

글쎄, 비슷한 문제가 있는데, 여전히 그것을 고쳐 놓았지만, 내가 찾은 두 가지 점을 말할 수 있습니다. 내 생각 엔 그물이 너무 많아서 어떤 점에서 저의 실수가 내려 가고 다시 올라 가기 시작할 것입니다. 검증 세트도 ... 당신도 마찬가지입니까?

"초기 중지"알고리즘을 잘 구현하고 있는지 확인하십시오. 대부분의 경우 문제는 backpropagation이 아니라 오류 분석 또는 유효성 검사 분석입니다.

희망이 도움이됩니다.

+0

의견을 보내 주셔서 감사합니다. 나는 여전히 완벽한 모델을 가지고 있지 않지만 몇 가지 변화가 오류를 줄이는 데 도움이되었습니다. 1. 내가 사용했던 출력 값은 [0,1,2]에 속했고 [1,0,0] 또는 [0,1,0] 또는 [0,0,1] 배열이어야합니다. 2. 나는 확률 적 구배 강하를 사용하여 지구의 최소 근처에 접근했다. 돌파구가 있으면 업데이트 할 것입니다. – user2489122

+0

overfitting의 경우 숨겨진 계층에 많은 수의 노드가있을 수 있습니다. 그것을 줄이는 것이 도움이 될 수 있습니다. 내 문제는 수렴한다는 것이지만 오류 비용은 여전히 ​​상당한 가설이라고 생각하기에 중요합니다. – user2489122