BioPlayground

🧬
목록으로

신경망이란 — 다이얼과 스위치가 만드는 패턴 인식 기계

병리학 슬라이드 판독 시나리오로 신경망의 뉴런·가중치·편향·활성화 함수를 이해합니다. 계층적 특징 탐지가 어떻게 픽셀에서 종양 판별까지 이어지는지, 그리고 편 #1의 LLM이 이 구조 위에서 어떻게 작동하는지 연결해서 설명합니다.

입문
|
17
|
검증 완료 (2026-07)
진행률0/15 (0%)

신경망이란 — 다이얼과 스위치가 만드는 패턴 인식 기계

이 토픽을 마치면

인공신경망(Neural Network)이 왜 "뇌의 모방"이 아니라 정교한 수학 함수인지를 이해하게 됩니다. 뉴런·가중치·편향·활성화 함수라는 네 부품이 어떻게 결합해서 픽셀 같은 저수준 데이터를 종양 판별 같은 고수준 결정으로 변환하는지, 그리고 편 #1에서 배운 LLM이 이 구조의 어떤 확장인지 하나의 이야기로 연결됩니다.

이 편은 원리 편의 시작이자, 이후 편 #3(경사하강법)·편 #4(역전파)·편 #5(트랜스포머)의 밑판을 놓는 편입니다.


병리학 슬라이드 한 장의 문제

여러분이 병원 병리과에 파견 나온 대학원생이라고 해봅시다. 오늘 임무는 방금 실험실로 도착한 조직 슬라이드 500장을 판독하는 일. 각 슬라이드는 H&E 염색된 조직 절편 이미지이고, 여러분이 판단해야 할 것은 "이 조직에 종양 세포가 있는가, 있다면 양성인가 악성인가" 세 가지 중 하나입니다.

500장. 슬라이드 한 장을 신중히 보는 데 5분씩만 걸려도 하루 40시간짜리 일. 게다가 이런 판독은 병리 전문의도 종종 서로 의견이 갈릴 만큼 미묘합니다. 픽셀 하나하나가 특별한 의미가 있는 게 아니라, 픽셀들이 모여 만드는 세포의 배열·모양·밀도 패턴이 판단의 근거이기 때문입니다.

그런데 만약 여러분이 마법 같은 기계를 하나 가지고 있다면? 이미지의 모든 픽셀 값을 입력으로 넣으면, 정상·양성·악성 세 가지 판정에 대한 확률을 출력해주는 기계. 이 기계만 있으면 500장을 몇 초에 처리하고, 여러분은 확률이 애매한 경계 사례만 골라 정밀 검토하면 됩니다.

이 기계가 바로 신경망(Neural Network) 입니다. 그리고 편 #1에서 배운 LLM은 이 신경망의 아주 정교하고 거대한 특수 형태 입니다. 이번 편에서는 이 기계가 어떤 부품으로 이루어져 있는지, 픽셀 같은 저수준 데이터가 어떻게 종양 판정 같은 고수준 결정으로 이어지는지 뜯어봅니다.


신경망은 "뇌의 모방"이 아니다

먼저 흔한 오해 하나를 짚고 갑시다. "인공신경망(Artificial Neural Network)"이라는 이름 때문에 사람들이 종종 이것을 뇌의 정교한 모방이나 인공 뇌 정도로 상상합니다. 사실이 아닙니다.

인공신경망은 아주 정교한 다변수 수학 함수입니다. 이름에 "신경(neural)"이 붙은 이유는 초기 개발자들이 생물학적 뉴런의 발화 구조에서 영감을 받았기 때문이지만, 지금의 신경망은 실제 뇌 뉴런과는 구조도 작동 방식도 매우 다릅니다. 생물학적 뉴런이 스파이크 타이밍·화학적 신호전달·수천 개 이온 통로의 협업으로 정보를 처리한다면, 인공신경망의 뉴런은 그저 입력값들의 가중합에 편향을 더하고 비선형 함수를 통과시키는 계산 유닛 하나일 뿐입니다.

