1. 신경망 학습의 핵심
처음부터 정답을 아는 것이 아니라
입력에 대한 예측 출력과 실제 정답과의 차이를 보고
내부 값(가중치)을 줄이는 방향으로 조금씩 수정하는 과정
핵심 정보: 파라미터를 어느 방향으로 얼마나 수정해야 하는가를 알려주는 개념 → 기울기
2. 수학 기초 (학습의 방향키)
1) 미분 (Derivative)
어떤 변수를 조금 바꾸었을 때, 함수값이 얼마나 변하는지를 나타내는 값(변화율)
ex) $y=x^2$일 때 미분은 $dy/dx=2x$
- 역할
- 값을 증가 또는 감소시켜야 할지 방향 결정
- 변화에 대한 민감도를 측정하여 경사하강법의 핵심 입력값이 됨
2) 편미분 (Partial Derivative)
신경망에는 여러 가중치가 있으므로
다른 변수는 고정하고 단 하나의 변수만 변화시킬 때의 변화율을 구하여
각 가중치의 개별 영향력을 측정
ex) $f(x,y) = x^2 + y^2$에서
$x$에 대한 편미분
→ $\partial f/\partial x = 2x$
$y$에 대한 편미분
→ $\partial f/\partial y = 2y$
3) 그래디언트 (Gradient, $\nabla$)
각 파라미터(가중치)에 대한 편미분 값을 한데 모아 만든 벡터
- 의미
- 손실이 가장 빠르게 증가하는 방향과 증가율을 나타냄
- 학습은 그래디언트의 반대 방향( $-\nabla L$)으로 이동
3. 손실함수 (Loss Function)
- 손실함수의 역할
예측값과 정답의 차이를 하나의 수치로 표현하여,
모델이 무엇을 줄여야 하는지 방향을 제시함
- 문제 유형에 따른 손실함수 선택
1) 평균제곱오차 (MSE)
주로 회귀(연속값 예측) 문제에 사용
y : 실제값
$\hat{y}$: 예측값
n: 데이터 개수
- 제곱하는 이유
- 오차를 제곱하므로 양/음 오차가 상쇄되지 않음
- 오차가 클수록 큰 패널티를 부여

- MSE가 0에 가까울수록 추측한 값이 원본에 가까움 → 정확도 높음
- 예측값과 실제값 차이의 면적의 평균과 같다
2) 교차엔트로피 (Cross-Entropy)

주로 분류(확률 예측) 문제에서 정답에 대한 확신도를 평가할 때 사용
정답 클래스에 할당한 확률이 높을수록 손실이 작아지도록 정의된 함수
$$L = -\sum y \cdot \log(\hat{y})$$
- 특징
정답 클래스에 대해 예측한 확률에 로그를 취함
- 예측 확률이 1에 가까우면 손실이 0에 수렴
- 예측 확률이 0에 가까우면 손실이 커짐
연속값을 다루는 회귀 문제 → MSE
확률을 다루는 분류 문제 → 교차엔트로피
손실함수를 통해 모델이 무엇을 줄여야 할지를 수치화했다면
어떻게 줄여나갈지(실행 방법)가 필요
손실 지형에서 낮은 곳을 내려가는 알고리즘 → 경사하강법
4. 경사하강법과 학습룰 (어떻게 줄일 것인가)
○ 경사하강법 (Gradient Descent)
손실함수의 값을 줄이기 위해
현재 기울기의 반대 방향으로 모델의 파라미터를 조금씩 이동시켜 최소점을 찾는 최적화 방법
- 비유
손실을 지형으로 보았을 때, 가장 낮은 지점(최소값)을 향해 경사를 따라 내려가는 것과 같음
- 수식
현재 가중치 - (기울기 × 학습률)
$$\theta = \theta - \eta \nabla J(\theta)$$
$\theta$ : 파라미터(가중치)
$\eta$ : 학습률
$\nabla J(\theta)$ : 손실함수의 기울기
○ 학습률 (Learning Rate, $\eta$)
한 번 업데이트할 떄 이동하는 보폭의 크기

