주의(기계학습)

Attention (machine learning)

신경망에서 주의력인지적 주의력을 모방하는 기술이다.그 결과, 입력 데이터의 일부분이 향상되는 한편, 그 외의 부분은 감소합니다.그 이유는 네트워크가 데이터의 작지만 중요한 부분에 보다 많은 초점을 두어야 하기 때문입니다.데이터의 어떤 부분이 다른 부분보다 더 중요한지 배우는 것은 상황에 따라 다르며, 이것은 경사 강하로 훈련된다.

주목과 같은 메커니즘은 1990년대에 곱셈 모듈, 시그마 파이 단위 및 하이퍼 [1]네트워크와 같은 이름으로 도입되었습니다.이 유연성은 런타임에 고정되어야 하는 표준 가중치와 달리 런타임 중에 변경될 수 있는 "소프트 가중치"로서의 역할에서 비롯됩니다.신경 튜링 기계의 메모리, 구별 가능한 신경 [2]컴퓨터의 추론 작업, 변압기의 언어 처리, 지각기[3][4][5][6]다감각 데이터 처리(사운드, 이미지, 비디오 및 텍스트)가 주목의 용도이다.

일반적인 생각

i({i로 라벨이 지정된 일련의 토큰을 지정하면 신경망은 토큰i({ i에 대해 소프트 를 계산합니다. 각 은 w})가 음이 아니고 입니다.에는 값 })가 할당되어 .이것은 i i번째 토큰의 Word 삽입에서 계산됩니다. v \ _ { iw _ { v i }는 주의 의 출력입니다.

쿼리 키 메커니즘은 소프트 웨이트를 계산합니다.각 토큰의 단어 삽입으로부터 대응하는 쿼리 })와 를 계산합니다.가중치는 닷 j Softmax 함수를 사용하여 구합니다.서 i i 현재 토큰을 j(\ j 현재 토큰을 나타냅니다.

아키텍처에 따라서는 여러 개의 주의사항이 존재하며, 각각 고유한 쿼리, 키 및 값을 사용하여 독립적으로 작동합니다.

언어 번역 예시

영어를 프랑스어로 번역하는 머신을 구축하기 위해서는 기본적인 인코더 디코더와 어텐션유닛을 접목합니다(아래 그림).가장 간단한 경우, 주의 유닛은 반복적인 인코더 상태의 도트 곱으로 구성될 수 있으며 훈련이 필요하지 않습니다.실제로 주의 단위는 훈련이 필요한 쿼리-키-값이라 불리는 완전히 연결된 3개의 뉴럴 네트워크 계층으로 구성됩니다.아래의 '바리안트' 섹션을 참조하십시오.

Encoder-Decoder with attention. The left part (black lines) is the Encoder-Decoder, the middle part (orange lines) is the attention unit, and the right part (in grey & colors) is the computed data. Grey regions in H matrix and w vector are zero values. Numerical subscripts indicate vector sizes while lettered subscripts i and i-1 indicate time steps.
인코더-디코더(주의)왼쪽 부분(검은색 선)은 인코더 디코더, 중간 부분(주황색 선)은 어텐션 유닛, 오른쪽 부분(회색 & 컬러)은 계산된 데이터입니다.H 매트릭스와 w 벡터의 회색 영역은 0 값입니다.숫자 첨자는 벡터 크기를 나타내며 문자 첨자 i 및 i-1은 시간 단계를 나타냅니다.

정적 이미지를 보려면 여기를 클릭하십시오.파일: Attention-1-sn.png

범례
라벨. 묘사
100 최대 문장 길이
300 삽입 크기(단어 차원)
500 은닉 벡터의 길이
9k, 10k 입력 언어 및 출력 언어의 사전 크기.
x, Y 9k 및 10k 1-hot 사전 벡터.x → x는 벡터 곱셈이 아닌 룩업 테이블로 구현됩니다.Y는 선형 디코더 레이어 D의 1핫 최대화입니다.즉, D의 선형 레이어 출력의 argmax를 취합니다.
x 300단어 내장 벡터벡터는 보통 GloVe 또는 Word2Vec같은 다른 프로젝트에서 미리 계산됩니다.
h 500길이의 인코더 숨겨진 벡터각 시점에서 이 벡터는 앞의 모든 단어를 요약합니다.마지막 h는 "문장" 벡터, 또는 힌튼이 말하는 사고 벡터로 볼 수 있다.
s 500길이의 디코더 숨겨진 상태 벡터.
E 500뉴런 RNN 인코더500 출력입력 카운트는 소스 임베딩으로부터의 800~300 + 반복 접속으로부터의 500 입니다.인코더는 디코더를 초기화하기 위해서만 디코더에 직접 공급됩니다.따라서 직접 접속은 매우 희미하게 표시됩니다.
D 2층 디코더반복층은 500개의 뉴런을 가지고 있고 완전히 연결된 선형층은 10k개의 뉴런을 가지고 있다.[7]선형 레이어만 500만 (500 * 10k)의 가중치를 가집니다.이것은, 반복 레이어보다 최대 10배 많은 가중치입니다.
스코어 100길이의 얼라인먼트 점수
w 100길이의 벡터 어텐션 웨이트.이는 학습 단계 중에 변화하는 "하드" 신경 체중과 대조적으로 전진 경로 중에 변화하는 "소프트" 체중이다.
A 주의 모듈: 반복 상태의 닷 제품 또는 Query-Key-Value 레이어 완전 연결 레이어일 수 있습니다.출력은 100 길이의 벡터 w입니다.
H 500x100. 매트릭스에 연결된 100개의 숨겨진 벡터 h
c 500 길이의 컨텍스트 벡터 = H * w. c는 w에 의해 가중치가 부여되는 h개의 벡터의 선형 조합입니다.

매트릭스로 볼 때 주의 가중치는 네트워크가 상황에 따라 초점을 조정하는 방법을 보여줍니다.

I 사랑하다
.94 .02 .04
t' .11 .01 .88
에임 .03 .95 .02

주의 가중치에 대한 이러한 견해는 신경망이 비판받는 "설명 가능성" 문제에 대처한다.어순에 관계없이 말 그대로 변환을 실행하는 네트워크에서는 이러한 용어로 분석할 수 있는 경우 대각선 우위의 매트릭스가 됩니다.엇대각 우위는 주의 메커니즘이 더 미묘하다는 것을 보여준다.디코더를 통과하는 첫 번째 패스에서는 주의 무게의 94%가 첫 번째 영어 단어 "I"에 있기 때문에 네트워크는 "je"라는 단어를 제공합니다.디코더의 두 번째 패스에서는 주의 무게의 88%가 세 번째 영어 단어 "you"에 있으므로 "t"를 제공합니다.마지막 패스에서는 주의력의 95%가 두 번째 영어 단어 "love"이기 때문에 "aime"을 제공합니다.

변종

도트 제품, 쿼리 키 값,[3] 하드, 소프트, 셀프, 크로스, Luong,[8] Bahdanau[9] 등 다양한 종류의 관심이 있습니다.이러한 변형은 인코더 측 입력을 재조합하여 그러한 효과를 각 타깃 출력에 재배포합니다.종종 도트 곱의 상관 관계 스타일 행렬이 재가중 계수를 제공합니다(범례 참조).

1. 인코더 대응 도트 제품 2. 인코더/디코더 QKV 3. 인코더 전용 도트 제품 4. 인코더 전용 QKV 5. Pytorch 튜토리얼
주의를 [8]계산하려면 인코더와 디코더가 모두 필요합니다.
주의를 [10]계산하려면 인코더와 디코더가 모두 필요합니다.
주의 계산에는 디코더가 사용되지 않습니다.corr에 1개만 입력하면 W는 도트 제품의 자동 조정입니다. wij = xi * xj[11]
주의 [12]계산에는 디코더가 사용되지 않습니다.
주의 계산에는 도트 곱의 상관관계가 아닌 FC 레이어가 사용됩니다.[13]
범례
라벨. 묘사
변수 X,H,S,T 대문자 변수는 현재 단어뿐만 아니라 문장 전체를 나타냅니다.예를 들어 H는 인코더 숨김 상태의 매트릭스입니다.열마다 1단어씩입니다.
세인트 S = 디코더 숨김 상태, T = 표적 단어 삽입.Pytorch Tutorial 변형 교육 단계에서 T는 사용된 교사 강제 수준에 따라 두 가지 소스를 번갈아 사용합니다.T는 네트워크의 출력 워드의 임베딩일 수 있습니다. 즉, 임베딩 (argmax (FC 출력)교사 강제와 함께 T는 일정한 강제 확률(예: 1/2)로 발생할 수 있는 알려진 올바른 단어의 삽입일 수 있다.
X, H H = 인코더 숨김 상태, X = 입력 단어 포함
W 주의 계수
Qw, Kw, Vw, FC 쿼리, 키, 벡터에 대한 가중치 매트릭스.FC는 완전히 연결된 무게 매트릭스입니다.
동그라미 +, 동그라미 x 동그라미 + = 벡터 연결.원으로 표시된 x = 행렬 곱셈
코루 column wise softmax(도트 제품의 모든 조합 매트릭스)도트 곱은 바리안트 #3의 x xji, 바리안트1의 h * sj i , 바리안트2의 컬럼(Kw*H) * 컬럼 j (Qw*S) 및 i 바리안트4의 컬럼(Kw*X) * 컬럼 j (Qw*X)입니다i.바리안트5의 경우 완전 접속 레이어를 사용하여 계수를 결정합니다.배리언트가 QKV일 경우 도트 곱은 sqrt(d)에 의해 정규화됩니다.여기서 d는 QKV 행렬의 높이입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Yann Lecun (2020). Deep Learning course at NYU, Spring 2020, video lecture Week 6. Event occurs at 53:00. Retrieved 2022-03-08.
  2. ^ Graves, Alex; Wayne, Greg; Reynolds, Malcolm; Harley, Tim; Danihelka, Ivo; Grabska-Barwińska, Agnieszka; Colmenarejo, Sergio Gómez; Grefenstette, Edward; Ramalho, Tiago; Agapiou, John; Badia, Adrià Puigdomènech; Hermann, Karl Moritz; Zwols, Yori; Ostrovski, Georg; Cain, Adam; King, Helen; Summerfield, Christopher; Blunsom, Phil; Kavukcuoglu, Koray; Hassabis, Demis (2016-10-12). "Hybrid computing using a neural network with dynamic external memory". Nature. 538 (7626): 471–476. Bibcode:2016Natur.538..471G. doi:10.1038/nature20101. ISSN 1476-4687. PMID 27732574. S2CID 205251479.
  3. ^ a b Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N.; Kaiser, Lukasz; Polosukhin, Illia (2017-12-05). "Attention Is All You Need". arXiv:1706.03762 [cs.CL].
  4. ^ Ramachandran, Prajit; Parmar, Niki; Vaswani, Ashish; Bello, Irwan; Levskaya, Anselm; Shlens, Jonathon (2019-06-13). "Stand-Alone Self-Attention in Vision Models". arXiv:1906.05909 [cs.CV].
  5. ^ Jaegle, Andrew; Gimeno, Felix; Brock, Andrew; Zisserman, Andrew; Vinyals, Oriol; Carreira, Joao (2021-06-22). "Perceiver: General Perception with Iterative Attention". arXiv:2103.03206 [cs.CV].
  6. ^ Ray, Tiernan. "Google's Supermodel: DeepMind Perceiver is a step on the road to an AI machine that could process anything and everything". ZDNet. Retrieved 2021-08-19.
  7. ^ "Pytorch.org seq2seq tutorial". Retrieved December 2, 2021.
  8. ^ a b Luong, Minh-Thang (2015-09-20). "Effective Approaches to Attention-based Neural Machine Translation". arXiv:1508.04025v5 [cs.CL].
  9. ^ Bahdanau, Dzmitry (2016-05-19). "NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE". arXiv:1409.0473.
  10. ^ Neil Rhodes (2021). CS 152 NN—27: Attention: Keys, Queries, & Values. Event occurs at 06:30. Retrieved 2021-12-22.
  11. ^ Alfredo Canziani & Yann Lecun (2021). NYU Deep Learning course, Spring 2020. Event occurs at 05:30. Retrieved 2021-12-22.
  12. ^ Alfredo Canziani & Yann Lecun (2021). NYU Deep Learning course, Spring 2020. Event occurs at 20:15. Retrieved 2021-12-22.
  13. ^ Robertson, Sean. "NLP From Scratch: Translation With a Sequence To Sequence Network and Attention". pytorch.org. Retrieved 2021-12-22.

외부 링크