[IBM AI course #3] Deep Learning & Neural Networks with Keras
Introduction to Transformers in Keras
Transformer는 자연어 처리(NLP) 분야를 혁신했고, 지금은 이미지 처리, 시계열 예측 등 다양한 영역으로 확장되었다. ("Attention is All You Need” 논문)
RNN과 달리 self-attention을 통해 병렬 처리가 가능해졌다
주요 구성 요소
인코더와 디코더
인코더와 디코더 공통 구조
- Self-attention mechanism
- Feed-forward neural network
- Residual connection
- Layer normalization
인코더
입력을 임베딩 후, Positional Encoding 추가 → 시퀀스 순서 정보 부여
여러 층의 self-attention 및 feed-forward 레이어로 구성
디코더
인코더의 출력을 참조할 수 있도록 Cross-attention 포함
목표 시퀀스를 생성하는 데 사용됨
Self-attention 동작
입력의 각 단어는 세 개의 벡터로 변환됨 → Query, Key, Value
Attention score = Query와 Key의 dot product
Softmax를 적용하여 가중치를 계산한 후 Value에 곱함 → 최종 출력
다양한 위치 간의 의미적 관계를 반영할 수 있게 함
Building Transformers for Sequential Data
시계열, 텍스트, 오디오 데이터는 순서가 중요한 데이터
RNN, LSTM은 장기 의존성 학습에 한계
Transformer는 self-attention으로 모든 입력 위치를 동시에 고려 가능
Transformer 모델 구성
일반적인 구조: 인코더 + 디코더
- 인코더: 입력 시퀀스를 처리
- 디코더: 출력 시퀀스를 생성
- 둘 다 self-attention과 feed-forward 네트워크를 포함
핵심 클래스 및 메서드
MultiHeadSelfAttention 클래스
다양한 위치를 동시에 보는 attention 구현. Query-Key-Value 구조 사용
- self-attention의 핵심 동작 정의
- attention : attention score 및 가중합 계산
- split_heads : 입력을 여러 head로 분할 → 병렬 attention 연산 가능해짐
- call : 전체 self-attention 연산 수행
TransformerBlock 클래스
Multi-head attention + FFN + Residual + Norm + Dropout
- self-attention과 feed-forward layer를 결합
- call : residual connection 및 layer normalization 적용
EncoderLayer 클래스
TransformerBlock과 유사하나 전체 모델 내 반복 사용되는 핵심 단위
- 하나의 인코더 레이어 정의
- call : TransformerBlock과 동일한 순서로 처리. self-attention → residual & normalization → feed-forward → residual & normalization
Advanced Transformer Applications
Transformer는 NLP 외에도 이미지, 음성, 강화학습에 응용 가능
컴퓨터 비전 (ViT)
ViT는 이미지도 시퀀스로 처리할 수 있다는 것을 보여줌
이미지를 작은 패치(patch) 단위로 나눈 뒤, 마치 텍스트의 단어처럼 self-attention 메커니즘을 적용
기존 CNN보다 더 좋은 성능을 보이기도 함
음성 인식 (Speech Transformer)
오디오 신호를 스펙트로그램(spectrogram)으로 변환 → 시간에 따른 주파수 정보를 시각화한 형태
이 변환된 데이터를 입력으로 사용하여 음성 인식 등 시퀀스 기반 작업 수행
대표 모델: Wav2Vec, Speech Transformer 등
강화 학습 (Decision Transformer)
강화 학습에서는 상태(state)와 행동(action)의 시퀀스 의존성을 모델링하는 것이 핵심
Transformer는 과거의 상태-행동 이력을 입력으로 받아 다음 행동을 예측할 수 있음
대표 모델: Decision Transformer
Transformers for Time Series Prediction
시계열 데이터는 시간의 흐름에 따라 연속적으로 수집된 데이터 (주가, 기온, 센서 데이터 등)
기존 ARIMA, RNN, LSTM에 비해 Transformer는 장기 의존성 포착에 강함
Transformer 이점
병렬처리, 가변 길이 입력, 누락 데이터 처리 원활 → 예측(forecasting) 효과적
Transformer 구성 요소
- Embedding Layer: 입력 시계열 데이터를 벡터로 변환
- Multiple Transformer Blocks: self-attention + feed-forward layer 반복
- Final Dense Layer: 최종 출력값 예측 (ex. 다음 시점 값)
TensorFlow for Sequential Data
순차 데이터(Sequential Data)
데이터의 순서나 시간적 흐름이 중요한 특징을 지닌 데이터를 말하며, 데이터의 순서가 바뀌면 의미가 달라지거나 성능이 떨어질 수 있다
예시: 시계열, 텍스트, 오디오
TensorFlow의 대표적인 순차 데이터 처리 레이어
- RNN (Recurrent Neural Network): 순서 정보를 고려해 순차적으로 처리
- LSTM (Long Short-Term Memory): 장기 의존성 학습에 강함
- GRU (Gated Recurrent Unit): LSTM보다 구조가 간단하면서 유사한 성능
- Conv1D: 시퀀스 데이터에 대해 1차원 컨볼루션 수행 (특히 음성, 시계열 처리에 활용)
텍스트 데이터는 모델 입력을 위한 전처리 과정이 필요함
- Tokenization: 문장을 단어 또는 서브워드 단위로 나눔
- Padding: 시퀀스 길이를 동일하게 맞추기 위해 빈 공간을 추가함
TensorFlow의 TextVectorization 레이어는 텍스트 데이터를 숫자 인덱스 시퀀스로 자동 변환해주며,
이 레이어를 통해 텍스트를 모델에 입력할 수 있는 형태로 쉽게 준비 가능함
'🥇 certification logbook' 카테고리의 다른 글
| [Coursera/IBM course #4] Tensors (2) | 2025.06.07 |
|---|---|
| [Coursera/IBM course #3] 강화학습(Reinforcement Learning) (2) | 2025.06.04 |
| [Coursera/IBM course #3] Advanced Keras Techniques (2) | 2025.06.01 |
| [Coursera/IBM course #3] Unsupervised Learning in Keras (2) | 2025.05.31 |
| [Coursera/IBM course #3] TensorFlow for Image Processing (1) | 2025.05.24 |
| [Coursera/IBM course #3] TensorFlow 2.x (1) | 2025.05.21 |
| [Coursera/IBM course #3] Advanced Keras (0) | 2025.05.21 |
| [Coursera/IBM] Deep Learning & Neural Networks with Keras 코스 소개 (2) | 2025.05.18 |