Выходной слой моей нейронной сети (3-слойный) использует сигмоид как активацию, которая выводится только в диапазоне [0-1]. Однако, если я хочу обучать его выводам, выходящим за пределы [0-1], скажем тысячам, что мне делать?Выход нейронной сети: масштабирование выходного диапазона
Например, если я хочу, чтобы обучать
вход ----> выход
0 0 ------> 0
0 1 ------> 1000
1000 1 ----> 1
1 1 -------> 0
Моя программа работает для AND, OR, XOR е tc. В качестве входного выхода все в двоичном формате.
Были некоторые предложение использовать,
Активация:
у = лямбда * (абс (х) 1/(1 + ехр (-1 (х))))
Производная активации:
лямбда * (абс (у) y (1-y))
Это не сходилось для упомянутого шаблона обучения (если я не сделал ничего плохого). Есть ли какие-либо предложения, пожалуйста?
Привет! Но для того, чтобы реализовать ваше предложение о регрессионном случае, как мне нужно изменить свой код, например, я использую обратное распространение, где я использовал производную сигмоида для распространения ошибки. (Http: //www.speech. sri.com/people/anand/771/html/node37.html), я использовал этот алгоритм, теперь, если я не использую какой-либо сигмоид в выходе, что будет delk в этом случае? И если я хочу только обучать упомянутой модели, то какой тип топологии будет лучше? Регрессия или классификация? Я имею в виду, что бы вы сделали? –
вместо функции активации сигмоида в выходном слое, используйте функцию тождества 'f (x) = x'. Кроме того, это целевой атрибут, который вы пытаетесь предсказать, используя нейронную сеть, которая определяет тип проблемы, которую вы имеете: категориальные/номинальные значения (классификация, например: классификация писем как спам/не-спам) и числовые значения (регрессия, ex : прогнозирование цен на акции). – Amro