-
Choosing the Learning Rate (학습률 선정하기) | Supervised Machine Learning: Regression and ClassificationMachine Learning/Stanford ML Specialization 2023. 11. 5. 11:53
Gradient Descent에 대해 배울 때, 알파, 즉 Learning Rate에 대해서도 배워봤다. Learning Rate가 너무 작으면, 효율적이지 못하고 Minimum을 찾는데 오래 걸리는 반면, 너무 크게 잡아도 Minimum으로 가지 못하고 Gradient Descent가 convergence(수렴)하지 못한다는 내용에 대해 배웠었다.
https://youtu.be/P_9hNBVRldM 위에 그림에서 알 수 있듯 J(w, b)값이 점점 작아지는것이 아니라, iteration이 늘어나는데도, 계속 상승 -> 하강 -> 상승을 반복한다면, 이것은 코드에 버그가 있거나 Learning Rate(학습률)이 너무 높게 설정된것이기 떄문이다.
만약 알파(Learning Rate)가 너무 높다면, 파라미터 값이 어떻게 변할까? parameter w의 값이 J의 minimum, 보여지는 2차 함수의 곡선에서 가장 아래 부분에 있는 곳으로 값이 점점 향해야 하는데, 그것과 점점 멀어지면서, 미니멈으로 수렴하는게 아니라, 점점 좌우로 멀어지는것을 볼 수 있다. 그래서 Learning Rate를 조정하고 낮춰서, Minimum을 건너뛰지 않도록 조정해 주어야 한다.
또, 만약 iteration이 점점 쌓이는데도 J값이 점점 커지는 곡선을 그린다면(이미지에서 상단 오른쪽 참고), 이것은 수식에 버그가 있을수도 있는것이다. 아마 w에서 ad를 빼주어야하는데, 더해서 업데이트를 했을 수도 있다.
한가지 디버깅 팁이 있다면, 적절한 알파(Learning Rate)가 선정 되었다면, J(w, b)값은 매 iteration마다 조금씩 줄어들게 된다. 그렇다고 너무 작게 설정하면 converge(수렴)하기까지 너무 오래 걸리기 때문에, 적절하게 효율적이면서, 적절하게 작은 값을 찾는게 중요하다.
Reference
'Machine Learning > Stanford ML Specialization' 카테고리의 다른 글