파이썬 신경망에서 기울기가 항상 0으로 나옵니다.

조회수 586회

안녕하세요.

파이썬으로 딥러닝 신경망 구현을 하고 있습니다.

얼마전 가중치와 편향에 대한 기울기 코드를 작성하였는데, 모든 가중치와 편향에 대해 기울기가 0으로 나옵니다.

클래스의 prams 프로퍼티에는 가중치와 편향 등의 정보가 담겨있고,

결과를 구하는 predict 메서드에서 이 값들을 사용합니다.

predict 메서드에서 나온 값과 정답을 대조하는 손실 함수의 기울기를 구하는 것이 목적이기 때문에, 기울기를 구하는 메서드에서는 prams 프로퍼티의 정보를 직접 수정합니다.

가중치, 편향 등의 정보를 바꾸어도 손실 함수의 값에는 변화가 없는지 기울기 값이 정확이 0.0이 됩니다.

기울기를 구하는 방법으로는 수치 미분을 사용하고, 손실 함수는 호출될 때마다 바뀐 정보를 사용하는 predict 함수를 다시 호출하게 만들었지만, 여전히 기울기는 전부 0으로 계산됩니다.

이 문제를 해결하는 방법이 있을까요?

  • 작성하신 코드의 오류를 수정하시면 되겠죠. nowp 2021.12.29 15:38

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)