해결된 질문
작성
·
139
1
안녕하세요 선생님!
Section 3의 [이론] Regression task의 Loss: L1, L2, Huber, Log Cosh Loss 에서 질문이 있습니다.
"미분 가능"에 대해서 궁금한 점이 있는데,
MAE loss처럼 0에서 미분이 불가능 한 경우에는 gradient를 계산할 수 없는데 어떻게 해당 loss를 사용할 수 있는 것인가요?
또 Huber loss는 한 번만 전 구간 한번만 미분가능하고,
Log Cosh loss는 전 구간 2번 이상 미분가능하다고 말씀해주셨는데
한 번만 미분 가능한 것보다 2번 이상 미분가능한 것의 장점이 무엇인가요?
확인해주셔서 감사합니다!
답변 1
1
안녕하세요!
변정현입니다. 좋은 질문 감사합니다!
MAE loss처럼 0에서 미분이 불가능 한 경우에는 gradient를 계산할 수 없는데 어떻게 해당 loss를 사용할 수 있는 것인가요?
PyTorch에서 MAE Loss에 대해서는 Loss 값이 0일 때 경사는 0으로 근사합니다!
따라서 엄밀히 말하면 Loss 값이 0일때는 미분값이 정의되지 않지만 PyTorch에서는 미분값으로 0이 출력되도록 구현되어 있습니다!
한 번만 미분 가능한 것보다 2번 이상 미분가능한 것의 장점이 무엇인가요?
넵, 슬라이드 47에서 부연 설명드리는데,
“미분가능함”은 해당 함수가 Smooth (매끄럽다) 하고 Well-behaved (얌전하다) 는 의미를 가집니다.
즉, 함수의 출력값이 입력값의 변화에 따라 “매끄럽고 부드럽게” 변한다는 의미이고,
매끄럽고 부드러울수록 함수를 extrapolate, interpolate하기 수월해집니다.
딥러닝 모델도 어떻게 보면 함수를 잘 근사하도록 학습하는 것이기 때문에 매끄럽고 부드러운 함수일 수록
학습 과정에서 보지 못한 input data space에 대해서 interpolate 혹은 extrapolate할 수 있게 됩니다.
감사합니다!
2차 미분 가능한 함수들이 1차 미분 가능한 함수들보다 일반적으로 기울기의 변화가 더 매끄럽다고 볼 수 있겠군요!
친절한 답변 감사드립니다.