딥러닝 어텐션의 의미와 개념에 대해 알아보겠습니다.
딥러닝 어텐션의 의미와 개념 이해
딥러닝 어텐션 의미 인공지능(AI)자연어 처리 모델에서는 입력된 문장 데이터에서 문장의 중요한 특정 부분에 더 집중하여 중요한 특정 부분을 보다 집중적으로 살펴보는 기술을 말한다.딥러닝 어텐션은 인공지능의 자연어 처리 모델이 주어진 문장에서 핵심 단어를 선택하여 더 집중하여 더 중요한 것으로 처리할 수 있게 해주는 도구이자 기술이다.어텐션은 인공신경망, 영상처리, 자연어 처리 분야에서 활용될 수 있다.특히 자연어 처리 분야에서 대표적으로 활용되고 있다.어텐션은 가중치와 비슷하지만 다르다.가중치와 어텐션은 모두 목표값에 얼마만큼의 가중치를 줄 것인가의 역할을 나타내는 부분이지만, 어텐션은 특정 영역의 입력값을 반영하여 그 중 어느 부분에 더 집중할 것인가를 목표로 하는 방식이다.어텐션 메커니즘은 seq2seq의 문제점과 한계를 극복하기 위해 제안된 기술이다.
딥러닝 어텐션 의미 및 개념 설명
딥 러닝 어텐션은 언어 처리에서 모델이 입력 데이터의 특정 부분에 더 집중하고 해당 부분을 더 중요한 것으로 취급할 수 있도록 하는 기술을 말합니다. 딥 러닝 어텐션은 모델이 입력 데이터를 처리하는 동안 어떤 부분이 더 중요한지 판별하는 도구입니다. 딥러닝 주의는 모델이 문장에서 주의를 기울여야 할 부분을 선택하고 그 부분을 더 잘 처리하도록 돕는 기술입니다. 예를 들어, “어젯밤 문을 열고 일어나서 감기에 걸렸어요”와 같은 문장이 있다면 여기서 중요한 내용은 어제 한 일이 아니라 현재 감기에 걸렸다는 것입니다. 따라서 AI가 “감기”라는 단어에 더 집중할 수 있도록 하는 기술이 주의 기술입니다. 사람들이 문장을 이해할 때, 문장에서 가장 중요한 단어에 더 집중하여 이해합니다. 딥러닝에서 이 원리를 인공 신경망에 적용하여 입력 문장 데이터의 전체 또는 일부를 검토하고, 어느 부분이 자체적으로 중요한지 판단하고, 중요한 부분에 더 집중합니다. 주의 메커니즘을 통해 인공 지능(AI)은 언어를 번역하거나 언어를 처리할 때 원본 텍스트를 참조하고 디코딩할 단어와 관련된 중요한 부분에 더 집중하며, 입력 문장이 아무리 길어도 전체 맥락을 균등하게 참조할 수 있으므로 더 나은 번역이나 더 효과적인 언어 처리가 가능합니다. 따라서 주의는 인공 지능 언어 처리에서 매우 중요한 기술입니다. 주의 역시 인간의 시각 집중 현상을 구현하기 위한 신경망 기술이다. 주의는 가중치와 구별된다. 주의와 가중치는 모두 해당 값에 얼마만큼 가중치를 둘 것인가의 역할과 처리가 있으나, 주의는 가중치와 달리 특정 부분의 입력 값만을 반영하여 전체 문장의 어느 부분에 더 집중해야 할지 판단하는 기술이다. 가중치가 특정 부분에 집중하는 것이 아니라 모델의 최종 결과 값이 실제 세계를 얼마나 정확하게 반영할 수 있는가에 집중한다면, 주의는 특정 부분에 더 집중하고자 하는 기술이다.[어텐션과 가중치 비교]
어텐션은 토큰에 관심 있는 맥락적 정보를 도출하는 알고리즘으로 구성된다. 인코더-디코더 방식에서는 입력 데이터를 일정 크기의 벡터로 압축한 후, 디코더를 통해 원하는 출력 값을 생성한다. 일정 크기의 벡터의 크기는 고정되어 있는데, 이는 데이터를 일정 크기의 벡터로 압축하여 표현하는 것이다. 고정 크기의 벡터를 사용할 경우, 일반적으로 벡터의 크기를 이용해 데이터를 압축하므로 데이터의 특성을 나타내는 특징이 될 수 있지만, 동시에 데이터 손실이 발생할 수 있다. 이러한 문제를 극복하는 방법 중 하나가 어텐션 기법이다. 어텐션 기법에서는 디코딩에 필요한 정보를 인코더의 은닉 상태에서 얻는다. 어텐션 메커니즘 구조에서는 입력 데이터 값이 주어지면 순환 신경망(RNN)의 은닉 상태 값과 역방향 순환 신경망의 은닉 상태 값을 연결하여 사용한다. Attention에서 원래 문장의 숨겨진 벡터를 사용하여 컨텍스트 벡터를 생성하고 이를 활용하여 언어 번역을 진행합니다. 이때 Attention을 통해 문제의 단어에 더 집중하여 입력 데이터에 대한 인코딩 벡터를 생성하여 전체 입력을 다시 인코딩합니다. 컨텍스트 벡터는 현재 디코딩할 단어와의 관련성을 반영하여 입력 문장을 다시 인코딩하여 중요도에 따라 전체 컨텍스트 정보를 반영한 벡터입니다. 딥러닝 모델은 어떤 영역에 집중해야 하는지 파악할 수 있습니다. Attention은 5단계로 구성됩니다. 첫 번째는 디코더의 숨겨진 벡터와 입력 숨겨진 벡터 간의 Attention 점수를 계산하는 것입니다. Attention 점수는 중요한 단어에 집중하는 것을 의미합니다. 인공 신경망 모델이 각 인코딩 시간 단계에 대해 계산된 특징으로 자동으로 계산하는 0~1 사이의 값입니다. 1에 가까울수록 더 집중해야 합니다. Attention 점수는 각 단어에 대해 주의를 기울여야 하는 가중치입니다. 두 번째는 Attention 점수에서 소프트맥스를 가져와 각 점수를 확률 분포로 정규화하는 것입니다. 세 번째는 확률 값으로 표현된 어텐션에 대한 분포를 사용하여 인코더의 은닉 상태의 가중 합 벡터를 만드는 것입니다. 어텐션의 출력에는 높은 어텐션 점수를 받은 단어에 대한 많은 정보가 포함됩니다. 네 번째는 어텐션 출력인 인코더의 가중 합 정보와 디코더의 은닉 상태를 사용하여 결과를 예측하는 것입니다. 다섯 번째는 디코더 시간 단계를 진행하면서 반복됩니다. 어텐션 메커니즘은 seq2seq의 문제를 보완하기 위해 제안된 기술입니다. seq2seq는 입력 시퀀스에 대한 모든 정보를 단일 고정 크기 벡터인 컨텍스트 벡터로 인코딩한 다음 디코더에 전달하여 다른 도메인의 시퀀스를 출력합니다. seq2seq는 장점이 있지만 한계도 있습니다. 예를 들어 입력 시퀀스의 길이에 관계없이 고정 크기 벡터에 대한 모든 정보를 항상 압축하기 때문에 정보 손실이 발생할 수 있습니다. 또한 입력 시퀀스의 길이가 길어지면 순환 신경망(RNN)에서 발생하는 그래디언트 소실 문제가 있습니다. 어텐션은 중요한 부분에 더 집중하는 것을 목표로 하는 접근 방식입니다. 문장에서 중요한 단어에 조금 더 집중할 수 있습니다. Attention에서 인코딩 단계의 마지막 숨겨진 상태만 디코더로 전달되는 대신 인코더의 모든 숨겨진 상태가 디코더로 전달됩니다. 인코더에서 출력된 모든 숨겨진 상태 벡터는 디코더로 전달되어 시계열 변환을 수행하며, 이때 Attention Layer가 디코더에 추가됩니다. Attention Layer는 신경망이 궁극적으로 표현하고자 하는 단어의 정렬을 추출합니다. 여기서 정렬은 단어 간의 대응 관계를 나타내는 정보입니다. Attention에서 각 단어의 가중치가 계산되어 반영되며, 가중치가 높을수록 더 많은 주의를 기울여야 함을 의미합니다. 이 방법을 통해 Attention은 디코더가 예측하려는 단어를 보다 정확하게 예측할 수 있습니다.