서론
이 장은 Taylor's series와 Maclaurin's series가 무엇인지 간단하게 알아보고 두 급수의 차이점을 알아본다. 그리고 ML에서 어떻게 적용되는지 알아보자.
목차
Taylor's series
테일러 급수는 어떤 점 a를 기준으로 갖는 함수를 가지고 a주변에서 찾고자하는 함수 값을 근사 하여 찾기 위한 함수다.
아래는 테일러 급수에 대한 수식이다
예를어서 \(f(x) = x^2\) 이라는 함수를 가지고 테일러 급수로 함수값을 찾아 보겠다.
a=3으로 두어 3을 기준으로 갖는 함수는 아래와 같다.
\(f(x) = x^2\) 수식에서 \(f(3)=9,\; f'(3)=6,\;f''(3)=2\) 임으로 아래와 같은 수식이 된다.
여기서 \(x=3\)에서의 값은 9가 나온다.
원래 함수와 동일한 값을 갖는 것을 볼 수 있다.
테일러 급수는 어떤 함수든지 다항식으로 표현하여 근사화로 사용되는데 주로 복잡한 함수의 경우 특정 함수값을 찾기 어려우니 테일러 급수를 사용해 단순화 하여 근삿값을 찾으려 하는 것이다. 그러나 이 경우는 원래 함수가 간단한 다항식이기 때문이다.
Maclaurin's series
맥클로린 급수를 통해서도 찾아보자. 맥클로린 급수는 테일러 급수에서 점 a=0을 기준으로 갖는 함수이다.
\(f(x) = x^2\) 수식에서 \(f(0)=0,\; f'(0)=0,\;f''(0)=2\) 임으로 아래와 같은 수식이 된다.
여기서 \(x=3\)에서의 값은 9가 나온다.
Taylor's series & Maclaurin's series
테일러 급수와 맥클로린 급수에서 \(x=5\)라는 값을 넣어보겠다.
이 때 테일러 급수에서 a값은 3으로 고정한다.
- Taylor
- Maclaurin
그리고 맥클로린급수에도 \(x=5\)라는 값을 넣어보겠다. 아래 원형 함수와 동일하게 나온다.
그럼 항상 원점을 기준으로 하는 함수식인 맥클로린이 편하다고 생각할 수 있다.
그러나 원하는 x값이 전개점 0에서 너무 멀리 떨어져 있거나, 함수가 전개점 0에서의 근사보다 다른 점에서의 근사가 더 중요하거나 정확할 수 있는 경우에는 테일러 시리즈가 더 적절하다.
예를 들어, 함수 f(x) = 1/x 를 생각해보면 이 함수는 x=0에서 정의되지 않으므로, 매클로린을 사용할 수 없다. 그러나 x=1에서 테일러 시리즈를 사용하면, 이 함수를 근사할 수 있다.
Difference between Taylor and Maclaurin
원형 함수는 아래와 같이 두고, x=2에서의 근사값을 찾아보자.
맥클로린을 적용한 결과는 x=0 시작해 e^x 함수를 x=2까지 근사하기 때문에 상당히 많은 항을 계속 더해줘야 한다. 반면, 테일러급수는 x=2에서 부터 시작해 근사함으로 비교적 빠르게 값을 구할 수 있다.
Taylor
a=2에 대입해주면 다음과 같다.
이후 x=2를 대입해보자.
2차항까지만 두고 계산을 해보면,
\(e^2=7.38905609893\) 이다.
Maclaurin
원형함수에서 x=0에서의 미분값은 아래와 같다.
아래에 대입해주면 다음과 같다.
이 후 x=2를 대입하자.
7차항까지만 두고 계산을 해보면 다음과 같다.
Conclusion
7차항 까지만 했을 때의 값은 위와 같으며 실제 \(e^2=7.38905609893\) 값에 근사해 간다는 것을 볼 수 있다. 하지만 실제로는 무한한 항을 모두 더하는 것은 불가능하므로, 대개는 급수의 앞부분만 몇 항을 더하는 '유한 근사'를 사용하게 된다. 이의 경우 테일러 급수가 구하고자 하는 y값보다 더 가깝기 때문에 더 근사의 정확도가 더 높은 것을 볼 수 있다. 따라서 두 급수는 상황에 맞게 사용하는 것이 좋다.
ML관점에서의 Taylor's series
아래 식 중에서 (x-a)의 의미를 봐보면 어떤 점 a와 x값에 대한 거리를 나타낸다고 볼 수 있다.
만약 점 a를 기준으로 h만큼 이동한(거리) 점에서의 함수값을 알고 싶다면 x=a+h값을 대입하면 된다.
위 수식을 좀 더 정리하고 a값을 \(\theta\) 로 변경해 나열해 보겠다.
만약 h값이 a에 대해서 미소 변화량이라고 한다면 위 수식을 아래와 같이 바꿔 쓸 수 있다.
머신러닝에서 taylor expansion의 방법에서 1차 미분값까지만 사용해서 근사값을 추정하는 방식을 사용한다. 계산 효율성, 선형근사(1차항까지만 사용함으로 선형 함수로 근사화) 등이 효율적인 이유도 있지만 결정적인 이유는 \(\Delta \theta\) 는 매우 작은 변화량 값으로 제곱이상의 값은 무의미하기 때문이라 생각한다.
만약 \(f\)가 loss함수라고 가정하면 위 수식의 의미는 바는 \( \theta\) 값을 바꾸었을 때 Loss값은 현재 Loss값 + 그래디언트*\( \theta\) 의 변화랑이 된다. 아래 수식을 다시 써보겠다.
\(\nabla\)는 Gradient(미분값)을 의미하며 \(\Delta\)는 변화량을 의미한다.
아래 수식에서 \(\eta\)는 양수이고 learning rate 뜻하며 \(\Delta L\)은 항상 음수가 됨으로 Loss가 줄어드는 방향으로 업데이트가 된다.
\(\Delta \theta = -\eta \nabla L\)이라는 가정을 한 이유는 Loss값을 항상 줄이는 방향으로 만들어 학습이 되도록 하기 위해서다.
즉 \(\Delta \theta = \nabla L\)가 되도록 하면 항상 Loss값은 줄어들고 여기에 \(\eta\)를 곱해주어 학습이 잘 될수 있도록 \(\Delta \theta\)값의 변경량을 조절해 준다.
❗Learning Rate를 작은 값을 사용하는 이유
- Parameter의 값을 조금씩 바꾸기 위함인데, Loss함수에서 taylor expansion의 1차 미분항까지만 사용했기 때문에 아주 좁은 영역에서만 감소 방향이 정확하기 때문이다.
- 즉, Parameter 변경량이 크면 근사를 잘 못할 수 있기 때문에 learning rate를 이용해 변경량을 적당히 줄여준다.
- Learning rate가 너무 커서 Loss가 발산하는 경우가 바로 approximation을 잘못한 경우이다.
Conclusion
두 방식으로 값을 비교했을 때 점 2를 기준으하는 함수와 점 0을 기준으로 하는 함수를 구해 x=2에서의 값을 비교해보면 근사하려는 값(x=2)이 기준점과 가까울 수록 더 정확하다는 것을 알 수 있다.
Comment