Область изменений выходных переменных

18 views
Skip to first unread message

Maksim Shcherbakov

unread,
Sep 5, 2014, 2:43:42 AM9/5/14
to py-ne...@googlegroups.com
Добрый день.

У меня вот какой вопрос: я правильно понимаю, что область изменения желаемых выходных переменных (target) должна быть [-1; 1]? 
К примеру если в задаче я оперирую числами вне данного интервала, как в примере ниже, то процесс обучения завершается в одну эпоху, а в результате получаю 1.


input = np.random.uniform(0, 10, (10, 2))
target
= (input[:, 0] + input[:, 1]).reshape(10, 1)
# Create network with 2 inputs, 5 neurons in input layer and 1 in output layer
net
= nl.net.newff([[0, 10], [0, 10]], [5, 1])
# Train process
err
= net.train(input, target, show=15)
net
.sim([[2., 1.]]) # 0.2 + 0.1

результат:
array([[ 1.]])



Evgeny Zuev

unread,
Sep 5, 2014, 4:53:19 AM9/5/14
to py-ne...@googlegroups.com
 я правильно понимаю, что область изменения желаемых выходных переменных (target) должна быть [-1; 1]? 

В общем да. По умолчанию newff создает сеть с с функцией активации TanSig, на выходе которой значения [-1 ;1]. Поэтому есть 2 варианта:
  1. Нормализовать целевые значения к указанному диапазону. Этот метод предпочтительнее 
  2. Изменить дефолтную ф-ю активации в выходном слое, например на SatLinPrm

Maksim Shcherbakov

unread,
Sep 5, 2014, 11:15:45 AM9/5/14
to py-ne...@googlegroups.com
Спасибо за ответ. 
Воспользуюсь нормализацией. 


пятница, 5 сентября 2014 г., 12:53:19 UTC+4 пользователь Evgeny Zuev написал:
Reply all
Reply to author
Forward
0 new messages