이 관점을 붙잡는 게 중요합니다. 왜냐하면 앞으로 배울 개념들이 뇌의 신비를 이해하는 게 아니라 수학 함수의 형태를 이해하는 것이기 때문입니다.

정확한 정의부터 시작합시다.

인공신경망은 고차원 입력 데이터(예: 이미지 픽셀 값)를 계층적인 특징 추출 과정을 거쳐 원하는 정답 공간(예: 정상·양성·악성 확률)으로 매핑하는 다변수 수학 함수다.

여기서 두 개의 핵심 단어. 계층적(layered)매핑(mapping). 이 두 단어가 신경망이 하는 일의 전부입니다.


뉴런의 실체 — 활성화 상태를 가진 하나의 숫자

신경망을 구성하는 가장 작은 부품은 뉴런(neuron), 또는 노드(node)입니다. 개별 뉴런의 실체는 놀랍도록 단순합니다.

뉴런 하나 = 하나의 숫자. 그것도 대개 0과 1 사이의 실수입니다.

이 숫자를 활성화 상태(activation) 라고 부릅니다. 값이 0에 가까우면 "이 뉴런이 지금 특별히 반응하지 않고 있다", 1에 가까우면 "이 뉴런이 강하게 반응하고 있다"를 뜻합니다. 개별 뉴런의 활성화 상태는 물리적 실체가 아니라 그저 특정 계산의 결과입니다.

병리학 슬라이드 예시로 옮겨봅시다. 슬라이드 이미지가 256×256 픽셀 크기라면 픽셀 수는 65,536개. 이 중 한 픽셀의 밝기 값을 하나의 뉴런으로 취급하면, 입력층(input layer) 에는 뉴런이 65,536개 있다는 뜻입니다. 각 픽셀의 밝기 값(0에서 1 사이로 정규화)이 그 뉴런의 활성화 상태.

물론 최종 출력은 정상·양성·악성 세 가지에 대한 확률 세 개. 그러니 출력층(output layer) 에는 뉴런이 세 개 있고, 각 뉴런의 활성화 상태가 각 클래스의 확률이 됩니다.

입력층과 출력층 사이에는 은닉층(hidden layer) 이라 부르는 중간 층들이 있습니다. 왜 "은닉"이냐 하면 우리가 직접 볼 일이 없는 중간 계산 결과이기 때문. 은닉층 뉴런의 활성화 상태는 우리가 직접 해석하지 않고, 다음 층으로 전달됩니다.

전체 구조는 이렇습니다.

text
입력층 (65,536개 뉴런, 픽셀 밝기)
   ↓ [연결]
은닉층 1 (예: 512개 뉴런, 무엇을 나타내는지 학습으로 결정)
   ↓ [연결]
은닉층 2 (예: 128개 뉴런, 더 추상화된 특징)
   ↓ [연결]
은닉층 3 (예: 32개 뉴런, 더더 추상화된 특징)
   ↓ [연결]
출력층 (3개 뉴런, 정상·양성·악성 확률)

이런 구조를 다층 퍼셉트론(Multi-Layer Perceptron) 또는 피드포워드 신경망(feed-forward neural network) 이라 부릅니다. 정보가 입력에서 출력으로 한 방향으로만 흐르기 때문에 "피드포워드".


계층적 특징 탐지 — 저수준에서 고수준으로

여기가 신경망의 진짜 마법이 일어나는 지점입니다. 왜 이렇게 여러 층으로 쌓느냐. 층마다 다른 수준의 추상화가 일어나기 때문입니다.

병리학 슬라이드에서 실제로 일어나는 일을 상상해봅시다.

은닉층 1의 뉴런들은 각 픽셀 주변의 아주 국소적인 특징을 감지합니다. 예를 들어 어떤 뉴런은 "여기서 밝기가 급격히 변한다"는 신호에 반응합니다 — 세포 경계의 검출기 역할. 또 다른 뉴런은 "여기가 유난히 진하다"는 신호에 반응합니다 — 세포 핵의 검출기.

