본 게시글은 충남대 정상근 교수님의 수업자료를 바탕으로 작성한 글입니다.
자연어처리는 컴퓨터가 인간의 말을 다루도록 하는 것이다.
그럼 인간의 말을 컴퓨터에게 알려줘야 할 텐데, 뭐 이렇게 한글, 영어... 이런 식으로 알려줄 수는 없다.
컴퓨터는 숫자로 모든 것을 이해한다.
그렇다면 인간의 말을 숫자로 어떻게 나타낼까?
1. 나타내려 하는 대상에서 '무언가'를 추출해 컴퓨터에 입력하는 과정
이때 두 가지 방법이 있다.
첫 번째는 사람이 특징을 추출하는 것이다.
만약 고양이를 컴퓨터에 입력하고 싶다면, 바깥쪽으로 갈수록 눈이 올라가고, 귀는 뾰족하고, 꼬리가 길고.. 등등!
고양이의 특징을 생각해낼 수 있을 것이다.
두 번째는 기계가 '스스로' 특징을 추출해내는 것이다. 데이터 중심 표현!
데이터를 엄청나게 많이 기계에게 준다면, 그 사이에서 공통적인 특징을 찾아내어 숫자로 변환하도록 한다.
두 번째 선택지인 데이터 중심 표현을 학습하는 것이 표현학습이다.
근데 어떻게 스스로 특징을 추출해낼까 하면,
고양이에 대해 엄청나게 많은 데이터를 준비하고, 모두 조금씩 손상시켜본다. masking하는 것!
그리고 이 모든 데이터에 대해 성공적으로 데이터를 복구할 때까지 반복해본다.
이 과정을 해낸다면 기계는 고양이를 표현해낼 수 있는 경지에 이르는 것이다!
| 사람이 특징을 추출하는 방식 | 기계가 추출하는 방식 (데이터 중심 표현) | |
| 이해 | 사람이 직관적으로 이해 용이 | 기계에게만 의미있는 정보 |
| 공간 | one-hot encoding으로 1이 아닌 부분은 공간 낭비 | 원핫인코딩보다 상대적으로 적은 차원으로 표현 가능 - 정보가 여러 차원에 분산돼있는, 분산 표현 |
2. 잠재변수
그럼 표현학습을 조금 더 딥하게 알아보겠다.
여기선 잠재 변수, Latent Variable이 중요한 역할을 한다.
이 잠재 변수는 실제로 측정하거나 셀 수 없는, 존재하지 않는 가상의 값이다.
간접적으로 추론하거나 추측할 수 있기에, 데이터를 통해 추론하고자 한다.
즉, 관측 가능한 데이터 X로부터 잠재변수 h를 추론하는 것이 목표이다.
그런데 이 h의 범위는 무한대여서, 이 값을 얻기 위해 가능한 범위를 좁히는 것이 좋다.
이를 위한 방법이 두 가지가 있다.
첫 번째로, x와 h를 데이터 수와 관련하여 연결하는 방법이다.
이때 x의 변화 추세에 따라 h도 유사하게 변한다.
이러면 x가 움직이는 공간은 구체적인 범위를 갖게 되며, 따라서 h의 가능한 공간도 이전보다 좁아지게 된다.
그치만 이때 'h가 x의 변화에 따라 움직인다'는 사실만으로 h가 x의 원인인지.. 결과인지.. 뭔지 아무것도 모른다.
그래서 데이터 수를 늘려서 x와 h의 일관된 패턴이나 관계를 찾는 것이다.
그 결과는 h가 실제로 유용한 잠재변수가 된다는 것이다.
두 번째 방법으로는, 구조적 연관성을 주는 것이다.
이 방법은 위에서 고려한 x, h 외에 또다른 관측 가능한, h와 x양쪽에 영향을 주거나 받을 수 있는 변수를 설정하는 것이다.
그렇다면 x와 y라는 관측 가능한 변수로 나타낼 수 있는 h의 범위는 더욱 좁혀지게 될 것이다.
3. 변화
표현학습이 주목받게 된 이유는, 빅데이터 시대가 오고, 엄청난 계산을 할 수 있는 GPU 및 클라우드 컴퓨팅의 등장 때문이다.
이전 방식인 '사람이 특징을 추출'하는 것은 복제가 가능하다.
하지만 표현 학습으로 converter가 특징을 추출했을 때는, 복제가 불가능하다.
'AI > 자연어처리' 카테고리의 다른 글
| PEFT(Parameter Efficient Fine-Tuning) (1) | 2025.06.11 |
|---|---|
| 언어모델 (0) | 2025.04.29 |
| BERT와 GPT, 트랜스포머의 변형 모델 (1) | 2025.04.29 |
| Transformer (0) | 2025.04.29 |
| S2S, Seq2Seq, Sequence to Sequence Learning (0) | 2025.04.29 |