[Aiffel] 아이펠 63일차 개념 정리 및 회고

Gongsam·2022년 4월 5일
0

1. 개념 정리

용어 정리

  • 최대우도추정

1) 언어 모델 발전 양상

통계적 모델신경망 모델
한계
or
세부사항
1. 차원의 저주
2. 처음 나온 단어에 대처하지 못함
3. 빈도수가 높지만 의미없는 단어의 영향을 받을 가능성이 큼
1. Feed-Foward: CBOW
2. Word2Vec
3. RNN
4. Seq2Seq

2) Seq2Seq

  1. 등장 이유: 번역
  2. 모델 설계
    • fit: 재구성 필요
      • Loss를 커스텀 해야하기 때문
      • <PAD>가 패딩을 위한 토큰이라고 명시하지 않을 경우 모델이 답안을 <PAD>로만 구성할 확률이 높아짐: mask를 사용해 해결, pad 토큰에 대한 loss는 구하지 않도록 함
    • 한영 번역기
      • 중복 제거하면서 짝을 유지하는 방법: set, zip 활용
      • Colab에 Mecab 설치:
      !curl -s https://raw.githubusercontent.com/teddylee777/machine-learning/master/99-Misc/01-Colab/mecab-colab.sh | bash
      (2022.01.22에 작성된 포스팅에 나온 방법, 2022.04.05 기준으로 입력 후 런타임 재실행 하면 실행됨)

3) Attention의 역사

Attetion 원리 시각화
Luong Attention
1. Seq2Seq
LSTM을 이용한 Encoder-Decoder 구조

x - Encoder -> v(Representation Vector==Context vector) - Decoder -> y(Output sequence)

  1. Attention
    모든 단어를 같은 비중으로 압축하지 않고 중요한 단어에 큰 비중을 부여해 성능 향상
    ⇒ 매 스텝의 Hidden State값을 사용
    개선: Luong Attention

4) Transformer - Attention Is All You Need

연속성 배제: Attention으로 각 단어의 상관관계를 구하는 데에 집중
- Positional Encoding: 연속성을 배제할 경우 생기는 문제를 막아줌, 문장에 연속성을 부여하는 새로운 방법

2. 회고

학습시키는 거 덜 걸릴 줄 알고 NLP 왔는데 지금 epoch 하나 돌리는 데 한 시간 걸렸다. 뭔가 잘못된 거 같은데 돌이키기엔 이미 늦었다. 노드 8을 진행하면서 시간이 너무 오래 걸려서 노드 9를 같이 했다. 노드 8에서 데이터 수를 처음엔 제한 안하고 다 쓸까 했는데 절반보다 안되게 제한한 게 다행이라고 생각한다. 아니었으면 이틀 내내 돌렸을 거 같다. 노드 9 보고 이번 주말도 복습이구나 싶었다. 사실 복습은 배운 걸 되새기는 건데 지금 나는 아는 게 아무것도 없어서 복습도 아니고 그냥 배우기다. 트랜스포머에 대해서 나왔는데 구조를 그림으로 그린 게 오히려 이해 안된다. 아마 RNN부터 다시해야겠다 싶은데 이 많은 걸 이틀 안에 하기란 불가능 할 거 같은데. 어쨌든 하긴 해야한다. 하루 종일 붙잡고 있는 데도 해야지 안그러면 진짜 이도저도 아니게 된다..

profile
🐬 파이썬 / 인공지능 / 머신러닝

0개의 댓글