은닉층 2의 뉴런들은 은닉층 1의 여러 신호를 조합해서 조금 더 큰 패턴을 감지합니다. "여러 세포 경계가 원형으로 배열됨" → 개별 세포 검출기. "핵이 크고 여러 개 뭉쳐 있음" → 핵 이상성 검출기.

은닉층 3의 뉴런들은 은닉층 2의 신호를 조합해서 더 큰 패턴을 봅니다. "세포들이 무질서하게 뒤엉킴" → 조직 구조 붕괴 검출기. "정상 조직 배열이 유지됨" → 정상 조직 배열 검출기.

출력층의 세 뉴런은 이 은닉층 3의 특징들을 종합해서 최종 판정을 내립니다. 조직 구조 붕괴 신호가 강하고 핵 이상성 신호가 강하면 → 악성 확률 상승. 정상 배열 신호가 강하면 → 정상 확률 상승.

이 계층적 특징 탐지가 딥러닝(Deep Learning) 의 "deep"이 의미하는 바입니다. 깊이 쌓는 이유는 저수준에서 고수준으로 추상화가 자연스럽게 흐르도록. 픽셀 → 경계 → 세포 → 조직 배열 → 종양 판정. 이 흐름이 왜 신경망이 이미지·언어·소리 같은 복잡한 데이터를 다룰 수 있는지의 핵심입니다.

흥미로운 사실. 우리가 은닉층의 뉴런에게 "너는 세포 경계를 감지해"라고 미리 알려주지 않습니다. 그저 학습 데이터(예: 정답이 붙어 있는 병리 슬라이드 수만 장)를 주고 훈련시키면, 신경망이 스스로 각 은닉층에 어떤 특징을 배치할지를 알아냅니다. 어떤 뉴런이 세포 경계 검출기가 되고 어떤 뉴런이 핵 검출기가 되는지는 훈련이 결정합니다. 이건 편 #3(경사하강법)과 편 #4(역전파)에서 자세히 다룹니다.

이 관점이 바이오 연구자에게 특히 익숙할 것입니다. 우리 몸의 신호전달 경로(signal transduction pathway) 도 정확히 이런 구조입니다. 세포 표면 수용체(수백 개) → 2차 전령(수십 개) → 전사 조절 인자(수 개) → 유전자 발현 변화. 저수준 신호의 조합이 고수준 세포 반응으로 이어지는 계층 구조. 신경망의 은닉층 흐름과 개념이 정확히 같습니다.


다이얼과 문턱값 — 가중치와 편향

이제 뉴런과 뉴런이 어떻게 연결되는지 봅시다. 은닉층 1의 어떤 특정 뉴런 하나를 골라봅시다. 이 뉴런의 활성화 상태는 어떻게 결정될까요?

입력층의 65,536개 뉴런 각각과 이 은닉층 뉴런은 하나의 연결선으로 이어져 있습니다. 그리고 이 연결선 각각에는 하나의 숫자가 배정되어 있습니다. 이 숫자를 가중치(weight) 라고 부릅니다.

가중치가 크면(예: +2.0) "이 입력 뉴런의 신호에 강하게 주목한다"는 뜻. 가중치가 0이면 "이 입력 뉴런의 신호는 무시한다". 가중치가 음수면(예: -1.5) "이 입력 뉴런이 켜져 있으면 오히려 내가 꺼지는 방향으로 반응한다".

은닉층 뉴런의 활성화 상태는 이렇게 결정됩니다.

  1. 자신에게 연결된 모든 입력 뉴런의 활성화 상태와 각 연결의 가중치를 곱하고 다 더합니다. 이걸 가중합(weighted sum) 이라 합니다.
  2. 여기에 편향(bias) 이라는 하나의 숫자를 더 더합니다.
  3. 결과를 활성화 함수(activation function) 에 통과시킵니다. 활성화 함수는 입력값을 0과 1 사이(또는 다른 지정된 범위)로 찌그러뜨리는 비선형 함수.

수식으로 쓰면 (부록 A.1에서 정확히 정리하지만 여기서는 개념만):

text
활성화 상태 = 활성화_함수(가중합 + 편향)