- 학습률이 너무 클 때
- 최적점을 지나침
- 불안정한 수렴: 지그재그로 이동
- 손실이 폭증하며 발산(불안정)함
- 학습률이 작을 때
- 수렴 속도가 매우 느려짐
- 기울기가 작은 평평한 영역에서 진전 없이 정체될 수 있음
- 비효율: 만흔 에폭 필요, 자원 소모 증가
경사하강법으로 가중치를 업데이트하려면
신경망 내의 모든 가중치가 오차에 미친 기울기를 각각 알아야함
신경이 깊어질수록 이를 앞에서부터 일일이 계산하는 것은 불가능
→ 출력층의 오차를 거꾸로 전달하며 한 번에 기울기를 구하는 역전파 필요
5. 역전파 (Backpropagation)
출력층에서 발생한 오차를 앞쪽 은닉층으로 거꾸로 전달하며
신경망 전체의 모든 가중치에 대한 기울기를 효율적으로 계산
+ 연쇄법칙 이용
- 입력 - 기울기 계산까지의 전체 과정
입력 → 순전파 → 손실 계산 → 역전파
- 역전파 단계
1) 순전파(Foward)
- 입력 → 은닉 → 출력 으로 진행
- 예측값 $\hat{y}$ 계산
- 각 층의 중간 출력값과 z값(가중합)을 메모리에 저장해 역전파에 활용함
2) 손실 계산
- 정답 y와 예측값 $\hat{y}$를 비교하여 손실 L을 계산
- 수식: $L=L(y,\hat{y})$
- 학습 목표 : 손실 L 최소화
3) 출력층 오차
- (역전파 출발점) 출력층의 오차 ($\delta_{out}$)를 계산
- 수식 (예시): $\delta_{out}=\partial L/\partial z_{out}$
4) 오차 전달
- 연쇄법칙 기반
- 앞서 구한 출력층의 오차를 이전 층인 은닉층 방향으로 거꾸로 전달
5) 편미분 계산
- 거꾸로 전달받은 오차와 1단계에서 저장해둔 입력값(중간값)을 곱함
- 각 파라미터가 전체 손실에 미친 영향(편미분)을 구함
- 계산 대상 (수식): $\partial L/\partial w$, $\partial L/\partial b$
6) 경사하강법 갱신
- 5단계에서 구한 기울기의 반대 방향으로 파라미터(가중치, 편향)을 업데이트
- 한 번에 이동할 보폭(학습률)을 곱함
- 가중치 갱신: $w := w - \eta \cdot \partial L/\partial w$
- 향 갱신: $b := b - \eta \cdot \partial L/\partial b$
6. 학습 방법 (데이터 업데이트 단위)
○ Batch GD(경사하강법)
- 에폭당 1회
- 전체 데이터를 모두 계산한 뒤 파라미터 업데이트
- 이동 방향은 안정적
- 계산이 무겁고 속도가 느림
○ SGD(확률적 경사하강법)
- 샘플 1개마다 파라미터 갱신
- 빠른 갱신으로 초기 하강이 빠름
- 샘플 1개에만 의존하므로 전체 데이터의 방향과 맞지 않아 노이즈가 크고 심하게 진동
○ Mini-batch (미니배치)
- 전체 데이터를 32, 64 등의 작음 묶음으로 나누어 업데이트하는 방식
- 속도와 안정성의 균형을 잡을 수 있음
- GPU의 병렬 처리 구조를 활용해 연산 효율 극대화
- 학습 루프: 배치분할 → 순전파 → 손실 계산 → 역전파 → 갱신 → 다음 배치
7. 경사하강법의 한계
○ 극소점 (Local Minima)

주변 점들과 비교했을 때는 손실이 가장 작지만, 전체 지형에서 가장 낮은 전역 최소값은 아님
▷ 지역 골짜기에 갇혀 학습이 멈추는 현상
- 극소점 : 극소적으로만 최솟값
- 전역 최솟값: 전체 영역 중 최솟값
○ 평평한 영역 (Flat Region)

손실 표면의 기울기가 거의 0에 가까워
극소점이 아닌데도 업데이트 크기가 미세해져 학습이 정체되는 넓은 구간
○ 경사 방향 오류

