Может ли ReLU обрабатывать отрицательный вход?

Я тренирую нейронную сеть на данных, которые поступают как отрицательные и положительные значения.

есть ли способ передать данные в сеть ReLU без преобразования их всех в положительные и иметь отдельный вход, который говорит, являются ли данные отрицательными или положительными?

проблема, которую я вижу, заключается в том, что отрицательный вход на входном слое означает, что, если вы не инициализировали свои веса отрицательными, узел ReLU никогда не активируется и навсегда мертв.

2 ответов


Я не уверен на 100%, что вы спрашиваете, так как есть много функций активации, и вы можете легко кодировать свой собственный. Если вы не хотите кодировать свой собственный, возможно, попробуйте некоторые альтернативы:

Дырявый Релу

enter image description here

Параметрическая ReLU

enter image description here

в основном, посмотри здесь enter image description here


Если вы действительно используете функцию активации с входным слоем, я бы предложил использовать другую функцию активации, например ELU, или преобразовать ваши данные в диапазон [0,1]. Если функция ReLU находится в каком-то скрытом слое, функция ReLU должна стать мертвой только временно.

предположим, что у вас есть функция ReLU в последнем скрытом слое сети прямой передачи. С помощью алгоритма backpropagation должно быть возможно, что выходы предыдущего скрыты слои изменяются таким образом, что в конечном итоге вход в функцию ReLU снова станет положительным. Тогда Релу больше не будут мертвы. Скорее всего, я что-то упускаю.

в любом случае, вы определенно должны дать ЭЛУ попробовать! Я испытал лучшие результаты с ним, чем с ReLU.