가중치는 다이얼, 편향은 문턱값입니다. 다이얼은 "이 뉴런이 이 입력에 얼마나 주목할지"를 조절하고, 문턱값은 "이 뉴런이 얼마나 쉽게 반응할지"를 조절합니다. 편향이 크게 양수이면 뉴런이 조금만 자극받아도 켜지고, 크게 음수이면 강한 자극을 받아야 켜집니다.

활성화 함수가 왜 필요한가? 가중합만 계산해서 그대로 전달하면 신경망 전체가 그저 하나의 큰 선형 함수가 됩니다. 선형 함수 여러 개를 아무리 이어붙여도 결국은 하나의 선형 함수. 그럼 계층적 특징 탐지가 불가능합니다. 비선형 활성화 함수가 각 층에 있어야 층마다 다른 종류의 계산이 가능해집니다.

가장 많이 쓰이는 활성화 함수 두 개.

Sigmoid: 입력을 0과 1 사이로 부드럽게 압축. 옛날부터 쓰던 함수. 확률처럼 해석하기 좋아서 출력층에서 여전히 사용됨.

ReLU (Rectified Linear Unit): max(0, x). 음수는 0으로, 양수는 그대로. 훨씬 단순하지만 은닉층에서 매우 잘 작동. 오늘날 대부분의 신경망이 은닉층 활성화 함수로 이걸 사용.

부록 A.3에서 정확한 수식과 각 함수의 그래프 형태를 다룹니다.


규모 감 — 다이얼이 몇 개나 되나

간단한 예로 규모 감을 잡아봅시다.

병리학 슬라이드 신경망을 아주 작게 만든다고 가정합니다. 입력 65,536 → 은닉 512 → 은닉 128 → 은닉 32 → 출력 3.

각 층 사이의 연결은 완전 연결(fully connected) 이라 가정합니다. 즉 이전 층의 모든 뉴런이 다음 층의 모든 뉴런과 연결되어 있습니다.

  • 입력층 → 은닉층 1: 65,536 × 512 = 33,554,432개 가중치
  • 은닉층 1 → 은닉층 2: 512 × 128 = 65,536개 가중치
  • 은닉층 2 → 은닉층 3: 128 × 32 = 4,096개 가중치
  • 은닉층 3 → 출력층: 32 × 3 = 96개 가중치

가중치만 총 약 3,362만 개. 여기에 각 뉴런마다 편향이 하나씩 있으니 편향 675개 추가. 이 다이얼과 문턱값들이 훈련으로 조정될 값들입니다.

3,362만 개를 사람이 손으로 조정할 수 있을까요? 하루 종일 다이얼 하나씩 돌리는 것만 해도 100년이 걸립니다. 당연히 자동 조정 알고리즘이 필요합니다. 이것이 편 #3(경사하강법)에서 다룰 학습 알고리즘의 존재 이유.

이 3,362만 개도 아주 작은 신경망입니다. 실제 병리학 AI(예: PathAI, Paige)는 수억~수십억 개의 파라미터를 씁니다. 편 #1에서 봤듯이 GPT-3는 1,750억 개, 최신 프론티어 모델은 그 훨씬 이상. 파라미터 규모 자체가 모델의 복잡성과 능력을 결정합니다.

바이오 연구자에게 익숙한 규모 감으로 옮겨보면. 인간 유전체에 약 20,000개 유전자가 있고, 각 유전자는 대략 수십수백 개의 전사 조절 요소(TF binding site, enhancer, silencer)와 연결됩니다. 전체 유전체 조절 네트워크의 "연결 개수"가 대략 수백만수천만 개. 신경망의 파라미터 규모가 이 유전체 조절 네트워크와 비슷하거나 그보다 크다는 뜻입니다. 몸 안의 유전체 조절이 이 정도 복잡성으로 발달·항상성·질병을 조절하고 있으니, 신경망이 이 규모에서 복잡한 패턴 인식을 하는 게 이상하지 않습니다.


Forward Propagation — 한 방향으로 흐르는 계산

