시험공부빅데이터분석

암기카드

눌러서 뒷면 보기.

용어 · 이름 (34)

tensor
Tensor (텐서)

숫자를 담는 다차원 배열. PyTorch의 기본 그릇

shape
모양 (torch.Size)

각 차원의 길이. (4, 3)은 4행 3열

dtype
data type (자료형)

원소의 종류. torch.int64, torch.float32 등

device
장치

텐서가 놓인 곳. cpu 또는 cuda(GPU)

ndim / numel()
number of dimensions / elements

차원 수 / 전체 원소 수

CPU / GPU
Central / Graphics Processing Unit

복잡한 일을 차례로 / 단순 계산을 한꺼번에 병렬로

CUDA
Compute Unified Device Architecture

엔비디아 GPU로 계산하게 해 주는 기술

Colab
Google Colaboratory

브라우저에서 무료 GPU(T4)를 쓰는 온라인 노트북

self
자기 자신

메서드 안에서 이 인스턴스를 가리키는 첫 인자

__init__
initializer (생성자)

인스턴스를 만들 때 자동 실행되어 초기 상태를 저장

__call__
call (호출 가능 객체)

인스턴스를 f(3)처럼 함수로 부를 때 실행되는 메서드

super()
super (부모 접근)

부모 클래스를 가리킴. super().__init__()으로 부모 초기화

nn.Module
Neural Network Module

모든 PyTorch 모델의 부모 클래스. __init__과 forward만 만들면 됨

nn.Linear
Linear (Fully Connected) layer

y = xWᵀ + b 계산. weight (출력, 입력), bias (출력,)

FC
Fully Connected

모든 입력이 모든 출력에 연결된 층(= Linear)

ReLU
Rectified Linear Unit

음수는 0, 양수는 그대로. 학습 파라미터 없음

nn.Parameter
Parameter

모델에 등록되어 학습되는 텐서(기본 requires_grad=True)

nn.Sequential
Sequential

층을 순서대로 이어 한 모델처럼 쓰는 상자

forward
순전파 (forward propagation)

입력에서 예측값까지 계산. model(x)가 호출

backward
역전파 (backpropagation)

loss에서 거꾸로 gradient를 계산해 .grad에 저장(값은 안 바꿈)

grad
gradient (기울기)

weight를 바꿀 때 loss가 변하는 방향과 정도

requires_grad
gradient 필요 여부

True여야 backward 때 .grad가 계산·저장됨

zero_grad
gradient 초기화

누적된 grad를 지움. 학습 step의 첫 단계

loss
손실

예측과 정답의 차이를 숫자 하나로 요약한 값

MSE
Mean Squared Error

(예측−정답)²의 평균. nn.MSELoss

optimizer
최적화기

grad로 weight를 고치는 도구(optim.SGD, Adam)

SGD
Stochastic Gradient Descent

w ← w − lr × grad

lr
learning rate (학습률)

한 번에 weight를 얼마나 움직일지 정하는 값. 보통 아주 작게

Dataset
데이터셋

샘플을 번호로 꺼내는 데이터 모음. __len__, __getitem__

DataLoader
데이터 로더

Dataset에서 샘플을 모아 batch로 묶어 주는 도구

batch_size
배치 크기

한 번에 처리하는 샘플 수

epoch
에폭

학습 데이터 전체를 한 번 사용하는 것

shuffle
섞기

epoch마다 데이터 순서를 섞을지 정하는 옵션

drop_last
마지막 버리기

batch_size보다 적게 남은 마지막 batch를 버릴지 정하는 옵션

공식 · 숫자 (15)

nn.Linear(in, out) 파라미터 수
weight = out×in, bias = out → 합계 in×out + out. 예 Linear(3,2) = 8 · Linear(5,3) = 18 · Linear(64,16) = 1,040
nn.Linear 모양
weight (out, in), bias (out,). 입력 (N, in) → 출력 (N, out). 계산은 x @ W.T + b
여러 층 모델의 파라미터 수
각 층의 in×out + out을 더한다. TinyMLP(4,8,2) = (32+8) + (16+2) = 58. 수업 PPT의 6×5+3×6+1×3 = 51은 bias 제외
인덱스와 슬라이싱
번호는 0부터. a[1:4]는 1~3번(끝 번호 제외). x[:,1] → 차원이 사라져 (3,), x[:,1:2] → 차원 유지 (3,1)
브로드캐스팅 규칙
오른쪽 끝부터 비교해 같거나, 하나가 1이거나, 한쪽에 없으면 가능. (2,3)+(3,) → (2,3) / (4,1)+(1,5) → (4,5) / (2,3)+(2,) → 불가
이미지 batch 모양
(N, C, H, W) = (장 수, 채널, 높이, 너비). (8,1,28,28)은 28×28 흑백 8장
cat과 stack
cat은 기존 차원에 이어 붙임(차원 수 그대로), stack은 새 차원을 만들어 쌓음(차원 수 +1). (2,3) 둘 → cat(dim=0) (4,3) / stack (2,2,3)
NumPy 변환
from_numpy · .numpy()는 메모리 공유(한쪽을 바꾸면 같이 바뀜), torch.tensor(arr)는 복사(독립)
학습 5단계
zero_grad → forward(prediction) → loss → backward → step. batch마다 한 번씩
SGD 업데이트
w ← w − lr × grad. 예 w=0.7, grad=−2, lr=1 → 2.7 / w=1, grad=−5, lr=0.1 → 1.5. 학습률은 보통 0.001 수준처럼 아주 작게
외울 gradient 값
w=3, L=w² → 6 / w=2, L=3w²+1 → 12 / (wx−t)², w=2, x=3, t=10 → −24 / 누적 w=2: 4 → 16 → 32 / W=[1,2,3], X=[2,1,4], L=(W@X)² → [64,32,128]
batch 개수와 step 수
len(loader) = ⌈샘플 수 ÷ batch_size⌉ (drop_last=True면 내림). 10개, batch 4 → 3 ([4,4,2]) 또는 2 ([4,4]). 전체 step = epoch 수 × batch 개수 (90개, batch 20, 30 epoch → 5×30 = 150)
epoch 평균 loss
Σ(batch loss × batch 샘플 수) ÷ 전체 샘플 수. 예 (3×4 + 3×4 + 6×2) ÷ 10 = 3.6
MSE 계산
mean((ŷ−y)²). [3,4] vs [1,5] → 2.5. prediction (3,1)과 target (3,)을 그대로 빼면 3×3으로 브로드캐스팅되어 틀린 값(예 6.0, 맞는 값 2.0)
모양 흐름 예
Linear(3,2): (4,3) → (4,2) / flatten(start_dim=1) 후 Linear(16,10): (8,1,4,4) → (8,16) → (8,10) / ReLU는 shape 불변