본문 바로가기
C.W.K.
Stream
Lesson 01 of 08 · published

인공 뉴런

~22 min · neuron, linear, activation

Level 0호기심
0 XP0/73 lessons0/11 achievements
0/120 XP to next level120 XP to go0% complete

세 가지와 이름 하나

인공 뉴런은 신경망을 이루는 가장 단순한 단위고, 이름만큼 신비한 물건은 아니야. 하는 일은 세 가지뿐이야. 입력 벡터 x를 받고, 학습된 가중치 벡터 w를 곱한 뒤 학습된 편향 b를 더하고, 비선형 활성화 함수 f를 적용해. 끝이야. 딥러닝의 나머지는 전부 이 뉴런을 많이 쌓고 역전파에 맡기는 일이야.

수식으로 쓰면 y = f(w · x + b)야. PyTorch에서는 단일 출력 nn.Linear(in_features, 1)에 활성화 함수를 붙인 형태지. 수상돌기, 시냅스, 축삭 같은 생물학적 비유는 느슨한 비유일 뿐이야. 실제 뉴런은 학습된 선형 사영에 비선형성을 더한 계산이야.

팁: '행렬 곱셈, 편향 더하기, 비선형성 적용'을 편하게 읽을 수 있다면 모든 신경망 아키텍처를 읽을 수 있어. 이 퀘스트에 나오는 모든 층은 이 3단계를 변형한 거야.

활성화 함수가 중요한 이유

비선형 활성화 함수가 없으면 각 층은 이전 층에 대한 선형 함수가 돼. 아무리 여러 층을 쌓아도 결국 하나의 선형 함수로 합쳐져 버려. 선형층이 1개든 20개든 XOR은 풀 수 없어. 하지만 ReLU를 더한 층 1개로는 풀 수 있어. 활성화 함수가 존재하는 가장 중요한 이유가 바로 이거야. 깊이를 의미 있게 만들어 주거든.

형태 읽기

순전파의 모든 변수 옆에 형태를 적는 습관을 들여. x: [B, in_features], w: [out_features, in_features], y: [B, out_features]. PyTorch를 처음 배우는 한 달 동안 만나는 버그 대부분은 형태 불일치에서 생겨. 그리고 그중 대부분은 주석에 형태를 적는 순간 사라져.

원칙: 형태는 층과 층 사이의 계약이야. 형태를 읽고, 예측하고, 검증해. 학습되는 모델에는 대개 형태가 맞는 순전파가 있고, 오류로 멈추는 모델에는 대개 그게 없어.

Code

단일 뉴런: 직접 계산과 PyTorch 구현·python
import torch, torch.nn as nn

x = torch.randn(3, 4)                      # [B=3, in=4]

w = torch.randn(4, 1, requires_grad=True)  # [in, out]
b = torch.zeros(1, requires_grad=True)
y_manual = torch.relu(x @ w + b)           # [B, 1]

neuron = nn.Linear(in_features=4, out_features=1)
y_pytorch = torch.relu(neuron(x))          # [B, 1]

print(y_manual.shape, y_pytorch.shape)

External links

Exercise

NumPy 배열 형태 [B, in_features]를 받아 무작위 가중치로 단일 ReLU 뉴런의 출력을 반환하는 함수를 작성해. 같은 가중치를 사용했을 때 nn.Linear(in_features, 1) + ReLU의 출력과 일치하는지 확인해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.