공부/기계학습

[기계학습] 기말고사 정리 10장

narlo 2022. 12. 9. 17:57

10장. 순환 신경망

피드포워드 신경망

신호가 오직 출력층 방향으로만 향하는 신경망

단점 : 한 시점의 이미지나 정보만을 이용한다.

 

순환신경망(RNN, Recurrent Neural Network)

자연어 처리에 유용하다. ex) 네이버 파파고

시간에 따라 순차적으로 제공되는 정보를 다룰 수 있는 신경망

n:m 방식의 기법이며 다대다 혹은 시퀀스-대-시퀀스 매칭이라고 부름

자기 자신에게 신호를 되먹임(feedback)하여 출력을 만들어낸다.

 

이미지 캡션(컴퓨터가 사진을보고 적절한 설명을 자동으로 붙이는 것) 

합성곱 신경망으로 이미지 특성을 파악하고, 특징을 임베딩 공간으로 보낸 뒤

이 공간의 위치를 바탕으로 이미지를 설명할 수 있는 캡션을 생성한다.

 

순환신경망 구조

순환신경망의 각 계층을 순환 셀, 셀이라고 부른다.

연결강도는 모든 순간에 공유된다.

 

ht는 현재의 출력값, ht-1은 이전 출력값을 의미한다.

RNN도 경사하강법과 오차 역전파를 이용하여 학습한다.

 

유닛 개수가 많을수록 예측을 더 잘 한다.

각 유닛은 출력을 생성하고, 이 출력은 다른 유닛에 되먹임된다. 

유닛 개수가 더 적어도, 여러 층으로 구성된 경우 파라미터 수를 늘리지 않고도 성능이 대폭 개선된다.

RNN의 핵심 아이디어 : 이전에 발생한 정보를 현재의 작업에 연결해주는 기능 즉, Memory 기능이 있다.

 

장기의존성 문제

ex) 두 단어가 멀리 떨어져 있을 경우, 단순 RNN은 두 단어의 연관성 정보를 잘 전달할 수 없다.

ht 값은 tanh 함수내에 tanh 함수가 여러 개 포함된 형식으로

출력값을 정답 값과 비교할 때, 발생하는 오차는 tanh의 미분을 통해 역방향으로 전파한다.

이 과정은 시간 순서의 역방향이므로 BPTT(Back Propagation Through Time)이라고 한다.

 

tanh의 미분값은 0~1 사이인데, 특별한 증폭 연산을 거치지 않는 경우,

t에서 멀어질수록 오차값이 사라지는 문제를 완전히 해결할 수는 없다.

이러한 이유로 단순 RNN은 사라지는 경사값 문제를 해결하기 어렵다. 

 

이를 해결하기위해 고안된 순환 신경망 셀로

LSTM(Long Short Term Memory)가 있다.

LSTM은 순환의 대상으로 출력뿐만 아니라 셀 상태를 같이 전달한다.

셀 상태를 변경하는 구조를 게이트라고 한다.

 

게이트

1. 망각 게이트 : 셀 상태를 지운다.

2. 입력 게이트 : 새로운 셀 상태 정보를 추가한다. 셀 상태 값을 증가시켜 출력을 강화한다.

3. 출력 게이트 : 셀 상태를 바탕으로 출력을 결정한다.

 

망각 게이트와 입력 게이트는 셀 상태 변경을 위한 게이트이며,

출력 게이트는 다음 단계로 전달할 출력을 만들어내는 게이트이다.

 

1. 망각 게이트에서 온 신호와 곱하기

2. 입력 게이트에서 온 값을 더하기

 

망각게이트 신호 ft

ft = 0이면, 셀 상태를 0으로 초기화하고,

ft = 1이면, 셀 상태를 그대로 둔다.

이 값이 셀 상태에 곱해지므로 수정된 셀 상태 C(t)는 [0, C(t-1)] 범위의 값이 된다.

(sigmoid 결과의 범위는 [0, 1]) 즉, 언제나감소된 결과가 나온다. 

 

입력 게이트

두 개의 신호를 생성하고 이 둘을 곱한 뒤 셀 상태에 더한다.

C는 출력 후보값이다.

i는 0과 1 사이의 값으로, 후보 값을 얼마나 전달할지를 결정한다.

중요한 후보를 잘 가려서 셀 상태에 반영할 수 있는지를 학습할 수 있게 된다.

 

출력 : 셀 상태에 tanh를 적용한 값

이를 그대로 내보내지 않고, 이전 상태와 현재 입력에 대해 sigmoid를 적용해 [0, 1] 사이값을 만든 뒤,

출력하려고 하는 신호에 곱해 크기를 조절한다. (현재의 출력이 얼마나 중요한지 조절하는 것과 같음)

O는 출력의 정도를 조정한다.

 

결론적으로

LSTM은 중요한 입력 값을 인식해서 장기 상태에 저장하고, 필요한 기간 동안

보존하는 기능과 함께 필요할 때, 이를 추출할 수 있는 능력을 학습한다. 

연결강도에 의해 파라미터 수도 대폭 늘어날 수밖에 없다.

 

따라서 기능이 유사하며, 좀 더 단순화된 구조인

GRU(Gated Recurrent Unit)

게이트 순환 유닛이라고도 한다.

따로 셀 상태를 두지 않고, 하나의 출력만이 존재하지만

이 출력이 셀 상태처럼 장기 의존성 문제를 해결할 수 있는 능력이 있다.

 

게이트제어기를 이용해 망각 게이트와 입력 게이트를 모두 제어한다.

GRU 셀은 두 개의 게이트로 구성되는데,

리셋게이트

갱신게이트

 

출력을 제어하는 게이트는 사라져, 두 게이트의 동작에 따라 나온 신호가 그대로 출력으로 전달된다.

 

갱신 게이트는 게이트 제어기의 역할을 수행

LSTM의 망각 게이트와 입력 게이트의 일을 선별적으로 수행하게 한다.

 

리셋 게이트는 이전 출력을 얼마나 제공할 것인지를 결정