언어모델
통계에서 시작
사실 상 모든 말뭉치를 수집할 수 없는데, 처음 보는 문장이 나오면 다 0으로 처리됨.
순환신경망(rnn)
시간순서대로 입력, 시간순서 보존 연속형 데이터 처리하기 좋음
히든스테이트와 인풋데이터를 처리를 해서 밖으로 출력
데이터를 다루기 위해서 은닉층의 노드에서 활성화 함수를 통해 나온 결과값을 은닉층의 입력으로 사용
RNN은 입력 시퀀스와 출력 시퀀스의 길이를 다르게 설계할 수 있다
단점: 병렬화 불가능(동시처리x),
기울기 폭발-소실
사람이 옛날 기억을 잊는 것 처럼, 처음에 입력한 정보를 잘 반영하지 못함.
RNN의 활성화 함수인 tanh 함수의 도함수는 최댓값이 1인 함수입니다. 이 경우 역전파 과정에서 값이 점점 작아져 기울기소실이 발생함
다층 퍼셉트론 신경망(Multi-Layer Perceptron, MLP)에서도 시그모이드 함수를 여러 층 겹쳐 쌓으면 기울기 소실 문제가 발생해서 ReLU로 해결
연속형 데이터
순서에 따라 입력되는 벡터가 다른 의미를 나타내는 특징을 갖는 데이터입니다.
ex) 자연어, 시계열 데이터
lstm&GRU
기울기 소실을 해결하고자 등장. 보편화된 방법이 됨.
forget gate : 과거 기억을 얼마나 가져갈까? 얼마나 잊을지
input gate : 새롭게 입력된 정보를 얼마나 기억을 할까?
output gate : 다음 스텝으로 정보를 얼마나 넘겨줄까?
LSTM은 GRU보다 시기적으로 먼저 발표되었으며 LSTM은 3개, GRU는 2개의 gate를 적용하였습니다.
문제점: gate도 세개나 있고 각각의 가중치가 있어 연산이 넘 많아
이 파라미터를 좀 줄여보자
👇
GRU
cell-state가 사라졌습니다. hidden state하나로 장기기억, 단기기억 결정
reset gate : 과거 정보를 얼마나 활용을 할까?
기존 RNN,GRU 모델의 단점 :
가방(문맥벡터)이 고정되어 있기 때문에
Attention
Sequense to sequense > 내용이 다 안담김
연산된 정보를 각각 넘겨줘서 유사한 정보를 넘겨서 각각 전달..?
3개 입력하면 3개 히든 스테이트 전달 디코더에도 히든 스테이트 존재
각각을 내적해서 어텐션 가중치(관련도)를 연산함.>softmax
곱해서 어쩌고 저쩌고..
어려워어려워
영어엔 start가 없고 스페인에는 start가 있는 이유
번역 시작할거야! 라는 뜻
어텐션
대본을 한꺼번에 넘기지 말고 문장을 쪼개서 넘겨주면 집중할 부분에 집중해서 첫 번째 부분도 잊지 않고 잘 해석 가능?
LSTM의 구조에서 "뒷쪽 시퀀스의 정보에 비중을 결정할 수 있으면서 동시에 앞쪽 시퀀스의 정보를 완전히 잃지 않을 수 있습니다."는 설명은 기울기 손실로 인해 앞쪽 시퀀스의 정보가 점점 손실되고 뒤쪽 시퀀스의 정보가 비교적 많이 전달되는데 LSTM으로 이 문제를 조정(해결)할 수 있다는 의미인가요?
rnn이 엄청 길어지면 앞부분은 기억 안 나. 가중치가 더 해지면서 앞쪽 시퀀스의 정보를 잃음.
장기기억 cell state 중요한 내용은 여기서 끌고가고
forget gate : 장기기억 중에서 얼마나 가져갈지
input gate : 단기기억 중에서 장기기억으로 얼마나 변환할지
output gate : 장기기억 & 단기기억 합해서 대답!
장기기억 출력값: 오전에 회의를 했고, 회의 내용 일부. 단기기억의 일부.
단기기억: 나 점심 뭐 먹을거얌~!
오후
GRU에서 forget gate만 열리면 (input gate가 닫히면) 이전 정보만 반영하고, 반대로 input gate만 열리면(forget gate가 닫히면) 이전 정보를 모두 잊고 입력 정보만 반영하는 건가요?
a. 단기 a
b. 장기 a-1
입력과 출력을 다르게 설계
입력층 노드 개수, 출력층 노드 개수
퀴즈
통계적 모델
a. 조건부 확률
b. P(I)*P(am||I)...
c. 코퍼스에 없는 문장은 0으로 나옴 <= 세상 모든 corpus를 모을 순 없자나 ㅠ
신경망 모델
a. word2vec, fastText
RNN
a. 자기 자신으로 돌아오는 엣지가 있다. (펼치면 옆으로 전달하는 형태)
b. 장점: 차례로 정보를 반영하므로 시간 정보를 수집 가능. 시계열 데이터
c. 단점: 병렬처리 불가 > GPU활용 불가, 기울기 소실(앞단에 입력되었던 정보를 소실함)
lstm
a. state: 장기(cell)/ 단기(hidden)
b. gate: 3개
i. input: 새로 입력된 정보 중 어떤 것을 cell state에 저장할 것인지
ii. forget: 과거의 정보 중 버릴 것을 버림
iii. output: 무엇을 output으로 내보낼지 정함. cell state에 영향을 주지 않음
c. 단점: 너무 복잡 - > 연산, 업데이트 해야 할 파라미터
GRU
a. cell-state + hidden-state
b. gate 2개
i. output gate 없음
ii. forget + input => Z
과제
참고링크