Правильный способ вычисления производной сигмоидальной функции в Python
Я шел по этой статье. В коде автор упоминает, что следующая функция находит производную:
# convert output of sigmoid function to its derivative
def sigmoid_output_to_derivative(output):
return output*(1-output)
Я не мог понять, как производная была найдена здесь. Будет ли лучше использовать SymPy для поиска производного? Как я могу сделать это в примере, показанном в статье, особенно это output
будет список, подобный следующему:
[[ 0.44856632 0.51939863 0.45968497 0.59156505]
[ 0.28639589 0.32350963 0.31236398 0.51538526]
[ 0.40795614 0.62674606 0.23841622 0.49377636]
[ 0.25371248 0.42628115 0.14321233 0.41732254]]
Итак, суть в следующем:
- Как производная рассчитывалась в оригинальной статье? Я понимаю формулу в коде, но есть ли теоретическая основа?
- Можем ли мы использовать другой способ найти производную? Может быть, более понятным способом?
Благодарю.
1 ответ
Решение
Сигмовидная функция полезна главным образом потому, что ее производная легко вычисляется с точки зрения ее вывода; производная f(x)*(1-f(x))
,
Следовательно, поиск производной с использованием библиотеки на основе сигмоидальной функции не является необходимым, поскольку математическая производная (выше) уже известна. Для деривации, смотрите это.