Natural language basic¶
1. 데이터의 표현¶
- 컴퓨터는 일반적으로 처리할 데이터를 행렬이나 벡터를 이용하여 처리
- 이미지 : 텐서, 행렬 또는 벡터로 표현
- 자연어 : 문장 혹은 단어를 벡터로 표현
- 데이터를 벡터로 표현할 때 장점 : 두 데이터 간 수치적 비교 가능, 머신러닝 모델의 입력 용이
1.1. 원-핫 인코딩¶
- 단어를 수치적으로 표현하는 가장 기본적인 방법
- 각 단어를 항목에 할당한 후, 해당하는 단어가 등장할 경우 할당된 칸에 1 표시
1.2. BoW (Bag of Words)¶
- 순서는 무시하고, 단어의 출현 빈도를 계산하는 데이터 표현 방법
- 문서 단어 행렬 (Document-Term Matrix, DTM) : 여러 문서에 대해 BoW를 적용하여 하나의 행렬로 표현한 것
- 단점1. 단어의 출현 빈도만을 계산하므로, 순서는 고려하지 못한다.
- 단점2. 희소 문제가 발생 : 실제 유의미한 데이터 비중에 비해 많은 메모리가 낭비될 수 있음.
- 단점3. 카운트 기반이므로 처음 본 단어는 처리가 불가능하다
BoW를 활용한 측정 : 유사도 측정법 (Similarity Measure)¶
1. 유클리드 거리¶
- 각 특징마다 축을 분리한 후, 각 기준에 따라 이미지(혹은 BoW 형식으로 표현된 문서)를 할당한다. 그 후 유클리드 거리 측정법을 활용하여 직선거리를 구하여 유사도를 측정한다.
- 단점 : 의미는 전혀 다르지만 유클리드 거리 상으로는 가깝게 측정되는 오류가 발생할 수 있다.
2. 코사인 유사도¶
- 벡터의 크기는 고려하지 않고, 두 벡터 사이의 각도만 고려하는 측정법
- 방향이 얼마나 유사한지를 토대로 1부터 -1사이의 값으로만 표현한다. (1에 가까울 수록 유사한 값이다)
- 코사인 유사도를 이용하면 문서의 길이가 달라도 유사도 측정이 수월하다.
1.3. TF-IDF (Term Frequency-Inverse Document Frequency)¶
- 문서에서 특정 단어의 중요도를 고려해야 할 때 사용함.
- 아이디어 : 전체 문서에서는 적게 등장하고, 해당 문서에서만 자주 나오는 단어가 해당 문서에서 중요하다
3. 언어 모델 (Language Model)¶
- 문장(시퀀스)에 확률을 부여하는 모델
- 언어 모델을 가지고 있으면 특정 상황에서 적절한 문장이나 단어를 예측 가능
- 연쇄 법칙의 활용 : (첫 단어가 등장할 확률) (첫 단어가 등장했을 때 두 번째 단어가 등장할 확률) ....
3.1. 언어 모델의 희소 문제¶
- 전통적인 통계적 언어 모델은 카운트 기반의 접근을 사용
- 그러나, 모든 문장에 대한 확률을 갖기 위해서는 매우 방대한 양의 데이터가 필요
- 학습 데이터가 존재하지 않을 경우, 확률을 구할 수 없음
- 긴 문장은 처리가 힘듦
- N-gram 언어 모델의 등장 : 인접한 일부 단어만 고려하는 아이디어
4. N-gram 언어 모델¶
- '모든 단어'를 고려하는 전통적인 언어 모델과는 달리, 일부 단어만 고려하는 접근을 사용
- N-gram : 길이가 N인 단어 시퀀스
- N의 크기가 커질수록 성능이 개선될 수 있으나, 필요한 파라미터의 수가 기하급수적으로 많아진다. 따라서, 일반적으로 3으로 설정한다.
5. 기계 학습¶
5.1. 퍼셉트론 (perceptron)¶
- 다수의 입력을 받아서 하나의 출력을 내보낸다.
- 기계학습을 통해 모델의 가중치를 학습한다.
희소 표현과 밀집 표현¶
- 희소 표현 : 단어 집합의 길이가 벡터의 차원 크기이며, 메모리 낭비가 심하다.
- 밀집 표현 : 사용자가 설정한 크기로 벡터 표현의 차원을 맞춘다.
'전문지식 함양 > TIL' 카테고리의 다른 글
[프로그래머스 겨울방학 인공지능 과정] Sequence to Sequence Learning with Neural Networks - 이론 (0) | 2022.02.20 |
---|---|
[프로그래머스 겨울방학 인공지능 과정] CNN을 활용한 풍경 이미지 분류 실습1 (0) | 2022.02.17 |
[프로그래머스 겨울방학 인공지능 과정] GAN 이론 기초3 : CycleGAN (0) | 2022.02.09 |
[프로그래머스 겨울방학 인공지능 과정] python 풍경 이미지분류 알고리즘3(完) (0) | 2022.02.08 |
[프로그래머스 겨울방학 인공지능 과정] GAN 이론 기초2 : Image-to-Image Translation with Conditional Adversarial Networks (0) | 2022.02.08 |