π κ΅λ΄ 'μΈκ³΅μ§λ₯' μμ μ ν΅ν΄ 곡λΆν λ΄μ©μ μ 리ν κ²μ λλ€.
Intro
β¨ sequential data, temporal data μ κ°μ΄ λ°μ΄ν°κ° μκ°μμ μμκ° μλ κ²½μ° RNN μ μ’μ μ±λ₯μ λ°ννλ€.
βΎ language : μκ° μμμ λ¨μ΄λ€μ΄ λ°°μ΄λλ€ (speech, text)
βΎ video : μ΄λ―Έμ§κ° μκ° μμμ sequential νκ² μ‘΄μ¬νλ€.
β¨ spatial data → μ΄λ―Έμ§ data λ₯Ό μ²λ¦¬νλλ° CNN λͺ¨λΈμ΄ μ’μ μ±λ₯μ λ°ννλ€. 2D, 3D conv μμ²΄κ° μ£Όλ³μ 곡κ°μμ μλ ν½μ λ€μ μ 보λ₯Ό κ°μ Έμ€λ κ²μ΄κΈ° λλ¬Έμ΄λ€.
β¨ λ¨μΌν RNN, LSTM λͺ¨λΈλͺ¨λ¨ Attention μ μ¬μ©ν RNN, LSTM λͺ¨λΈμ΄ μ¬μ©λκ³ μλ€.
1οΈβ£ RNN
β Neural Networks That process Sequence
(1) Conceptual view
βΌ One-to-One : κΈ°λ³Έμ μΈ NN μ κ΅¬μ‘°λ‘ CNN μ΄ μ΄λ¬ν ννλ₯Ό λκ³ μλ€. μ΄μ κ°μ ννλ sequential ν λ°μ΄ν°λ₯Ό μ²λ¦¬ν μ μλ λ°©λ²μ΄ μ ν μλ€.
βΌ sequence λ₯Ό μ²λ¦¬ν μ μλ NN μ μ€κ³νκ³ input κ³Ό output μ μ΄λ»κ² λΆμ¬μ£Όλλμ λ°λΌ νΉμ application μ μνν μ μλλ‘ νλ€.
βΌ Example
- image captioning : μ΄μ νκ³ μλ μ¬λμ λͺ¨μ΅μ΄ λ΄κΈ΄ μ΄λ―Έμ§λ‘λΆν° 'A person drives a car' μ΄λΌλ λ¬Έμ₯μ λμΆνλ€. One-to-many
- action prediction : μμ¨μ£Όν μ μ΄μ μ΄μ κΈ°λ‘μ λ°νμΌλ‘ νΈλ€μ λ°©ν₯μ μμΈ‘νλ€. Many-to-one
- video captioning : frame λ¨μλ‘ λΉλμ€λ₯Ό μ½μ λ€μ λ§₯λ½μ λ³΄κ³ λΉλμ€ λ΄μ©μ λ¬Έμννλ€. Many-to-Many
(2) Example
βΌ One-to-Many : image captioning
βΌ Many-to-Many : video captioning
βΌ OpenAI : GPT-3
- GPT-3 λ sequential NN μ€ νλλ‘, μ±λ΄μ λ§μ΄ νμ©λλ€. μ€μ€λ‘ νλ‘κ·Έλλ° ν΄μ£Όλ μΈκ³΅μ§λ₯ μ€κ³μλ μ¬μ©λλ€.
- νμ¬κΉμ§ μ€κ³λ μ κ²½λ§ μ€ ν¬κΈ°κ° κ°μ₯ ν¬λ€. 3000μ΅ κ°μ λ°μ΄ν° μ μΌλ‘ νμ΅μ νμμΌλ©° 1750κ°μ 맀κ°λ³μλ₯Ό κ°μ§κ³ μλ€.
- GPT-3 λ 2021λ μ΄κΉμ§ λ°νλ μΈμ΄λͺ¨λΈ μ€ κ°λ μ±λ₯μ΄ λ°μ΄λ λͺ¨λΈμ΄λ€.
- νκ΅μ΄ ν¨μΉκ° μ λμ΄μκ³ , μ΄λ―Έ μΆ©λΆν νμ΅μ μνν λͺ¨λΈμ΄κΈ° λλ¬Έμ μΆκ°μ μΈ κ³Όμ μμ΄ input μ λ£κΈ°λ§ νλ©΄ λλ κ²½μ°κ° λ§λ€.
π μΈκ³΅μ§λ₯(AI) μμ°μ΄ μ²λ¦¬(NLP)μμ κ°μ₯ νμ κ° λκ³ μλ νλ«νΌμΌλ‘λ ꡬκΈμ μλ°©ν₯ μΈμ΄λͺ¨λΈ λ²νΈ(Bert), OpenAIμ λ¨λ°©ν₯ μΈμ΄λͺ¨λΈ GPT-2, κΈ°κ³μ κ²½λ§ λ²μ(Transformer) λͺ¨λΈ λ±μ κΌ½μ μ μλ€.
π μ½λ© μ¬μ©λ², νκ΅μ΄ μ μ© μμ : https://gimkuku0708.tistory.com/12 , https://github.com/gimkuku/GPT3-colab/blob/main/%EC%8B%9C%EC%A1%B0%EC%B0%BD%EC%9E%91.ipynb
π GPT3 νμ© μ¬λ‘ : https://uipath.tistory.com/44
β‘ RNN
(1) Idea
- RNN μ sequential data λ₯Ό μ²λ¦¬νλ κ°μ₯ κΈ°λ³Έμ μΈ μ κ²½λ§μ΄λ€.
- RNN μ νμ¬λ λ§μ΄ μ¬μ©λμ§ μμΌλ, μ‘°μ격μ ν΄λΉνλ λͺ¨λΈμ΄κΈ° λλ¬Έμ λ°°μλμ΄μΌ νλ€ β
- internal state (memory) = hidden state λ₯Ό κ°μ§κ³ μμ΄μ λ€μν κΈΈμ΄μ input sequence λ₯Ό μ²λ¦¬ν μ μλ μ κ²½λ§μ΄λ€.
(2) Unrolled Recurrent NN
- λ³΄ν΅ RNN μ μκ°μμΌλ‘ νμ΄μ recurrent ꡬ쑰λ₯Ό νννλ€.
(3) Simple RNN
- κ°λ¨ν RNN μ vanilla RNN μ΄λΌκ³ λ λΆλ₯Έλ€.
βΎ RNN ꡬ쑰μ μν곡μ
- 맀 time step λ§λ€ hidden state κ°μ update ν΄μ€λ€.
βΎ Many-to-Many ꡬ쑰μ simple RNN
- κ° time step λ³λ‘ κ°μ weight matrix λ₯Ό μ¬μ©νλ€.
- time step λ³λ‘ λμΆλ loss λ₯Ό λͺ¨λ ν©νμ¬ νλμ loss λ‘ κ²°κ³Όλ₯Ό λμΆνλ€.
(4) Example : Character-level language model
- Training : μν«λ²‘ν° ννλ‘ κ° κΈμκ° input μΌλ‘ λ€μ΄μ€λ©° νλ ¨μ΄ μ΄λ£¨μ΄μ§λ€. νλ ¨μΌλ‘ μ»μ΄μ§ weight matrix λ€μ inference κ³Όμ μ κ·Έλλ‘ νμ©νλ€.
- Inference : νλ ¨λ λͺ¨λΈμ κ°μ Έμ μ λ ₯μ λν λ΅μ μΆλ‘ νλ κ³Όμ μΌλ‘, input μ 'h' κΈμλ§ λ£μ΄μ£Όλ©΄, μ°¨λ‘λ‘ e,l,l,o λ₯Ό κ²°κ³Όκ°μΌλ‘ λμΆνλ€. μ΄λ μννΈλ§₯μ€ ν¨μλ₯Ό μ¬μ©νμ¬ κ° step λ³ output κΈμλ₯Ό λμΆν΄λΈλ€.
(5) Multi-layer RNN
- μ€μ λ‘λ multi-layer RNN κ΅¬μ‘°κ° λ§μ΄ νμ©λλ€.
- hidden state λ₯Ό μ¬λ¬ layer λ‘ λλ¦° ꡬ쑰
β’ κΈ°μΈκΈ° μμ€ λ¬Έμ
Grandient Vanishing Problem
- Vanilla RNN μ νμ¬ μ ν μ¬μ©λμ§ μλλ°, κ·Έ μ΄μ λ κΈ°μΈκΈ° μμ€ λ¬Έμ κ° RNN μμ μ¬κ°νκ² μ‘΄μ¬νκΈ° λλ¬Έμ΄λ€.
- graidnet κ° νλ¬κ°λ©° μ μ°¨ μμ κ°μΌλ‘ μλ ΄νκΈ° λλ¬Έμ μλ¨ layer μ weight update κ° μ΄λ£¨μ΄μ§μ§ μλλ€.
- Vanilla RNN μ λ¬Έμ₯μ κΈΈμ΄κ° κΈΈμ΄μ§μλ‘ νμ΅μ΄ μ λμ§ μλλ€.
- μμ ν κ³Όμ μμ Loss function μ λν weight matrix λ―ΈλΆκ°μ ꡬνκ³ μ ν λ, time step μ΄ κΈΈμλ‘ μμκ°λ€μ΄ μ μ°¨ κ³±ν΄μ Έμ weight gradient κ°μ΄ 0μ μλ ΄νκ² λλ€.
2οΈβ£ LSTM
β RNN μ κΈ°μΈκΈ° μμ€ λ¬Έμ λ₯Ό κ°μ ν λͺ¨λΈ
β Architecture
π hidden state μμ LSTM κ΅¬μ‘°κ° μ°μΈλ€.
β κ·Έλ¦Όμμ output gate notation Ot μ output notation Ot ν·κ°λ¦¬μ§ μκΈ°
(1) Forget gate
- 0κ³Ό 1μ¬μ΄μ κ°μ κ°μ§λ€.
- cell μ μ μ₯λ κΈ°μ΅μ μμ΄λ²λ¦΄μ§ λ§μ§ κ²°μ νλ€. whether to erase cell
- Ct κ°μ ꡬν λ, C(t-1) μ΄μ cell μμ μΌλ§νΌ μ 보λ₯Ό 보쑴ν μ§ κ²°μ
(2) Input gate
- 0κ³Ό 1μ¬μ΄μ κ°μ κ°μ§λ€.
- cell μ μ΄μ stepμ hidden state h(t-1) κ°κ³Ό νμ¬ input κ° xtμ μΌλ§νΌ λ°μν μ§ κ²°μ νλ€. whether to write to cell
(3) Output gate, Ot
- 0κ³Ό 1μ¬μ΄μ κ°μ κ°μ§λ€.
- Ct , νμ¬ memory cell μ΄ νμ¬ hidden state ht μμ±μ λ°μλλ μ λλ₯Ό κ²°μ νλ€ π long term memory Ct κ° short term memory ht μ μΌλ§λ§νΌ λ°μλ μ§ κ²°μ νλ€.
(4) Cell
- μμμ μκ°λμ μ΄λ€ κ°μ κΈ°μ΅νλ μν (λ©λͺ¨λ¦¬) μ μννλ λΆλΆμ΄λ€.
- long term memory λ₯Ό μ μ₯νλ μν μ μννλ€.
β‘ LSTM Gradient Flow
- LSTM μ Gradient ννλ forget output μ΄ λ°λ³΅μ μΌλ‘ κ³±ν΄μ§λ ννμ΄λ€.
- λ°λΌμ νλ ¨μ ν΅ν΄ forget gate κ° κ±°μ 1μ κ°μ κ°μ§λ€λ©΄, κΈ°μΈκΈ° μμ€ λ¬Έμ λ₯Ό ν΄κ²°ν μ μλ€.
βΎ νλ ¨μ ν΅ν΄ forget gate κ° 1μ κ°μ κ°μ§λλ‘ νλ€λ κ²μ μλ―Έ
- μ΄μ step μ cell μ κ°μ κ±°μ κ·Έλλ‘ λ°μνλ€.
- long term memory λ₯Ό κ±°μ νμ κ°μ§κ³ μλλ€.
- κΈ΄ λ¬Έμ₯μμλ μμ μλ λ¨μ΄λ₯Ό μμ΄λ²λ¦¬μ§ μλλ€.
3οΈβ£ Attention
β κΈ°κ³λ²μ (Seq2Seq)
(1) Encoder - Decoder
π¨ Language Translation Example
- λ²μμ΄λ input sequence λ₯Ό ν΅ν΄ output sequence λ₯Ό μμ±νλ κ²μΌλ‘ sequence to sequence model μ΄λΌ λΆλ₯Έλ€.
π¨ Encoder
- λ²μνκ³ μ νλ λμ λ¬Έμ₯μ input μΌλ‘ λ°μ λ¨μ΄λ‘ μͺΌκ°μ time step λ§λ€ input μΌλ‘ λ°λλ€.
- input word μ λν΄ hidden state Zi λ₯Ό λμΆν΄λ΄κ³ , output μ΄ FC layer λ₯Ό κ±°μ³μ context vector λ‘ μμΆλλ€.
- Context vector λ decoder μ 맀 input step λ§λ€ ν¨κ» μ λ ₯λλ€.
π¨ Decoder
- context vector λ₯Ό μ°Έμ‘°νμ¬ λ²μμ μνν κ²°κ³Όλ₯Ό λμΆν΄λΈλ€.
- λ¬Έμ₯μ΄ μμλλ€λ μλ―Έλ₯Ό κ°μ§ start token μ λͺ¨λΈμ λ£μ΄μ£Όλ©΄, person μ output μΌλ‘ λ΄λκ³ , person μ΄ λ€μ λ€μ λ¨κ³μ μ λ ₯μΌλ‘ λ€μ΄κ°λ ꡬ쑰λ₯Ό κ°μ§λ€.
(2) RNN-based Seq2Seq Problem
π¨ Information Bottleneck
- Encoder → context vector → decoder λ‘ μ λ¬νλ κ³Όμ μμμ, λ§μ½ λ¬Έμ₯μ΄ κΈΈμ΄μ§λ©΄ κ·Έκ²μ νλμ context vector λ‘ μΆμ½νλ κ³Όμ μμ μ 보μ μμ€μ΄ ν¬κ² λ°μν μ μλ€
β‘ Attention
(1) Intuition
- Seq2Seq μμ λ°μλλ μ 보μ μμ€ λ¬Έμ λ₯Ό ν΄κ²°ν λ°©λ² β attention
- λ²μμ ν λ, μ΄λκΉμ§ νμ¬ λ²μμ μ§ννκ³ λ€μ λ²μμ μ΄λ£¨μ΄λΌ λ, input λ¬Έμ₯μμ μ€μνκ³ κ΄λ ¨μ΄ λμ λ¨μ΄λ€μ μ’ λ μ£Όλͺ©νμ¬ κ·Έ λ¨μ΄λ€μ λν΄μ κ°μ€μΉλ₯Ό λΆμ¬νκ² λ€λ μμ΄λμ΄
- λ¨μ΄κ° κ΄λ ¨μ±μ κ³μ°νμ¬ attention κ°μ λμΆ (νμμμΌμλ‘ κ΄λ ¨μ±μ΄ λμ λ¨μ΄μ)
- λ²μλ¬Έλ€ μ¬μ΄μ μ΄μμ΄ μΌμΉνμ§ μμλ μ λ²μλλ κ²μ attention λλΆ
(2) Attention in Seq2Seq
π¨ overview
π hat μ λ²μ κ²°κ³Όλ‘ λμΆνλ λ¨κ³μ ν΄λΉνλ μμ
- Attention μ LSTM μμ λ§λΆμ¬ μ¬μ©νλ λꡬλΌκ³ μκ°νλ©΄ λλ€.
- Attention score , attention distribution μ μ°¨λ‘λ‘ λμΆνκ³ attention value λ₯Ό λμΆνμ¬ λ²μ κ³Όμ μ νμ©νλ€.
- attention μ΄ μλ ꡬ쑰μμλ μ 체 time step μ λν΄ νλμ context vector λ‘ λνκ·Έλ € λ²μνμλ€λ©΄, attention μ΄ μλ ꡬ쑰μμ 맀 time step λ§λ€ attention μ κΈ°λ°μΌλ‘ context vector κ° μμ±λμ΄ μ λ ₯λλ―λ‘ μ 보μ μμ€μ΄ λ°μνμ§ μκ³ λ μ’μ μ±λ₯μΌλ‘ λ²μμ΄ κ°λ₯νλ€.
π¨ Attention Score
- scalar κ°μΌλ‘ μ»μ΄μ§ : e1,e2,e3,e4
- νμ¬ λ²μνκ³ μ νλ time step μμ decoder μ hidden state ht μ encoder μ κ° time step μμμ hidden state λ€ z1,z2,z3,z4 λ₯Ό κ³±ν΄ attention score λ₯Ό μ»λλ€.
π¨ Attention distribution
- attention score λ€μ softmax μΈ΅μ κ±°μ³ νλ₯ λΆν¬ κ°μ μ»κ² λλ€.
π¨ Attention Value
- λμΆλ attention distribution κ°κ³Ό encoder μ hidden state λ€μ κ°κ° κ³±νμ¬ λν κ²°κ³Ό C3 λ₯Ό μ»λλ€.
- C3 λ h3 μ λμλλ attention value κ°μΌλ‘ context vector λΌκ³ λ³Ό μ μλ€.
π¨ Output
- μμ ꡬν C3 μ h3 λ₯Ό concatenate ν 벑ν°μ Weight matrix κ°μ tanh μ°μ°νμ¬ μ»μ κ° h3' λ₯Ό μννΈλ§₯μ€ μ·¨νλ©΄ output μΈ 'HAT' λ¨μ΄κ° λμΆλλ€.
'1οΈβ£ AIβ’DS > π Deep learning' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μΈκ³΅μ§λ₯] Transformer Models (0) | 2022.06.11 |
---|---|
[μΈκ³΅μ§λ₯] NLP (0) | 2022.06.10 |
[μΈκ³΅μ§λ₯] Regularization (0) | 2022.04.26 |
[μΈκ³΅μ§λ₯] λ€μν CNN λͺ¨λΈ (0) | 2022.04.26 |
[μΈκ³΅μ§λ₯] Training CNN (0) | 2022.04.26 |
λκΈ