학습 자료

GPU 와 학습 — 틀리고 고치기(경사하강)를 그림으로


Article

2강에서 학습을 "예측 → 채점 → 조정"의 고리라 했다. 그리고 이렇게 미뤄뒀다. "그 '조금'을 어느 방향으로 도느냐가 11강의 경사하강이다." 10강 끝에서는 또 하나를 미뤘다 — 늘어난 가중치를 조정하는 계산이 왜 무거운 작업이고, 왜 GPU 가 필요한지.

이번 강이 그 두 가지를 다 갚는다. Part 3 의 마지막 강이기도 하다.

안개 낀 산에서 내려오는 것과 같다

가중치를 조정하는 일을 산에서 내려오는 상황에 비유하면 쉽다. 안개가 잔뜩 껴서 멀리는 안 보이고, 발밑만 느껴진다고 하자. 목표는 가장 낮은 곳을 찾는 것이다. 이 "낮음"이 바로 2강에서 본 "틀린 정도(손실)"다 — 낮을수록 잘 맞힌다는 뜻이다.

경사하강 — 발밑 기울기를 느끼고 한 걸음
  1. 지금 서 있는 자리지금의 가중치 값 그대로 손실을 재본 상태
  2. 발밑 기울기를 느낀다어느 방향이 더 낮아지는지(경사)를 계산한다
  3. 그 방향으로 한 걸음가중치를 그 방향으로 아주 조금 옮긴다
  4. 다시 발밑을 느낀다새 자리에서 또 기울기를 재고, 다시 한 걸음
이 걸음을 수만 번 반복하면 가장 낮은 골짜기 근처에 이른다. 이게 2강 고리의 세 번째 칸, '조정'의 실체다.

멀리 있는 골짜기 전체를 한눈에 보고 찾아가는 게 아니다. 발밑의 기울기, 그 순간의 정보만 보고 한 걸음씩 내려간다. 이 "기울기"를 계산하는 과정을 경사하강(gradient descent)이라 부르고, 한 걸음의 크기를 **학습률(learning rate)**이라 부른다.

한 걸음의 크기가 학습을 좌우한다

보폭이 너무 크면

학습률이 너무 높다

  • 골짜기를 훌쩍 지나쳐 반대편으로 넘어간다
  • 가장 낮은 곳 근처에서 왔다 갔다 하며 안정되지 못한다
  • "틀린 정도"가 줄지 않고 오히려 들쭉날쭉해진다

보폭이 적당하면

노리는 지점

  • 한 걸음씩 착실히 낮은 쪽으로 내려간다
  • 적당한 횟수 안에 골짜기 근처에 도달한다

보폭이 너무 작으면

학습률이 너무 낮다

  • 한 걸음이 너무 짧아 내려가는 데 오래 걸린다
  • 정해진 시간 안에 골짜기 근처에도 못 간다
학습률은 사람이 미리 정해주는 값이다. 너무 크지도 작지도 않게 고르는 게 실제 실습에서 자주 부딪히는 조정거리다.

왜 이 계산에 GPU 가 필요한가

이 "한 걸음"이 왜 무거운 계산일까. 9강에서 본 신경망 그림을 다시 떠올리면, 층 하나에도 뉴런이 수백 개, 연결선(가중치)은 그보다 훨씬 많다. 한 걸음을 내딛으려면 이 가중치 하나하나마다 얼마나 움직여야 할지를 전부 따로 계산해야 한다. 그것도 학습 고리를 수만 번 도는 내내.

같은 양의 곱셈을 처리하는 방식 (개념도)
CPU
계산 1개씩 순서대로
GPU
묶음 1묶음 2묶음 3묶음 4
시작
실측이 아니라 방향을 보여주는 그림이다. CPU 는 복잡한 작업을 순서대로 빠르게, GPU 는 단순한 곱셈·덧셈을 동시에 아주 많이 처리하는 데 특화됐다.

CPU 는 복잡한 판단이 섞인 작업을 순서대로 빠르게 처리하는 데 강하다. 반면 가중치 갱신은 "곱하고 더하라"는 단순한 연산이 수백만 번 동시에 반복되는 작업이다. 이런 단순 연산을 대량으로 병렬 처리하도록 설계된 게 GPU 다. 같은 계산을 CPU 로도 할 수는 있지만, 병렬로 나눠 처리하지 못해 훨씬 오래 걸린다.

정리하면

경사하강은 발밑 기울기를 느끼며 손실이 낮아지는 방향으로 한 걸음씩 내딛는 일이다. 이 계산이 가중치 수만큼 반복되기 때문에, 단순 연산을 대량 병렬로 처리하는 GPU 가 필요하다.

다시 짚어보기
  1. 01

    경사하강은 산에서 내려오는 것과 같다

    발밑 기울기(경사)를 느끼고, 손실이 낮아지는 방향으로 한 걸음씩 옮긴다. 2강 고리의 '조정' 칸의 실체다.

  2. 02

    한 걸음의 크기가 학습률이다

    너무 크면 골짜기를 지나치고, 너무 작으면 너무 늦게 도착한다.

  3. 03

    이 계산은 가중치 개수만큼 반복된다

    9강에서 본 것처럼 가중치가 수백만~수십억 개면, 한 걸음마다 그만큼 계산이 필요하다.

  4. 04

    그래서 단순 연산을 병렬로 처리하는 GPU 를 쓴다

    GPU 없이도 되지만, 감당 가능한 시간 안에 끝내려면 사실상 GPU 가 필요하다.

Part 3이 끝났다. 뉴런·층·가중치로 신경망의 겉모습을 봤고(9강), 층을 깊게 쌓으면 왜 더 나은지를 봤고(10강), 그 가중치를 실제로 조정하는 경사하강과 GPU 이야기까지 왔다(11강).

여기까지가 딥러닝이라는 땅이었다. 다음 강의부터는 지도의 가장 안쪽, 요즘 모두가 이야기하는 생성형 AI 와 LLM 으로 들어간다. ChatGPT 같은 것들이 실제로 하는 일이 "다음 단어를 잘 맞히는 것"뿐이라는, 다소 허탈한 진실부터 본다.

GPU 와 학습 — 틀리고 고치기(경사하강)를 그림으로 — 디코드랩(DCODELAB)