Похоже, вы выполняете задачу регрессии, поскольку вы описываете свой конечный результат как «непреобразованное фактическое значение (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, которая дала бы максимальную потери за любой неверный прогноз, независимо от того, насколько он был близок или далек от правильного.
person
ely
schedule
10.01.2019