일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Ai
- yolo
- 빅데이터
- Codestates
- 꾸준히
- MYSQL
- 코드스테이츠
- 2021
- 파이썬
- 재미져
- 기초통계
- 열심히
- 노마드코더
- 자료구조
- pandas
- 딥러닝
- python
- 리뷰
- 선형회귀
- 매일매일
- 코딩테스트
- selenium
- 주간보고
- 부트캠프
- 성실히
- SQL
- leetcode
- bootcamp
- JavaScript
- 독서
- Today
- Total
코딩일기
Categorical_crossentropy? Sparse_categorical_crossentropy? 본문
안녕하십니까 다제입니다.
오늘은 Categorical_crossentropy? Sparse_categorical_crossentropy? 가 무엇인지 알아보도록 하겠습니다.
특히 Tensorflow Certificate 시험을 볼 때 위 개념을 물어보는 경우가 많습니다.
이에, 한번 정리를 해서 여러분과 공유하고 싶었습니다. 함께 공부해보시죠!
분류는 이중분류와 다중분류가 있으며, 분류 문제에서 사용할 수 있는 loss값은 binary_crossentropy, Categorical_crossentropy, Sparse_categorical_crossentropy가 있습니다.
그럼 도대체 언제 저 녀석들을 사용해야할까요?
일단, binary_crossentropy는 이름에서도 힌트를 얻을 수 있듯 sigmoid 함수를 activation fuction으로 사용할 때 올 수 있습니다. 오호! 그렇다면 나머지 두개만 언제 쓰는지만 알면 될 것 같습니다.
일단 퀴즈를 한번 드리겠습니다.
딥러닝 모델에서 마지막 층이 아래와 같이 기재되어 있다면 올 수 있는 loss 값은 무엇일까요?
Dense(2, activation="softmax")
Categorical_crossentropy Sparse_categorical_crossentropy 둘 다 올 수 있습니다.
아! 그래?
Dense에서 2 이상 이고 activation이 softmax면 저 두개를 쓸 수 있구나!
저 둘을 나누는 기준는 입력데이터가 y의 label값이 One-Hot Encoding이 되어 있다.
그러면 Categorical_Crossentropy를 사용해야합니다.
y의 label값이 One-Hot Encoding이 되어 있지 않다면 Sparse_categorical_crossentropy를 사용해야합니다.
표로 한번 정리하고 본 글을 마무리하고자 합니다.
구분 | 마지막 출력층 | Loss | y_label 값 |
1 | Dense(1, activation="sigmoid") | binary_crossentropy | 이진 분류 |
2 | Dense(2 이상, activation="softmax") | categorical_crossentropy | 다중 분류, One_hot_Encoding 되어 있음 |
3 | Dense(2 이상, activation="softmax") | sparse_ categorical_crossentropy | 다중 분류, One_hot_Encoding 되지 않음 |
오늘도 글을 읽어주셔서 감사드립니다.
'Code > 딥러닝(NL)' 카테고리의 다른 글
배치 정규화(Batch Normalization) (0) | 2021.12.17 |
---|---|
Deeping Weight Update와 Batch, Batch_size의 관계 (0) | 2021.10.22 |
[numpy] np.newaxis는 무엇이고 언제 사용하는가? (0) | 2021.10.04 |
Sequence Model References(feat. Coursera Andrew Ng) (0) | 2021.10.02 |
[quiz] Hyperparameter tuning, Batch Normalization, Programming Frameworks (0) | 2021.08.24 |