Пошаговая передаточная функция нейронной сети Pybrain


person Sherlock    schedule 18.12.2012    source источник
comment
Не pybrain.org/docs/tutorial/extending-structure.html решить вашу проблему?   -  person mmgp    schedule 18.12.2012
comment
Не могли бы вы показать мне пример того, как использовать приведенную выше функцию в качестве передаточной функции? Я не совсем понимаю, как это сделать из документации :(   -  person Sherlock    schedule 18.12.2012
comment
Следуя исходному коду, я пришел к nullege.com/codes/show/. Я считаю, что это должно быть ясно для вас.   -  person mmgp    schedule 18.12.2012
comment
@mmgp, у меня серьезные проблемы с пониманием документации, не могли бы вы предоставить мне простой пример, чтобы я начал? огромное спасибо   -  person Sherlock    schedule 20.12.2012


Ответы (1)


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

Ближе всего к ступенчатой ​​функции можно подойти, например, с помощью такой функции, как

f(x) = max(-1, min(x, 1))

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

f'(x) = 1 if -1 < x < 1
        0 otherwise
person Fred Foo    schedule 20.12.2012
comment
Я буду использовать этот слой в качестве выходного слоя, а скрытые слои будут использовать сигмовидную функцию. Могу ли я использовать ступенчатую функцию в выходном слое? - person Sherlock; 20.12.2012
comment
@Relax_Im_A_Quant: нет. Выходная функция активации должна быть субдифференцируемой, чтобы вычислить градиент скрытого к выходному слою. В зависимости от задачи вы можете использовать модуль линейного вывода, обученный потери шарнира, чтобы аппроксимировать единицу шага. Я не очень хорошо знаком с PyBrain, поэтому я не уверен, позволяет ли он отделить функции активации и функции потерь. - person Fred Foo; 20.12.2012
comment
отлично - спасибо за подробный ответ. Если бы я использовал другой алгоритм обучения, например, генетический алгоритм, смог бы я использовать ступенчатую функцию? - person Sherlock; 20.12.2012
comment
@Relax_Im_A_Quant: Наверное, да. Но имейте в виду, GA не намного умнее, чем поиск методом грубой силы, поэтому вы не можете ожидать, что они будут работать с чем-то, кроме игрушечных задач. - person Fred Foo; 20.12.2012