작성
·
155
0
안녕하세요. 우선 너무 좋은 강의들을 통해 많이 배우고 있어서 너무 감사드립니다!
저는 딥러닝 CNN 완벽가이드와 파이썬 머신러닝 완벽가이드를 같이 듣고 있는 학생입니다.
제가 문득 cross entropy에 대한 강의를 듣다가 혼동이 오는 부분이 있는데,
1. 머신러닝을 이용하여 분류 문제를 풀 때는 loss 함수가 따로 없는건가요? 이 때는 f1 score, roc 등과 같은 방법이 더 좋은 지표인가요?
2. cross entropy를 사용하기 위해선 update된 y hat 값을 backpropagation해야 하는데 사이킷런에서 제공하는 lightgbm 등과 같은 모델에서는 backpropagation 연산이 불가능하기 때문에 cross entropy를 사용하지 못하는건가요??
제가 아직 부족해서 질문이 좀 중구난방인 점 양해 부탁드립니다ㅜ
답변 1
0
안녕하십니까,
많이 배우고 있으시다니, 저도 기분이 좋군요.
1. 일반적인 머신러닝 분류 알고리즘에서도 cross entropy가 사용됩니다. cross entropy는 딥러닝 이전에도 log loss로 불리며 logistic regression등의 분류 알고리즘에 loss로 사용되어 왔습니다.
하지만 cross entropy가 머신러닝 분류 알고리즘 모두에 적용되는 loss 함수는 아닙니다.
support vector machine은 hinge loss, 그리고 DecisionTree같은 경우는 information gain 또는 gini 계수입니다.
Gradient Boosting Tree(GBM, XGboost, lightgbm)의 경우 classification에서 log loss를 적용합니다.
2. cross entropy와 back propagation은 별 관련이 없습니다. back propagation은 딥러닝이 너무 복잡한 모델이라 Gradient 를 Update하는 독특한 방법입니다.
감사합니다.