머신러닝 모델은 숫자를 입력값으로 받아들임 → 문자열 혹은 범주형 데이터를 적절히 숫자로 변환(encoding)하는 과정이 필요하다.
범주형 데이터 (categorical data)
범주형 데이터의 인코딩 방법
label encoding
one-hot encoding
범주형 데이터를 이진벡터(binary vector)로 표현하는 방법이다.
데이터가 n개의 고유 범주값을 가지는 경우, 각 범주를 n차원의 벡터 공간에서 서로 직교하는 벡터로 표현한다.

red = [1, 0, 0]
green = [0, 1, 0]
blue = [0, 0, 1]
장점: 해석이 명확함, 범주 간의 우열관계를 제거함
단점:
복잡한 객체들을 고정된 차원의 벡터로 변환하는 기술이다.

주변 단어와의 유사성 및 관계를 수치화하여, 벡터로 표현하는 딥러닝 기반 기술이다.
→ 단어를 컴퓨터가 이해할 수 있도록 숫자로 바꾸되, 의미도 보존하려는 것이다.
"사과" → [0.7, 0.2, 0.1]
"바나나" → [0.8, 0.3, 0.1]
"자동차" → [-0.6, 0.9, 0.2]
예: “The cat sat on the table.”
→ “The, cat, sat, on, the” → “table” 예측중심 단어 “cat” → “The”, “sat”, “on” 예측
주변 단어(context words)로 중심 단어(center word)를 예측하는 방식이다.

“The cat sat on the mat.”
이라면, 중심 단어(center)는 “cat”,
주변 단어(context)는 “The”, “sat”, “on”, “the”.
→ CBOW는 “The, sat, on, the”를 보고 “cat”을 맞히도록 학습하는 모델임
| 기호 | 의미 | 예시 |
|---|---|---|
| V | 단어 사전(vocabulary) 크기 | 10,000개 단어 |
| d | 임베딩 벡터 차원 수 | 300 |
| c | 컨텍스트 단어 수 | 좌우 각각 2개씩이면 4 |
최종 학습 이후, 각 단어에 대한 임베딩은 W 행렬에 기반한다.
→ W 행렬의 각 행 = 각 단어의 최종 임베딩 벡터
| 단계 | 이름 | 역할 |
|---|---|---|
| 입력층 | 컨텍스트 단어 원-핫 | 주변 단어 입력 |
| 임베딩 행렬 W | (V, d) | 각 단어의 벡터 표현 |
| 은닉층 h | (d,) | 컨텍스트 단어 평균 |
| 출력층 W′ | (d, V) | 중심 단어 확률 계산 |
| 손실함수 | Cross-Entropy | 예측 오차 최소화 |
| 최종 산출 | W | 단어 임베딩 |
예시)
“The cat sat on the mat.”
입력: “The, sat, on, the”
출력: “cat”
→ 이 예측을 수많은 문장에서 반복하면서 “cat”
주변엔 “dog”, “kitten” 같은 단어들이 자주 등장한다는 걸 학습함
결과적으로 ‘cat’ 벡터는 ‘dog’ 벡터와 가까워짐
중심 단어(center word)로부터 주변 단어(context words)를 예측하는 방식이다.

“The cat sat on the mat.” → 중심 단어가 “cat”일 때, 모델은 “The”, “sat”, “on”, “the” 같은 주변 단어들을 예측하도록 학습한다.
| 기호 | 의미 | 예시 |
|---|---|---|
| V | 단어 사전 크기 | 10,000 |
| d | 임베딩 벡터 차원 | 300 |
| c | 예측할 컨텍스트 단어 수 | 4 (좌우 2개씩) |
최종 학습 이후, 각 단어에 대한 임베딩은 W 행렬에 기반한다.
→ W 행렬의 각 행 = 각 단어의 최종 임베딩 벡터

이미지를 embedding vector로 바꿔서 이미지 간의 유사성을 계산할 수 있게 하는 기술이다.
이미지 데이터는 픽셀값으로 표현됨 → width × height × channel (224×224×3 → 약 150,000차원)
고차원 픽셀 데이터를 그대로 비교하기엔 복잡하고 비효율적이다.
→ 딥러닝 모델(CNN 등…)을 이용해 의미 있는 특징만 추려서 저차원 벡터로 압축
| 방법 | 수식 | 특징 |
|---|---|---|
| Euclidean Distance | 두 벡터 간의 직선 거리 | 값이 작을수록 비슷 |
| Cosine Similarity | 두 벡터의 각도(방향) 비교 | 1에 가까울수록 비슷 |
| Dot Product (내적) | 방향이 비슷하면 값이 큼 | 코사인과 유사 (정규화된 경우 동일) |
→ 보통 이미지 임베딩 비교엔 코사인 유사도를 많이 사용한다.
ResNet-50
50층 깊이의 CNN 신경망 구조로서, Residual Connection(잔차 연결)을 도입해 학습 안정화를 시킨 모델이다.

→ 기울기 소실 문제를 해결했다, 대규모 이미지 분류에서 강력한 성능을 보이는 딥러닝 모델 중 하나이다.
| 특징 | 설명 |
|---|---|
| Residual Connection | 이전 층의 입력을 다음 층 출력에 더함 → 기울기 소실(vanishing gradient) 방지 |
| 층 수 | 50개 (그래서 이름이 ResNet-50) |
| 출력 특징벡터(임베딩) | Fully Connected(FC) 층 이전의 2048차원 벡터 |
| 항목 | 내용 |
|---|---|
| Input 데이터셋 | ImageNet (약 128만 장 이미지, 1000개 클래스) |
| 입력 크기 | 224×224×3 (가로×세로×RGB채널) |
| 출력 | 1000차원 확률 벡터 (각 클래스 확률) |
| 예시 | [0.01, 0.0001, ..., 0.85, ..., 0.00005] → 가장 높은 0.85가 예측 클래스 |
| 손실함수 | Cross-Entropy Loss |