이 부록은 이 책의 심장에 해당하는 수학이다. 4장에서 신경망이 “스스로 배우는” 장면(경사하강법)과 5장에서 그 배움을 빠르게 만드는 장면(오차역전파법, 연쇄법칙)이 나오는데, 그 뿌리가 전부 여기 있다.

미분·적분을 배운 적이 없어도 괜찮다. 겁나는 이름들이 줄줄이 나오지만, 하나하나 뜯어보면 전부 “조금 움직이면 얼마나 바뀌나?”라는 아주 단순한 질문이다. 그리고 이 부록에서는 극한이니 하는 어려운 이론은 다 건너뛰고, 오직 “아주 작게 움직여 본다”는 직관 하나로만 밀고 나간다. 딱 그만큼만, 숫자로 천천히 떼어 가자.

미분 = 한 점에서의 기울기

미분? 무섭게 들리지만 그냥 “이 순간 얼마나 가파른가” 를 재는 것이다.

미끄럼틀을 떠올려 보자. 완만한 데도 있고, 뚝 떨어지는 데도 있다. “이 지점이 얼마나 가파르냐”가 바로 기울기다.

직선이라면 기울기는 하나로 정해진다. 그런데 곡선은? 곳곳마다 가파르기가 다르다. 그래서 곡선은 “한 점에서의 기울기”를 따로따로 물어봐야 한다. 그 한 점의 기울기를 구하는 게 바로 미분이다.

곡선인데 어떻게 직선처럼 기울기를 잴까? 비밀은 확대다. 곡선을 아주 크게, 점점 더 크게 확대하면, 어느 순간 그 근처가 직선처럼 보인다. 지구는 둥근데 우리 발밑 땅은 평평해 보이는 것과 똑같다. 충분히 가까이서 보면 곡선도 직선이다. 그 “직선처럼 보이는 조각”의 기울기가 그 점의 미분값이다.

속도계 비유도 좋다. 자동차가 달린 거리를 시간에 대한 곡선으로 그린다고 하자. 전체 평균 속도가 아니라 “바로 지금 이 순간의 속도”를 알려주는 게 속도계다. 미분은 곡선의 속도계다. 지금 이 순간, 얼마나 빠르게 변하는가.

한 가지 더. “한 점의 기울기”를 그림으로 그리면 그 점에 살짝 갖다 댄 직선 하나가 된다. 이 직선을 접선(닿는 선)이라고 부른다. 곡선을 확대했을 때 직선처럼 보인다고 했는데, 그 직선이 바로 접선이다. 그러니까 미분값 = 그 점 접선의 기울기, 이렇게 이해해도 똑같다. 어려운 이름이지만 “곡선에 살짝 닿기만 한 막대기”라고 생각하면 된다.

이것만 기억하자: 미분은 곡선을 확대해 직선처럼 보이게 만든 뒤, 그 한 점의 기울기(=접선의 기울기)를 재는 것이다.

변화율을 숫자로 재보기

기울기를 잰다는 건 결국 이런 계산이다. “오른쪽으로 조금 갔더니 위로 얼마나 올라갔나?” 학교에서 배운 “가로 대비 세로”가 기울기였던 걸 기억하면 된다.

수식으로 쓰면 이렇다.

무섭게 보이지만 한 조각씩 읽어 보자. 는 “일 때의 높이”다. 는 “에서 아주 조금(만큼) 오른쪽으로 간 곳의 높이”다. 위쪽 올라간 높이(세로), 아래쪽 옆으로 간 거리(가로). 그러니 이 분수 전체는 그냥 “가로 대비 세로 = 기울기”다.

여기서 핵심은 아주 작게 만드는 것이다. 가 크면 곡선을 대충 훑은 평균 기울기가 나오지만, 를 점점 작게 줄이면 “바로 그 점”의 기울기에 가까워진다. 곡선을 확대한다는 게 바로 이 를 줄이는 일이다.

