В качестве заголовка,
Я пытаюсь построить модель для прогнозирования PM2.5,
Возможно использовать функцию потерь с градиентом достойного, например, mse, rmse, mae ... et c.
но когда я использую пользовательскую функцию потерь с функцией шага, мне кажется, что веса не обновлялись.
в последних слоях моей модели выводится прогноз pm2.5,
и я пытаюсь использовать функцию шага для расчета потерь
def custom_loss(y_true,y_pred):
z_true = step_function(y_true)
z_pred = step_function(y_pred)
return K.abs(z_true -z_pred)
, а моя функция шага - попытка преобразовать PM2.5 в уровни AQI.
def step_function(x):
step1 = ((K.tanh(x-15.45))+1)/2 # is means PM2.5 <15.45 return 0 >15.45 return 1
step2 = ((K.tanh(x-35.45))+1)/2 # is means PM2.5 <35.45 return 0 >35.45 return 1
return (step1+step2) # if x(PM2.5) = 50 , will return 2
возможно, когда y_true и y_pred равны 0, а пошаговая функция возвращает 0, не может дифференцировать, поэтому встречающиеся веса не обновляются?