신경망은 일반적으로 훈련 중에“킥 인”하는 데 시간이 걸립니까?


10

역 전파를 사용하여 분류를 위해 심층 신경망을 훈련하려고합니다. 특히, Tensor Flow 라이브러리를 사용하여 이미지 분류에 회선 신경망을 사용하고 있습니다. 훈련하는 동안 이상한 행동을 겪고 있으며 이것이 전형적인 것인지 또는 내가 잘못하고 있는지 궁금합니다.

그래서 내 컨볼 루션 신경망에는 8 개의 레이어 (5 컨볼 루션, 3 개의 완전히 연결된)가 있습니다. 모든 가중치와 바이어스는 작은 난수로 초기화됩니다. 그런 다음 단계 크기를 설정하고 Tensor Flow의 Adam Optimizer를 사용하여 미니 배치로 교육을 진행합니다.

내가 이야기하고있는 이상한 행동은 내 훈련 데이터를 통해 처음 10 루프 동안 훈련 손실이 일반적으로 감소하지 않는다는 것입니다. 가중치는 업데이트되지만 훈련 손실은 대략 같은 값으로 유지되며 때로는 미니 배치 사이에서 올라가거나 내려갑니다. 그것은 오랫동안 이런 식으로 유지되며, 항상 손실이 줄어들지 않을 것이라는 인상을받습니다.

그리고 갑자기 훈련 손실이 크게 줄어 듭니다. 예를 들어, 훈련 데이터를 통한 약 10 루프 내에서 훈련 정확도는 약 20 %에서 약 80 %로 간다. 그 이후로 모든 것이 멋지게 수렴됩니다. 훈련 파이프 라인을 처음부터 다시 실행할 때마다 동일한 상황이 발생하며 아래는 한 가지 예제 실행을 보여주는 그래프입니다.

여기에 이미지 설명을 입력하십시오

제가 궁금하게 생각하는 것은 이것이 딥 뉴럴 네트워크를 훈련 할 때 정상적인 행동인지 아닌지에 대한 것입니다. 아니면이 지연을 일으키는 잘못된 일이있을 가능성이 있습니까?

매우 감사합니다!


나는 파티에 조금 늦었다 고 생각한다. 그러나 여전히 대화에 가치를 더할 수 있습니다. Soo ... 나에게 그것은 시그 모이 드 활성화 기능처럼 들린다. 시그 모이 드의 미분은 매우 작거나 매우 큰 값에 대해 작기 때문에, "포화 뉴런"에 대해 훈련이 느려질 수 있습니다. 불행히도, 귀하가 제공 한 설명에서 귀하의 CNN이 어떤 것인지 정확히 알 수 없습니다.
니마 무사 비

답변:


7

알고리즘이 "킥 인"하는 데 시간이 걸렸다는 사실은 특별히 놀라운 것은 아닙니다.

일반적으로 신경망 뒤에 최적화되는 대상 기능은 매우 복합적입니다. 따라서 문제에 대한 영리한 초기 값이 없으면 가파른 하강을 시작할 것이라고 믿을 이유가 없습니다. 따라서 최적화 알고리즘은 내려 가기 시작하는 상당히 가파른 계곡을 찾을 때까지 거의 무작위로 방황합니다. 이것이 발견되면, 대부분의 그래디언트 기반 알고리즘이 가장 가까운 특정 모드로 즉시 좁아지기 시작할 것으로 예상해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.