기본 콘텐츠로 건너뛰기

방송대 방통대 인공지능 15강 - 딥러닝(2) - 요약 노트 시험족보 예상문제 - 올에이클래스

0-썸네일-요약노트-인공지능-15강

인공지능 15강 - 딥러닝(2)

깊은 신경망을 안정적으로 학습시키는 ResNet의 원리와 시퀀스를 처리하는 RNN, LSTM, GRU를 살펴본다. 자연언어 번역의 인코더-디코더와 어텐션을 거쳐, 셀프 어텐션으로 병렬 처리를 가능하게 한 트랜스포머까지 연결하여 이해한다.

심층 합성곱 신경망과 ResNet

층의 깊이와 특징 표현

합성곱 신경망의 낮은 층은 선이나 가장자리처럼 낮은 수준의 특징을 추출하고, 높은 층은 앞선 특징들을 결합하여 더 복합적인 고수준 특징을 추출한다. 층을 많이 쌓으면 여러 수준의 특징을 풍부하게 표현할 수 있으므로 신경망의 표현력이 높아질 수 있다.

그러나 층 수가 증가한다고 학습 성능이 자동으로 좋아지는 것은 아니다. 지나치게 깊은 일반 신경망은 오히려 학습 품질이 떨어질 수 있다. Kaiming He 등은 이 최적화 문제를 완화하기 위해 잔차 블록(residual block)을 순차적으로 연결한 ResNet(Residual Network)을 제안하였다.

잔차 블록의 원리

일반 블록이 원하는 출력 H(x)를 직접 학습한다면, 잔차 블록은 입력과 출력의 차이인 F(x) = H(x) - x를 학습한다. 입력 x는 항등 스킵 연결(identity 또는 shortcut connection)을 통해 블록의 출력에 직접 더해진다.

H(x) = F(x) + x

스킵 연결은 입력을 그대로 다음 단계에 전달하므로 깊은 망에서도 정보와 학습 신호가 흐를 수 있는 통로를 제공한다. 그 결과 잔차 블록을 여러 층 연결한 ResNet은 같은 깊이의 일반 심층망보다 최적화가 잘 이루어질 수 있다.

시험 핵심: ResNet은 목표 출력 자체가 아니라 입력과 목표 출력의 차인 잔차를 학습하며, 블록의 최종 출력은 F(x)+x이다.

규격이 다른 입력의 처리

F(x)x를 원소별로 더하려면 Layer-2의 출력과 입력 x의 공간 크기와 채널 수가 같아야 한다. 채널 수가 다르면 스킵 경로에 1×1 합성곱을 적용하여 규격을 맞춘 뒤 더할 수 있다.

영상 분류 성능 비교

강의록의 ImageNet 분류 결과에서 잔차 연결이 없는 일반 34층 망은 18층 망보다 오히려 Top-1 오류율이 높았다. 반면 ResNet에서는 층이 깊어질수록 오류율이 감소하는 경향이 나타났다.

모델깊이Top-1 오류율해석
일반 심층망18층27.94%일반 34층 망이 18층 망보다 높은 오류율을 보여 깊이 증가만으로 성능이 개선되지 않음을 나타낸다.
일반 심층망34층28.54%
ResNet18층27.88%잔차 연결을 이용하면 깊은 모델의 최적화가 개선되어 층이 깊어질수록 오류율이 낮아졌다.
ResNet34층25.03%
ResNet50층22.85%
ResNet152층21.43%

순환 신경망의 개념과 구조

시퀀스 처리와 순환연결

순환 신경망(Recurrent Neural Network, RNN)은 연속적으로 발생하는 시퀀스 데이터를 처리하는 신경망이다. 시간에 따라 변하는 주가와 날씨 같은 시계열 데이터, 순서대로 나열된 단어로 이루어진 자연언어 문장이 대표적인 입력이다.

RNN은 사이클을 형성하는 순환연결을 포함한다. 현재 시점의 은닉 상태를 계산할 때 현재 입력뿐 아니라 이전 시점의 은닉 상태도 사용하므로 과거 입력에 대한 기억을 유지할 수 있다. 이러한 기억을 바탕으로 과거 시퀀스의 패턴을 학습하고 미래 데이터를 예측한다.

은닉 상태와 출력 계산

시점 t의 입력벡터를 xt, 이전 은닉 상태를 ht-1, 현재 은닉 상태를 ht, 출력벡터를 ot라 하면 기본 RNN의 계산은 다음과 같다.