이제 신경망이 실제로 판정을 내리는 과정을 정리합시다. 이 과정을 전방 전파(forward propagation) 또는 feed-forward 라고 합니다.

  1. 입력: 슬라이드 이미지의 65,536개 픽셀 밝기 값을 입력층 뉴런들의 활성화 상태로 설정.
  2. 은닉층 1 계산: 은닉층 1의 각 뉴런에 대해 (가중합 + 편향)을 계산하고 활성화 함수를 통과시켜 활성화 상태 결정.
  3. 은닉층 2 계산: 은닉층 1의 활성화 상태를 입력으로 삼아 같은 계산을 반복.
  4. 은닉층 3 계산: 은닉층 2의 활성화 상태를 입력으로.
  5. 출력층 계산: 은닉층 3의 활성화 상태를 입력으로 최종 계산. 출력층은 활성화 함수로 대개 Softmax 를 써서 세 뉴런의 값이 확률 분포(합 1)가 되도록 만듭니다.
  6. 판정: 확률이 가장 높은 클래스로 판정. 또는 확률 자체를 위험도 지표로 활용.

이 과정을 pseudocode로:

python
def 신경망_판정(픽셀_값들):
a = 픽셀_값들 # 입력 벡터, 크기 65,536
for 각 층 (가중치_행렬 W, 편향_벡터 b) in 신경망_층들:
가중합 = W · a + b
a = 활성화_함수(가중합) # ReLU 또는 Sigmoid
return Softmax(a) # 최종 확률 분포

이게 전부입니다. 곱셈과 덧셈, 그리고 비선형 함수 통과. 훈련이 완료된 신경망은 이 계산을 슬라이드 이미지 하나당 밀리초 단위로 수행합니다.

훈련은 완전히 별개의 과정입니다. 훈련 중에 신경망이 실제로 하는 일은 가중치와 편향을 조금씩 조정해서 정답에 가까운 판정을 하도록 만드는 것. 이 조정 알고리즘이 편 #3의 경사하강법과 편 #4의 역전파.


편 #1의 LLM과 어떻게 이어지는가

여기서 편 #1로 잠시 돌아가 봅시다. 편 #1에서 배운 LLM도 신경망입니다. 다만 다음 차이가 있습니다.

1. 입력의 성격. 병리학 신경망은 이미지 픽셀(연속적인 실수)을 입력받습니다. LLM은 텍스트 토큰(이산적인 심볼)을 입력받습니다. 텍스트 토큰을 신경망이 다룰 수 있는 벡터로 바꾸는 과정이 임베딩(embedding) 이고, 이건 편 #5에서 자세히 다룹니다.

2. 아키텍처의 차이. 이 편에서 다룬 피드포워드 신경망은 각 층이 완전 연결됩니다. LLM은 트랜스포머(Transformer) 라는 다른 아키텍처를 씁니다. 트랜스포머 안에도 피드포워드 층이 있지만, 그 앞에 어텐션(attention) 이라는 특수한 연산이 들어갑니다. 편 #5·편 #6에서 다룹니다.

3. 규모의 차이. 병리학 신경망 파라미터가 수억 개라면, 최신 LLM은 그 100~1000배. 규모가 커지면서 편 #1에서 본 창발적 능력이 나타납니다.

같은 점. 근본 구조는 모두 가중치·편향·활성화 함수 로 이루어진 다변수 함수. 층을 통과하면서 저수준 데이터가 고수준 표현으로 추상화된다는 원리도 같습니다. 이 편에서 배운 개념이 앞으로 등장할 모든 신경망 계열 모델의 밑판이 됩니다.


바이오 응용 시나리오

이론이 실무에 어떻게 이어질까요.

시나리오 1 — 단일세포 RNA 시퀀싱 세포 타입 분류

