Может ли ReLU обрабатывать отрицательный вход?
Я тренирую нейронную сеть на данных, которые поступают как отрицательные и положительные значения.
есть ли способ передать данные в сеть ReLU без преобразования их всех в положительные и иметь отдельный вход, который говорит, являются ли данные отрицательными или положительными?
проблема, которую я вижу, заключается в том, что отрицательный вход на входном слое означает, что, если вы не инициализировали свои веса отрицательными, узел ReLU никогда не активируется и навсегда мертв.
2 ответов
Я не уверен на 100%, что вы спрашиваете, так как есть много функций активации, и вы можете легко кодировать свой собственный. Если вы не хотите кодировать свой собственный, возможно, попробуйте некоторые альтернативы:
Дырявый Релу
Параметрическая ReLU
в основном, посмотри здесь
Если вы действительно используете функцию активации с входным слоем, я бы предложил использовать другую функцию активации, например ELU, или преобразовать ваши данные в диапазон [0,1]. Если функция ReLU находится в каком-то скрытом слое, функция ReLU должна стать мертвой только временно.
предположим, что у вас есть функция ReLU в последнем скрытом слое сети прямой передачи. С помощью алгоритма backpropagation должно быть возможно, что выходы предыдущего скрыты слои изменяются таким образом, что в конечном итоге вход в функцию ReLU снова станет положительным. Тогда Релу больше не будут мертвы. Скорее всего, я что-то упускаю.
в любом случае, вы определенно должны дать ЭЛУ попробовать! Я испытал лучшие результаты с ним, чем с ReLU.