Loss와 Optimizer
질문1) 파이토치에서 제공하는 최적화를 사용하기 위해 optimizer.step()는 고정적인 표현이라고 보시면 됩니다. 즉, 손실 함수를 기준으로 자동으로 모델을 업데이트 해주는 역할로 보시면 됩니다. 직접 경사 하강법을 진행하시거나 특수한 경우가 아니면 그냥 저 위치에서 사용하시면 되요 :) 선생님의 답변의 해석을 loss.backward( )를 실행시키고 난 뒤, optimizer.step( )를 실행시키면자동적으로 optimizer 선언시 params로 전달된 model의 weight를 업데이트한다.라고 해석해도 될까요? 질문2) 결론부터 말씀 드리면 Loss 함수와 평가 Metric은 목표가 다릅니다. Loss는 최적화를 하기 위한 목적함수이고 평가 Metric은 말 그대로 평가를 위한 척도라고 보시면 됩니다. 예를 들어 분류 문제에서 최적화 입장에서는 손실 함수 값을 최소화 하는게 목표가 되는데 평가 입장에서는 손실값 낮을수록 정확도가 높다고 할 수는 없습니다. 따라서 Loss로 모델을 최종 평가하는 것은 부정확 할 수 있죠. 따라서 평가 척도를 무엇으로 해야하는지가 매우 중요합니다! 물론 똑같은 척도를 사용하는 경우도 있습니다. 예를 들어 집 값 예측과 같은 회귀 문제에서 MAE 손실 함수를 쓰고 MAE로 모델을 평가 하기도 합니다! 선생님 이부분이 머리속으로 잘 이해가 좀 어려워요.결론적으로 ML/DL 모델을 세우려는 목적은 New data가 들어왔을때 Pred를 하기 위해서(?)라고 러프하게 말하자면Metric의 Score가 Maximum이 되도록 Loss를 Metric으로 셋팅하면 될 것인데몇가지 Optimize가 불가능한 Metric의 경우가 존재하기 때문에 그런건가요ㅠㅠ? 명쾌한 강의에 항상 감사드리며 brotherhoon88 드림.