임베딩(Embedding) 순환신경망(Recurrent Neural Network, RNN)
1. 임베딩■ 컴퓨터는 사람이 사용하는 자연어(한글, 영어 등)를 그대로 이해하지 못한다. 그러므로 컴퓨터가 이해할 수 있는 벡터로 변경해야 한다. 이런 변경을 임베딩이라고 말한다. 그러므로 임베딩이 잘 될수록 높은 모델 성능을 기대할 수 있다.■ 임베딩과 관련된 다양한 방법들이 있는데, 크게는 '단어 수준'의 임베딩(Word2Vec, FastText)과 '문장 수준'의 임베딩(Elmo, Bert, GPT 등)으로 구분한다.- 단어 수준의 임베딩은 동음이의어(글자의 소리는 같지만 뜻이 다른 단어 - 눈, 차, 배 등)를 구별할 수 없지만,- 문장 수준의 임베딩은 사람처럼 문장의 '앞뒤'를 보고 의미를 파악할 수 있다. ■ 단어 수준의 임베딩을 위해 단어, 음절, 형태소 등으로 나누고 이를 수치로 변환한다..
텐서(Tensor)
■ 컴퓨터는 문장 혹은 단어를 그 자체로 잘 이해하지 못한다. 그러므로 컴퓨터가 이해할 수 있도록 단어를 밀집 벡터(dense vector) 형태로 바꾸는 작업이 필요하다. ■ 이렇게 단어를 밀집 벡터 형태로 표현하는 방법을 '워드 임베딩(word embedding)'이라고 한다. ■ 예를 들어, 다음과 같이 4개의 문장으로 구성된 데이터를 입력으로 사용하기 위해 다음과 같이 단어별로 나누어 주었다고 하자.[['나는', '사과를', '좋아해'], ['나는', '바나나를', '좋아해'], ['나는', '사과를', '싫어해'], ['나는', '바나나를', '싫어해']]data = np.array([['나는', '사과를', '좋아해'], ['나는', '바나나를', '좋아해'], ['나는', '..