| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- stride
- gameplay ability system
- 유니티
- rpc
- C++
- MAC
- listen server
- Aegis
- Unreal Engine
- os
- attribute
- 게임 개발
- gameplay effect
- unity
- local prediction
- ability task
- 게임개발
- CTF
- 언리얼엔진
- gameplay tag
- linear regression
- animation
- UI
- gas
- 언리얼 엔진
- Replication
- photon fusion2
- widget
- 보안
- Multiplay
- Today
- Total
Replicated
자연어 처리 : Word representation 본문
자연어 : 우리가 일상 생활에서 사용하는 언어
자연어 처리 : 이러한 자연어의 의미를 분석하여 컴퓨터가 처리할 수 있도록 하는 작업
자연어 처리의 어려움
- Ambigurity (교착어) : 형태소, 구문, 의미론적 모호성
- Variation (다양성) : 시대에 따라 계속 변화하여 확장성, 다양성, 유연성이 필요
- Sparsity (언어 모델) : 단어의 의미적인 내용을 컴퓨터가 이해하는 수치화된 의미 벡터로 표현하기 어려움
1950년대 규칙 기반
1990년대 통계 시반
2013~ 신경망 기반
Corpus (코퍼스, 말뭉치)
- 체계적으로 수집되고 구성된 텍스트 모음
- NLP 연구를 위해 특정 목적으로 정제한 많은 수의 문장의 집합
- 특정 언어, 방언, 주제, 스타일 또는 시대를 대표하는 텍스트들을 포함할 수 있음
- 목적에 따라 문장의 성분 품사를 기입하거나 대응되는 번역문을 쌍(multi lingual corpus)으로 기입하기도 함
- 자연어 처리 분야에서 말뭉치는 언어 모델을 훈련하고 언어의 통계적 패턴을 분석하며 다양한 컴퓨터 기반 언어 연구에 사용
Tokenization (토큰화)
- 주어진 코퍼스에서 토큰이라 불리는 단위로 나누는 작업
- Hello World -> "Hello", "World"
- 한글의 경우 토큰 분리 기준이 쉽지 않음
Word representation
- 자연어를 컴퓨터로 처리하기 위해서는 텍스트를 수치 형태로 표현할 수 있어야 함
- 텍스트를 수치로 변환하는 과정이 word representation (word embedding도 같은 의미)
- 단어를 벡터로 표현하는 방법
One hot vector
- 각 문장에서 나타나는 단어들을 모아 binary vector로 표현
- N개의 단어는 N차원 벡터 생성 (sparse representation)
- 모든 단어의 유사도(cosine similarity)가 동일해지는 단점이 있음
- 단어 수가 많아질 수록 벡터의 차원 증가
- 단어를 벡터로 표현할 때 실수를 사용하는 방법도 있음
Sparse representation
- 강아지 = [0 0 0 0 1 0 0 0... 0]
Dense representation
- 강아지 = [0.2 1.8 1.1 ......]
Dense 표현이 더 차원이 적음
Padding
- 자연어 처리를 하다 보면 각 문장은 서로 길이가 다를 수 있음
- 여러 문장의 길이를 임의로 동일하게 맞춰주는 작업
Word2vec
- 단어 벡터 간 유의미한 유사도를 반영할 수 있도록 단어의 의미를 수치화할 수 있는 방법이 필요
- 중요한 정보만 남기고 적은 차원에서 단어를 표현
- 대량의 코퍼스를 비지도 학습 방법으로 프리 트레이닝한 모델 (Word2vec, ELMo, BERT, ALBERT 등의 공통점)
- 비슷한 문맥에 등장하는 단어는 비슷한 의미를 지닌다
- 학습된 단어 벡터에서 단어의 의미가 벡터 공간 상의 거리, 길이, 각도 등으로 표현됨 (문법, 의존 관계 등)
분산 표현(distributed representation) 방법 적용
- 분포 가설(distributional hypothesis)라는 가정 하에 만들어진 표현 방법
- 비슷한 문맥에서 등장하는 단어들은 비슷한 의미를 가진다는 가정
- 분산 표현은 분포 가설을 이용해서 텍스트를 학습하고 단어의 의미를 벡터의 여러 차원에 분산하여 표현
이 방법에서 각 단어에 대응하는 벡터 값은 훈련 데이터(코퍼스)를 학습한 결과로 만들어짐
훈련 방법
- CBOW(Continuous Bag og Words) : 주변에 있는 단어들을 입력으로 중간에 있는 단어들을 예측
- Skip-Gram : 중간에 있는 단어들을 입력으로 주변 단어들을 예측
CBOW
- Window size 만큼의 주변 단어로 중심 단어를 예측함
- 입력, 출력 모두 원 핫 벡터
- 히든 레이어의 수 1개, 활성함수 없음
- 학습이 완료되면 특정 단어에 대한 가중합이 그 단어에 대한 임베딩 벡터가 됨 (임베딩 벡터의 길이 M == 은닉층의 길이)
특정 분야를 위한 word2vec 모델을 만들 수도 있고
사전에 훈련된 모델을 사용하는 것도 가능
'학부 > 딥러닝' 카테고리의 다른 글
| 자연어 처리 : Seq2Seq, Attention, Transformer (0) | 2025.12.07 |
|---|---|
| 자연어 처리 : RNN, LSTM (0) | 2025.12.07 |
| 전이 학습 (Transfer Learning) (0) | 2025.12.07 |
| Keras CNN - Argumentation (0) | 2025.10.25 |
| Keras CNN - MNIST (0) | 2025.10.25 |