🎃🤖
데브코스 AI 5기 Monthly project #2 (Boston) 진행 중 발생한 궁금증
문제점 1. loss가 튀는 이유?
문제점 2. 임베딩 방식이 원핫인코딩보다 성능이 낮음
원핫인코딩과 임베딩은 모두 범주형 변수를 처리하기 위한 방법이다.
테스트할 Task
1. 배달 시간 예측
2. 보스턴 집값 예측
loss가 튀는 원인은 크게 두가지가 있다.
1. 높은 learning_rate
2. 작은 Batch_size
train_loss는 작아지는데 valid_loss가 커지는 overfitting이 아니라 말 그대로 train_loss에 비해 변동 폭이 큰 상황임
<Task는 보스턴 집값 예측>
<결론>
보스턴 집값 예측의 경우 Embedding방식은 충분히 학습을 하여도 one-hot인코딩 보다 성능이 낮게 나온다.
train 데이터는 1168개 , valid 데이터는 292개 -> 데이터의 개수가 성능을 좌우하는 의심이 듦
<Task는 배달 시간 예측>
조건 1. 훈련 데이터 size 변화에 따른 두 방식의 성능 비교 (데이터는 shuffle=True)
조건 2. 데이터가 적기 때문에 분포에 따른 성능차이를 고려하여 valid 데이터는 비교군 2개로 설정
조건 3. valid 1과 2 데이터 셋은 각각 천개씩으로 개수와 데이터셋 자체가 고정이다.
(train,valid_1,valid_2) 데이터 개수 | Embedding 방식 loss (valid_1 , valid_2) | One-Hot 방식 loss (valid_1 , valid_2) |
---|---|---|
500 / 1000 / 1000 | 1782 , 1823 | 1673 , 1691 |
1000 / 1000 / 1000 | 1728 , 1824 | 1652 , 1727 |
2000 / 1000 / 1000 | 1767 , 1810 | 1693 , 1743 |
5000 / 1000 / 1000 | 1771 , 1744 | 1698 , 1700 |
10000 / 1000 / 1000 | 1804 , 1734 | 1709 , 1709 |
50000 / 1000 / 1000 | 1513 , 1480 | 1555 , 1517 |
<결론>
1. 데이터가 적을 땐 One-Hot인코딩 방식이 대체로 성능이 좋은 것을 볼 수 있다.
2. 데이터가 많아질수록 두 성능은 수렴하는 것을 볼 수 있다.
심증으로만 존재하던 Embedding을 위해선 많은 데이터가 필요하다는 인사이트를 도출하였다.