이 부록은 이 책의 심장에 해당하는 수학이다. 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