06. Machine Learning_Final Exam Review (Q&A)
머신러닝및실습(2) 기말고사 예상문제 정리: CNN, RNN, LSTM, GRU, 효과적으로 학습하기 단원의 단답형 문제와 정답을 표로 모으고, 조건이 빠져 틀리기 쉬운 답(가중치 초기화, 층을 깊게 할 때 매개변수 수 등)을 근거와 함께 바로잡은 T/F 문제까지 정리
06. Machine Learning_Final Exam Review (Q&A)
학습 목표
- 기말 범위(CNN, RNN, LSTM, GRU, 효과적으로 학습하기)의 정의형 문제를 한 문장으로 답하기
- 서술형 단골(풀링 특징 3가지, 기울기 소실과 폭발 해결법, 배치 정규화 효과 3가지) 외우기
- 조건이 빠지면 틀린 답이 되는 문항을 구분하기
자세한 설명과 실행 결과는 03편 CNN, 04편 RNN, LSTM, 05편 효과적으로 학습하기에 있음. 이 글은 시험 직전에 훑어보는 용도
1. CNN
| 질문 | 답 |
|---|---|
| CNN | 합성곱 연산으로 이미지 같은 공간 데이터의 특징을 추출하는 신경망 |
| Convolution | 필터를 입력에 겹쳐 같은 위치끼리 곱하고 더해 특징을 추출하는 연산 |
| Padding | 입력 가장자리를 0 등으로 채워 출력 크기를 조정(작아지는 것을 방지)하는 기법 |
| Stride | 필터가 이동하는 간격. 커질수록 출력이 작아짐 |
| 출력 크기 | (H + 2P − FH) / S + 1 |
| Pooling | 특징 맵의 크기를 줄여 계산량을 줄이고 중요한 특징만 남기는 과정 |
| Max / Average Pooling | 영역의 최댓값 / 평균값 |
| 풀링 특징 3가지 | ① 학습할 매개변수 없음 ② 채널 수 유지 ③ 작은 위치 변화에 강함 |
| 풀링과 합성곱의 차이 | 합성곱은 학습할 필터(가중치)가 있고, 풀링은 없음 |
| im2col | 4차원 입력을 2차원 행렬로 펼쳐 합성곱을 행렬곱 한 번으로 계산하게 하는 함수 (빠르지만 메모리 더 사용) |
| ResNet | 스킵 연결로 매우 깊은 신경망의 학습을 가능하게 한 구조 |
| Skip Connection | 입력 x를 출력에 더해 F(x) + x로 전달. 역전파 때 기울기가 감쇠 없이 전달됨 |
| Transfer Learning | 학습된 모델의 가중치를 새 문제에 재사용. 데이터가 적을 때 유용 |
| 층을 깊게 하는 이유 | 같은 수용 영역을 더 적은 매개변수로 처리, 비선형성 추가로 표현력 증가, 문제를 계층적으로 나눠 학습 |
| 3×3 두 번 vs 5×5 한 번 | 같은 5×5 영역을 보면서 매개변수가 18개 대 25개(채널, 필터당). 사이에 활성화 함수도 하나 더 들어감 |
2. RNN
| 질문 | 답 |
|---|---|
| RNN | 이전 시각의 은닉 상태가 현재 계산에 들어가는 순환 구조의 신경망 |
| Hidden State | 이전 시각의 정보와 현재 입력을 함께 반영한 은닉 상태값 |
| BPTT | 시간 방향으로 펼친 RNN에 오차역전파를 적용하는 방법 |
| 장기 의존성 문제 | 시간적으로 멀리 떨어진 과거 정보가 현재까지 전달되지 못하는 현상 |
| 기울기 소실 / 폭발 | 역전파 중 기울기가 0에 가까워지는 / 지나치게 커지는 현상 |
| 원인 | tanh 미분과 같은 Wh의 반복 곱. Wh의 최대 고유값이 1보다 크면 폭발 |
| 기울기 소실 해결 | ① ReLU, Leaky ReLU ② Xavier, He 초기화 ③ LSTM, GRU |
| 기울기 폭발 해결 | Gradient Clipping (기울기 크기가 임계값을 넘으면 잘라냄) |
| Xavier 초기화 | 입력, 출력 노드 수를 고려해 분산을 정함. sigmoid, tanh용 |
| He 초기화 | 입력 노드 수만 사용. ReLU용 |
3. LSTM, GRU
| 질문 | 답 |
|---|---|
| LSTM | RNN에 게이트와 기억 셀을 추가해 장기 의존성 문제를 해결한 모델 |
| Gate | 정보를 얼마나 통과시킬지 0 ~ 1(sigmoid)로 정하는 구조 |
| Cell State (기억 셀) | 과거부터 현재까지 필요한 정보를 저장하는 공간. 장기 의존성 해결의 핵심 |
| Forget / Input / Output Gate | 이전 기억을 얼마나 유지할지 / 새 정보를 얼마나 저장할지 / 기억을 얼마나 은닉 상태로 내보낼지 |
| Hadamard 곱 | 같은 크기의 행렬, 벡터에서 원소끼리 곱하는 연산 |
| 기억 셀 역전파가 지나는 연산 | 덧셈(+)과 Hadamard 곱(×)뿐 |
| 기울기 소실이 잘 안 생기는 이유 | 덧셈은 기울기를 그대로 전달하고, 곱셈은 행렬곱이 아니라 매 시각 다른 게이트 값과의 원소별 곱이라 같은 값의 곱이 누적되지 않음 |
| 시각마다 게이트 값이 다른 이유 | 게이트는 그 시각의 입력과 이전 은닉 상태로 계산되기 때문 |
| GRU | LSTM을 경량화한 구조. 기억 셀 없이 리셋, 업데이트 게이트 2개 |
| Reset / Update Gate | 이전 은닉 상태를 얼마나 무시할지 / 과거와 새 정보를 어떤 비율로 섞을지 |
| LSTM vs GRU | LSTM은 기억 셀 + 게이트 3개(가중치 블록 4개), GRU는 게이트 2개(블록 3개)로 매개변수 약 25% 적음. 데이터가 적으면 GRU, 많으면 LSTM이 유리할 수 있음 |
4. 효과적으로 학습하기
| 질문 | 답 |
|---|---|
| Optimizer | 손실 함수를 최소화하는 매개변수를 찾는 알고리즘 |
| SGD / 단점 | 데이터 하나 또는 미니 배치로 기울기를 구해 갱신 / 방향마다 기울기 크기가 다르면 지그재그로 비효율적 |
| SGD 개선 기법 4가지 | Momentum, AdaGrad, RMSProp, Adam |
| Momentum 식 | 속도 갱신 v ← αv − η∂L/∂W, 가중치 갱신 W ← W + v (v는 속도, α는 이전 속도 유지 비율) |
| AdaGrad | 기울기 제곱을 누적해 많이 갱신된 매개변수의 학습률을 줄임 |
| RMSProp | AdaGrad의 누적을 지수이동평균으로 바꿔 학습률이 0으로 줄어드는 문제를 해결 |
| Adam | Momentum + AdaGrad 계열(RMSProp)의 결합, 편향 보정 포함 |
| Batch / Mini-batch / Epoch | 가중치 1회 갱신에 쓰는 데이터 묶음 / 전체를 나눈 일부 / 전체 학습 데이터를 한 번 모두 학습한 횟수 |
| Min-Max / 단점 | 0 ~ 1로 변환 / 이상치에 취약 |
| Z-score | 평균 0, 분산 1로 변환. 표준화(Standardization) |
| Batch Normalization | 미니 배치 단위로 각 층 입력을 평균 0, 분산 1로 정규화한 뒤 γ, β로 조정 |
| 배치 정규화 효과 3가지 | ① 학습 속도 향상 ② 초기값 의존성 감소 ③ 과적합 억제 |
| Overfitting | 훈련 데이터에만 지나치게 맞춰져 새 데이터에서 성능이 떨어지는 현상 |
| Weight Decay / Dropout / Early Stopping | 큰 가중치에 벌점 / 학습 때 뉴런을 무작위로 끊음 / 검증 성능이 나아지지 않으면 학습 중단 |
| 같은 값으로 초기화하면 안 되는 이유 | 모든 가중치가 똑같이 갱신되어 뉴런을 여러 개 둔 의미가 없어짐 |
| Hyperparameter | 사람이 정하는 값 (학습률, epoch, 배치 크기, 은닉 노드 수) |
| Validation Data | 하이퍼파라미터 선택과 조기 종료 판단에 쓰는 데이터 (테스트 데이터와 분리) |
| Grid / Random / Bayesian | 모든 조합 / 무작위 일부 조합 / 이전 결과를 바탕으로 다음 후보를 고르는 탐색 |
5. 조건을 붙여야 정확한 답
예상문제 정답 중 조건 없이 외우면 틀릴 수 있는 문항.
| 문항 | 예상 답 | 정확한 답 | 근거 |
|---|---|---|---|
| 가중치를 너무 작게 초기화하면? | 기울기 소실 | sigmoid에서는 활성값이 0.5에 몰려 표현력 제한이 대표 문제. 층이 깊으면 역전파 기울기도 작아짐 | 05편 실험: 표준편차 0.01이면 활성값 표준편차 0.01 수준 |
| 가중치를 너무 크게 초기화하면? | 기울기 폭발 | sigmoid, tanh에서는 출력이 0과 1에 몰려 오히려 기울기 소실. ReLU나 RNN의 반복 곱에서는 폭발 가능 | 표준편차 1이면 활성값이 0과 1 양 끝에 몰림 |
| 층을 깊게 하면 매개변수 수는? | 감소 | 큰 필터 하나를 같은 영역을 보는 작은 필터 여러 층으로 바꿀 때 감소. 층을 그냥 추가하면 증가 | 3×3 두 층 18개 대 5×5 25개 |
| 층을 깊게 하면 학습 속도는? | 빨라질 수 있음 | 위와 같은 조건에서 매개변수가 줄어 빨라질 수 있음. 일반적으로 깊어지면 계산량과 학습 난도는 커짐 (그래서 ResNet, 배치 정규화가 필요) | |
| Adam의 구성 | Momentum + AdaGrad | 교재 표현은 맞지만, 2차 모멘트는 지수이동평균이라 정확히는 RMSProp 방식 | |
| LSTM은 기울기 소실이 | 일어나지 않음 | 일어나기 어려움. 망각 게이트가 0에 가까우면 여전히 줄어듦 | |
| Batch Normalization 방식 | Z-score | 미니 배치의 평균, 분산으로 Z-score 정규화 + 학습 가능한 γ, β로 다시 조정 |
6. T/F
| 번호 | 문장 | 답 | 이유 |
|---|---|---|---|
| 1 | Pooling 계층에는 학습할 매개변수가 존재한다 | X | 최댓값, 평균 계산만 함 |
| 2 | Pooling은 입력 채널 수를 유지한다 | O | 채널마다 독립적으로 계산 |
| 3 | Average Pooling은 최솟값을 선택한다 | X | 평균값 |
| 4 | Min-Max 정규화는 이상치에 강하다 | X | 이상치 하나가 max를 결정해 나머지가 한쪽에 몰림 |
| 5 | Z-score 정규화는 평균 0, 분산 1로 만든다 | O | |
| 6 | Batch Normalization은 학습 속도를 향상시키고 과적합을 억제한다 | O | |
| 7 | Xavier 초기화는 ReLU 전용이다 | X | sigmoid, tanh용. ReLU는 He |
| 8 | Momentum은 이전 속도를 기억한다 | O | v |
| 9 | LSTM의 핵심은 기억 셀이며 Hadamard 곱을 사용한다 | O | |
| 10 | SGD는 항상 최적점을 가장 빠르게 찾는다 | X | 지그재그로 비효율적일 수 있음 |
| 11 | 층을 깊게 하면 표현력이 증가한다 | O | 비선형 활성화가 늘어남 |
| 12 | 5×5 필터 1개는 3×3 필터 2개보다 매개변수가 적다 | X | 25개 대 18개 |
| 13 | GRU는 기억 셀을 따로 가진다 | X | 은닉 상태 하나만 사용 |
| 14 | 기울기 폭발의 대표 해결책은 Gradient Clipping이다 | O | |
| 15 | 시계열 데이터는 train/test 분리 시 섞어도 된다 | X | 시간 순서를 지켜야 미래 정보 누수가 없음 |
정리 노트에서 정정한 부분 정리
| 위치 | 원래 | 정정 | 이유 |
|---|---|---|---|
| Q67 | 너무 작게 초기화 → 기울기 소실 | sigmoid 기준으로는 표현력 제한이 대표 문제 | 활성값이 0.5에 몰림 (05편 실행 결과) |
| Q68 | 너무 크게 초기화 → 기울기 폭발 | sigmoid, tanh에서는 포화로 기울기 소실 | 활성값이 0과 1에 몰림 (05편 실행 결과) |
| Q78, Q79 | 층을 깊게 하면 매개변수 감소, 학습 속도 향상 | 작은 필터를 쌓아 같은 영역을 볼 때에 한정 | 층을 추가하기만 하면 매개변수는 늘어남 |
| Q72 | 검증 데이터는 하이퍼파라미터 성능 평가용 | 조기 종료 판단에도 사용, 테스트 데이터와 반드시 분리 | 03편 전이 학습 실험 A의 데이터 누수 |
| Q41 | LSTM은 게이트 3개 | 게이트는 3개지만 가중치 블록은 새 기억 후보 g까지 4개 | 매개변수 수 4 × (…)의 이유 |
최종 핵심 정리
- 풀링 특징 3가지는 학습 매개변수 없음, 채널 수 유지, 작은 변화에 강함
- 출력 크기는 (H + 2P − FH) / S + 1이며, 3×3 두 층은 5×5 한 층보다 매개변수가 적음(18 대 25)
- ResNet의 스킵 연결은 F(x) + x로 기울기를 그대로 전달해 깊은 망의 학습을 가능하게 함
- RNN의 장기 의존성 문제는 BPTT의 기울기 소실과 폭발 때문이며, 소실은 ReLU, Xavier/He, LSTM/GRU로, 폭발은 Gradient Clipping으로 해결함
- LSTM은 망각, 입력, 출력 게이트와 기억 셀을 쓰고, 기억 셀의 역전파가 덧셈과 원소별 곱만 지나 기울기 소실이 잘 안 일어남
- GRU는 리셋, 업데이트 게이트 2개로 LSTM보다 가벼움
- Momentum은 v ← αv − η∂L/∂W, W ← W + v이고, Adam은 Momentum과 적응적 학습률(AdaGrad 계열)을 결합함
- 배치 정규화의 효과는 학습 속도 향상, 초기값 의존성 감소, 과적합 억제이고, 초기화 문제는 활성화 함수에 따라 결과가 달라진다는 조건까지 함께 답해야 함
End.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