단일세포 RNA 시퀀싱(scRNA-seq)에서 각 세포는 수천 개 유전자의 발현값 벡터로 표현됩니다. 이 벡터를 신경망에 넣어 세포 타입(T cell, B cell, macrophage 등)을 자동 분류하는 것이 이 편의 개념을 그대로 적용한 사례입니다.

  • 입력층: 수천 개 유전자 (예: 상위 변동성 유전자 2,000개)
  • 은닉층 1: 유전자 발현 패턴의 저수준 조합 (예: 특정 신호전달 경로 활성화)
  • 은닉층 2: 세포 프로그램의 조합 (예: 활성 vs 휴지 상태)
  • 출력층: 세포 타입 확률 분포

scVI, scanpy 같은 라이브러리가 이 접근을 표준화했습니다.

시나리오 2 — 조직 슬라이드 자동 판독 (본 편 오프닝 시나리오의 실제)

병리학 딥러닝은 지난 5년간 임상에 급속히 진입한 분야입니다. PathAI, Paige, Aiforia 같은 상업 솔루션이 유방암·전립선암·대장암 등의 슬라이드 자동 판독에 쓰이고 있습니다. 국내에서도 서울아산·삼성서울에서 관련 연구가 활발.

이때 사용되는 신경망은 이 편에서 다룬 완전 연결 구조보다 정교한 합성곱 신경망(CNN, Convolutional Neural Network) 입니다. 하지만 근본 원리(계층적 특징 탐지, 가중치·편향, 활성화 함수)는 같습니다. CNN에 대해서는 이 트랙에서 별도로 다루지 않지만, 이 편의 개념을 이해했다면 CNN도 자연스럽게 따라옵니다.

시나리오 3 — 약물 반응 예측

세포주에서 여러 약물 후보를 시험한 데이터로 신경망을 훈련시켜, 새 세포주에서 약물 반응(IC50)을 예측하는 모델을 만들 수 있습니다.

  • 입력: 세포주의 유전 프로파일 + 약물의 화학적 특성 벡터
  • 은닉층: 유전자·약물 특성의 상호작용 패턴 추출
  • 출력: 예측 IC50 값 (실수)

이건 분류가 아니라 회귀(regression) 문제이지만, 신경망 구조는 거의 같습니다. 출력층의 활성화 함수를 Softmax 대신 항등 함수(identity)로 바꾸는 게 주된 차이. Genentech·Novartis 같은 기업의 신약 개발에서 실제 사용되는 접근.


핵심 정리

  • 인공신경망은 뇌의 모방이 아니라 정교한 다변수 수학 함수입니다. 이름에 속지 마세요.
  • 뉴런 = 활성화 상태(하나의 숫자). 연결 = 가중치(다이얼). 문턱값 = 편향. 활성화 함수 = 비선형 변환.
  • 신경망은 계층적 특징 탐지를 통해 저수준 데이터를 고수준 판정으로 변환합니다. 픽셀 → 경계 → 세포 → 조직 배열 → 종양 판정.
  • 층을 여러 개 쌓아 "깊이(deep)"를 만드는 이유가 여기 있습니다.
  • 파라미터(가중치·편향) 수가 수백만~수천억 개. 사람이 손으로 조정 불가. 훈련 알고리즘이 결정.
  • LLM은 이 신경망 원리 위에 트랜스포머·어텐션이라는 특수 구조가 얹힌 것.

다음 개념

  • 편 #3 how-nn-learns — 3,362만 개 다이얼을 어떻게 자동 조정하는가. 경사하강법의 직관.
  • 편 #4 backpropagation-intuition — 마지막 층의 오차 신호를 어떻게 앞 층의 가중치 조정으로 이어지는가.
  • 편 #5 transformer-and-embedding — LLM의 신경망은 이 편의 구조 위에 어떤 확장을 한 것인가.

📐 부록 — 전문가를 위한 수학 공식

난이도: 매우 어려움 (Very Hard) 대상: 대학원 수준의 선형대수·미적분·확률을 아는 독자

본문은 직관 위주였지만, 여기서는 신경망의 엄밀한 수학을 정리합니다. 처음 읽는 분은 건너뛰셔도 됩니다.

A.1 단일 뉴런의 활성화 계산