ht = fh(Wxxt + Whht-1 + bh)

ot = fo(Woht + bo)

여기서 W는 연결 가중치, b는 바이어스, f는 활성함수다. 첫 번째 식은 현재 입력과 이전 기억을 결합하여 새 기억을 만들고, 두 번째 식은 현재 기억으로 출력을 계산한다.

시간축 전개와 심층 RNN

순환구조를 시간축으로 펼치는 것을 언롤(unroll)이라 한다. 언롤된 그림에서는 동일한 메모리 셀이 각 시점에 반복되어 나타나며, ht-1이 다음 시점으로 전달되는 관계가 명확해진다. RNN의 은닉층을 여러 층으로 쌓으면 각 시점에 여러 수준의 은닉 상태를 갖는 심층 RNN을 구성할 수 있다.

시간축의 여러 메모리 셀은 서로 다른 모델이 아니라 같은 가중치를 공유하는 하나의 순환 셀을 시점별 계산 과정으로 펼쳐 표현한 것이다.

RNN의 훈련과 개선 모델

BPTT에 의한 훈련

RNN은 BPTT(BackPropagation Through Time)로 훈련한다. 전체 시퀀스의 출력과 정답으로 손실함수를 계산한 뒤, 마지막 시점에서 앞 시점으로 시간 단계의 역순을 따라 경사를 전달하여 가중치 W와 바이어스 b를 갱신한다.

기본 RNN의 장기 의존성 문제

기본 RNN의 메모리 셀은 한정된 길이의 패턴을 기억할 수 있다. 시퀀스가 길어지면 최근 정보는 남지만 오래된 정보가 손실되어 모델 성능이 낮아질 수 있다. LSTM과 GRU는 중요한 정보는 보존하고 덜 중요한 정보는 잊도록 제어하여 이 문제를 개선한다.

LSTM의 기억과 게이트

LSTM(Long Short-Term Memory)은 어떤 정보를 유지하고 어떤 정보를 지울지를 게이트로 제어한다. 장기기억 벡터 ct와 단기기억 벡터 ht를 분리하여 표현하며, 세 가지 게이트가 정보의 흐름을 결정한다.

게이트역할
망각 게이트(forget gate)장기기억에서 어떤 정보를 잊어야 할지 결정한다.
입력 게이트(input gate)현재 입력 가운데 중요한 어떤 정보를 기억에 반영할지 결정한다.
출력 게이트(output gate)출력을 만들 때 기억 중 어떤 정보만 남길지 결정한다.

GRU의 단순화

GRU(Gated Recurrent Unit)는 LSTM을 단순화한 구조다. LSTM의 장기기억과 단기기억 벡터를 하나의 상태벡터 h로 통합하고, 하나의 게이트 제어기가 망각과 입력 게이트를 동시에 제어한다. 망각 게이트가 열리면 입력 게이트는 닫히고, 망각 게이트가 닫히면 입력 게이트가 열린다. 출력 게이트는 제거한다.

구분LSTMGRU
상태 표현장기기억 벡터와 단기기억 벡터를 구분하나의 상태벡터로 통합
게이트망각·입력·출력 게이트망각과 입력을 연동하고 출력 게이트 제거
구조와 속도상대적으로 복잡단순하며 유사한 성능을 내면서 더 빠르게 동작 가능
공통 목적긴 시퀀스에서 오래된 중요 정보의 손실을 줄임

자연언어 번역과 어텐션

인코더-디코더와 seq2seq

자연언어 번역의 인코더-디코더(encoder-decoder) 구조에서 인코더는 한 언어의 입력 문장을 문맥벡터(context vector)로 변환한다. 디코더는 이 문맥벡터를 입력으로 받아 번역 문장을 생성한다. 인코더와 디코더에는 기본 RNN, LSTM, GRU를 사용할 수 있다.

seq2seq는 하나의 시퀀스를 입력받아 다른 시퀀스로 변환하는 인코더-디코더 구조다. 강의 예에서는 “I like baseball . <eos>”를 인코딩하여 문맥벡터를 만들고, 디코더가 “나는 야구를 좋아해 . <eos>”를 생성한다. 디코더의 시작은 <bos>, 문장의 끝은 <eos> 토큰으로 표시한다.

기본 seq2seq에서는 디코더의 모든 시점에 동일한 하나의 문맥벡터를 사용한다. 입력 시퀀스가 길면 앞쪽의 정보가 고정 길이 문맥벡터에 충분히 남지 못하는 문제가 발생한다.

