Softmax、SVM反向传播推导(未完成)

本文参考cs231n课程及专业博文, 深入解析计算机视觉领域的核心概念和技术, 包括但不限于深度学习的基本原理及其在图像识别中的应用等关键主题。
softmax是常用于分类问题的一种激活函数,它的反向传播可以使用交叉熵误差和梯度下降算法来实现。具体来说,softmax反向传播过程可以分为以下几步: 1. 计算softmax的输出值; 2. 计算损失函数(一般使用交叉熵误差)对softmax输出值的偏导数; 3. 计算损失函数对softmax输入值的偏导数(即梯度); 4. 将梯度传递给前一层神经元,继续进行反向传播。 下面是每个步骤的详细说明: 1. 计算softmax的输出值:假设有n个类别,输入向量为x,输出向量为y,则softmax函数可以表示为: y_i = e^(x_i) / (sum(e^(x_j)), j=1,2,...,n) 其中,i表示当前类别,j表示所有类别。需要注意的是,softmax的输出值是一个概率分布,所有输出值的和为1。 2. 计算损失函数对softmax输出值的偏导数:假设样本的真实标签为t,则损失函数可以表示为交叉熵误差: L = -sum(t_i * log(y_i)) 则损失函数对softmax输出值y的偏导数可以表示为: dL/dy_i = y_i - t_i 3. 计算损失函数对softmax输入值的偏导数(即梯度):根据链式法则,可以得到: dL/dx_i = sum(dL/dy_j * dy_j/dx_i), j=1,2,...,n 根据softmax函数的定义,可以得到: dy_j/dx_i = y_i * (delta_ij - y_j) 其中,delta_ij是Kronecker delta符号,当i=j时为1,否则为0。 将上式带入前面的公式中,可以得到: dL/dx_i = y_i * (1 - t_i) + sum(y_j * t_j), j!=i 4. 将梯度传递给前一层神经元,继续进行反向传播:将dL/dx_i传递给前一层神经元,计算其对前一层输入值的偏导数,并依次进行反向传播。这一过程中需要注意,如果前一层神经元也使用了softmax激活函数,则需要将其输入值与当前层输出值合并,重新计算softmax函数。这个过程称为“softmax with loss”层。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值