Project NEUROVERSE
목차

기초 이론 편 · 2부 AI는 어떻게 학습하는데? — 2.4

층 쌓기 — 딥러닝은 왜 '깊을까'

뉴런 하나는 직선 하나만 그을 수 있습니다. 여러 개를 엮으면 휘어진 경계도 만들 수 있습니다.

2.1의 뉴런은 “단서 × 가중치를 더해서 기준과 비교”했습니다. 이 방식에는 한계가 있습니다. 단서가 두 개라면, 뉴런이 할 수 있는 건 평면에 직선 하나를 긋고 이쪽 / 저쪽으로 나누는 것뿐입니다.

그럼 이런 문제는 어떨까요? 가운데 동그랗게 모인 점들(●)과, 그걸 빙 둘러싼 점들(○)을 나누는 문제입니다. 직선 하나로는 아무리 그어도 안쪽 원을 따로 떼어낼 수 없습니다.

안쪽 점(●)과 바깥쪽 점(○)을 나누는 문제예요. 중간에 뉴런을 몇 개 둘지 고르면, 그 자리에서 학습해서 경계를 그려요.

– 맞힘

해보면 보이는 것

뉴런 1개는 직선 하나밖에 못 그어서, 이 문제에서는 절반 정도(52%)밖에 못 맞힙니다. 학습을 아무리 오래 해도 마찬가지입니다. 산을 잘 내려가도 이 모양으로 그릴 수 있는 답 중에는 좋은 답이 없는 것입니다.

중간에 뉴런 2개를 두면 훨씬 나아져요(87%). 3개 이상이면 안쪽 원을 감싸는 경계를 그려서 다 맞힙니다.

왜 되는 걸까

중간에 둔 뉴런들이 각자 직선 하나씩을 긋습니다. 예를 들어 “이 선의 위쪽인가?”, “저 선의 왼쪽인가?” 같은 판단을 하나씩 맡는 것입니다. 그다음 마지막 뉴런이 그 판단들을 입력으로 받아서 조합합니다. “세 선의 안쪽에 다 들어가면 ●” 같은 식으로요. 직선 여러 개를 조합하면 삼각형이나 동그라미에 가까운 모양도 감쌀 수 있습니다.

여기서 중간에 있는 뉴런들을 숨은 층(hidden layer) 이라고 부릅니다. 입력도 출력도 아니고 가운데에 숨어 있어서 붙은 이름입니다.

2.1에서는 “광고성 단어” 같은 단서를 사람이 정해줬습니다. 그런데 여기서 숨은 층의 뉴런들은 자기가 볼 직선을 스스로 정했습니다. 아무도 “이 선을 그어”라고 알려주지 않았습니다. 숨은 층은 쓸모 있는 단서를 스스로 만들어내는 곳입니다.

이걸 깊게 쌓으면 딥러닝

숨은 층을 하나가 아니라 여러 겹 쌓을 수 있습니다. 첫 층이 만든 단서를 다음 층이 조합해서 더 복잡한 단서를 만들고, 그걸 또 다음 층이 조합하고… 사진이라면 첫 층은 선이나 모서리 같은 단순한 걸 보고, 뒤로 갈수록 눈, 바퀴처럼 복잡한 걸 알아보는 식입니다.

이렇게 층을 깊게(deep) 쌓은 신경망으로 배우는 게 1.1에서 말한 딥러닝입니다. LLM도 층이 아주 많은 신경망입니다.

더 깊게 · 곱하고 더하기만 쌓으면 안 되는 이유

뉴런은 “곱하고 더하기”를 합니다. 그런데 곱하고 더하기를 아무리 여러 층 반복해도, 결과는 여전히 한 번의 “곱하고 더하기”로 줄여서 쓸 수 있습니다. 즉 층을 쌓아도 여전히 직선 하나입니다.

그래서 각 뉴런은 더한 다음에 꺾이거나 휘는 함수를 하나 통과시킵니다. 이걸 활성화 함수라고 부릅니다. 음수는 0으로 만드는 ReLU, S자 모양으로 휘는 tanh 같은 것들이 있습니다. 이 위젯은 tanh를 썼습니다. 이 휘어짐 덕분에 층을 쌓을수록 더 복잡한 모양을 그릴 수 있습니다.

이 위젯은 7xz.dev의 Lab과 같은, 손으로 짠 신경망 코드로 브라우저에서 직접 학습합니다. 매번 같은 결과가 나오도록 시작 값을 고정해 뒀습니다.

정리

  • 뉴런 하나는 직선 하나만 그을 수 있습니다.
  • 중간에 뉴런을 두면(숨은 층), 각자 그은 직선을 다음 뉴런이 조합해서 휘어진 경계를 만듭니다.
  • 숨은 층은 단서를 스스로 만듭니다. 사람이 단서를 정해줄 필요가 없어집니다.
  • 층을 깊게 쌓은 게 딥러닝입니다.

이 장을 복사합니다. ChatGPT나 Claude 같은 AI에 붙여넣고 그대로 보내면 AI가 다 읽었다고 답합니다. 그다음 궁금한 걸 물어보세요.