어텐션 메커니즘

어텐션(attention)은 디코더의 각 시점마다 인코더의 모든 시점 은닉 상태를 가중 평균하여 그 시점에 필요한 문맥벡터를 만든다. 디코더는 번역할 단어에 가장 관계가 깊은 입력 위치에 더 큰 가중치를 주어 주의를 기울일 수 있다.

가중치는 사람이 고정하는 값이 아니라 모델의 손실을 줄이도록 훈련 과정에서 결정된다. 따라서 고정된 문맥벡터 하나에 전체 입력을 압축하던 기본 seq2seq의 한계를 완화한다.

시험 핵심: 기본 seq2seq는 모든 디코더 시점에 같은 문맥벡터를 사용하지만, 어텐션은 디코더 시점마다 입력 은닉 상태의 가중치를 다르게 정해 새로운 문맥벡터를 만든다.

트랜스포머

셀프 어텐션 기반 처리

트랜스포머(transformer)는 인코더와 디코더를 구현할 때 RNN의 순환연결 대신 셀프 어텐션(self-attention)을 사용하는 모델이다. 인코더는 입력 문장의 각 토큰에 대해 전체 문맥을 반영한 표현을 만들고, 디코더는 이를 이용해 출력 문장을 생성한다.

RNN은 앞 시점의 계산이 끝나야 다음 시점을 계산하지만, 트랜스포머는 전체 시퀀스를 한 단위로 처리하므로 훈련 계산을 병렬화할 수 있다. 또한 멀리 떨어진 단어 사이의 관계를 직접 표현할 수 있어 거대 언어 모델에 적합하며 GPT와 BERT 등에 활용된다.

인코더와 디코더의 구조

입력 토큰은 임베딩과 위치 인코딩을 결합한 뒤 인코더 블록으로 들어간다. 인코더의 각 블록은 멀티헤드 어텐션, Add & Norm, 피드포워드 층으로 구성되며 이 블록을 여러 번 반복한다.

디코더는 오른쪽으로 이동된 출력 임베딩과 위치 인코딩을 입력받는다. 미래 토큰을 미리 보지 않도록 마스크드 멀티헤드 어텐션을 사용하고, 인코더 출력에 대한 멀티헤드 어텐션과 피드포워드 층을 거친다. 마지막에는 선형층과 Softmax를 통해 다음 토큰의 출력 확률을 만든다.

구분RNN트랜스포머
핵심 연결시간축 순환연결셀프 어텐션
시퀀스 처리앞 시점부터 순차 처리전체 시퀀스를 한 단위로 처리
훈련 계산시점 간 의존으로 병렬화가 제한됨계산 병렬화에 유리함
장거리 관계오래된 정보 손실 가능멀리 떨어진 토큰 관계를 잘 표현

핵심 개념 정리

  • 깊은 신경망은 풍부한 특징을 표현하지만 단순히 층을 늘리면 학습 품질이 저하될 수 있다.
  • ResNet은 항등 스킵 연결로 입력을 더해 잔차 F(x)=H(x)-x를 학습하며, 규격이 다르면 1×1 합성곱으로 맞춘다.
  • RNN은 현재 입력과 이전 은닉 상태로 새 은닉 상태를 계산하여 시퀀스의 과거 정보를 기억한다.
  • BPTT는 손실을 계산한 뒤 시간 단계의 역순으로 경사를 전달하여 RNN의 가중치와 바이어스를 갱신한다.
  • LSTM은 장·단기기억과 세 게이트를 사용하고, GRU는 상태를 통합하고 게이트를 단순화해 장기 정보 손실을 완화한다.
  • seq2seq는 시퀀스를 다른 시퀀스로 변환하며, 어텐션은 디코더 시점마다 관련 입력에 다른 가중치를 부여한다.
  • 트랜스포머는 RNN 대신 셀프 어텐션을 사용하여 병렬 처리와 장거리 단어 관계 표현에 유리하다.

최종 정리: 이번 강의의 공통 주제는 깊거나 긴 정보 흐름에서 중요한 정보를 보존하는 방법이다. ResNet은 층 사이에 스킵 경로를 만들고, LSTM·GRU는 시간축의 기억을 게이트로 제어하며, 어텐션과 트랜스포머는 필요한 입력 위치를 직접 참조한다.

예상문제 20선

