[Coursera/IBM course #3] Transformers in Keras

2025. 5. 28. 01:30·🥇 certification logbook
728x90
반응형

 

 

 

 

 

[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 구성 요소

  1. Embedding Layer: 입력 시계열 데이터를 벡터로 변환
  2. Multiple Transformer Blocks: self-attention + feed-forward layer 반복
  3. 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 레이어는 텍스트 데이터를 숫자 인덱스 시퀀스로 자동 변환해주며,

이 레이어를 통해 텍스트를 모델에 입력할 수 있는 형태로 쉽게 준비 가능함

728x90
반응형

'🥇 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
'🥇 certification logbook' 카테고리의 다른 글
  • [Coursera/IBM course #3] Advanced Keras Techniques
  • [Coursera/IBM course #3] Unsupervised Learning in Keras
  • [Coursera/IBM course #3] TensorFlow for Image Processing
  • [Coursera/IBM course #3] TensorFlow 2.x
이소야
이소야
✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 이소야
    I study SO
    이소야
    ✔ 공부 기록 ٩(๑•̀o•́๑)و
  • 전체
    오늘
    어제
    • 분류 전체보기 (223)
      • 🤖 ai logbook (39)
      • 💻 developers logbook (1)
      • 🥇 certification logbook (73)
      • ⚖️ legal logbook (108)
      • ⚡ electronics logbook (1)
      • 🌍 english logbook (0)
      • 🎁 etc (1)
  • 최근 글

  • 인기 글

  • 태그

    민법
    근로기준법
    인공지능
    IBM
    데이터사이언스 입문
    Coursera
    자격증
    머신러닝
    방통대
    deeplearning
    데이터분석준전문가
    온라인 강의 추천
    datascience
    certificate
    법학과
    형법
    인공지능 입문
    Python
    ADsP
    기본권의기초이론
  • hELLO· Designed By정상우.v4.10.3
이소야
[Coursera/IBM course #3] Transformers in Keras
상단으로

티스토리툴바