MLP 双层 梯度计算

该文详细阐述了在两层MLP模型中,使用Sigmoid激活函数和二元交叉熵损失函数的情况下,如何计算输出层的反向传播梯度,包括对损失函数关于y、a以及权重w_j的梯度,这些梯度用于优化模型权重,最小化损失函数。
摘要由CSDN通过智能技术生成

首先明确问题,这里是一个两层的多层感知机(MLP)模型,输入层有d个单位(x1到xd),输出层有一个单元y。给出的forward公式表示二元交叉熵损失函数(binary cross entropy loss)以及Sigmoid激活函数。现在要求输出层的backward梯度计算。

根据以上描述,我们首先列出相关公式:

  1. Sigmoid激活函数:y = σ(a) = 1 / (1 + exp(-a))
  2. 二元交叉熵损失函数:L = -(y^ * log(y) + (1 - y^) * log(1 - y))
  3. 线性组合:a = Σ(w_j * x_j) (j从1到d)

下面我们来计算损失函数关于各个参数的梯度:

求L关于y的梯度:

dL/dy = - (y^ / y - (1 - y^) / (1 - y))

求L关于a的梯度(链式法则):

dL/da = (dL/dy) * (dy/da)

dy/da = σ(a) * (1 - σ(a)) = y * (1 - y)

dL/da = (dL/dy) * (dy/da) = - (y^ / y - (1 - y^) / (1 - y)) * y * (1 - y)

对于每个权重参数 w_j,求L关于w_j的梯度(链式法则):

dL/dw_j = (dL/da) * (da/dw_j)

da/dw_j = x_j

所以,

dL/dw_j = (dL/da) * (da/dw_j) = - (y^ / y - (1 - y^) / (1 - y)) * y * (1 - y) * x_j

现在我们已经得到了损失函数关于各个权重参数的梯度。这些梯度可以用于更新权重,从而优化模型。在二元分类问题中,二元交叉熵损失函数和Sigmoid激活函数常常一起使用,因为它们可以很好地衡量模型预测概率和真实概率之间的差距。计算出梯度之后,可以使用梯度下降或其他优化算法来更新权重,从而最小化损失函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UCAS_V

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值