
1. Introduction
가. Neural Network?
인공 신경망(Artificial Neural Network)은 사람의 감각 기관에서 받아들인 정보가 다수의 뉴런을 단계적으로 통과하여 뇌로 전달되고, 뇌가 이를 처리하여 명령을 내리는 과정을 모방한 알고리즘 또는 구조이다.
일반적으로 여러 개의 층(layer)으로 구성되며, 입력층(input layer) → 은닉층(hidden layer) → 출력층(output layer) 순으로 신호가 전달된다.
나. 학습(Training) vs. 추론(Inference)
① 학습(Training)
-
입력층에 학습 데이터를 인가하고, 네트워크가 계산한 출력값과 주어진 레이블(label)의 차이를 손실 함수(loss function)로 계산한다.
-
이 손실 값을 바탕으로, 경사 하강법 등을 통해 가중치(weight)와 편향(bias) 등의 매개변수를 업데이트하는 과정을 학습이라 한다.
② 추론(Inference)
-
학습이 완료된 네트워크에 시험(test) 데이터를 입력하면, 출력값을 계산하여 주어진 레이블과 비교하지 않고 오직 예측 결과만을 확인한다.
-
보통 실서비스 환경에서는 레이블 없이 순전파 결과만을 활용하여 분류나 예측을 수행하며, 이를 추론 과정이라고 한다.
2. MNIST 데이터셋(Remind)
가. 데이터 구성: 이미지 및 레이블
-
MNIST 데이터셋은 손으로 쓴 숫자 이미지와 그에 대응하는 레이블(label)로 구성
-
각 이미지는 28×28 픽셀(총 784 개)의 흑백으로 표현되며, 픽셀당 밝기값은 0에서 255 사이 정수로 저장됨
-
레이블은 0부터 9까지 총 10 개의 숫자 클래스 중 하나를 나타냄
나. 학습용 Vs. 테스트용 분리
-
전체 데이터 중 60,000 개는 학습용(training)으로 사용되고, 10,000 개는 모델 성능 평가를 위한 테스트용(test)으로 분리되어 있음
-
학습용 데이터로 가중치와 편향을 최적화한 뒤, 테스트용 데이터로 과적합 여부 및 일반화 성능 확인
3. 신경망 구조 및 주요 파라미터
가. 입력층과 출력층의 노드 수
나. 은닉층(Hidden Layer) 수 및 노드 수 결정
4. 활성화 함수(Activation Function)
가. Sigmoid 함수
나. Softmax 함수
-
다중 클래스 분류(multi-class classification)에서 사용
-
각 클래스 k에 대한 점수 zk를 확률 분포로 변환
-
수식:
softmax(zi)=∑j=1Cexp(zj)exp(zi)
-
출력값의 합이 1이 되어, 각 클래스에 대한 확률로 해석 가능
다. Sigmoid vs. Softmax 비교
① 차원성
- Sigmoid: 입력 하나당 하나의 출력 확률, 독립적으로 동작
- Softmax: 여러 클래스 점수를 한꺼번에 처리, 상호 배타적인 확률 분포 생성
② 용도
- Sigmoid: 이진 분류 또는 다중 이진 분류(one-vs-all)
- Softmax: 단일 다중 클래스 분류(single-label multi-class)
③ 출력 해석
- Sigmoid: 각 출력이 개별적인 확률(동시에 여러 클래스가 선택될 수 있음)
- Softmax: 전체 출력값이 1로 정규화된 확률 분포(가장 높은 값 하나를 선택)
5. 순전파(Forward Propagation)
가. 연산 흐름
- 주어진 입력값을 입력층에 대입하고, 왼쪽에서 오른쪽 방향으로 계산을 진행하여 최종 출력값을 계산하는 과정
나. Affine 계층(Linear Layer)
- affine(linear) 계층은 Y=XW+b를 계산하는 계층을 의미
- 각 층의 선형 변환을 담당하며, 그 뒤에 활성화 함수를 적용해 비선형성 부여
6. 손실 함수(Loss Function)
가. Mean Squared Error(MSE)
-
네트워크 출력 p 와 정답 레이블 t 간 오차 제곱의 평균을 구하는 손실 함수
-
수식:
MSE(p,t)=N1i=1∑N(pi−ti)2
-
주로 회귀(regression) 문제에서 사용하며, 분류 문제에서는 오차가 크게 벌어질 때 페널티가 커지는 특성이 있음
나. Cross Entropy Loss(CEL)
-
예측 확률 분포 p 와 실제 분포(레이블의 one-hot 벡터) t 사이의 거리(정보량)를 계산하는 손실 함수
-
수식:
CEL(t,p)=−k=1∑Ctklnpk
-
다중 클래스 분류(multi-class classification)에서 softmax 출력과 함께 사용
-
레이블은 one-hot 인코딩 방식으로 표현(예: 숫자 2 레이블 → [0,0,1,0,0,0,0,0,0,0])
다. One-hot Encoding
-
범주형 클래스 레이블을 벡터 형태로 표현하는 방법
-
정답 클래스 위치에만 1을, 나머지에는 0을 할당
-
예: 실제 레이블이 ‘2’일 때
t=[0,0,1,0,0,0,0,0,0,0]
-
다중 클래스 분류에서 Cross Entropy Loss 계산을 위해 필수적
라. Binary Cross Entropy Loss(BCEL)
-
이진 분류(binary classification)문제에서 사용되는 손실 함수
-
예측 확률 p 와 실제 레이블 t∈{0,1} 사이의 차이를 계산
-
수식:
BCEL(t,p)=−[tlnp+(1−t)ln(1−p)]
-
Sigmoid 출력과 함께 사용하며, 각 샘플별 손실 값을 평균을 내어 전체 손실을 구함
7. 최적화 기법(Optimization)
가. 경사 하강법(Gradient Descent)
① 개념
손실 함수(loss function)가 작아지는 방향으로 파라미터(가중치 w)를 업데이트하는 가장 기본적인 최적화 방법
② 업데이트 수식
w←w−α∂w∂L
여기서 α는 학습률(learning rate), ∂w∂L는 손실 함수에 대한 가중치의 기울기(편미분)이다.
나. 확률적 경사 하강법(Stochastic Gradient Descent, SGD)
① 개념
전체 학습 데이터가 아니라 각 샘플(또는 미니배치) 별로 기울기를 계산하여 파라미터를 더 자주(샘플 단위로) 업데이트함으로써 계산 효율을 높인 방법
② 변형
-
미니배치 경사 하강법(Mini-Batch GD): 배치 크기 1<BS<N인 경우
-
배치 경사 하강법(Batch GD): 배치 크기 BS=N인 경우
-
SGD: 배치 크기 BS=1인 경우
다. 학습률(Learning Rate)
① 정의
가중치 업데이트 시 한 번에 움직이는 보폭(step size)을 결정하는 하이퍼파라미터
② 특성
- 너무 작으면, 손실 함수 최저점으로 수렴하는 속도가 느려지고, 국소적 최저점에 갇힐 위험 有
- 너무 크면, 발산하여 최저점에 수렴하지 못할 가능성 高

