2017-01-02 7 views
0

처음으로 내 자신의 멀티 레이어 퍼셉트론을 구현 한 후에, 나는 2 가지 특정 것들에 대해 확실하지 않았습니다. 첫 번째 : 테스트 데이터를 반복 할 때 신경망이 다른 정확도를 갖는 것은 정상입니까? 예를 들어 처음으로 네트워크를 초기화하고 실행할 때 정확도는 0.7이되지만 두 번째로 내려가거나 올라갈 수 있습니다. 지금까지 내가 의지해온 것은 네트워크를 초기화하고 가장 정확한 네트워크에 해당 가중치를 저장하는 것입니다. 두 번째 질문 : Jupyter Notebook은 계속해서 RuntimeWarning : exp에서 발생하는 오버플로를 던집니다. 한 번에 너무 많은 데이터가 반복되고 있기 때문입니까? 데이터를 네트워크에서 관리하기 쉽게 배치 할 수 있습니까? (나는 MNIST 데이터 세트로 작업하고 있습니다.) 코드를 게시해야하는지 알려주십시오.다중 레이어 퍼셉트론 (Multi-layer Perceptron)은 동일한 데이터에 대해 다른 반복이있을 때 서로 다른 결과를 산출합니까?

+0

네, 두 레이어를 연결하는 가중치가 변경되어 전체 네트워크 정확도가 떨어지거나 올라가기 때문에 반복 과정에서 네트워크 정확도가 변경되는 것은 정상입니다. 네트워크 교육입니다! 첫 번째 반복에서 무작위로 나타나는 편향 및 가중치로 인해 초기화가 서로 다를 수 있습니다. – Arman

+0

아, 이제 알겠습니다. 따라서 가중치를 0의 행렬로 초기화하면 네트워크 성능의 가변성이 감소합니다. – gian

답변

0

MLP의 가중치는 임의의 값으로 초기화해야합니다. 초기 가중치에 따라 결과가 변동될 수 있으며 훈련 후에 출력 단위가 달라지는 것은 정상입니다. 그러나 네트워크가 수렴되면 계산 된 레이블이 필요한 한 이러한 작은 변화를 생략 할 수 있습니다. .7은 6.9와 전혀 다르지 않습니다. 당신이 계곡을 내려 가고 있다고 가정하고 당신이 그것에 대한 사전 정보가 없다면, 당신의 목표는 계곡의 표면에 그것을 만드는 것입니다. 표면에 충돌했는지 확인한 후에는 작은 바위 위에 서 있느냐 바닥에 앉아 있느냐가 중요하지 않습니다.
신경망의 전체 개념은 내적 (Dot) 제품을 중심으로 돌아가고 활성화 함수를 사용하여 결과를 부숴 버리는 것을 상기하십시오. 따라서 가중치가 0으로 시작하면 0 만 얻습니다.
두 번째 질문에 대한 대답은 '예'일 수 있습니다. 아주 작은 신경망이라 할지라도 수백만 개의 매개 변수가 있으며 엄청난 양의 추억이 필요한 순간이 올 수도 있습니다. 그러한 문제를 극복 할 수있는 방법이 있다는 것에 대해 걱정하지 마십시오! Michael Nielsens의 우수 서적 Neural Networks and Deep Learning을 살펴 보시기 바랍니다.

+0

큰 도움을 주셔서 감사합니다. – gian