이전 층의 활성화 벡터를 a^{l-1} ∈ R^{n_{l-1}}, 이 층의 j번째 뉴런의 가중치 벡터를 w_j^{l} ∈ R^{n_{l-1}}, 편향을 b_j^{l} ∈ R라 할 때, j번째 뉴런의 활성화 상태는:

text
z_j^{l} = Σ_i w_{ji}^{l} · a_i^{l-1} + b_j^{l}       (가중합)
a_j^{l} = σ(z_j^{l})                                  (활성화 함수 통과)

여기서 σ는 활성화 함수 (Sigmoid, ReLU 등).

A.2 벡터화된 층 계산

층 전체를 벡터·행렬로 표현하면 우아해집니다. l-1 층에서 l 층으로:

text
z^{l} = W^{l} · a^{l-1} + b^{l}
a^{l} = σ(z^{l})
  • W^{l} ∈ R^{n_l × n_{l-1}}: l 층의 가중치 행렬. W_{ji}^{l}가 이전 층 i번째 뉴런에서 이 층 j번째 뉴런으로 가는 가중치.
  • a^{l-1} ∈ R^{n_{l-1}}: 이전 층의 활성화 벡터
  • b^{l} ∈ R^{n_l}: 이 층의 편향 벡터
  • a^{l} ∈ R^{n_l}: 이 층의 활성화 벡터

이 벡터화가 GPU 병렬 처리의 근본입니다. 큰 행렬-벡터 곱을 GPU가 수천 개 코어로 병렬 계산합니다.

A.3 활성화 함수 목록

Sigmoid — 부드러운 S자 곡선, 출력 (0, 1):

text
σ(z) = 1 / (1 + exp(-z))

그래디언트는 σ(z)(1 - σ(z)). z가 크거나 작을 때 그래디언트가 매우 작아지는 기울기 소실 문제의 원인이라 깊은 신경망 은닉층에서는 잘 쓰지 않음.

Tanh — 부드러운 S자 곡선, 출력 (-1, 1):

text
tanh(z) = (exp(z) - exp(-z)) / (exp(z) + exp(-z))

Sigmoid의 중심 이동판. 은닉층에서 Sigmoid보다 약간 나음. 여전히 기울기 소실 문제 존재.

ReLU — 음수는 0, 양수는 그대로:

text
ReLU(z) = max(0, z)

2010년대 이후 은닉층 표준. 미분이 사실상 1 (z > 0) 또는 0 (z < 0)으로 계산이 극도로 빠름. 다만 z < 0 영역에서 그래디언트가 0이라 뉴런이 "죽는" 현상 (dying ReLU) 존재.

Leaky ReLU — 음수도 아주 살짝 반영:

text
LeakyReLU(z) = max(0.01 · z, z)

Dying ReLU 완화. 계수 0.01은 하이퍼파라미터.

GELU (Gaussian Error Linear Unit) — 트랜스포머·LLM에서 표준:

text
GELU(z) = z · Φ(z)

Φ는 표준 정규분포의 누적분포함수. 부드러운 ReLU와 비슷하지만 z=0 근처가 미묘하게 다름. GPT·BERT 등에서 사용.

A.4 Softmax — 다중 클래스 출력층 표준

출력이 여러 클래스의 확률 분포이어야 할 때 (예: 정상/양성/악성 3-way). K개 클래스의 로짓 z_1, ..., z_K가 있을 때:

text
Softmax(z_k) = exp(z_k) / Σ_j exp(z_j)

특성:

  • 모든 출력이 (0, 1) 구간
  • 모든 출력의 합이 정확히 1 (확률 분포 만족)
  • 가장 큰 로짓에 확률이 집중 (soft argmax)

수치 안정성: exp(z_k - max(z))로 계산해서 오버플로우 방지.

A.5 전방 전파의 일반 공식

L개 은닉층을 가진 신경망 전체를 하나의 함수 f_θ로 표현하면:

