식품 추천 애플리케이션을 개발한다고 가정해 보겠습니다. 사용자가 좋아하는 식사를 입력하면 앱에서 비슷한 식사를 추천함 확인할 수 있습니다. 머신러닝 (ML) 모델을 개발하려는 경우 이를 통해 음식 유사성을 예측할 수 있습니다. 이렇게 하면 추천(예: 팬케이크를 좋아하신다면 크레이프를 권장합니다.')
모델을 학습시키기 위해 5,000개의 인기 있는 데이터 세트를 보르시, 핫도그, 샐러드, 피자, 및 shawarma가 있습니다.
![그림 1. 5가지 음식의 삽화 세트입니다. 다음에서 시계 방향으로
왼쪽 상단: 보르시, 핫도그, 샐러드, 피자, 샤와르마](https://developers.google.cn/static/machine-learning/crash-course/embeddings/images/food_images.png?authuser=5&hl=ko)
다음과 같은 meal
특성을 만듭니다.
원-핫 인코딩
각 식사 항목의 표현을 뜻합니다
![그림 2. 상단: Borscht의 원-핫 인코딩 시각화입니다.
벡터 [1, 0, 0, 0, ..., 0] 이 6개의 상자 위에 표시되어 있습니다.
각각 왼쪽으로 정렬됨
오른쪽 상단으로 들어가 보겠습니다. 상자는 왼쪽에서 오른쪽으로
보르시, 핫도그, 샐러드, 피자, [empty],
샤와르마입니다. 가운데: 핫도그의 원-핫 인코딩 시각화입니다.
벡터 [0, 1, 0, 0, ..., 0] 이 각각 6개의 상자 위에 표시됩니다.
벡터 번호 중 하나와 함께 왼쪽에서 오른쪽으로 정렬됩니다. 상자에는
보르시 시각화와 동일한 이미지를 왼쪽에서 오른쪽으로
참조하세요. 아래: shawarma의 원-핫 인코딩 시각화 이
벡터 [0, 0, 0, 0, ..., 1] 이 각각 정렬된 6개의 상자 위에 표시됩니다.
왼쪽부터 오른쪽으로 색칠해 보겠습니다. 상자에는
보르시와 핫도그와 동일한 이미지를 왼쪽에서 오른쪽으로
시각화할 수 있습니다.](https://developers.google.cn/static/machine-learning/crash-course/embeddings/images/food_images_one_hot_encodings.png?authuser=5&hl=ko)
희소 데이터 표현의 함정
이러한 원-핫 인코딩을 검토하다 보면 데이터 표현을 생성합니다.
- 가중치 수. 입력 벡터가 크다는 것은 입력 벡터가
가중치
신경망">
원-핫 인코딩에 M개 항목을 포함시키고
첫 번째 레이어에 노드가 존재한다면 모델은
해당 레이어의 MxN 가중치 가중치가 많으면 다음과 같은 문제가 발생합니다.
- 데이터 포인트 수. 모델에 가중치가 많을수록 모델 학습에 도움이 되는 효과적으로 학습시켜야 합니다
- 계산량. 가중치가 많을수록 더 많은 계산이 필요 모델을 학습시키고 사용할 수 있습니다 IT 지원 전문가로서의 역량을 사용할 수 있습니다
- 메모리 용량. 모델에 가중치가 많을수록 액셀러레이터가 필요합니다 확장 매우 어렵습니다
- 지원의 어려움 온디바이스 머신러닝 (ODML) 로컬 기기에서 ML 모델을 실행하려는 경우 모델을 더 작게 만드는 데 집중해야 하며 가중치 수를 줄일 수 있습니다.
- 벡터 간의 의미 있는 관계 부족. 벡터 값이 음식에 대한 원-핫 인코딩은 식품에 대한 유의미한 정보를 유사성도 있습니다. 수학적으로 색인 1('핫도그')은 더 높은 값이지만 색인 4999('shawarma')보다 색인 2에 가까운 개는 샐러드보다는 샤와르마 (육류와 빵을 모두 포함)와 더 비슷합니다.
이 모듈에서는 저차원인 임베딩을 만드는 방법을 알아봅니다. 희소 데이터의 표현을 사용하면 이러한 문제를 모두 해결할 수 있습니다.