You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python计算多元Sigmoid函数的偏导数?

用SymPy计算多元Sigmoid函数的偏导数

假设你要计算的是多元线性组合输入的Sigmoid函数的偏导数,比如常见形式:
σ(z) = 1/(1 + e^(-z)),其中 z = w₁x₁ + w₂x₂ + b(这里以2个输入变量为例,可扩展到更多变量)

以下是正确实现代码:

import sympy as sym

# 定义所有需要的符号变量
w1, w2, x1, x2, b = sym.symbols('w1 w2 x1 x2 b')

# 构造线性组合z
z = w1*x1 + w2*x2 + b

# 定义Sigmoid函数
sigmoid = 1 / (1 + sym.exp(-z))

# 示例1:对权重w1求偏导
d_sigmoid_w1 = sigmoid.diff(w1)
print("对w1的偏导数:", d_sigmoid_w1)

# 示例2:对输入x2求偏导
d_sigmoid_x2 = sigmoid.diff(x2)
print("对x2的偏导数:", d_sigmoid_x2)

# 示例3:对偏置b求偏导
d_sigmoid_b = sigmoid.diff(b)
print("对b的偏导数:", d_sigmoid_b)

关键说明

  • 必须先明确Sigmoid的输入是线性组合z,再基于z定义Sigmoid函数,直接混写变量容易导致求导逻辑错误
  • 如果你的多元Sigmoid是其他形式(比如向量形式),只需调整z的表达式,求导逻辑完全一致
  • SymPy会自动化简导数结果,比如对w1的偏导最终会化简为 x₁⋅σ(z)⋅(1-σ(z)),和Sigmoid导数的经典结论匹配

内容的提问来源于stack exchange,提问作者user15675493

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 00:15:34