길고 좁은 골짜기 지형에서 전역적인 최적 방향을 찾지 못하고 국소 기울기만 따라가다가
좌우 벽을 향해 불필요하게 지그재그로 진동하는 현상
8. 최적화 알고리즘
○ 모멘텀(Momentum)
이전 이동 방향의 관성을 누적하여 현재 기울기에 더하는 방식
→ 현재 기울기 + 과거 이동 흐름
- 지그재그 진동을 상쇄하여 완화함
- 일관되게 내려가는 방향으로 속도를 가속하여 평평한 영역을 통과함
○ AdaGrad (적응형 학습률)
파라미터 별로 과거의 기울기 제곱합을 누적하여 학습률을 자동 조절함
- 크게 변한 파라미터는 보폭을 줄임
- 드물게 변한 파라미터는 보폭을 키움
- 단점
- 시간이 지날수록 누적값이 커져 학습룰이 0 으로 수렴함
- 보완: RMSProp 처럼 이동평균으로 최근 기울기 중심 반영
○ RMSProp
AdaGrad의 단점을 보완해 기울기 제곱의 이동평균을 사용함
오래된 과거 정보는 잊게 만들어, 학습 후반부에도 적절한 학습률을 유지
- 효과
- 진동 완화
- 안정적 수렴
- 평평한 영역에서도 보폭 유지 학습 지속
○ Adam (Adaptive Moment Estimation)
모멘텀(방향 안정성, 1차 모멘트) + RMSProp(적응적 보포 크기, 2차 모멘트)
- 빠른 수렴과 진동 억제에 유리
- 파라미터별 적응적 학습률로 안정적 업데이트
- 초기 설정에 비교적 강건, 다양한 문제에서 무난
9. 과적합과 데이터 분할
○ 과적합 (Overfitting)
모델이 훈련 데이터의 잡음과 우연한 패턴까지 암기해버려
훈련 손실은 낮지만
처음 보는 새로운 데이터에 대한 성능은 오히려 떨어지는 현상
- 주요 원인
- 모델 과복잡
- 데이터 부족
- 과도한 학습
- 정규화 부재
→ 훈련에만 최적화된 상태, 일반화를 위해 원인(복잡도, 데이터, 학습시간, 정규화)을 관리해야함
○ 데이터 분할 원칙
이를 방지하고 평가하기 위해 데이터를 세 가지로 나눔
1) Train (훈련셋)
- 모델의 가중치와 파라미터를 학습하는데 직접 사용
2) Validation (검증셋)
- 목적: 학습 중 모델 선택, 튜닝
- 학습 과정 중 모델의 과적합 여부를 모니터링함
- 최적의 하이퍼파라미터나 조기 종료 시점을 선택하는 데 사용됨
3) Test (테스트셋)
- 목적: 최종 일반화 성능 측정
- 모든 구조와 튜닝이 확정된 후, 모델의 최종 일반화 성능을 산출하기 위해 단 1회만 사용됨
- 의사결정에 사용 금지
10. 과적합 방지 기술
○ 드롭아웃 (Dropout)
학습 과정 중 지정된 확률(p, 보통 0.1~0.5)로 일부 뉴런의 연결을 무작위로 비활성화함
- 특정 뉴런 조합에만 과도하게 의존하는 공적응 현상 방지
- 여러 서브 네트워크의 앙상블 효과를 내어 일반화 성능을 높임
○ 배치정규화 (BatchNorm)
층을 지나는 입력 데이터의 분포를 각 미니 배치의 평균과 분산을 이용해 0~1 수준으로 정규화함
- 내부 공변량 변화를 완화해 기울기의 폭주, 소실을 감소시킴
- 더 큰 학습률을 안전하게 사용 가능하게 하여 수렴을 가속함
○하이퍼파라미터
모델 연산이 아닌 사람이 직접 설정하는 변수들
이를 조절하여 과적합/과소적합의 균형을 맞춤
- 학습률
- 너무 크면 불안정
- 너무 작으면 느림
- 배치 크기
- 32/64/128 등 자원 한도 내에서 설정
- 에폭 수
- 정규화 강도
- 과적합 시 중대
- 과소적합 시 완화
- 드롭아웃 비율
- 0.1~0.5 범위 탐색
- 과적합이 심할수록 높임
- 성능 정체 시 낮춤
11. 모델 평가 지표
○ 정확도 (Accuracy)의 함정
데이터 불균형(예: 정상 95%, 이상 5%) 상태에서는 무조건 정상이라고만 찍어도 정확도가 95%가 나오는 착시 발생
→ 이를 막기 위해 여러 지표 확인
- Precision(정밀도)
$$\frac{TP}{TP+FP}$$
양성이라고 예측한 것 중 진짜 양성 비율
▷ 거짓 양성(FP) 비용이 클 때 중요
- Recall(재현율)
$$\frac{TP}{TP+FN}$$
실제 양성 중 올바르게 양성으로 찾아낸 비율
▷ FN 비용이 클 때 중요, ex) 암 진단
- F1-score
$$2 \times \frac{Precision \times Recall}{Precision + Recall}$$
정밀도와 재현율의 조화평균
두 지표의 균형을 강제하여 한쪽으로만 치우치는 쪽에 패널티를 부여하는 종합 평가 지표
- ROC-AUC vs PR-AUC
| ROC-AUC | PR-AUC | |
| 핵심 | 임계값 전반의 분리 능력 평가 | 양성(회귀) 탐지 품질에 집중 |
| 불균형 민감도 | 상대적으로 낮음 | 매우 높음 |
| 유리한 상황 | 양, 음 클래스 균형, 오류 비용이 유사 | 양성 최소, 양성 누락 비용이 큼 |
균형 잡힌 데이터에서의 전반적 분류 능력 → ROC-AUC로 평가
양성 클래스가 극도로 회귀한 불균형 데이터 → PR-AUC
전체 흐름 요약
1. 목표 설정 : 손실함수가 틀린 정도를 정의
2. 방법 도출: 미니배치와 역전파를 통해 효율적으로 기울기 방향 계산
3. 최적화: Adam 등의 옵티마이저를 통해 진동 없이 안정적으로 최적점을 찾아감
4. 일반화 : 드롭아웃과 배치정규화로 정답을 외우는 과적합을 방지하여 현실 데이터 적응력을 높임
5. 평가: Accuracy의 함정을 피해, 목적에 맞는 혼동행렬 기반 세부 지표로 성능을 검증