1. 심층 합성곱 신경망의 층과 특징 추출에 관한 설명으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
낮은 층의 단순 특징이 높은 층에서 결합되어 더 복합적인 특징으로 발전한다.

2. ResNet의 잔차 블록에 대한 설명으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
항등 스킵 연결로 입력을 직접 더함으로써 블록은 원하는 출력과 입력의 차인 잔차를 학습한다.

3. 잔차 블록에서 F(x)와 x의 채널 수가 다를 때 사용할 수 있는 방법은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
원소별 덧셈을 하려면 규격이 같아야 하므로 1×1 합성곱으로 채널 수 등을 맞출 수 있다.

4. 강의록의 ImageNet Top-1 오류율 결과로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
잔차 연결을 사용한 모델은 깊이가 증가하면서 오류율이 감소하여 깊은 망의 최적화가 개선됨을 보였다.

5. RNN이 주로 처리하는 데이터로 가장 적절한 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
RNN은 이전 입력의 기억을 유지하며 시간 또는 순서 관계가 있는 연속 데이터를 처리한다.

6. 기본 RNN에서 현재 은닉 상태 ht를 계산할 때 함께 사용하는 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
현재 입력과 직전 기억을 가중 결합하고 바이어스와 활성함수를 적용하여 새 은닉 상태를 만든다.

7. RNN의 언롤(unroll)에 대한 설명으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
언롤은 같은 순환 셀의 반복 계산과 은닉 상태 전달을 시간 순서에 따라 펼쳐 보여 준다.

8. BPTT의 훈련 과정으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
BPTT는 시간축으로 펼친 RNN에 역전파를 적용하여 뒤 시점부터 앞 시점으로 경사를 전달한다.

9. 기본 RNN에서 긴 시퀀스를 처리할 때 나타날 수 있는 문제는?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
기본 메모리 셀은 한정된 길이의 패턴만 기억하므로 긴 시퀀스에서는 오래된 중요 정보가 사라질 수 있다.

10. LSTM의 망각 게이트가 담당하는 역할은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
망각 게이트는 장기기억에 남아 있는 정보 가운데 더 이상 필요하지 않은 부분을 선택적으로 제거한다.

11. LSTM의 출력 게이트에 대한 설명으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
출력 게이트는 현재 기억 중 외부 출력과 단기 상태에 반영할 정보를 선택한다.

12. GRU가 LSTM을 단순화한 방식으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
GRU는 장·단기기억을 통합하고 망각과 입력 제어를 연동하여 LSTM보다 단순하고 빠르게 동작할 수 있다.

13. 자연언어 번역의 인코더 역할로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
인코더는 입력 시퀀스의 의미를 문맥벡터로 표현하고 디코더는 이를 바탕으로 출력 시퀀스를 생성한다.

14. 기본 seq2seq에서 입력 시퀀스가 길 때 발생하는 문제는?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
긴 입력 전체를 고정 길이 벡터 하나로 압축하고 모든 디코더 시점에서 재사용하면 앞부분 정보가 손실될 수 있다.

15. 어텐션 메커니즘의 문맥벡터 생성 방식은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
각 디코더 시점에 관련성이 높은 입력 위치에 큰 가중치를 주며, 가중치는 손실을 줄이도록 학습된다.

16. 트랜스포머의 핵심 아이디어로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
트랜스포머는 순환연결을 셀프 어텐션으로 대체하여 각 토큰이 다른 토큰과의 관계를 반영하도록 한다.

17. 트랜스포머가 RNN보다 훈련 병렬화에 유리한 이유는?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ④
RNN처럼 앞 시점의 은닉 상태 계산을 기다릴 필요가 적어 여러 토큰의 계산을 병렬로 수행할 수 있다.

18. 트랜스포머 디코더에서 마스크드 멀티헤드 어텐션을 사용하는 목적은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ②
출력 생성 시점에는 이미 생성된 앞쪽 토큰만 참조해야 하므로 이후 위치에 대한 주의를 가린다.

19. 트랜스포머의 장점으로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ③
셀프 어텐션은 멀리 떨어진 토큰도 직접 연결해 관계를 표현할 수 있어 대규모 언어 모델에 적합하다.

20. 모델과 정보 보존 방식의 연결로 옳은 것은?

정답입니다.

오답입니다. 답안을 다시 선택해 보세요.

정답 및 해설 보기

정답: ①
세 구조는 각각 깊이 방향, 시간 방향, 토큰 관계에서 중요한 정보가 전달되도록 서로 다른 메커니즘을 사용한다.

댓글