
뉴턴의 프랙탈 (뉴턴은 전혀 몰랐던 것)
요약
뉴턴 방법(Newton's method)을 통해 다항식의 근을 찾는 과정에서 발생하는 복잡한 프랙탈 구조를 수학적, 공학적 관점에서 설명합니다. 특히 컴퓨터 그래픽스에서 베지에 곡선과 같은 다항식을 렌더링할 때 발생하는 실용적인 문제와 연결하여 시각화의 원리를 다룹니다.
핵심 포인트
- 뉴턴 방법의 반복 과정이 생성하는 프랙탈의 수학적 원리 이해
- 다항식의 근을 찾는 알고리즘과 복잡한 시각적 패턴의 관계
- 컴퓨터 그래픽스 내 베지에 곡선 렌더링에서의 다항식 활용 사례
- 픽셀 채색 결정을 위한 수학적 곡선과 거리 계산의 중요성
비디오: 뉴턴의 프랙탈 (Newton’s fractal) (뉴턴은 전혀 몰랐던 것)
채널: 3Blue1Brown
길이: 26분 5초
출처: 자막 (수동, 영문)
전사(Transcript):
제목을 보셨으니, 이것이 특정 프랙탈(fractal)로 이어질 것이라는 점을 알고 계실 겁니다. 그리고 실제로 이것은 무한한 프랙탈 가족 중 하나입니다. 네, 아무리 멀리 확대해도 무한한 디테일을 가진, 정신이 아득해질 정도로 복잡한 형상 중 하나가 될 것입니다. 하지만 이 영상은 단순히 우리가 멍하니 바라볼 예쁜 그림을 생성하는 것에 관한 영상이 아닙니다. 뭐, 물론 그것도 일부일 수는 있겠지만, 여기서의 진짜 이야기는 다른 많은 프랙탈의 이면에 있는 이야기보다 훨씬 더 실용적인 시작점을 가지고 있습니다. 게다가, 그것들이 무엇을 나타내는지에 따라 왜 그토록 복잡해 보일 수밖에 없는지, 그리고 이 복잡성이 공학 전반에서 널리 사용되는 알고리즘에 대해 무엇을 반영하는지를 이해하려고 노력한다면, 우리가 얻게 될 최종 이미지들은 훨씬 더 의미 있게 다가올 것입니다.
여기서의 시작점은 여러분이 어떤 다항식(polynomial)을 가지고 있고, 그것이 언제 0이 되는지를 알고 싶어 한다고 가정하는 것입니다. 여기에 그래프로 그려진 식의 경우, x축과 교차하는 세 군데의 서로 다른 지점을 시각적으로 볼 수 있으며, 그 값들이 무엇일지 대략적으로 짐작할 수 있습니다. 우리는 그것들을 다항식의 근(roots)이라고 부를 것입니다. 하지만 그것들을 실제로 어떻게 정확하게 계산할 수 있을까요? 이제 이것은 수학에 이미 매료된 사람이라면 그 자체로 충분히 흥미로워 계속 진행할 만한 질문입니다.
하지만 길가는 사람을 붙잡고 이 질문을 던진다면, 글쎄요, 그들은 이미 잠이 들고 말 것입니다. 왜냐하면 누가 신경 쓰겠습니까? 하지만 문제는 이런 종류의 질문이 공학 분야에서 항상 발생한다는 점입니다. 제가 개인적으로 이런 방정식이 나타나는 것에 가장 익숙한 설정은 컴퓨터 그래픽스(computer graphics) 분야인데, 이곳은 다항식이 도처에 널려 있는 곳입니다. 따라서 특정 픽셀(pixel)을 어떻게 채색해야 하는지 결정할 때, 그것이 어떻게든 이러한 다항식을 사용하는 방정식을 푸는 것과 관련되는 것은 드문 일이 아닙니다.
여기 재미있는 예시를 하나 들어보겠습니다. 컴퓨터가 화면에 텍스트를 렌더링할 때, 해당 폰트들은 일반적으로 픽셀 값(pixel values)을 사용하여 정의되지 않습니다. 대신 이들은 일련의 다항식 곡선(polynomial curves), 즉 업계에서 베지에 곡선 (Bezier curves)이라고 알려진 것들로 정의됩니다. 디자인 소프트웨어 등에서 벡터 그래픽 (vector graphics)을 다뤄본 적이 있는 분이라면 이러한 종류의 곡선에 매우 익숙할 것입니다. 하지만 이 곡선 중 하나를 실제로 화면에 표시하려면, 화면의 각 픽셀이 색이 채워져야 하는지 여부를 알려줄 방법이 필요합니다.
이러한 곡선들은 일종의 선 두께 (stroke width)를 사용하여 표시하거나, 만약 곡선이 어떤 영역을 둘러싸고 있다면 그 영역에 대한 일종의 채우기 (fill)를 통해 표시할 수 있습니다. 하지만 한 걸음 물러나서 정말로 깊이 생각해 본다면, 순수한 수학적 곡선(pure mathematical curve)만을 근거로 각 픽셀이 색을 채워야 하는지 아닌지를 어떻게 아는지 알아내는 것은 흥미로운 퍼즐입니다. 선 두께의 경우를 예로 들어보겠습니다. 이는 주어진 픽셀이 이 순수한 수학적 곡선으로부터 얼마나 떨어져 있는지를 이해하는 문제로 귀결되는데, 이 곡선 자체는 폭이 0인 일종의 플라톤적 이상 (platonic ideal)입니다.
여러분은 이를 어떤 매개변수 $t$를 가진 매개변수 곡선 (parametric curve)으로 생각할 것입니다. 이 거리를 구하기 위해 할 수 있는 한 가지 방법은 픽셀과 곡선 위의 여러 샘플 지점 (sample points) 사이의 거리를 계산한 다음 그중 가장 작은 값을 찾는 것입니다. 하지만 이는 비효율적일 뿐만 아니라 부정확합니다. 더 나은 방법은 약간 수학적으로 접근하여, 가능한 모든 지점에서 곡선까지의 이 거리가 그 자체로 매개변수의 매끄러운 함수 (smooth function)임을 인정하는 것입니다. 그리고 공교롭게도, 그 거리의 제곱은 그 자체로 다항식 (polynomial)이 되며, 이는 다루기에 매우 편리합니다.
만약 이것이 벡터 그래픽스 (vector graphics) 렌더링에 관한 완전한 강의였다면, 우리는 그 모든 것을 확장하여 그 복잡함을 기꺼이 받아들였을 것입니다. 하지만 지금 제가 강조하고 싶은 유일하고 핵심적인 점은, 최솟값 (minimum)을 알고자 하는 이 함수가 원칙적으로 어떤 다항식 (polynomial)이라는 사실입니다. 이 최솟값을 찾는 것, 즉 픽셀이 곡선에 얼마나 가까운지 그리고 색이 채워져야 하는지를 결정하는 것은 이제 단순한 고전 미적분학 (calculus) 문제가 됩니다. 여러분이 할 일은 이 함수 그래프의 기울기, 즉 도함수 (derivative)를 구하는 것인데, 이 또한 어떤 다항식이 됩니다. 그리고 질문을 던지는 것이죠. 그 값이 언제 0이 되는가?
따라서 곡선을 표시한다는 이 겉보기에 단순한 작업을 실제로 수행하기 위해서, 주어진 다항식이 언제 0이 되는지 알아낼 수 있는 체계적이고 일반적인 방법이 있다면 얼마나 좋을까요? 물론 우리는 100개의 다른 학문 분야에서 100개의 다른 예시를 더 끌어올 수도 있습니다. 다만 제가 여러분이 명심해주길 바라는 점은, 우리가 다항식의 근 (roots)을 찾을 때 비록 실제 세상의 복잡함으로부터 깔끔하게 추상화된 방식으로 표현하곤 하지만, 이 작업은 결코 단순한 학술적 유희가 아니라는 사실입니다. 하지만 다시 한번 스스로에게 물어보세요. 여러분은 실제로 그 근 중 하나를 어떻게 계산합니까?
만약 여러분이 다루고 있는 어떤 문제가 이차 함수 (quadratic function)로 이어진다면, 참 다행스럽게도 우리 모두가 알고 사랑하는 이차 방정식의 근의 공식 (quadratic formula)을 사용할 수 있습니다. 그리고 덧붙여서, 컴퓨터 그래픽스에서의 근 찾기 (root finding)와 다시 한번 관련이 있는 재미있는 일화 하나를 말씀드리자면, 언젠가 한 Pixar 엔지니어가 저에게 이런 추정치를 말해준 적이 있습니다. 영화 '코코 (Coco)'의 일부 장면에서 사용된 조명의 수를 고려할 때, 그리고 구 (spheres)와 같이 다항식으로 정의된 것들이 포함된 일부 픽셀당 계산 (per-pixel calculations)의 특성을 고려할 때, 그 영화의 제작 과정에서 이차 방정식의 근의 공식이 수조 번 이상 아주 쉽게 사용되었다고 말이죠.
이제 문제가 더 높은 차수의 다항식 (higher order polynomial)으로 이어지면 상황은 더 까다로워지기 시작합니다. 삼차 다항식 (cubic polynomials)의 경우에도 공식이 존재하며, Mathologer가 멋진 영상으로 다룬 바 있습니다. 심지어 4차 다항식 (degree 4 polynomials)을 푸는 사차 공식 (quartic formula)도 존재하지만, 솔직히 말해서 그 공식은 정말 끔찍한 악몽 같아서 실제로 사용하는 사람은 거의 없습니다. 하지만 그 이후에는 — 그리고 저는 이것이 수학 전체에서 가장 매혹적인 결과 중 하나라고 생각합니다 — 5차 이상의 차수를 가진 다항식을 풀 수 있는 유사한 공식은 존재할 수 없습니다.
더 구체적으로 말하면, 상당히 광범위한 표준 함수 (standard functions) 집합에 대해, 5차 다항식 (quintic polynomial)의 계수들을 대입했을 때 항상 근을 얻을 수 있도록 해당 함수들을 결합하는 방법은 불가능하다는 것을 증명할 수 있습니다. 이것은 '5차 방정식의 불가해성 (unsolvability of the quintic)'으로 알려져 있으며, 이는 또 다른 복잡한 문제 (can of worms)이지만, 나중에 기회가 되면 다루도록 하겠습니다. 하지만 실제로는 큰 상관이 없는데, 우리가 원하는 어떤 정밀도 수준으로든 이러한 종류의 방정식의 해를 근사할 수 있는 알고리즘을 가지고 있기 때문입니다.
일반적인 방법이자 오늘 여러분과 저의 주요 주제는 바로 뉴턴 방법 (Newton's method)입니다. 네, 이것이 우리를 프랙탈 (fractals)로 인도할 것입니다. 하지만 저는 이 전체 과정이 처음에는 얼마나 순수하고 무해해 보이는지에 주목해 주셨으면 합니다. 알고리즘은 무작위 추측값, 이를 $x_0$라고 부릅시다,에서 시작합니다. 거의 확실하게, $x_0$에서의 다항식의 출력값은 0이 아닐 것이므로, 아직 해를 찾은 것이 아닙니다. 그것은 해당 지점에서의 그래프 높이로 나타나는 다른 어떤 값일 뿐입니다. 따라서 추측을 개선하기 위한 아이디어는, 해당 값 주변에서의 함수에 대한 선형 근사 (linear approximation)가 언제 0이 되는지를 묻는 것입니다.
다시 말해, 만약 이 지점에서 그래프에 접선 (tangent line)을 그린다면, 그 접선이 언제 x축과 교차할까요? 이제 이 접선이 실제 근 (true root)의 느슨한 근방 (loose vicinity)에서 함수를 적절히 근사한다고 가정하면, 이 근사값이 0이 되는 지점은 실제 근에 더 가깝게 안내할 것입니다. 이 함수의 도함수 (derivative)를 구할 수 있는 한, 그리고 다항식 (polynomials)의 경우에는 언제나 그것이 가능하므로, 이 직선의 기울기 (slope)를 구체적으로 계산할 수 있습니다. 여기서 여러분 중 능동적인 시청자라면 잠시 멈추어 다음과 같이 질문하고 싶을 것입니다. 현재의 추측값과 개선된 추측값 사이의 차이를 어떻게 알아낼 수 있을까요?
이 단계 (step)의 크기는 얼마일까요? 한 가지 생각하는 방법은 이 접선의 기울기, 즉 'run' 대비 'rise'가 이 그래프의 높이를 해당 단계의 길이로 나눈 것과 같다는 사실을 고려하는 것입니다. 하지만 다른 한편으로, 당연하게도 접선의 기울기는 해당 지점에서의 다항식의 도함수입니다. 여기서 이 방정식을 약간 재배열하면, 단계 크기를 계산할 수 있는 매우 구체적인 방법을 얻을 수 있습니다. 따라서 $x_1$이라고 부를 수 있는 다음 추측값은 이전 추측값에 이 단계 크기를 조정한 값입니다.
그 후에는 과정을 반복하기만 하면 됩니다. 이 새로운 추측값에서 함수의 값과 기울기를 계산하여 새로운 선형 근사 (linear approximation)를 구하고, 그 접선이 x축과 교차하는 지점에서 다음 추측값인 $x_2$를 결정합니다. 그리고 $x_2$에 동일한 계산을 적용하면 $x_3$를 얻게 되며, 머지않아 여러분은 실제 근에 매우 가깝게, 즉 여러분이 원하는 만큼이나 아주 가깝게 도달하게 됩니다. 공식이 실제로 말이 되는지 직관적으로 확인 (gut checking)하는 것은 항상 가치가 있는 일이며, 이 경우에는 부디 그러하기를 바랍니다.
만약 $p(x)$가 크다면, 즉 그래프가 매우 높다면, 근 (root)에 도달하기 위해 더 큰 보폭 (step)을 취해야 합니다. 하지만 $p'(x)$ 또한 크다면, 즉 그래프가 상당히 가파르다면, 그 보폭을 얼마나 크게 할지에 대해 조금은 완급 조절을 해야 할 수도 있습니다. 이제 이름에서 알 수 있듯이, 이것은 Newton이 다항식 (polynomial expressions)을 풀기 위해 사용했던 방법이었지만, 그는 이를 필요 이상으로 훨씬 더 복잡하게 만든 경향이 있습니다. 그리고 Joseph Raphson이라는 인물이 지금 우리가 보고 있는 것과 훨씬 더 유사한, 훨씬 더 단순한 버전을 발표했기에, 여러분은 이 알고리즘을 Newton-Raphson 방법이라고 부르는 것도 자주 듣게 될 것입니다.
요즘 이것은 미적분학 (calculus) 수업에서 흔한 주제입니다. 참고로, 이 방식에 대한 감을 잡기 위해 시도해 볼 만한 좋은 작은 연습 문제는 이 방법을 사용하여 제곱근 (square roots)을 손으로 직접 근사해 보는 것입니다. 하지만 대부분의 미적분학 학생들이 보지 못하는 것, 그리고 안타까운 점은, 이 겉보기에 단순해 보이는 절차를 가지고 놀면서 그 상처를 들춰내기 시작할 때 상황이 얼마나 깊어질 수 있는지입니다. 아시다시피, Newton의 방법은 근 근처에서 시작하여 매우 빠르게 수렴 (converge)할 때는 아주 잘 작동하지만, 만약 초기 추측값 (initial guess)이 근에서 멀리 떨어져 있다면 몇 가지 결함 (foibles)이 나타날 수 있습니다.
예를 들어, 방금 우리가 살펴봤던 함수를 가져오되 위쪽으로 이동시킨 후, 동일한 초기 추측값으로 똑같은 실험을 해보겠습니다. 우리가 얻고 있는 새로운 추측값들의 수열이 x축 위에 위치한 이 함수의 국소 최솟값 (local minimum) 주변에서 어떻게 이리저리 튀는지 주목해 보세요. 이것은 어느 정도 말이 되어야 합니다. 제 말은, 오른쪽 끝까지 이어지는 이 값들 주변에서의 함수의 선형 근사 (linear approximation)는, 왼쪽 멀리 떨어져 있는 단 하나의 진정한 근 주변의 함수 성질과는 거의 완전히 무관하기 때문에, 그 진정한 근에 대해 유용한 정보를 전혀 제공하지 못하는 셈입니다.
이 과정이 우연히 새로운 추측값을 왼쪽으로 충분히 멀리 던져버릴 때에만, 새로운 추측값들의 수열이 생산적인 역할을 수행하며 실제로 그 진정한 근 (true root)에 접근하게 됩니다. 특히 흥미로워지는 지점은 복소 평면 (complex plane)에서 근을 찾는 것에 대해 질문할 때입니다. 여기에 보이는 것과 같은 다항식 (polynomial)이 단 하나의 실수 근만을 가지고 있더라도, 이 근들이 잠재적으로 복합수 (complex numbers)가 될 수 있도록 허용한다면, 여러분은 항상 이 다항식을 다음과 같이 다섯 개의 항으로 인수분해 (factor) 할 수 있습니다.
이것이 바로 유명한 대수학의 기본 정리 (fundamental theorem of algebra)입니다. 이제 입력값과 출력값이 모두 실수이고, 입력과 출력 사이의 관계를 그래프로 시각화할 수 있는 낙천적인 함수의 세계에서, 뉴턴 방법 (Newton's method)은 접선 (tangent lines)과 x축과의 교차라는 매우 멋진 시각적 의미를 갖습니다. 하지만 만약 이 입력값들이 어떤 복소수라도 될 수 있도록 허용하고자 한다면, 즉 그에 대응하는 출력값들 또한 어떤 복소수라도 될 수 있다면, 더 이상 접선이나 그래프를 생각할 수 없습니다.
하지만 공식은 여러분이 그것을 어떻게 시각화하는지에는 전혀 개의치 않습니다. 여러분은 여전히 무작위 추측값에서 시작하여, 해당 지점에서의 다항식 값과 그 도함수 (derivative)를 계산한 뒤, 이 업데이트 규칙 (update rule)을 사용하여 새로운 추측값을 생성하고, 그 새로운 추측값이 진정한 근에 더 가까워지기를 바라는 동일한 게임을 수행할 수 있습니다. 다만 분명히 말씀드리고 싶은 것은, 우리가 이러한 단계들을 접선으로 시각화할 수 없더라도, 그것은 정말로 동일한 논리라는 점입니다. 우리는 여러분의 추측값 주변에서 함수의 선형 근사 (linear approximation)가 0이 되는 지점을 찾아내고 있으며, 그 선형 근사의 0이 되는 지점을 다음 추측값으로 사용하는 것입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 YouTube 3Blue1Brown (수학/ML)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기