본문 바로가기
딥러닝관련/기초 이론

신경망 정리 4 (손실 함수 설정)

by 머리올리자 2021. 5. 23.

손실 함수를 왜 설정하는가?

신경망의 목표는 정확도를 높이는 게 궁극적인 목표인데 왜 '정확도'라는 지표 말고 손실 함수의 값을 거치는가?

 

  신경망 학습에서의 '미분'의 역할에 주목

 

신경망 학습에서는 최적의 매개변수 (가중치와 편향)을 탐색할 때 손실 함수 의 값을 가장 작게 하는 매개변술의 값을 찾는다. 

 

이때 매개변수의 미분 (정확히는 기울기)를 계산하고, 그 미분 값을 단서로 매개변수의 값을 서서히 갱신하는 과정을 반복.

 

가중치 매개변수의 손실 함수의 미분이란 '가중치 매개변수의 값을 아주 조금 변화시켰을 때, 손실이 어떻게 변하나'의 의미

 

만약미분 값이 양수면 그 가중치 매개변수를 음의 방향으로 변화시켜 손실 함수의 값을 줄일 수 있다.

 

그러나 미분 값이 0이면 가중치 매개변수를 어느 쪽으로 움직여도 손실 함수의 값은 달라지지 않는다.

 

즉 매개 변수의 갱신은 거기서 멈춘다.

 

정확도를 지표로 삼아서 안 되는 이유는 미분 값이 대부분의 장소에서 0이 되어 매개변수를 갱신할 수 없기 때문에.

그렇다면 정확도의 매개변수의 미분이 대부분의 장소에서 0이 되는 이유는?

 

ex)

신경망이 100장의 훈련 데이터 중 32장을 올바로 인식한다고 하면 정확도는 32%

 

만약 정확도가 지표였다면 가중치 매개변수의 값을 조금 바꾼다고 해도 정확도는 그대로 32%

 

즉, 매개변수를 약간만 조정해서는 정확도가 개성되지 않고 일정하게 유지됨.

 

혹, 정확도가 개선되다 하더라도 그 값은 32.0123%와 같은 연속적인 변화보다는 33%나 34%처럼 분연속적인 값으로 변화될 것임

 

만약 손실 함수를 지표로 삼았다면?

 

0.92543...과 같은 수치로 나타나기 때문에 매개변수의 값이 조금 변하면 그에 반응하여 손실 함수의 값도 0.93432.. 처럼 연속적으로 변화하는 것.

 

정확도는 매개변수의 미세한 변화에는 거의 반응을 보이지 않고, 반응이 있더라도 그 값이 불연속적으로 갑자기 변화.

 

이는 '계단 함수(step function)'를 활성화 함수로 사용하지 않는 이유와도 들어 맞는다.

 

만약 활성화 함수로 step function을 사용한다면 위와 같은 이유로 신경망 학습이 잘 이뤄지지 않는다.

 

step function의 미분은 대부분의 장소에서 0.

 

그 결과, step function을 이용하면 loss function을 지표로 삼는게 아무 의미가 없게 된다.

 

 

내용 참고

book.naver.com/bookdb/book_detail.nhn?bid=11492334

 

밑바닥부터 시작하는 딥러닝

직접 구현하고 움직여보며 익히는 가장 쉬운 딥러닝 입문서!『밑바닥부터 시작하는 딥러닝』은 라이브러리나 프레임워크에 의존하지 않고, 딥러닝의 핵심을 ‘밑바닥부터’ 직접 만들어보며

book.naver.com