softmax regression 推导

本文详细解析了多分类问题中对数损失函数的定义及其梯度的推导过程,通过数学公式展示了如何从概率分布出发,计算每个样本对于参数θ的贡献,并进一步推导出了损失函数关于参数θ的偏导数。

P(y(i)=k|x(i);θ)=exp(θ(k)x(i))Kj=1exp(θ(j)x(i))

似然函数

L=i=1Mk=1KP(y(i)=k|x(i);θ)1{y(i)=k}

对数损失函数为:

J(θ)=i=1mk=1K1{y(i)=k}logexp(θ(k)x(i))Kj=1exp(θ(j)x(i))

1{⋅} is the ”‘indicator function,”’ so that 1{a true statement}=1, and 1{a false statement}=0.

现在对对数损失函数求偏导

θ(n)J(θ)=i=1my(i)P(y(i)=n|xi;θ)θ(n)+k=1,knKy(i)P(y(i)=k|xi;θ)θ(n)

其中,
P(y(i)=n|xi;θ)=logexp(θ(n)x(i))Kj=1exp(θ(j)x(i))

P(y(i)=k|xi;θ)=logexp(θ(k)x(i))Kj=1exp(θ(j)x(i))

P(y(i)=n|xi;θ)θ(n)=Kj=1exp(θ(j)x(i))exp(θ(n)x(i))exp(θ(n)x(i))x(i)Kj=1exp(θ(j)x(i))exp(θ(n)x(i))exp(θ(n)x(i))x(i)[Kj=1exp(θ(j)x(i))]2=x(i)exp(θ(n)x(i))x(i)Kj=1exp(θ(j)x(i))=x(i)(1P(y(i)=n|xi;θ))

另外一个,

P(y(i)=k|xi;θ)θ(n)=Kj=1exp(θ(j)x(i))exp(θ(k)x(i))exp(θ(k)x(i))exp(θ(n)x(i))x(i)[Kj=1exp(θ(j)x(i))]2=exp(θ(n)x(i))x(i)Kj=1exp(θ(j)x(i))=P(y(i)=n|xi;θ)x(i)

θ(k)J(θ)=i=1m[x(i)(1{y(i)=k}P(y(i)=k|x(i);θ))]
### Softmax Regression介绍 Softmax回归是一种多分类算法,在处理多分类任务时经常使用该模型。在神经网络中,若问题为分类模型(即便像CNN或者RNN),一般最后一层会采用Softmax回归。它能通过线性模型把输入特征映射到每个类别的得分上,再利用Softmax函数将这些得分转换为概率分布,以此实现对多类别数据的分类 [^1][^2]。 ### Softmax Regression原理 Softmax回归基于最大熵模型推导得出。最大熵原理认为,在所有可能的概率模型里,熵最大的模型就是最优模型。假设离散随机变量X的概率分布是P(X),其熵可表示为:$H ( P ) = -\sum_x p ( x ) \log p ( x )$。基于此假设经过一系列推导得到概率模型函数:$p ( y^{(i)} = j|X^{(i)}; W ) = \frac{\exp(W_j^T X^{(i)})}{\sum_{l = 1}^{k} \exp(W_l^T X^{(i)})}$ [^3]。 ### Softmax Regression应用 在神经网络的分类模型中应用广泛,如CNN、RNN等网络的最后一层常使用Softmax回归,可用于图像分类、文本分类等多分类场景,将输入数据划分到多个不同的类别中 [^2]。 ### Softmax Regression实现 由于softmax回归是多分类模型,需要对不同的输出节点使用不同的损失函数,同时使用相同的参数$\theta$进行训练。参数的优化可采用梯度下降法,即每次更新梯度来减小损失函数的值 [^4]。以下是一个简单的Python示例代码(使用NumPy)来实现Softmax回归: ```python import numpy as np def softmax(x): exp_x = np.exp(x - np.max(x, axis=1, keepdims=True)) return exp_x / np.sum(exp_x, axis=1, keepdims=True) # 示例输入特征 X = np.array([[1, 2, 3], [4, 5, 6]]) # 示例权重 W = np.array([[0.1, 0.2, 0.3], [0.4, 0.5, 0.6], [0.7, 0.8, 0.9]]) # 计算得分 scores = np.dot(X, W) # 计算概率分布 probabilities = softmax(scores) print("Softmax probabilities:", probabilities) ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值