text
a^{(0)} = x                                    (입력)
z^{(l)} = W^{(l)} · a^{(l-1)} + b^{(l)}        (l = 1, ..., L)
a^{(l)} = σ^{(l)}(z^{(l)})                      (l = 1, ..., L-1)
a^{(L)} = Softmax(z^{(L)})                      (출력, 분류의 경우)
f_θ(x) = a^{(L)}

파라미터 집합 θ = {W^{(1)}, b^{(1)}, ..., W^{(L)}, b^{(L)}}. 이 파라미터들을 훈련으로 조정하는 것이 다음 편(경사하강법)의 주제.

A.6 파라미터 수 계산 공식

층 크기가 [n_0, n_1, ..., n_L]일 때 총 파라미터 수:

text
총 파라미터 = Σ_{l=1}^{L} (n_{l-1} · n_l + n_l)
            = Σ_{l=1}^{L} n_l · (n_{l-1} + 1)

예: [65536, 512, 128, 32, 3] 구조:

  • 층 1: 512 × (65536 + 1) = 33,554,944
  • 층 2: 128 × (512 + 1) = 65,664
  • 층 3: 32 × (128 + 1) = 4,128
  • 층 4: 3 × (32 + 1) = 99
  • 총: 33,624,835개

이 수치가 본문의 "약 3,362만 개"의 정확한 값입니다.

A.7 만능 근사 정리 (Universal Approximation Theorem)

이론적 배경. 은닉층이 하나만 있어도 뉴런 수가 충분히 많으면 신경망은 어떤 연속 함수든 임의의 정확도로 근사할 수 있다 (Cybenko 1989, Hornik 1991).

수학적으로: f : [0,1]^n → R가 연속 함수이면, 임의의 ε > 0에 대해 은닉층 하나짜리 신경망 g가 존재해서 모든 x ∈ [0,1]^n에 대해 |f(x) - g(x)| < ε.

이 정리는 강력하지만 실용적 한계가 있습니다. "충분히 많은 뉴런"이 실제로는 지수적으로 클 수 있고, 훈련이 그 최적점을 찾을 수 있다는 보장도 없습니다. 실제로 층을 깊게 쌓는 것이 훨씬 파라미터 효율적이라는 것이 딥러닝의 실증적 발견입니다.

A.8 초기화 (Initialization)

훈련 시작 전 가중치를 어떻게 설정할지가 중요합니다. 모두 0으로 초기화하면 대칭성 문제로 모든 뉴런이 같은 값을 학습해버리므로 랜덤 초기화 필수.

Xavier / Glorot 초기화 (Sigmoid, Tanh용):

text
W ~ Uniform(-√(6/(n_in + n_out)), √(6/(n_in + n_out)))

He 초기화 (ReLU용):

text
W ~ Normal(0, √(2/n_in))

편향은 대개 0으로 초기화. 잘못된 초기화는 훈련이 아예 안 되거나 훨씬 느려지는 원인이 됩니다.


참고 자료

본 편의 콘텐츠·시나리오·비유·수치는 모두 BioPlayground 자체 개발이며, 아래는 개념 학습에 도움이 되는 외부 참고 자료입니다.

  • 딥러닝 표준 교재: Goodfellow, Bengio, Courville, "Deep Learning" (MIT Press, 무료 온라인)
  • 신경망 시각화 교육: 3Blue1Brown "Neural Networks" 시리즈 (YouTube) — 페다고지 참고
  • 만능 근사 정리 원 논문: Cybenko, "Approximation by Superpositions of a Sigmoidal Function" (1989)
  • 초기화 방법: He et al., "Delving Deep into Rectifiers" (ICCV 2015)
  • 병리 딥러닝 임상 사례: Campanella et al., "Clinical-grade computational pathology using weakly supervised deep learning on whole slide images" (Nature Medicine 2019)
  • scRNA-seq 딥러닝: Lopez et al., "Deep generative modeling for single-cell transcriptomics (scVI)" (Nature Methods 2018)

이 편은 원리 편의 시작이자, 이후 편의 밑판입니다. 편 #3에서 이 신경망이 어떻게 "학습"하는지 — 3,362만 개의 다이얼이 어떻게 자동으로 조정되는지 — 를 다룹니다.