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();   
}

모델이 예측한 확률 분포와 실제 정답 간의 차이를 측정,