헷갈리기 쉬워요: 를 “0으로 만든다”가 아니라 “0에 아주 가깝게 줄인다”이다. 진짜 0을 넣으면 아래가 이 돼서 나눗셈이 깨진다. 그래서 “아주 작게”까지만 간다.

숫자로 확인해 보자. 라는 곡선에서, 근처의 기울기를 구해 본다. 를 점점 작게 넣어 보자.

  • :
  • :
  • :
  • :

숫자가 점점 6에 다가가는 게 보이는가? 표로 정리하면 한눈에 들어온다.

계산기울기

를 작게 할수록 6.001, 6.0001… 6에 착 붙는다. 그래서 “에서 의 기울기는 6이다”라고 말한다. 이렇게 아주 작은 를 실제 숫자로 넣어 기울기를 구하는 방법을 이 책 4장에서 수치 미분이라고 부른다. 컴퓨터가 미분을 “손으로” 구하는 방식이다.

헷갈리기 쉬워요: 실제로 컴퓨터에서는 를 너무너무 작게(예: 0.0000…001) 하면 오히려 숫자가 뭉개져 부정확해진다. 그래서 4장에서는 적당히 작은 값을 쓰고, 앞뒤로 조금씩 움직여 평균 내는 요령()을 쓴다. 지금은 “는 아주 작게, 하지만 0은 아니게”만 기억하면 충분하다.

이것만 기억하자: 기울기는 (올라간 높이 ÷ 옆으로 간 거리)이고, 옆으로 간 거리 를 아주 작게 하면 그 점의 미분값이 나온다.

아주 쉬운 미분 몇 개

몇 가지 곡선은 기울기가 규칙적이어서 외워 둘 만하다. 공식으로 외우지 말고 “의미”로 느껴 보자.

(곧은 직선)

랑 똑같이 커지는 직선이다. 가 1 늘면 도 딱 1 는다. 옆으로 1 가면 위로 1. 그러니 기울기는 항상 1이다. 어디서 재든 1. 곧은 직선이니 확대할 것도 없이 처음부터 직선이라 그렇다.

(밥그릇 모양 곡선)

앞에서 일 때 기울기가 6이 나왔다. 다른 점도 재보면 이런 규칙이 보인다.

  • → 기울기
  • → 기울기
  • → 기울기
  • → 기울기

전부 의 2배다. 그래서 의 기울기는 라고 말한다. 의미를 보면, 근처(밥그릇 바닥)에서는 기울기가 0이라 평평하고, 바닥에서 멀어질수록 점점 가팔라진다. 밥그릇을 옆에서 본 모습 그대로다.

헷갈리기 쉬워요: 기울기가 음수일 수도 있다. 에서 의 기울기는 . 음수 기울기는 “오른쪽으로 갈수록 내려간다(내리막)“는 뜻이다. 밥그릇 왼쪽 벽이 내리막인 걸 떠올리면 된다.

(평평한 가로선)

가 뭐든 값이 늘 5로 그대로인 경우다. 아무리 옆으로 가도 위아래로 안 움직이니, 기울기는 0이다. “변하지 않는 것의 변화율은 0” — 편미분에서 고정한 변수를 “안 변하는 덩어리”로 취급할 수 있었던 게 바로 이 성질 덕분이다.

세 가지를 한 표로 모아 두자.

곡선생김새기울기
곧은 대각선항상
밥그릇
(상수)평평한 가로선항상

이것만 기억하자: 의 기울기는 항상 1, 의 기울기는 (바닥에선 평평, 멀수록 가파름), 안 변하는 상수의 기울기는 0이다.

편미분 = 변수가 여럿일 때, 하나만 건드리기

지금까지는 입력이 하나였다. 그런데 신경망은 입력이 수백, 수천 개다. 이럴 때 쓰는 게 편미분이다. 이름은 거창하지만 뜻은 단순하다. “나머지는 다 그대로 두고, 딱 하나만 조금 움직여 보기.”

