2016-07-07 16 views
0

코를 골라내어 분류하기 위해 ANN BP 코드를 개발했습니다. 10 개의 입력 기능과 10 개의 뉴런과 하나의 출력 뉴런이있는 숨겨진 레이어가 있습니다. 나는 코 고는 아니요, 코 고는 거는 것을 0으로 표시했습니다. 나는 3000 개의 세그먼트를 가지고 있으며 그 중 2500 개가 1로 표시된 코 고는 세그먼트가 아니며 0으로 표시된 500 개의 코 고는 세그먼트가 있습니다. 이미 세 세트 (70 % 교육, 15 % 유효성 검사 및 15 % 테스트) .인공 신경망 백 전파 테스트

이제 네트워크 교육을하면서 처음에는 훈련 세트를 섞어서 코 고는 거름과 코골이를 함께 섞은 것입니다. 그래서, 네트워크를 훈련 한 후에 (피드 포워드 네트워크만으로) 네트워크를 검증하면 그 중 하나만 분류 할 수 있다는 것을 알았습니다. 훈련 세트에서 마지막 요소가 코 고는 없다고 가정합니다 (1 점). 그래서, 마지막 출력을 위해 네트워크를 훈련 시켰습니다. 그런 다음 유효성 검사 단계에서는 snore 세그먼트 (0 인 경우)에 대해서도 항상 1에 가까운 출력을 제공합니다. 마지막 요소가 코골이 (0)이면 같은 일이 일어납니다. 그런 다음 유효성 검사 단계에서 출력을 항상 0에 가깝게 만듭니다.

이 문제를 어떻게 해결할 수 있습니까? 왜 내 네트워크가 이전 세그먼트에 대한 출력을 기억하지 못했습니다. 마지막 세그먼트 만 저장합니까? 네트워크에서 해결하려면 어떻게해야합니까?

답변

0

이것은 분류 문제이므로 두 개의 출력 뉴런이있는 것이 좋습니다. 하나의 출력 뉴런은 세그먼트가 코 고는 세그먼트이고 다른 세그먼트가 코 고는 세그먼트가 아닌 경우 -1이고, 코 고는 거지가없는 세그먼트의 경우 그 반대입니다. 이는 네트워크가 두 가지를 모두 분류하는 데 도움이됩니다. 또한 입력 기능을 1에서 -1 사이의 범위로 정규화해야합니다. 이렇게하면 신경망이 입력 내용을 더 잘 이해할 수 있습니다. Softmax 레이어를 출력으로 사용하는 방법을 살펴볼 수도 있습니다.

또 다른 숨겨진 레이어 나 더 많은 뉴런을 현재 숨겨진 레이어에 추가해야 할 수도 있습니다. 이 제안에 대해 감사합니다. @ YuryEuceda. 바이어스 입력이없는 경우 바이어스 입력을 추가해야 할 수도 있습니다.

+0

0과 1은 -1과 1에서와 동일하게 작동해야합니다. 문제는 뉴런과 시냅스 수에 있습니다 숨겨진 장소에 아르 자형. –

0

내가보기에 문제는 숨겨진 계층에 충분한 뉴런과 시냅 시스가 없다는 것입니다. 지금까지는 숨겨진 레이어의 뉴런 수를 정확하게 계산할 수있는 방법이 없으므로 오류 방법론을 사용해야합니다. 당신은 다음 링크에서 확인하실 수 있습니다 많은 경험적인 공식이있다

문제가 u를 찾을 수 있습니다 본 논문에서 숨겨진 레이어 의 수에 https://stats.stackexchange.com/questions/181/how-to-choose-the-number-of-hidden-layers-and-nodes-in-a-feedforward-neural-netw

+0

안녕하세요, 해답입니다. 문제는 숨겨진 계층에 없습니다. 그것은 각각의 시대마다 비용 함수를 계산했기 때문입니다. 또한 교육의 비용 기능을 아름답게 줄여줍니다. 문제는 하나의 레이블에 대해 이전 가중치를 기억하는 것입니다 (0이라고 가정). 그런 다음 다른 레이블이 (1) 네트워크에 들어 왔다고 가정하면 이전 계층의 가중치를 잊어 버립니다. 그것은 둘 다 분류하기위한 최적의 무게를 찾지 못했습니다. 그것을 해결하는 방법을 알려주십시오. – Odrisso