f(x)
를 특정 점 a
에서 함수값과 도함수들을 이용하여 다항식으로 근사하는 방법이다.Weierstrass 근사 정리
의 특수한 사례로 볼 수 있다.sin(x)
, cos(x)
의 경우, Taylor series에 따라 위와 같이 다항식의 극한으로 표현가능하다.MATLAB 예시
syms x
f = sin(x)/x;
T6 = taylor(f, x, 'Order', 8);
pretty(T6)
syms
: MATLAB에서 심볼릭 변수를 정의하는 명령어이다. 수치적 계산이 아닌 수학적 기호를 사용하여 수식을 표현할 때 사용한다. (Symbolic Math Toolbox 설치가 필요)x
는 수치적 계산이 아니라 기호적 계산에 사용한다.taylor()
: 심볼릭 수학에서 주어진 함수의 Taylor Series를 구하는 함수pretty()
: 수식을 보기 좋은 형태로 출력하는 함수💡 심볼릭 수학 : 수치 계산과 달리 기호를 사용하여 수학적 표현을 정확하게 다루는 방식
- 함수, 방정식, 미분, 적분 등을 숫자 값으로 계산하는 대신, 수학적 기호와 식을 그대로 유지하여 처리하는 수학적 접근법을 의미
Taylor series 근사
x = -10:0.01:10;
y = 0;
for n = 0:10
% 실제 함수 그리기
plot(x, sin(x), 'r', 'linewidth', 2, 'DisplayName', 'sin(x)'); % sin(x)
% plot(x, cos(x), 'r', 'linewidth', 2, 'DisplayName', 'sin(x)'); % cos(x)
hold on;
% Taylor 급수로 근사한 y 계산
y = y + ((-1)^n / factorial(2*n+1) * (x.^(2 * n + 1))); % sin(x)
% y = y + ((-1)^n/factorial(2*n) * (x.^(2 * n))); % cos(x)
% 근사 함수 그리기
plot(x, y, 'b', 'DisplayName', ['Taylor Approx (n = ' num2str(n) ')']);
% 축 및 범례 설정
axis([-10 10 -2 2]);
legend('show'); % 범례 표시
pause(0.5); % 잠시 멈춤
hold off;
end
Universal Approximation
은 Weierstrass Approximation
의 아이디어를 신경망으로 확장하여, 다차원 데이터와 딥러닝의 복잡한 함수 근사 문제를 해결할 수 있도록 일반화한 상위 개념f∈C(K, Rm)
는 적당한 심층 신경망 구조로 작은 오차 내에서 근사 가능하다.σ∈C(R,R)
가 다항식이 아니어야 한다.*f(x)≈C⋅[σ∘(A⋅x+b)]
로 표현 가능하다.