Taylor's series and Maclaurin's series on ML


서론

이 장은 Taylor's series와 Maclaurin's series가 무엇인지 간단하게 알아보고 두 급수의 차이점을 알아본다. 그리고 ML에서 어떻게 적용되는지 알아보자.

목차

  1. Taylor's series
  2. Maclaurin's series
  3. Taylor's series & Maclaurin's series
  4. ML관점에서의 Taylor's series

Taylor's series

테일러 급수는 어떤 점 a를 기준으로 갖는 함수를 가지고 a주변에서 찾고자하는 함수 값을 근사 하여 찾기 위한 함수다.

아래는 테일러 급수에 대한 수식이다

\[\begin{equation} f(x) = f(a) + \frac{f'(a)}{1!}(x-a)+\frac{f''(a)}{2!}(x-a)^2 + \;\;\cdot\cdot\cdot\;\;+ \frac{f^n(a)}{n!}(x-a)^n \end{equation}\]

예를어서 \(f(x) = x^2\) 이라는 함수를 가지고 테일러 급수로 함수값을 찾아 보겠다.

a=3으로 두어 3을 기준으로 갖는 함수는 아래와 같다.

\[\begin{equation} f(x) = f(3) + \frac{f'(3)}{1!}(x-3)+\frac{f''(3)}{2!}(x-3)^2 \end{equation}\]

\(f(x) = x^2\) 수식에서 \(f(3)=9,\; f'(3)=6,\;f''(3)=2\) 임으로 아래와 같은 수식이 된다.

\[\begin{equation} f(x) = 9 + \frac{6}{1!}(x-3)+\frac{2}{2!}(x-3)^2 \end{equation}\]

여기서 \(x=3\)에서의 값은 9가 나온다.

\[\begin{equation} f(3) =9+6(3-3)+(3-3)^2 = 9 \end{equation}\]

원래 함수와 동일한 값을 갖는 것을 볼 수 있다.

테일러 급수는 어떤 함수든지 다항식으로 표현하여 근사화로 사용되는데 주로 복잡한 함수의 경우 특정 함수값을 찾기 어려우니 테일러 급수를 사용해 단순화 하여 근삿값을 찾으려 하는 것이다. 그러나 이 경우는 원래 함수가 간단한 다항식이기 때문이다.

\[f(x) =x^2, \;f(3)= 9\]

Maclaurin's series

맥클로린 급수를 통해서도 찾아보자. 맥클로린 급수는 테일러 급수에서 점 a=0을 기준으로 갖는 함수이다.

\[\begin{equation} f(x) = f(0) + \frac{f'(0)}{1!}(x-0)+\frac{f''(0)}{2!}(x-0)^2 + ... \;+\frac{f^n(0)}{n!}(x-0)^n \end{equation}\]

\(f(x) = x^2\) 수식에서 \(f(0)=0,\; f'(0)=0,\;f''(0)=2\) 임으로 아래와 같은 수식이 된다.

\[\begin{equation} f(x) = 0 + \frac{0}{1!}x+\frac{2}{2!}x^2 \end{equation}\]

여기서 \(x=3\)에서의 값은 9가 나온다.

\[\begin{equation} f(3) = 0 + \frac{0}{1!} \times 3+\frac{2}{2!} \times 9 = 9 \end{equation}\]

Taylor's series & Maclaurin's series

테일러 급수와 맥클로린 급수에서 \(x=5\)라는 값을 넣어보겠다.

이 때 테일러 급수에서 a값은 3으로 고정한다.

  • Taylor
\[\begin{equation} f(5) = 9 + \frac{6}{1!}(5-3)+\frac{2}{2!}(5-3)^2 = 25 \end{equation}\]
  • Maclaurin
\[\begin{equation} f(5) = 0 + \frac{0}{1!}\times5+\frac{2}{2!}\times 25 = 25\end{equation}\]

그리고 맥클로린급수에도 \(x=5\)라는 값을 넣어보겠다. 아래 원형 함수와 동일하게 나온다.

\[\begin{equation}f(x) =x^2, \;f(3)= 9 \end{equation}\]

그럼 항상 원점을 기준으로 하는 함수식인 맥클로린이 편하다고 생각할 수 있다.

그러나 원하는 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에서 부터 시작해 근사함으로 비교적 빠르게 값을 구할 수 있다.

\[\begin{equation}y = e^x\end{equation}\]

Taylor

\[\begin{equation} f(x) = f(a) + \frac{f'(a)}{1!}(x-a)+\frac{f''(a)}{2!}(x-a)^2 + \;\;\cdot\cdot\cdot\;\;+ \frac{f^n(a)}{n!}(x-a)^n \end{equation}\]

a=2에 대입해주면 다음과 같다.

\[\begin{equation} e^x ≈ f(2) + \frac{f'(2)}{1!}(x-2) + \frac{f''(2)}{2}(x-2)^2 + \frac{f'''(2)}{3!}(x-2)^3 + ... \end{equation} \]

이후 x=2를 대입해보자.

\[\begin{equation} e^2 ≈ f(2) + \frac{f'(2)}{1!}(2-2) + \frac{f''(2)}{2}(2-2)^2 + \frac{f'''(2)}{3!}(2-2)^3 + ... \end{equation} \]

2차항까지만 두고 계산을 해보면,

\[\begin{equation} e^2 ≈ f(2) + \frac{f'(2)}{1!}(2-2) + \frac{f''(2)}{2}(2-2)^2 = f(2)= e^2 \end{equation} \]

\(e^2=7.38905609893\) 이다.

Maclaurin

\[\begin{equation} f(x) = f(0) + \frac{f'(0)}{1!}(x-0)+\frac{f''(0)}{2!}(x-0)^2 \end{equation}\]

원형함수에서 x=0에서의 미분값은 아래와 같다.

\[\begin{equation} f(0)=1,\; f'(0)= 1, f''(0)=1,... \end{equation} \]

아래에 대입해주면 다음과 같다.

\[\begin{equation} e^x ≈ 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \frac{x^4}{4!} + ... \end{equation} \]

이 후 x=2를 대입하자.

\[\begin{equation} e^2 ≈ 1 + 2 + \frac{2^2}{2!} + \frac{2^3}{3!} + \frac{2^4}{4!} + \frac{2^5}{5!}... \end{equation} \]

7차항까지만 두고 계산을 해보면 다음과 같다.

\[e^2 ≈ 1 + 2 + 2+ 1.33333..+0.66666..+0.08888...+0.02539 +0.0006349 =7.119539..\]

Conclusion

7차항 까지만 했을 때의 값은 위와 같으며 실제 \(e^2=7.38905609893\) 값에 근사해 간다는 것을 볼 수 있다. 하지만 실제로는 무한한 항을 모두 더하는 것은 불가능하므로, 대개는 급수의 앞부분만 몇 항을 더하는 '유한 근사'를 사용하게 된다. 이의 경우 테일러 급수가 구하고자 하는 y값보다 더 가깝기 때문에 더 근사의 정확도가 더 높은 것을 볼 수 있다. 따라서 두 급수는 상황에 맞게 사용하는 것이 좋다.

ML관점에서의 Taylor's series

아래 식 중에서 (x-a)의 의미를 봐보면 어떤 점 a와 x값에 대한 거리를 나타낸다고 볼 수 있다.

\[\begin{equation} f(x) = f(a) + \frac{f'(a)}{1!}(x-a)+\frac{f''(a)}{2!}(x-a)^2 + \;\;\cdot\cdot\cdot\;\;+ \frac{f^n(a)}{n!}(x-a)^n \end{equation}\]

만약 점 a를 기준으로 h만큼 이동한(거리) 점에서의 함수값을 알고 싶다면 x=a+h값을 대입하면 된다.

\[ f(a+h) = f(a) + \frac{f'(a)}{1!}(a+h-a)+\frac{f''(a)}{2!}(a+h-a)^2 + \;\;\cdot\cdot\cdot\;\;+ \frac{f^n(a)}{n!}(a+h-a)^n \]

위 수식을 좀 더 정리하고 a값을 \(\theta\) 로 변경해 나열해 보겠다.

\[\begin{equation} f(\theta+h) = f(\theta) + \frac{f'(\theta)}{1!}\times h+\frac{f''(\theta)}{2!}\times h^2 + \;\;\cdot\cdot\cdot\;\;+ \frac{f^n(\theta)}{n!}\times h^n \end{equation}\]

만약 h값이 a에 대해서 미소 변화량이라고 한다면 위 수식을 아래와 같이 바꿔 쓸 수 있다.

\[ f(\theta+\Delta \theta)=f(\theta) + \frac{f'(\theta)}{1!}\times \Delta \theta+\frac{f''(\theta)}{2!}\times (\Delta \theta)^2 + \;\;\cdot\cdot\cdot\;\;+ \frac{f^n(\theta)}{n!}\times (\Delta \theta)^n \]

머신러닝에서 taylor expansion의 방법에서 1차 미분값까지만 사용해서 근사값을 추정하는 방식을 사용한다. 계산 효율성, 선형근사(1차항까지만 사용함으로 선형 함수로 근사화) 등이 효율적인 이유도 있지만 결정적인 이유는 \(\Delta \theta\) 는 매우 작은 변화량 값으로 제곱이상의 값은 무의미하기 때문이라 생각한다.

\[f(\theta+\Delta \theta) \approx f(\theta) + f'(\theta)\cdot\Delta \theta\]

만약 \(f\)가 loss함수라고 가정하면 위 수식의 의미는 바는 \( \theta\) 값을 바꾸었을 때 Loss값은 현재 Loss값 + 그래디언트*\( \theta\) 의 변화랑이 된다. 아래 수식을 다시 써보겠다.

\(\nabla\)는 Gradient(미분값)을 의미하며 \(\Delta\)는 변화량을 의미한다.

\[L(\theta+\Delta \theta) \approx L(\theta)+ \nabla L \cdot\Delta\theta \]
\[L(\theta+\Delta \theta)- L(\theta) = \Delta L = \nabla L\cdot \Delta\theta \]

아래 수식에서 \(\eta\)는 양수이고 learning rate 뜻하며 \(\Delta L\)은 항상 음수가 됨으로 Loss가 줄어드는 방향으로 업데이트가 된다.

\[If\; \Delta \theta =-\eta \nabla L ,\;\;then \; \Delta L = -\eta ||\nabla L||^2\]

\(\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)이 기준점과 가까울 수록 더 정확하다는 것을 알 수 있다.