본문 바로가기

혼자서

20220718

 

Vanishing Gradient :

은닉층이 많은 다층 퍼셉트론 신경망에서 은닉층을 많이 거칠수록 오차가 크게 줄어 학습이 되지 않고, 기울기가 거의 0으로 소멸

네트워크의 학습이 느려지고, 학습이 완료되지 않은 상태에서 정지.

이를 해결하기 위해 사라져 가는 성질을 갖지 않는 비선형함수를 활성화 함수로(ex. ReLu 함수)를 선택

 

Long-Term Dependency (장기 의존성) :

sequence data에서 관련된 요소들이 멀리 떨어져 있는 경우 sequence에 장기 의존성이 존재한다고 함.

RNNinput되는 sequence의 길이가 길면 sequence 앞부분 요소의 영향력이 time step이 진행될수록 점점 약해져서 일정 시간이 지나면 소멸하게 됨.

(+오차 역전파 과정에서 전달되는 gradient 크기가 작아져 vanishing gradient 현상 발생

+반대로 역전파 과정에서 gradient가 기하급수적으로 커지는 exploding gradient도 가능)

이러한 장기 의존성과 불안정한 gradient 문제의 해결 방법으로 LSTMGRU 존재)

 

 

LSTM(Long Short-Term memory) : 하나의 은닉 상태를 갖는 RNN과 달리 2개의 state를 가진다. 단기상태 h(t), 장기상태 c(t)

입력 게이트, 망각 게이트, 출력 게이트라고 하는 3개의 게이트 구조 추가.

장기상태 c(t-1)이 삭제 게이트를 지나 일부 기억을 잃고, 이후 입력 게이트로부터 선별된 현재 시점에 대한 정보를 추가하여 c(t)가 만들어짐. 즉 중요한 입력을 인식하고 장기 상태에 저장. 적절한 기간동안 이를 보존하고, 필요 시 이를 추출하기 위해 학습한다.

 

RNN 계열의 모델 : 셀의 출력값이 이전 상태의 값에 따라 변하기 때문에 종속적이다. 즉 병렬처리가 불가능하여 속도가 느림. 또한 고정된 크기의 벡터에 모든 입력 정보를 압축하기 때문에 정보의 손실이 발생 가능.

 

RNN + Attention 계열의 모델 : 기존의 RNN처럼 하나의 context vector를 사용하여 전체를 출력하지 않고 각 출력마다 encoder의 결과 값을 한번 더 참고. 따라서 해당 시점에서 예측해야 할 단어와 연관이 있는 입력 단어 부분을 조금 더 집중해서 볼 수 있음. RNN의 느린 속도란 단점은 그대로.

 

Transformer : RNN의 병렬 처리 불가능이라는 문제를 이겨내고 순차 계산을 행렬곱을 사용하여 한 번에 처리할 수 있게 됨. 이 한 번의 연산으로 모든 주요 정보 임베딩 가능. 행렬 사용시 입력 데이터 순서가 섞이는 것을 방지하고자 position encoding 사용.

Residual connection : 출력된 값이 다음 층에 들어가기 전 추가 정보를 입력함

작은 잔차만을 학습하기 때문에 residual connection(잔차 연결)

self attention : query, key, value의 출처가 같은 것

encoder-decoder attention : querydecoder에서, key, valueencoder에서 추출하여 self-attention을 가함

self-attentionq k v 가 같은 source에서, source-target attentionq target, k, vsource에서.

 

'혼자서' 카테고리의 다른 글

DALL2-pytorch (구현 실패)  (0) 2022.07.21
Open AI Glide: Text-to image Generation Explained with code 따라해보기  (0) 2022.07.20
20220712  (0) 2022.07.19
20220711  (0) 2022.07.19
20220708  (0) 2022.07.19