Выход нейронной сети: масштабирование выходного диапазона - PullRequest
1 голос
/ 28 января 2012

Выходной слой моей нейронной сети (3 слоя) использует сигмоид в качестве активации, который выводит только в диапазоне [0-1]. Однако, если я хочу обучить его выходам, выходящим за пределы [0-1], скажем, в тысячах, что мне делать?

Например, если я хочу тренироваться

вход ----> выход

0 0 ------> 0

0 1 ------> 1000

1000 1 ----> 1

1 1 -------> 0

Моя программа работает для AND, OR, XOR и т. Д. В качестве входных данных все в двоичном виде.

Было несколько предложений по использованию,

Активация:


y = лямбда * (абс (x) 1 / (1 + exp (-1 (x))))

Производная активации:


лямбда * (абс (у) у (1-у)) * +1031 *

Это не сходится для упомянутой схемы обучения (если я не сделал ничего плохого). Есть какие-нибудь предложения, пожалуйста?

Ответы [ 2 ]

3 голосов
/ 29 января 2012

Для задач классификации обычно используют сигмоидную / логистическую функцию активации в выходном слое для получения правильных значений вероятность в диапазоне [0,1]; в сочетании с кодированием 1 из N для классификации нескольких классов каждый выходной узел будет представлять вероятность того, что экземпляр принадлежит каждому значению класса.

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

Также следует соблюдать осторожность при масштабировании входных объектов (например, путем нормализации всех объектов в диапазоне [-1,1]).

1 голос
/ 29 января 2012

Масштабирование выходов до желаемых значений или нормализация тренировочных данных до диапазона [0,1] - очевидные решения.Я не могу придумать ни одной априорной причины, по которой масштабирование должно быть линейным (хотя оно, очевидно, хочет быть монотонно возрастающим), так что вы можете возиться с функциями журнала, здесь.

Над какой проблемой вы работаете, что у вас такие большие диапазоны?

...