본문바로가기
[인공지능, 수학으로 타파] 선형근사법으로 딥러닝 따라하기
수학동아 2020.08.28 13:29

 

 

Mathematics for AI #5

선형근사법으로 딥러닝 따라하기

 

 

 

 

*출제자의 한 마디*

 

인공지능은 선형근사법을 이용해 실제값과 차이가 거의 없는 근삿값을 빠르게 계산합니다. 복잡한 함수로 함숫값을 직접 계산한 뒤 선형근사식을 이용해 근삿값을 구하는 과정과 비교해보면 선형근사식이 얼마나 편리한지 와닿을 거예요.

 

다음 시간에는 좀 더 정확한 근삿값을 찾는 방법을 알아볼게요!

 

 

 

--------------

 

분류와 확률분포

 

저번 시간에는 도함수를 이용해 인공지능이 여러 가지 요소를 고려해 가장 최선인 결과를 내는 과정인 '최적화'에 대해 간단하게 살펴보았어요. 예컨대 어떠한 일을 수행할 때 시간과 거리, 비용 등을 고려해야 한다면 이 값들을 변수로 갖는 함수로 표현한 뒤 함수를 미분한 도함수를 이용해 최적의 해를 찾을 수 있었습니다.

 

 

이번 시간에는 앞에서 배운 도함수를 활용하는 다양한 방법들 중 가장 기초가 되는 선형근사법_Linear Approximation에 대해 살펴볼 거예요.

 

 

선형근사법이란, 일차함수를 활용해 어떤 함숫값의 근사값을 구하는 방법을 말합니다. 좀 더 쉽게 말하자면, 한 점에서 함수의 그래프에 접하는 직선을 일차함수로 나타내면 이 일차함수는 그래프와 맞닿아 있는 점 근처에서 원래 곡선과 비슷한 함숫값을 가지므로, 이를 이용해서 복잡한 함숫값을 직접 계산하지 않고도 근삿값을 구할 수 있습니다.

이때 일차함수의 기울기는 이전 시간에 배운 미분을 통해 계산할 수 있죠.

 

 

선형근사법은 복잡한 함수를 조작하지 않고 일차함수만 이용해 근삿값을 구할 수 있다는 점과 변화율을 알려준다는 점에서 매우 유용합니다. 머신러닝과 딥러닝에서 아주 중요한 개념인 테일러 전개와 경사하강법 역시 선형근사법의 아이디어를 바탕으로 하므로 그 중요성은 이루 말할 수 없죠.

 

 

그럼 선형근사법과 관련된 코딩 명령어를 배워보도록 할까요? 

 

 

 

 

 

*선형근사법의 창시자 '아이작 뉴턴' 

 

영국의 수학자이자 물리학자인 아이작 뉴턴은 인류역사상 가장 뛰어난 과학자 가운데 1명으로 꼽힌다. 뉴턴은 과학사에서 가장 영향력 있는 책인 ‘자연철학의 수학적 원리(프린키피아)’를 써 고전 역학의 뿌리라고 할 수 있는 ‘만유인력’과 ‘뉴턴의 3가지 운동 법칙’을 제시했다.

 

1668년에는 최초로 실용적인 반사망원경을 만들어 빛의 스펙트럼을 연구했다. 1665~1667년에는 선형근사법의 기초 아이디어인 ‘유율법’을 만들었는데, 이는 독일 수학자 고트프리트 빌헬름 라이프니츠의 연구와 함께 미적분학의 시초로 인정받고 있다.

 

이외에도 미분 가능한 연속함수의 함숫값이 0이 되는 값의 근삿값을 쉽게 구할 수 있는 ‘뉴턴의 방법_Newton Method’을 고안했다.

 

 

 

 

--------------

 

 

어떤 함수 y=f(x)가 x=a에서 미분 가능하다는 건 y=f(x) 그래프 위의 점 (a, f(a))에서 그래프에 접하는 직선, 즉 ‘접선’을 그릴 수 있다는 뜻이다. 이때 접선의 기울기는 도함수 f′(x)에 a를 대입한 값인 f'(a)=\frac{y-f(a)}{x-a}이므로 이 식을 정리한 접선의 방정식은 다음과 같다.

 

 

y=f′(a)(x-a)+f(a)

 

 

이 식을 ‘x=a에서 함수 y=f(x)의 선형근사식’이라고 한다. a보다 조금 크거나 작은 값을 원래 함수 y=f(x)와 선형근사식에 대입하면 두 값이 비슷하게 나온다. 따라서 선형근사식을 이용해 함숫값의 근삿값을 구할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

문제

점 (4, 18)에서 함수 y=x^2+\sqrt{x}에 접하는 접선의 방정식을 구하고, 이 방정식을 이용해 x=3.9일 때 함수 y=x^2+\sqrt{x}의 함숫값의 근삿값을 구해보자.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

--------------

 

 

 

풀이에 필요한 SageMath 코딩 명령어

 

 

var('x')

f(x)=x^2+sqrt(x)

x를 변수로 지정한 뒤, 다항식 x^2+\sqrt{x}를 함수 f(x)로 정의한다.

 

 

df(x)=diff(f(x), x)

y(x)=df(4)*(x-4)+18

show(y(x))

함수 f(x)의 도함수 f'(x)를 계산하고, 이를 이용해 점 (4, 18)에서 f(x)의 접선의 방정식 y(x)를 구한다.

 

p1=plot(f(x), x, 0, 10, color='blue')

p2=plot(y(x), x, 0, 10, color='red')

0≤x≤10에서 함수 f(x)와 접선 y(x)의 그래프를 각각 p1, p2로 지정하고 색깔을 각각 파란색, 빨간색으로 표시한다.

 

show(p1+p2) 

함수 f(x)와 접선 y(x)를 동시에 출력한다.

 

 

 

-끝-

 

 

  •  
    수락 Lv.7 2020.11.08 10:10 비밀댓글
    확인요청중
    비밀 댓글이 등록 되었습니다.
    댓글 작성하기 댓글수0
  • 폴리매스 문제는 2019년도 정부의 재원으로 한국과학창의재단의 지원을 받아 수행된 성과물입니다.

  • ☎문의 02-6749-3911