지금까지, 우리는 컴퓨터에게 선을 그리는 방법(가설)을 알려주었고...

그렸던 선이 합리적인지 판단할 때, 비용을 통해 판단할 수 있고...

합리적인 선을 빠르게 찾는... 즉, 최소의 비용을 빠르게 찾아주는 경사 하강법에 대해서 알아보았습니다.

 

제가 경사 하강법에서 특정 구간을 통해 쭈욱 내려간다고 설명을 드렸는데요...!

우리는 이 특정 구간을 learning rate, 한국말로 학습률이라고 합니다.

 

그렇다면, 경사하강을 통해서 특정 구간만큼 내려갈 때, 즉 learning rate을 얼마만큼 설정해주어야 할까요?

 

만약 learning rate을 작게 설정을 한다면,

 

이처럼 엄청나게 많은 학습을 해야 한다는 단점이 있습니다.

반대로, learning rate을 크게 설정을 한다면,

 

최소의 cost인 지점을 벗어나 발산해버리는 경우가 발생할 수 있습니다. (오버슈팅)

 

그렇기 때문에, 우리는 learning rate을 상황에 따라 적절하게 설정 함으로써, 너무 느리지 않게 또는, 발산하지 않도록 설정을 해주어야 합니다.

 

이것은 데이터의 따라 다르기 때문에 코드 디버깅을 하면서 적절하게 수정해주면 됩니다.

(코드 실습을 통해 확인 예정)

 

learning rate의 특징을 살펴보면, 초반에 많은 폭으로 변화를 하고 가까워질수록 좁게 뛰는 것을 알 수가 있습니다.

 

이것은 곡선의 특성상 생기는 구조입니다.(cost가 0인 지점에서는 그래프가 완만해지기 때문에...)

다시 해석한다면, 컴퓨터가 합리적 직선을 찾을 때, 처음에는 빠르게 비용을 줄이다가...

최적의 비용점에 들어와서는 느리게 변화한다고 해석할 수 있습니다.

 

직선 그래프를 통해 본다면 더 직관적으로 확인할 수 있습니다.

 

이처럼, learning rate는 처음에는 큰 폭으로 뛰고 , 점점 작은 폭으로 뛰기 때문에...

작은 폭으로 뛸 때, 합리적인 직선을 거의 찾았다고 생각하시면 됩니다.

 

그렇기 때문에, 좀 더 빠른 머신러닝 구현을 하기 위해서는 비용이 충분히 작은 폭으로 뛴다면,

학습을 중단시켜 빠르게 가설을 완성시킬 수 있습니다.

 

반응형

+ Recent posts