요리로 비유하자. 국의 간을 볼 때, 소금·설탕·물을 한꺼번에 바꾸면 뭐 때문에 맛이 변했는지 알 수 없다. 그래서 소금만 아주 조금 더 넣고 맛을 본다. 나머지는 손대지 않는다. “소금을 조금 늘리면 맛이 얼마나 변하나?” — 이게 소금에 대한 편미분이다.

숫자로 보자. 입력이 두 개인 함수를 생각한다.

읽는 법: (엑스 제로)와 (엑스 원)이라는 두 재료를 각각 제곱해 더한 값이다. 지금 , 인 지점에 서 있다고 하자.

에 대한 편미분는 고정하고 만 건드린다. 이 고정이면 은 그냥 안 변하는 덩어리다. 변하는 건 뿐이고, 그 기울기는 앞에서 배운 대로 . 이니 이다.

에 대한 편미분 — 이번엔 을 고정하고 만 건드린다. 같은 논리로 이다.

봤듯이 편미분은 새로운 게 아니다. “지금 관심 없는 변수는 숫자처럼 고정해 두고, 앞에서 배운 미분을 그대로 하는 것” 일 뿐이다. 방금 한 계산을 표로 모아 두자.

무엇을 건드리나고정되는 것변하는 것그 점에서의 편미분

“소금만 조금”과 “설탕만 조금”을 따로 재보니, 소금(=)은 맛을 6만큼, 설탕(=)은 8만큼 바꾼다는 걸 알아낸 셈이다. 신경망에서 “이 숫자 하나가 결과에 얼마나 영향을 주나”를 알아내는 게 바로 이 편미분이다.

이것만 기억하자: 편미분은 나머지 변수를 고정한 채 하나만 조금 움직여 보는 것 — 앞에서 배운 미분을 그 하나에만 적용하면 된다.

기울기(gradient) = 편미분을 모은 화살표

편미분 하나는 “그 방향으로 조금 가면 얼마나 오르나”를 알려준다. 그럼 여러 방향의 편미분을 한꺼번에 모으면 어떻게 될까? 그게 바로 기울기(gradient, 그레이디언트)다.

방금 예에서 방향 편미분은 6, 방향 편미분은 8이었다. 이 둘을 짝지어 묶는다.

읽는 법: 는 “라운드” 또는 “델”이라고 읽고, “편미분”이라는 뜻의 특별한 다. 는 “에 대한 편미분”을 뜻한다. 그러니 저 괄호는 그냥 (6, 8), 편미분 두 개를 나란히 적은 것이다.

화살표로 생각하면 근사하다. 이 화살표는 두 가지를 동시에 알려준다.

  • 방향: 어느 쪽으로 가야 가장 빠르게 올라가는가. 은 ” 방향으로도 오르막인데, 방향이 더 가파르다”는 뜻이다.
  • 가파름: 화살표가 길수록 그 지점이 가파르다.

즉 기울기 화살표는 그 지점에서 가장 가파른 오르막을 가리킨다. 산에서 “여기서 제일 빨리 정상 쪽으로 오르려면 어디로?”에 답하는 나침반이다.

그런데 4장에서 우리가 하고 싶은 건 오르는 게 아니라 내려가는 것이다. 신경망의 “틀린 정도(손실)“라는 골짜기를 최대한 낮은 곳으로 데려가고 싶기 때문이다. 방법은 간단하다. 기울기가 “가장 가파른 오르막”이니, 그 반대 방향으로 한 걸음 내디디면 가장 빠른 내리막이다.