③ 설정 방법
교차 검증(cross‐validation)이나 스케줄링(learning rate decay), 적응형 기법(예: Adam, RMSProp) 등을 활용해 최적값을 찾는다.
8. Back Propagation
가. Vs. Numerical Differentiation
① Numerical Differentiation
② Back Propagation
-
계산 그래프를 따라 한 번의 순전파 결과와 국소적 미분 값(local gradient)만으로, 모든 파라미터에 대한 기울기를 한 번에 효율적으로 계산
-
chain rule을 활용하여 상류(upstream)에서 내려온 오차 신호에 국소 미분값을 곱하는 방식으로, 전체 네트워크의 기울기를 빠르게 구할 수 있음
나. 계산 그래프(Computational Graph)
① 정의
-
계산 과정을 노드(node)와 에지(edge)로 표현한 방향성 그래프
-
노드: 연산(+, ×, 활성화 등) 표시
-
에지: 데이터(변수 값, 파라미터) 흐름 표시
-
역전파 과정: 순전파와 반대 방향으로 그래프를 탐색하며, 각 노드에서 상류로부터 전달된 오차 신호에 노드의 국소 미분을 곱해 기울기를 전파
다. 역전파 예제
① 곱셈 노드
② 덧셈/곱셈 노드
-
덧셈 연산
- 순전파:
- 역전파:
∂x∂L=1×∂z∂L,∂y∂L=1×∂z∂L
-
곱셈 연산
- 순전파:
- 역전파:
∂x∂L=y×∂z∂L,∂y∂L=x×∂z∂L
③ 복합 계산 그래프
9. Activation Layer 별 역전파
가. ReLU Layer
- 순전파
y=max(0,x)
- 역전파
∂x∂L={∂y∂L0x>0x≤0
나. Sigmoid Layer
- 순전파
y=σ(x)=1+e−x1
- 역전파
∂x∂L=∂y∂Lσ′(x)=∂y∂Ly(1−y)
10. Softmax + Cross Entropy 구현
가. 순전파 구현
- 입력 벡터 z=[z1,z2,…,zC] 에 대해 각 클래스 출력 yk를 확률로 변환
yk=∑j=1Cexp(zj)exp(zk)
(수치 안정화를 위해 보통 maxjzj를 빼고 계산)
- 이후 정답 레이블의 one-hot 벡터 t=[t1,…,tC]을 이용해 손실 L을 계산
L=−k=1∑Ctklnyk
나. 역전파 구현
-
Cross Entropy Loss를 취한 후 softmax 출력에 대한 기울기 ∂zk∂L은
∂zk∂L=yk−tk
-
즉, 출력층에서의 오차 신호 δ=y−t를 바로 다음 은닉층으로 전파하면 됨
다. 간소화 버전
이 한 줄의 식이 의미하는 바는, Softmax 출력 y와 레이블 t의 차이 (yk−tk)를 배치 전체의 평균으로 구하기 위해 N으로 나눈다는 것이다.
배치 크기로 나누는 이유는, mini-batch 학습 시, 각 샘플에 대한 기울기를 모두 합산한 뒤, 다시 평균을 내서 학습률과 무관하게 안정적으로 업데이트하도록 하기 위함이다.
11. 배치 처리(Batch Processing)
가. 배치 크기(Batch Size)와 효율성
-
배치 처리는 여러 개의 입력 데이터를 묶어서 한꺼번에 연산하는 방식이다.
-
대부분의 수치 계산 라이브러리들은 작은 배열을 하나씩 여러 번 처리하는 것보다, 여러 개의 배열을 한꺼번에 처리할 때 훨씬 효율적으로 동작하도록 최적화되어 있다.
-
배치 크기(BS)
- 한 번의 순전파·역전파에 사용되는 샘플 수
- 일반적으로 2n 형태(예: 32, 64, 128 등)로 설정
- 너무 작으면 연산 오버헤드가 커지고, 너무 크면 메모리 부족 및 일반화 성능 저하 우려
나. Epoch 개념
-
전체 학습 데이터 수를 N이라 할 때, 배치 수는 N/BS가 된다.
-
Epoch는 “전체 학습 데이터를 한 번 모두 사용”한 단위를 의미한다.
- 예: N=60,000, BS=600이라면 한 Epoch당 100 번의 배치 업데이트 성립
-
일반적으로 여러 Epoch에 걸쳐 반복 학습을 수행하며, Epoch 수가 지나치게 많으면 과적합(overfitting) 위험이 있다.
12. 3층 신경망 예제 리뷰
가. 네트워크 구조 예시
나. 순전파·역전파 흐름 정리
1) Forward Propagation
① 1차 은닉층
Z(1)=XW(1)+b(1)
A(1)=σ(Z(1))
② 2차 은닉층
Z(2)=A(1)W(2)+b(2)
A(2)=σ(Z(2))
③ 출력층
Z(3)=A(2)W(3)+b(3)
Y=softmax(Z(3))
④ 손실 계산
L=−k=1∑10tklnyk
2) Back Propagation
① 출력층 오차
δ(3)=Y−T
② 출력층 기울기
∂W(3)∂L=(A(2))Tδ(3),∂b(3)∂L=i∑δi(3)
③ 2차 은닉층 오차
δ(2)=(δ(3)W(3)T)⊙σ′(Z(2))
④ 2차 은닉층 기울기
∂W(2)∂L=(A(1))Tδ(2),∂b(2)∂L=i∑δi(2)
⑤ 1차 은닉층 오차
δ(1)=(δ(2)W(2)T)⊙σ′(Z(1))
⑥ 1차 은닉층 기울기
∂W(1)∂L=XTδ(1),∂b(1)∂L=i∑δi(1)
⑦ 파라미터 업데이트
계산된 기울기를 사용해 경사 하강법으로 W(l), b(l) 업데이트 수행
<참고 자료>
유성욱 교수님, 지능형 영상처리, 중앙대학교 전자전기공학부, 2024