[AI소프트웨어] RNN
# Encoding과 Decoding 간 관계
- 입력 값으로 몇 개가 들어와도 출력 값으로의 과정 중 Attention(Blending)은 Decoding의 개수와 같다.
즉, 몇 단어가 입력되어도 출력할 단어의 개수만큼 블렌딩이 일어난다는 말이다.
# Attention Mechanism
- Global, Selective, Dynamic Sequenece Summarization(Blending)
- 기존 RNN의 과정은 이후의 토큰을 이전의 토큰이 알 수 없었다.
- Attention Mechanism은 어텐션 블록을 만들어서 언제 어느 토큰이든 다른 곳에 붙여 줄 수 있다.
따라서 전체 블록 안의 토큰이 글로벌하게 붙을 수 있어서 대량의 언어 뭉치의 경우에도 성능을 유지할 수 있다.
# Softmax 함수
소프트맥스 함수상에서 x축 기준으로 0 이하의 y 값은 1보다 작다.
소프트맥스 함수는 어떤 결과 값 y를 다음 토큰에 곱해서 가중치를 구해내는 함수이다
이때 y 값이 1보다 작다는 것은 다음 토큰에 곱하면 가중치가 0이 되어서 불필요한 벡터 값을 떨어트리고
중요한 벡터 값만 유지하겠다는 의미이다.
# Attention Score
인공지능의 블랙박스 문제를 어느 정도 해결한 것이다.
컴퓨터가 어떤 문장이나 이미지에 대해서 해석을 진행할 때 어떻게 해석을 하고 있는지 모른다는 문제가 발생했었다.
그런데 이 Attention Score는 문장이나 이미지에 대해서 해석을 진행할 때 컴퓨터가 어느 곳을 집중적으로 의미를 두고 있는지를 대략적으로 파악할 수 있게 되었다.
# Architecture
- 기존에 누군가가 잘 학습시켜 놓은, 좋은 네트워크를 통한 표준화
- 현재는 Transfomer가 그 역할을 하고 있다.
- 맘바와 같은 아키텍쳐가 트랜스포머를 이겨 보려고 노력하는 중이다.
- 코드의 표준화
- 허깅 페이스
- 파이토치를 텐서플로우로
- 텐서플로우를 파이토치로
- 사용하고 싶은 클라이언트들을 위한 컨버팅 서비스. 즉, 코드의 표준화
# AutoEncoder
어떤 라벨을 주지 않더라도 어떤 이미지든 그와 관련된 것에 대하여 인공지능 자체가 이해도를 성립
Denoising-AutoEncoder(DAE)
일부러 노이즈를 삽입하여 불필요한 데이터를 덜어내고 본질적인 데이터에 집중할 수 있도록
# Self-Supervised Learning
어떠한 학습 데이터 없이 기계가 스스로 라벨링을 진행한 다음 세상에 대해 이해하는 것이다
언어를 배우고 맥락을 배운다.
# MLM
- BERT
# Auto-Reg
- GPT
# Transformer
- 어떻게 해야 여러 가지 아이템들을 섞을 수 있을까
- 어떻게 해야 롱 텀 디펜던시를 잡을 수 있을까
- 어떻게 해야 순서를 넣어 줄 것인가
- 어떻게 해야 빠르게 할 수 있을까
- 어떻게 해야 간단한 아키텍처로 녹여낼 수 있을까
# 코사인 유사도
소프트맥스 함수는 x=0에서 값이 y=1인 e^x 함수
- Query : 입력한 것
- Key : Value를 인덱싱한 것
- Value : 원본 데이터
'유사도(similarity)'라는 것은 q와 k의 dot product에 q와 k의 길이를 곱한 것을 나눈 것.
즉, 코사인 각도가 작아지면 작아질수록 1에 가까워지기 때문에 유의미한 값이 도출된다.
여기서 나온 유의미한 값으로 위에서의 자연상수 지수함수 e^si를 구하면 최종적으로 값이 결론된다.
쿼리와 키를 같은 방향으로 align시킨다는 것이 중요하다.