• 카테고리

    질문 & 답변
  • 세부 분야

    컴퓨터 비전

  • 해결 여부

    미해결

질문이 있습니다. ONE HOT 인코딩 CATEGORICAL

21.12.05 18:43 작성 조회수 145

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
 
안녕하세요 좋은강의 감사드리며 틈틈히 보고있는 학생입니다...
 
질문은 크게 두가지 입니다.
 
첫번째로 다중분류에서 카테고리컬 CROSSENTROPY를 쓸때 ONEHOT 인코딩을 해줘야 되잖아요
이것은 제가 이해하기론 LOGIT을 하고 소프트맥스 적용후 확률값을으로 나온 값을 ONEHOT인코딩으로 하나만 1로 나머지 0으로 바꾼다고 이해하는 것이 맞는지요
 
둘째로 ONEHOT인코딩을 적용 안했을때 SPARSE 카테고리컬을 써야 된다고 하셨는데
그러면 애초에 전처리때 LABEL을 ONEHOT 인코딩 안해도 되는 SPARSE 카테고리컬을 항상 쓰는게 낫지 않나요??
그냥 카테고리컬은 늘 ONEHOT 인코딩을 전처리 해줘야 되는 거잖아용

답변 2

·

답변을 작성해보세요.

0

김동현님의 프로필

김동현

질문자

2021.12.07

제가 onehot 인코딩을 착각했던 것 같습니다. 답변 감사합니다.

0

안녕하십니까, 

1. 질문이 cross entropy 계산을 의미하시는 건지요?

'이것은 제가 이해하기론 LOGIT을 하고 소프트맥스 적용후 확률값을으로 나온 값을 ONEHOT인코딩으로 하나만 1로 나머지 0으로 바꾼다고 이해하는 것이 맞는지요'

의 질문의도를 제가 잘 파악하지 못했습니다. cross entropy는 loss를 계산할 때 적용이 됩니다만.

cross entropy로 loss를 계산하는 방법에 대해서 여쭤보신걸로 간주하고 말씀드리면,

클래스가 3개 있는 멀티 분류의 경우 소프트 맥스 확률값으로 나온 값은 3개가 됩니다. [0.7, 0.2, 0.1] 된다고 가정하면(그렇다면 예측은 가장 큰 값인 0번째 index에 해당하므로 예측 값은 0 이 됩니다), 실제값은 [1, 0, 0](즉 실제값도 0번째 index가 1이므로 0이 됩니다)  이때 cross entropy loss는 실제값 0에 해당하는 0.2, 0.1은 제외하고 실제값 1에 해당하는(즉 0번째 index) 0.7을 log 변환하여 구합니다. -log(0.7)과 같이 구합니다. 

2. 딥러닝 초창기에는 sparse categorical이 존재하지 않았습니다. 기본적으로 딥러닝은 원핫 인코딩을 권장합니다. 다만 사용자의 편리에 따라 sparse categorical을 지원하는 쪽으로 발전한것입니다. 

 

감사합니다.