이것이 경사하강법이다. 짙은 안개 속 산에서 하산하는 사람을 떠올려 보자. 앞이 안 보이니 발밑만 더듬는다. “지금 서 있는 자리에서 어느 쪽이 제일 가파른 내리막이지?”를 발끝으로 느끼고(=기울기의 반대), 그쪽으로 한 걸음 내려간다. 새 자리에서 다시 발밑을 더듬고, 또 한 걸음. 이걸 반복하면 골짜기 바닥에 닿는다. 신경망 학습이 딱 이렇게 돌아간다.

식으로는 이렇게 쓴다.

읽는 법: 는 “왼쪽을 이 값으로 새로 바꾼다”는 뜻이다. 편미분(오르막 방향) 앞에 빼기가 붙어서 “반대로, 즉 내리막으로” 간다. (에타)는 한 걸음의 크기(학습률)다. 너무 크면 골짜기를 건너뛰어 넘어가 버리고, 너무 작으면 하산이 하염없이 느리다. 안개 속에서 보폭을 얼마로 할지의 문제다.

정말 골짜기 바닥으로 가는지 숫자로 걸어 보자. 아까 그 밥그릇 의 바닥은 이다. 에서 출발해, 보폭 로 한 걸음씩 내려가 보자. 기울기는 이다.

  • 출발 → 기울기 → 반대로 0.1만큼:
  • 1걸음 뒤 → 기울기
  • 2걸음 뒤
  • … 계속하면 → 에 점점 가까워진다.

숫자가 착실하게 바닥 으로 굴러 내려가는 게 보인다. 신경망 학습도 이것과 똑같다. 다만 자리에 신경망의 수많은 숫자(가중치)가 들어가고, 밥그릇 대신 “틀린 정도”라는 훨씬 복잡한 골짜기를 내려갈 뿐이다. 원리는 방금 이 한 걸음, 한 걸음이 전부다.

이것만 기억하자: 기울기는 각 방향 편미분을 모은 화살표로, 가장 가파른 오르막을 가리킨다. 경사하강은 그 반대(내리막)로 조금씩 내려가며 골짜기 바닥을 찾는 것이다.

연쇄법칙 = 겉미분 × 속미분

마지막이다. 5장 오차역전파법의 전부가 여기 담겨 있다. 미리 안심시키자면, 연쇄법칙 하나만 이해하면 5장의 그 복잡해 보이는 계산 그래프는 전부 이 규칙의 반복일 뿐이다.

연쇄법칙은 “함수 안에 함수가 들어 있을 때” 의 미분법이다. 예를 들어 보자.

이건 두 단계로 나눠 볼 수 있다. 먼저 에 2를 더하고(), 그 결과를 제곱한다(). 중간값을 라 이름 붙이면 이다. 껍질(제곱) 안에 알맹이()가 든 셈이다.

이때 “를 조금 움직이면 가 얼마나 변하나?”를 알려면, 톱니바퀴를 떠올리면 된다. 작은 톱니바퀴()가 큰 톱니바퀴()를 물고 돈다. 를 돌리면 → 가 돌고 → 를 돌린다. 그러니 에 주는 영향은 두 톱니바퀴의 효과를 곱한 것이다.

읽는 법: “에 대한 변화 = (에 대한 변화) × (에 대한 변화)“. 사람 말로는 “겉을 미분 × 속을 미분”, 줄여서 “겉미분 × 속미분”이다.

숫자로 확인하자. 인 지점에서 계산해 본다.

  • 속: 의 기울기 (가 1 늘면 도 1 는다).
  • 겉: 의 기울기 . 지금 이니 .
  • 곱하기: .

정말 6이 맞는지, 앞의 “아주 작게 넣기”로 직접 검산해 보자. 에서 :

똑같이 6이 나온다! 톱니바퀴를 하나씩 미분해 곱한 결과가, 직접 잰 기울기와 정확히 맞아떨어진다.

한 번 더, 톱니바퀴가 세 개인 경우도 겁낼 것 없다. 곱셈을 한 칸 더 늘리면 된다. 예를 들어 사슬이 로 이어진다면,

