Coding Diary.

(Machine Learning) 학습률 알파 본문

Coding/Machine Learning

(Machine Learning) 학습률 알파

life-of-nomad 2023. 8. 9. 16:02
728x90
반응형

경사 하강법을 하기 위해서는 두 변수 theta_0, theta_1을 아래와 같이 계속 업데이트 하면 된다고 이전 글에서 설명하였습니다. 

이때 학습률 알파a는 경사를 내려갈때마다 얼마나 많이 그 방향으로 갈 건지를 결정하는 변수입니다.

이번 글에서 학습률 알파를 잘 못 고를 때 생기는 문제점에 대해서 알아보겠습니다.

이해를 쉽게 하기 위해 손실함수 J가 하나의 변수, thata로만 이루어졌다고 가정해보겠습니다.

1. 학습률 a가 너무 큰 경우

알파가 크면 클수록 경사 하강을 한 번을 할 때마다 thata의 값이 많이 바뀝니다. 그럼 아래와 같이 왼쪽과 오른쪽으로 성큼성큼 왔다갔다 하면서 진행이 됩니다. 심지어 a가 너무 크면 경사 하강법을 진행할수록 손실 함수 J의 최소점에서 멀어질 수도 있습니다.

2. 학습률 a가 너무 작은 경우

반대로 알파가 작으면 theta가 조금씩 움직입니다. 너무나도 작게 되면 최소 지점을 찾는 데 너무 오래 걸리게 됩니다. 1분 만에 할 수 있는 작업이 5분 10분, 그거보다 더 오래 걸릴 수도 있게 됩니다.

3. 적절한 학습률

1.2와 같은 상황 때문에 알파를 적당한 크기로 설정하는게 중요합니다.

가장 적절한 학습률은 상황과 문제에 따라 다릅니다. 경사 하강을 하면서 손실이 줄어들고 있는걸 그래프로 표현해보면 만약, 적절한 학습률이라면 손실그래프가 아래와 같이 나옵니다.

학습률이 너무 크면 경사 하강법을 할수록 손실 그래프가 커지게 됩니다.

작을 때에는 iteration 수가 많아집니다.

일반적으로 1.0~0.0 사이의 숫자로 정하고 (1, 0.1, 0.01, 0.001 또는 0.5, 0.05, 0.005 이런식으로) 여러 개를 실험해보면서 경사 하강을 제일 적게 하면서 손실이 잘 줄어드는 학습률을 선택하면 됩니다.

728x90
반응형