dev_AI_framework
loss_function 의 구현,
명징직조지훈
2024. 9. 3. 15:49
mean_squared_error
double mean_squared_error(const std::vector<double>& y_true, const std::vector<double>& y_pred){
if(y_true.size() != y_pred.size()){
throw std::invalid_argument("Vectors y_true and y_pred must have the same length");
}
double mse = 0.0;
for (size_t i = 0; i < y_true.size(); ++i){
double diff = y_true[i] - y_pred[i];
mse += diff * diff;
}
return mse / y_true.size();
}
- 사이즈 비교
- 각 데이터별 차이 제곱 합
cross_entropy_loss
double cross_entropy_loss(const std::vector<double>& y_true, const std::vector<double>& y_pred){
if(y_true.size() != y_pred.size()){
throw std::invalid_argument("Vectors y_true and y_pred must have the same length");
}
double loss = 0.0;
for (size_t i = 0; i < y_true.size(); ++i){
loss -= y_true[i] * std::log(y_pred[i]) + (1.0 - y_true[i]) * std::log(1.0 - y_pred[i]);
}
return loss / y_true.size();
}
모델이 예측한 확률 분포와 실제 정답 간의 차이를 측정,