开发者社区 问答 正文

在Sigmoid类的backward方法中,为什么要用来计算梯度?

在Sigmoid类的backward方法中,为什么要用yGrad.mul(y).mul(NdArray.ones(y.getShape()).sub(y))来计算梯度?

展开
收起
夹心789 2024-05-27 19:46:13 84 分享 版权
1 条回答
写回答
取消 提交回答
  • 在Sigmoid类的backward方法中,使用yGrad.mul(y).mul(NdArray.ones(y.getShape()).sub(y))来计算梯度是因为sigmoid函数的导数为f'(x) = f(x) * (1 - f(x)),其中f(x)是sigmoid函数的输出。因此,我们需要将上一层的梯度(yGrad)与当前层的输出(y)及其补数(1 - y)相乘,以得到当前层的梯度。

    2024-05-27 20:29:51
    赞同 1 展开评论
问答地址: