系列博客目录
文章目录
在图像分类任务 中,"logit" 是指模型在输出层的未经过激活函数(如 Softmax 或 Sigmoid)处理的原始输出值。下面通过一个具体的例子来说明 logit 的概念,以及它如何用于图像分类任务。
背景
假设我们有一个简单的图像分类任务,目标是对输入图像进行 3 类分类(例如,类别 A、类别 B 和类别 C)。神经网络模型的最后一层是一个全连接层,它输出 3 个 logit 值(每个类别对应一个 logit)。
这些 logit 值通常被解释为"未归一化的分数",用于衡量输入图像属于某个类别的可能性大小。
模型假设
- 输入图像特征 :假设经过卷积网络处理后,我们得到了特征向量 f = [ 0.5 , 0.8 , 1.2 ] \mathbf{f} = [0.5, 0.8, 1.2] f=[0.5,0.8,1.2]。
- 最后一层权重和偏置 :
- 权重矩阵 (W):
W = [ 1.0 − 1.0 0.5 0.8 0.5 − 0.3 − 0.5 1.2 1.0 ] W = \begin{bmatrix} 1.0 & -1.0 & 0.5 \\ 0.8 & 0.5 & -0.3 \\ -0.5 & 1.2 & 1.0 \end{bmatrix} W= 1.00.8−0.5−1.00.51.20.5−0.31.0 - 偏置向量 (b = [0.2, -0.1, 0.5])。
- 权重矩阵 (W):
计算 logit
logit 值通过以下公式计算:
z = W ⋅ f + b \mathbf{z} = W \cdot \mathbf{f} + b z=W⋅f+b
其中:
- z \mathbf{z} z 是 logit 值(模型的原始输出)。
- W W W 是权重矩阵。
- f \mathbf{f} f 是输入特征。
- b b b 是偏置。
逐步计算:
-
点积计算:
- 对类别 A:
z 1 = ( 1.0 ⋅ 0.5 ) + ( − 1.0 ⋅ 0.8 ) + ( 0.5 ⋅ 1.2 ) = 0.5 − 0.8 + 0.6 = 0.3 z_1 = (1.0 \cdot 0.5) + (-1.0 \cdot 0.8) + (0.5 \cdot 1.2) = 0.5 - 0.8 + 0.6 = 0.3 z1=(1.0⋅0.5)+(−1.0⋅0.8)+(0.5⋅1.2)=0.5−0.8+0.6=0.3 - 对类别 B:
z 2 = ( 0.8 ⋅ 0.5 ) + ( 0.5 ⋅ 0.8 ) + ( − 0.3 ⋅ 1.2 ) = 0.4 + 0.4 − 0.36 = 0.44 z_2 = (0.8 \cdot 0.5) + (0.5 \cdot 0.8) + (-0.3 \cdot 1.2) = 0.4 + 0.4 - 0.36 = 0.44 z2=(0.8⋅0.5)+(0.5⋅0.8)+(−0.3⋅1.2)=0.4+0.4−0.36=0.44 - 对类别 C:
z 3 = ( − 0.5 ⋅ 0.5 ) + ( 1.2 ⋅ 0.8 ) + ( 1.0 ⋅ 1.2 ) = − 0.25 + 0.96 + 1.2 = 1.91 z_3 = (-0.5 \cdot 0.5) + (1.2 \cdot 0.8) + (1.0 \cdot 1.2) = -0.25 + 0.96 + 1.2 = 1.91 z3=(−0.5⋅0.5)+(1.2⋅0.8)+(1.0⋅1.2)=−0.25+0.96+1.2=1.91
- 对类别 A:
-
加上偏置:
- 对类别 A:
z 1 = 0.3 + 0.2 = 0.5 z_1 = 0.3 + 0.2 = 0.5 z1=0.3+0.2=0.5 - 对类别 B:
z 2 = 0.44 − 0.1 = 0.34 z_2 = 0.44 - 0.1 = 0.34 z2=0.44−0.1=0.34 - 对类别 C:
z 3 = 1.91 + 0.5 = 2.41 z_3 = 1.91 + 0.5 = 2.41 z3=1.91+0.5=2.41
- 对类别 A:
最终 logit 值为:
z = [ 0.5 , 0.34 , 2.41 ] \mathbf{z} = [0.5, 0.34, 2.41] z=[0.5,0.34,2.41]
解释 logit
这些 logit 值 [ 0.5 , 0.34 , 2.41 ] [0.5, 0.34, 2.41] [0.5,0.34,2.41] 表示模型对每个类别的未归一化预测分数:
- 类别 A 的分数为 0.5 0.5 0.5。
- 类别 B 的分数为 0.34 0.34 0.34。
- 类别 C 的分数为 2.41 2.41 2.41。
这些分数尚未转换为概率,因此不能直接用于分类决策。
从 logit 转为概率
logit 值可以通过 Softmax 激活函数 转换为概率分布:
Softmax ( z i ) = exp ( z i ) ∑ j = 1 3 exp ( z j ) \text{Softmax}(z_i) = \frac{\exp(z_i)}{\sum_{j=1}^3 \exp(z_j)} Softmax(zi)=∑j=13exp(zj)exp(zi)
进行逐步计算:
-
计算每个类别的指数值:
- 对类别 A:
exp ( 0.5 ) ≈ 1.65 \exp(0.5) \approx 1.65 exp(0.5)≈1.65 - 对类别 B:
exp ( 0.34 ) ≈ 1.41 \exp(0.34) \approx 1.41 exp(0.34)≈1.41 - 对类别 C:
exp ( 2.41 ) ≈ 11.14 \exp(2.41) \approx 11.14 exp(2.41)≈11.14
- 对类别 A:
-
计算指数值的总和 :
∑ j = 1 3 exp ( z j ) = 1.65 + 1.41 + 11.14 = 14.2 \sum_{j=1}^3 \exp(z_j) = 1.65 + 1.41 + 11.14 = 14.2 j=1∑3exp(zj)=1.65+1.41+11.14=14.2 -
计算每个类别的概率:
- 对类别 A:
P ( A ) = exp ( 0.5 ) 14.2 = 1.65 14.2 ≈ 0.116 P(A) = \frac{\exp(0.5)}{14.2} = \frac{1.65}{14.2} \approx 0.116 P(A)=14.2exp(0.5)=14.21.65≈0.116 - 对类别 B:
P ( B ) = exp ( 0.34 ) 14.2 = 1.41 14.2 ≈ 0.099 P(B) = \frac{\exp(0.34)}{14.2} = \frac{1.41}{14.2} \approx 0.099 P(B)=14.2exp(0.34)=14.21.41≈0.099 - 对类别 C:
P ( C ) = exp ( 2.41 ) 14.2 = 11.14 14.2 ≈ 0.785 P(C) = \frac{\exp(2.41)}{14.2} = \frac{11.14}{14.2} \approx 0.785 P(C)=14.2exp(2.41)=14.211.14≈0.785
- 对类别 A:
最终概率分布为:
P = [ 0.116 , 0.099 , 0.785 ] P = [0.116, 0.099, 0.785] P=[0.116,0.099,0.785]
分类决策
根据 Softmax 的输出概率,类别 C 的概率最大 ( P ( C ) = 0.785 P(C) = 0.785 P(C)=0.785),因此模型将输入图像分类为类别 C。
总结
- logit 值 是模型在最后一层的原始输出值,未经过激活函数处理。例如,本例中的 logit 值为 [ 0.5 , 0.34 , 2.41 ] [0.5, 0.34, 2.41] [0.5,0.34,2.41]。
- logit 值可以通过 Softmax 函数 转换为概率分布,用于分类任务。
- 通过计算,最终概率分布为 [ 0.116 , 0.099 , 0.785 ] [0.116, 0.099, 0.785] [0.116,0.099,0.785],模型将图像分类为类别 C。