Похоже, что вы выполняете задачу регрессии, поскольку вы описываете свой конечный результат как «не преобразованное фактическое значение (y) (которое может быть любым числом, поскольку оно не было подвергнуто функции активации Relu)».
В этом случае вы не будете использовать функцию активации в вашем конечном выходном слое нейронной сети, потому что, как вы указали, предсказание не предназначено для ограничения какой-либо конкретной активированной областью действительных чисел. .. разрешено быть любым действительным числом (и модель будет использовать градиент функции потерь для настройки параметров на более ранних уровнях сети для достижения точности при создании некоторого конечного выходного значения «любое число»).
Например, см. Учебник Basic Regression TensorFlow Keras. Вы можете увидеть из определения слоя модели:
def build_model():
model = keras.Sequential([
layers.Dense(64, activation=tf.nn.relu, input_shape=[len(train_dataset.keys())]),
layers.Dense(64, activation=tf.nn.relu),
layers.Dense(1)
])
optimizer = tf.train.RMSPropOptimizer(0.001)
model.compile(loss='mse',
optimizer=optimizer,
metrics=['mae', 'mse'])
return model
Он использует среднеквадратичную потерю ошибок, а последний слой представляет собой просто Dense(1)
значение без активации.
В тех случаях, когда выходные данные представляют собой прогноз двоичной классификации или классификации по нескольким меткам, вы все равно примените активацию к последнему слою, и она преобразует значение в относительную оценку, которая указывает прогноз модели для каждой категории.
Так, например, если вы хотите предсказать метку для задачи прогнозирования 4 категории, ваш выходной слой будет выглядеть примерно так: Dense(4, activation=tf.nn.softmax)
, где активация softmax преобразует необработанные значения нейронов этих 4 нейронов в относительные оценки.
В этом случае обычно ассоциируют выходной нейрон с наивысшей оценкой с меткой предсказанной категории. Однако функции категориальной потери, такие как кросс-энтропийная потеря, будут использовать относительные значения баллов для всех нейронов в качестве способа распределения потерь в соответствии со степенью точного прогноза, а не потери 0-1, которая дала бы максимум потеря для любого неверного прогноза, независимо от того, насколько он близок или далек от того, чтобы быть верным.