Я изучаю и пытаюсь реализовать сверточные нейронные сети, но я полагаю, что этот вопрос относится к многослойным персептронам в целом.
Выходные нейроны в моей сети представляют активацию каждого класса: самый активный нейрон соответствует предсказанному классу для данного входа. Чтобы учесть стоимость кросс-энтропии для обучения, я добавляю слой softmax в конце сети, чтобы значение активации каждого нейрона интерпретировалось как значение вероятности.
Мой вопрос: должны ли нейроны в выходном слое применять нелинейную функцию к входу? Моя интуиция заключается в том, что в этом нет необходимости:
- если вход в -му выходной нейрон является скалярным произведением между вектором (исходя из предыдущего слоя) , а весовые коэффициенты & для этого нейрона,
- и если я использую монотонную нелинейную функцию, такую как сигмоид или ReLU
- тогда больший выход активации будет по-прежнему соответствовать наибольшему , поэтому с этой точки зрения нелинейная функция не изменит прогноз.
Что-то не так с этой интерпретацией? Есть ли какие-то тренировочные факторы, которые я пропускаю, которые делают нелинейность вывода необходимой?
РЕДАКТИРОВАТЬ
Со ссылкой на ответ Карела, чей ответ в основном был «это зависит», вот более подробное описание моей сети и сомнения:
Предположим, у меня есть N скрытых слоев, и мой выходной слой представляет собой просто слой softmax над набором нейронов, представляющих классы (поэтому мой ожидаемый результат - вероятность того, что входные данные принадлежат каждому классу). Предполагая, что первые N-1 слои имеют нелинейные нейроны, в чем разница между использованием нелинейных и линейных нейронов в N-м скрытом слое?