주의(기계학습)
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개의 뉴럴 네트워크 계층으로 구성됩니다.아래의 '바리안트' 섹션을 참조하십시오.
정적 이미지를 보려면 여기를 클릭하십시오.파일: Attention-1-sn.png |
|
매트릭스로 볼 때 주의 가중치는 네트워크가 상황에 따라 초점을 조정하는 방법을 보여줍니다.
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 행렬의 높이입니다. |
「 」를 참조해 주세요.
- 트랜스포머(머신러닝 모델) § 도트 제품에 대한 관심 확대
- Perceiver © Query-Key-Value(QKV; 쿼리 키 값) 주의 컴포넌트
레퍼런스
- ^ Yann Lecun (2020). Deep Learning course at NYU, Spring 2020, video lecture Week 6. Event occurs at 53:00. Retrieved 2022-03-08.
- ^ 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.
- ^ 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].
- ^ 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].
- ^ 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].
- ^ 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.
- ^ "Pytorch.org seq2seq tutorial". Retrieved December 2, 2021.
- ^ a b Luong, Minh-Thang (2015-09-20). "Effective Approaches to Attention-based Neural Machine Translation". arXiv:1508.04025v5 [cs.CL].
- ^ Bahdanau, Dzmitry (2016-05-19). "NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE". arXiv:1409.0473.
- ^ Neil Rhodes (2021). CS 152 NN—27: Attention: Keys, Queries, & Values. Event occurs at 06:30. Retrieved 2021-12-22.
- ^ Alfredo Canziani & Yann Lecun (2021). NYU Deep Learning course, Spring 2020. Event occurs at 05:30. Retrieved 2021-12-22.
- ^ Alfredo Canziani & Yann Lecun (2021). NYU Deep Learning course, Spring 2020. Event occurs at 20:15. Retrieved 2021-12-22.
- ^ Robertson, Sean. "NLP From Scratch: Translation With a Sequence To Sequence Network and Attention". pytorch.org. Retrieved 2021-12-22.