8/6 Today I Learned -1

boks·2024년 8월 6일
post-thumbnail

📖 학습한 내용

  • Attention
  • Transformer

📖 핵심내용

📌 attention

  • 텐서의 성질
    1) 정보를 나타내는 텐서가 웨이트 매트릭스를 통과해도 기존의 정보를 가지고 있다.
    2) 정보를 가진 텐서 두개에, 합이 1인 두개의 웨이트를 각각 곱한다. 이때 두 텐서를 더하면 웨이트의 비율만큼, 두 텐서의 정보가 더해진다. -> 웨이트가 크게 곱해진 텐서의 정보가 더 많이 혼합된 새로운 텐서가 만들어진다.
    3) 내적했을때, 서로 관련이 있는 벡터를 내적하면 큰값이 나오고, 관련이 없는 벡터를 내적하면 작은 값이 나온다.

  • key vector 와 value vector

  • 각 입력단어에 대한 히든스테이트벡터가 양방향으로 생성

  • 가중치계산
    1) 유사도 계산 -> 내적연산
    2) 소프트맥스 정규화

encoder decoder attention

디코더가 출력을 생성할 때 인코더의 출력층에 어떤부분에 더 집중할 수 있는지 하는 것

self attention

  • 더 나은 임베딩이 결과로 나온다.
  • 자기 자신을 포함한 시퀀스의 유사도

벌트는 인코더만 사용한다. -> 임베딩 벡터만 사용한다 -> 단어의 특성 성질을 잘 표현하는 숫자로 표현
단어를 만드는데, 단어가 포함된 시퀀스의 컨택스트 정보를 담는 것이다.
단어는 같은데 다른 뜻(동음이의어)를 구분할 수 있다.
입력된 텍스트 데이터 내에 존재하는 단어들 간의 관계 파악

  • 쿼리 키 벨류
    1) 각 단어마다 쿼리벡터 생성
    2) 동음이의어 두 인스턴스를 포함하여 시퀀스의 모든 단어의가 키벡터 생성
    3) 쿼리벡터를 문장에 있는 다른 모든 단어의 키벡터와 비교 -> 쿼리와 키를 내적연산한다.
    4) 소프트맥스 노말라이제이션(가중치계산) 나온 값을 시퀀스의 각 단어에 곱해준다.
  • Transformer Attention


    -> 키 쿼리 벨류(각 입력 토큰에 대해서 세가지 벡터로 변환된다)
    -> 키벡터 쿼리벡터가 내적연산(유사도 계산)
    -> 쿼리 벡터가 키벡터에 얼마나 주목할지 결정
    -> 가중치 계산한 뒤에 나온 벡터를 벨류벡터에 곱한다.
    -> 임베딩 벡터가 곧 벨류벡터와 같게된다.
  • masked self attention

transformer

  • 위치임베딩
    단어의 순서를 모델에 통합하는 방법에 필요
    -> 문장 내 위치에 대한 정보를 각 단어에 추가한다.
    -> 각 위치의 인덱스에 대해 사인함수와 코사인 함수의 주기적인 변화를 이용하여 계산한다.

흥미로운 점 / 새로 알게된 점

📖 어려운 부분

  • 알기가 어려워서 유튜브를 찾아보며 공부하였다. 단번에 직관적으로 이해하기 어려웠다.
profile
설계엔지니어의 변신

0개의 댓글