포스트

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가지① 학습할 매개변수 없음 ② 채널 수 유지 ③ 작은 위치 변화에 강함
풀링과 합성곱의 차이합성곱은 학습할 필터(가중치)가 있고, 풀링은 없음
im2col4차원 입력을 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

질문답
LSTMRNN에 게이트와 기억 셀을 추가해 장기 의존성 문제를 해결한 모델
Gate정보를 얼마나 통과시킬지 0 ~ 1(sigmoid)로 정하는 구조
Cell State (기억 셀)과거부터 현재까지 필요한 정보를 저장하는 공간. 장기 의존성 해결의 핵심
Forget / Input / Output Gate이전 기억을 얼마나 유지할지 / 새 정보를 얼마나 저장할지 / 기억을 얼마나 은닉 상태로 내보낼지
Hadamard 곱같은 크기의 행렬, 벡터에서 원소끼리 곱하는 연산
기억 셀 역전파가 지나는 연산덧셈(+)과 Hadamard 곱(×)뿐
기울기 소실이 잘 안 생기는 이유덧셈은 기울기를 그대로 전달하고, 곱셈은 행렬곱이 아니라 매 시각 다른 게이트 값과의 원소별 곱이라 같은 값의 곱이 누적되지 않음
시각마다 게이트 값이 다른 이유게이트는 그 시각의 입력과 이전 은닉 상태로 계산되기 때문
GRULSTM을 경량화한 구조. 기억 셀 없이 리셋, 업데이트 게이트 2개
Reset / Update Gate이전 은닉 상태를 얼마나 무시할지 / 과거와 새 정보를 어떤 비율로 섞을지
LSTM vs GRULSTM은 기억 셀 + 게이트 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기울기 제곱을 누적해 많이 갱신된 매개변수의 학습률을 줄임
RMSPropAdaGrad의 누적을 지수이동평균으로 바꿔 학습률이 0으로 줄어드는 문제를 해결
AdamMomentum + 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

번호문장답이유
1Pooling 계층에는 학습할 매개변수가 존재한다X최댓값, 평균 계산만 함
2Pooling은 입력 채널 수를 유지한다O채널마다 독립적으로 계산
3Average Pooling은 최솟값을 선택한다X평균값
4Min-Max 정규화는 이상치에 강하다X이상치 하나가 max를 결정해 나머지가 한쪽에 몰림
5Z-score 정규화는 평균 0, 분산 1로 만든다O 
6Batch Normalization은 학습 속도를 향상시키고 과적합을 억제한다O 
7Xavier 초기화는 ReLU 전용이다Xsigmoid, tanh용. ReLU는 He
8Momentum은 이전 속도를 기억한다Ov
9LSTM의 핵심은 기억 셀이며 Hadamard 곱을 사용한다O 
10SGD는 항상 최적점을 가장 빠르게 찾는다X지그재그로 비효율적일 수 있음
11층을 깊게 하면 표현력이 증가한다O비선형 활성화가 늘어남
125×5 필터 1개는 3×3 필터 2개보다 매개변수가 적다X25개 대 18개
13GRU는 기억 셀을 따로 가진다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의 데이터 누수
Q41LSTM은 게이트 3개게이트는 3개지만 가중치 블록은 새 기억 후보 g까지 4개매개변수 수 4 × (…)의 이유

최종 핵심 정리

  1. 풀링 특징 3가지는 학습 매개변수 없음, 채널 수 유지, 작은 변화에 강함
  2. 출력 크기는 (H + 2P − FH) / S + 1이며, 3×3 두 층은 5×5 한 층보다 매개변수가 적음(18 대 25)
  3. ResNet의 스킵 연결은 F(x) + x로 기울기를 그대로 전달해 깊은 망의 학습을 가능하게 함
  4. RNN의 장기 의존성 문제는 BPTT의 기울기 소실과 폭발 때문이며, 소실은 ReLU, Xavier/He, LSTM/GRU로, 폭발은 Gradient Clipping으로 해결함
  5. LSTM은 망각, 입력, 출력 게이트와 기억 셀을 쓰고, 기억 셀의 역전파가 덧셈과 원소별 곱만 지나 기울기 소실이 잘 안 일어남
  6. GRU는 리셋, 업데이트 게이트 2개로 LSTM보다 가벼움
  7. Momentum은 v ← αv − η∂L/∂W, W ← W + v이고, Adam은 Momentum과 적응적 학습률(AdaGrad 계열)을 결합함
  8. 배치 정규화의 효과는 학습 속도 향상, 초기값 의존성 감소, 과적합 억제이고, 초기화 문제는 활성화 함수에 따라 결과가 달라진다는 조건까지 함께 답해야 함

End.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.