톱니바퀴가 몇 개든, 이웃한 두 톱니의 효과를 차례로 곱해 이어 붙이기만 하면 맨 앞이 맨 뒤에 주는 영향이 나온다. 사슬이 길어져도 규칙은 그대로다.

이게 왜 5장의 전부일까. 신경망은 사실 톱니바퀴가 수십 개 물린 긴 사슬이다: 입력 → 곱하기 → 더하기 → 활성화 함수 → 다음 층 → … → 손실. “입력을 조금 바꾸면 손실이 얼마나 변하나?”를 알려면, 이 긴 사슬을 뒤에서 앞으로 거슬러 오면서 각 톱니바퀴의 미분을 차례차례 곱해 나가면 된다. 그 “뒤에서 앞으로 곱하며 거슬러 오기”가 바로 역전파(backpropagation)다. 새 규칙은 하나도 없다. 오직 “겉미분 × 속미분”의 반복이다.

왜 하필 뒤에서 앞으로일까? 우리가 알고 싶은 건 결국 “각 톱니(가중치)를 조금 돌리면 맨 끝의 손실이 얼마나 변하나”이다. 그래서 손실(맨 끝)에서 출발해 톱니를 하나씩 거슬러 오며 곱을 쌓으면, 앞쪽 톱니 하나하나가 손실에 주는 영향이 한 번의 훑기로 전부 구해진다. 4장처럼 톱니마다 따로따로 를 넣어 재는 것보다 훨씬 빠른 이유가 여기 있다. 계산 그래프를 뒤로 훑는 그 화살표들이 무섭게 생겼어도, 각 화살표에 적힌 건 결국 이 절에서 손으로 해본 “겉미분 × 속미분” 하나뿐이다.

이것만 기억하자: 함수 안의 함수는 겉미분 × 속미분으로 푼다. 5장 역전파는 이 곱셈을 사슬 끝에서부터 거꾸로 반복하는 것, 그게 전부다.

이걸 본문 어디서 쓰나

  • 4장 (신경망 학습): 손실이라는 골짜기를 내려가려고 기울기를 구하고, 그 반대 방향으로 조금씩 내려간다(경사하강법). 이때 컴퓨터는 “아주 작은 넣기”로 기울기를 구한다(수치 미분). 이 부록의 미분·편미분·기울기가 통째로 쓰인다.
  • 5장 (오차역전파법): 4장의 수치 미분은 정확하지만 느리다. 그래서 연쇄법칙(겉미분 × 속미분)으로 기울기를 훨씬 빠르게 구한다. 계산 그래프를 뒤에서 앞으로 거슬러 오는 그 과정이 전부 이 부록 마지막 절의 반복이다.

부록 전체를 한 줄씩 다시 붙여 보면 이렇게 이어진다.

  1. 미분 — 곡선 한 점의 기울기, “조금 움직이면 얼마나 바뀌나”.
  2. 수치 미분 — 그 기울기를 아주 작은 를 넣어 숫자로 구하기.
  3. 편미분 — 변수가 여럿일 때, 하나만 건드려 그 하나의 영향을 재기.
  4. 기울기 — 편미분을 다 모은 화살표, 가장 가파른 오르막.
  5. 경사하강 — 그 화살표 반대로 걸어 골짜기 바닥(작은 손실)으로.
  6. 연쇄법칙 — 함수 속 함수는 겉미분 × 속미분, 사슬이면 곱을 이어 붙이기.
  7. 역전파 — 6번을 신경망 사슬 끝에서부터 거꾸로 반복.

미분이 “변화율”, 기울기가 “가장 가파른 방향 화살표”, 연쇄법칙이 “겉미분 × 속미분” — 이 세 문장만 손에 쥐고 있으면 4·5장의 수식은 더 이상 무섭지 않다. 여기까지 왔다면 이 책의 심장 수학은 이미 넘은 것이다.

다음 부록으로 수학부록3