반응형

attention 6

[PyTorch] Multi_head_attention에서 target sequence length와 source sequence length 의미

Multi_head_attention에서 target sequence length와 source sequence length 의미 연구를 위해 pytorch의 multi head attention에 attention mask를 씌워줘야 했다. 도큐먼트를 보면 L은 target sequence length를 의미하고 S는 source sequence length를 말하는데, 이 둘은 무엇일까? pytorch 내부 코드를 뜯어보니 target sequence length는 query의 길이를 의미한다. soure sequence length는 key의 길이를 의미함. 구글링해도 관련 내용을 찾기 어려워서 작성해본당. 나만 모르고 다 아는 내용이라서 구글링해도 못찾았던 거일수도?

[PyTorch] register_hook을 사용하여 Transformer 내부의 Attention matrix(Torch.Tensor)의 gradient 받아오기

register_hook을 사용하여 Transformer 내부의 Attention matrix(Torch.Tensor)의 gradient 받아오기 모델의 파라미터에 대한 grad가 아닌, Tensor object에 대한 grad는 계산만하고 날라가버린다. 즉, loss.backward()를 통해 backpropagation을 진행하면 중간 연산에 필요한 Tensor 변수의 gradient는 .grad로 저장이 안되고 계산이 끝나면 날라간다는 말이다. 따라서 Tensor object에 register_hook 함수로 gradient를 한번 붙잡아야 한다. 붙잡는다는 말은 gradient가 계산되었을 때, 날라가도록 두는게 아니라 다른 변수에 저장해야 한다는 말이다. 나는 중간 연산의 Tensor objec..

[Paper Review] Set Transformer(2018), A Framework for Attention-based Permutation-Invariant Neural Networks

Set Transformer, A Framework for Attention-based Permutation-Invariant Neural Networks Juho Lee, Yoonho Lee, Jungtaek Kim arXiv 2018 PDF, Transformer By SeonghoonYu July 25th, 2021 Summary Set Transforemr is a function that performs permutation invariant by taking elements thar are ordered in the set. The model consists of an encoder and a decoder, both of which rely on attention. This model lea..

[딥러닝] Computer Vision과 NLP에서의 attention 함께 살펴보기

안녕하세요, 최근에 NLP를 공부하고 있는데, CV에서 사용하는 attention을 생각하고 NLP의 attention을 공부했더니 이해가 잘 안되더라구요 ㅎㅎ 두 분야의 attention을 함께 살펴보도록 하겠습니다. Computer Vision CV에서 attention은 피쳐맵에서 픽셀 또는 채널 간 중요한 요소를 계산하여 중요도에 따른 가중치 정보를 담은 attention vector를 생성합니다. 그리고 이 attention vector를 피쳐맵에 곱하여 가중치를 가하죠. 대표적으로 SENet, CBAM, SKNet이 있습니다. SENet을 잠시 살펴보면 피쳐맵에서 채널 간 가중치를 계산하여 이 가중치를 피쳐맵에 element-wise로 곱합니다. class SEBlock(nn.Module): ..

[논문 읽기] PyTorch 구현 코드로 살펴보는 Attention(2015), Neural Machine Translation by jointly Learning to Align and Translate

안녕하세요, 오늘 읽은 논문은 Neural Machine Translation by jointly Learning to Align and Translate 입니다. 해당 논문은 Seq2Seq 구조에서 Attention 매커니즘과 양방향 RNN(bidirectional RNN)을 제안합니다. Seq2Seq 구조는 Encoder와 decoder로 구성됩니다. encoder의 역할은 source sentence를 입력 받아, 고정된 벡터 크기로 반환합니다. 저자는 이 고정된 길이의 벡터가 긴 문장을 번역하는데 문제점으로 작용한다고 합니다. 따라서 decode가 어떤 source sentence에 집중해야 하는지 결정하도록 합니다. decoder를 attention 매커니즘으로 작동하게 함으로써, encoder..

논문 읽기/NLP 2021.06.19

[논문 읽기] Residual Attention Network(2017) 리뷰

안녕하세요! 이번에 소개할 논문은 Residual Attention Network 입니다. Residual Attention Network는 자연어 처리에서 활발하게 이용하고 있는 Attention에서 영감을 받아 탄생한 모델입니다. 실제 Attention 알고리즘을 사용하지는 않고, 비슷한 개념을 이용하기 때문에 Attention 이름이 붙여졌습니다. Residual Attention Network는 Attention module로 이루어져 있습니다. 그리고, 이 Attention module은 다른 모델과 결합하여 사용할 수 있습니다. Attention module 내부에는 두 파트로 이루어져 있습니다. 마스크를 생성하는 부분과 기존 모듈(residual 모듈, inception 모듈)이 있습니다. ..

반응형