Transformer는 주로 자연러 처리 분야에서 사용되는 딥러닝 아키텍처로, 시퀀스 데이터의 특성을 잘 캡처하는 트랜스포머 모델입니다. 기존의 순환 신경망RNN과 달리 전적인 self-attention 메커니즘을 사용하여 입력 시퀀스의 모든 위치 간의 상호 작용을 모델링합니다.
주요 구성 요소:
1. Encoder : 입력 시퀀스를 내부 표현으로 변환합니다.
여러개의 층으로 구성되어 있으며, 각 층은 self-attention과 feed-forward neural network로 구성됩니다. 입력 시퀀스의 각 위치에 대해 self-attention을 통해 가중치를 계산하고, 이를 바탕으로 새로운 표현을 생성합니다.
2. Decoder : 출력 시퀀스를 생성하는데 사용됩니다.
Encoder와 유사한 구조를 가지지만, 추가적으로 인코더 출력에 attention을 적용하여 입력 시퀀스의 정보를 참조합니다.
장점:
1. 긴 시퀀스 처리
RNN과 달리 self-attention 메커니즘을 사용하여 모든 위치의 의존성을 고려하므로, 긴 시퀀스에 대한 처리가 가능합니다.
2. 병렬 계산
RNN과 달리 Transformer는 시퀀스 내의 모든 위치 간의 상호 작용을 동시에 계산할 수 있기 때문에 병렬화가 용이합니다.
3. 효율적인 학습
Layer normalization과 잔차 연결residual connections 등의 기법을 사용하여 학습이 안정적으로 수렴하고, 더 높은 성능을 얻을 수 있습니다.
단점:
1. 순서 정보 부족
RNN과 달리 위치 정보를 직접적으로 처리하지 안흥므로, 입력 시퀀스의 순서 정보가 중요한 경우에는 추가적인 처리가 필요할 수 있습니다.
2. 메모리 사용량
Transformer는 입력 시퀀스 내의 모든 위치 간의 상호 작용을 계산하기 위해 많은 메모리를 요구할 수 있습니다.
'STUDY > 인공지능' 카테고리의 다른 글
[머신러닝] 데이터 불균형 처리 방법 및 예제 코드 (0) | 2023.07.19 |
---|---|
[머신러닝] RandomForest, Boosting 모델 설명 및 예제 코드 (0) | 2023.07.19 |
[딥러닝] ResNet이란? 예제 코드 tensorflow, pytorch (0) | 2023.07.17 |
[딥러닝] RNN, LSTM 설명 (0) | 2023.07.17 |
[머신러닝/딥러닝] feature importance(MDI, Drop Column, Permutation) 각 각에 대한 설명, 코드 (0) | 2023.07.16 |