ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS : BERT (1/2)
    Computer Science/ML, DL 2021. 4. 7. 10:18
    728x90

     

     

    NLP

    NLP = Natural Language Processing

    자연어(=우리가 일상적으로 사용하는 말)의 의미를 분석하여 컴퓨터가 처리할 수 있도록 처리하는 것을 말한다.

     

     

    Transformer

     

    1.

    Transformer는 Self-Attention이라는 기법을 활용한 모델이다.

    Self-Attention 기법은 기존의 RNN, CNN 계열의 신경망 구조의 문제점을 극복하고자 만들어진 기법이다.

     

    2.

    기존 기법의 문제점

    • CNN : 설정한 윈도우를 기준으로, 그 안의 언어에 대해 학습하는데, 윈도우 밖의 언어에 대해서는 파악이 어렵다는 문제가 있다.
    • RNN : 연쇄적인 특징을 이용하지만, 뒤로 갈수록 의미가 반영되기 어렵다는 문제가 있다.
    • RN : 자기 자신을 제외한 모든 단어를 한 번에 처리하지만, 많이 무겁다는 문제가 있다.

     

     

    3.

    Transformer는 기존의 인코더, 디코더 컨셉은 유지하면서, RNN을 제거하여 학습 속도를 매우 단축시켰다.

    또한, 위치 벡터 값을 함께 입력값으로 넣어주며 위치, 순서에 대한 정보를 함께 담아낸다고 한다.

     

    4.

    BERT는 Transformer의 인코더 부분을 여러 층으로 쌓은 구조를 가지고 있다.

     

     

     

     

    attention

    1.

    seq2seq 모델은 인코더에서 하나의 벡터 값으로 압축하고, 디코더에서 벡터 값을 통해 출력 시퀀스를 만들어 낸다.

     

    2.

    이 과정에서 두 가지 문제점이 있는데,

    첫 번째, 하나의 고정된 크기의 벡터에 많은 정보를 담으려다 보니 정보 손실이 발생한다.

    두 번째, RNN의 고질적인 문제인 기울기 소실 문제가 발생한다.

    이러한 문제를 해결하기 위해 등장한 개념이 'attention'이다.

     

    3.

    attention의 기본 아이디어는, 디코더에서 출력 단어를 예측할 때 입력 문장을 다시 한 번 더 참고하는 것이다.

    이 때, 입력 문장의 전체를 참고하는 것이 아니라, 예측해야 할 단어와 연관이 있는 부분을 집중(attention)해서 참고한다.

    • 예 : [영어 : i love you so much] -> [한국어 : 나는 너를 많이 사랑해]
    • 위와 같은 번역을 하는 seq2seq 모델을 생각했을 때, attention 매커니즘의 아이디어는 다음과 같다.
    • 인코더가 'love'를 받아서 벡터화한 값은, 디코더가 '사랑해'를 예측할 때 사용하는 벡터값과 유사할 것이다.
    • 즉, v1 = incoder('love'), v2 = decoder('사랑해') 일 때, v1과 v2는 유사할 것이다.

     

    4.

    함수 식 단편화 : attention_value = Attention(query, key, value)

     

     

     

     

    BERT

     

     

     

    1.

    BERT = Pre-training of Deep Bidirectional Encoder Representations from Trnasformers for Language Understanding
    구글에서 개발한 NLP 사전 훈련 기술이다.

    자연어를 양방향으로 사전학습하는 모델이다.

    모든 자연어 처리에서 우수한 성능을 보이는 범용적 model이다.

     

    2.

    이름에서 알 수 있듯, 양방향성이기 때문에 문맥을 더욱 자연스럽게 이해할 수 있다.

    BERT는 pre-training, 즉 사전 훈련이 가능한 모델이다.

    이전의 NLP 모델들은 pre-training이 어려웠기 때문에, task에 대해 처음부터 학습시켜야 한다는 단점이 있었다.

    BERT는 3.3억 개 google의 자연어 데이터로 사전 훈련되어 있고, 이를 fine-tuning해서 사용할 수 있다는 큰 장점이 있다.

    BERT는, 특정 과제를 하기 전 사전 훈련 Embedding을 통해 특정 과제의 성능을 더욱 좋게 할 수 있는 언어 모델이다.

     

     

    3.

    BERT를 사용하지 않는 일반적인 경우

    • 분류를 원하는 데이터 -> LSTM, CNN 등의 머신러닝 모델 -> 분류

     

    BERT를 사용하는 경우

    • 관련된 대량의 코퍼스(corpus, 말뭉치) -> BERT -> 분류를 원하는 데이터 -> LSTM, CNN 등의 머신러닝 모델 -> 분류

     

     

    4.

    BERT input : [Token Embedding] + [Segment Embedding] + [Position Embedding]

    • 이 과정에서, 가장 긴 길이의 단어를 하나의 단위로 만들고, CLS, SEP 토큰을 부착하고, 토큰 순서대로 인코딩하는 과정을 거친다.

     

    BERT pre-training : [MLM : Masked Language Model] + [NSM : Next Sentence Model]

    • MLM : 문장의 일부를 Mask 처리하여 가려진 단어를 예측하며 학습하는 모델
    • NSM : 다음 문장이 관련이 있는지 없는지 학습하는 모델

     

     

    5.

    BERT의 한계 : 일반 NLP에서는 잘 동작하지만, Bio, Science 등 특정 전문 분야에서는 잘 동작하지 않는다고 한다. 분야의 특성에 맞게 언어 데이터를 수집하여 추가 학습을 진행하는 등으로 극복해야 한다.

     

     

     

     

    KoBERT

    기존 BERT의 한국어 처리 성능 한계를 극복하기 위해 만들어졌다.

     

     

     

     

     

     

    다음 글 : kxmjhwn.tistory.com/278

     

    Knowledge : BERT (2/2)

    이전 글 : kxmjhwn.tistory.com/270?category=1196626 Knowledge : BERT (1/2) NLP NLP = Natural Language Processing 자연어(=우리가 일상적으로 사용하는 말)의 의미를 분석하여 컴퓨터가 처리할 수 있도록 처..

    kxmjhwn.tistory.com

     

    728x90

    'Computer Science > ML, DL' 카테고리의 다른 글

    CS : Deep Learning (2/2)  (0) 2021.04.10
    CS : BERT (2/2)  (0) 2021.04.09
    CS : YOLO v5  (0) 2021.04.09
    CS : Deep Learning (1/2)  (0) 2021.04.06

    댓글

kxmjhwn@gmail.com