机器学习之Softmax分类器

Softmax函数:

其实就是一个简单的归一化函数,即根据比例把之前的数字变形,使变形后的数字比例与原来相同,但是和变成了1:
机器学习之Softmax分类器_第1张图片
通常用在计算了W*x之后,把所得的与预测所得的Y归一化,这使得它,与SVM相比有了更加直观的(类似概率概率)输出。
softmax损失函数最经常使用的是交叉熵函数(cross-entropy):

交叉熵(Cross Entropy):

主要用于度量两个概率分布间的差异性信息。
要了解交叉熵我们先要了解以下几个概念:

信息量

根据八卦常识我们可以得知,一个发生概率很小的事情发生了,往往会携带着很大的信息量,我们以以下两件事来作为例子:
(1):我和胡歌结婚
(2):刘亦菲和胡歌结婚
显而易见的是第一件事有更大的信息量,比如说:胡歌为什么和一个素人结婚,他们怎么认识的等等。
由此我们的以得到-log函数在[0,1]上的分布是很是符合我们的常识,所以可以认为一件事x发生所带来的信息量为:
在这里插入图片描述

即可以看作是信息量的期望:在这里插入图片描述

相对熵(KL散度)

相对熵又称KL散度,如果我们对于同一个随机变量 x 有两个单独的概率分布 P(x) 和 Q(x),我们可以使用 KL 散度(Kullback-Leibler divergence)来衡量这两个分布的差异,即如果用P来描述目标问题,而不是用Q来描述目标问题,得到的信息增量。
在机器学习中,P往往用来表示样本的真实分布,比如[1,0,0]表示当前样本属于第一类。Q用来表示模型所预测的分布,比如[0.7,0.2,0.1]
直观的理解就是如果用P来描述样本,那么就非常完美。而用Q来描述样本,虽然可以大致描述,但是不是那么的完美,信息量不足,需要额外的一些“信息增量”才能达到和P一样完美的描述。如果我们的Q通过反复训练,也能完美的描述样本,那么就不再需要额外的“信息增量”,Q等价于P。
在这里插入图片描述
n为一共有多少个x的数据,相对熵值越小代表预测值和目标值越接近。

交叉熵

可以把相对熵按照下面的方式分解:
在这里插入图片描述
后半部分即为交叉熵:
在这里插入图片描述
因为x的熵是保持不变的,所以只需要关注交叉熵即可。
当我们计算我们估计的分布q(xi)时:
在这里插入图片描述
可能因为指数函数数值太大导致计算比较复杂,我们可以使分子分母同时除以一个常数C。
在这里插入图片描述
通常来说C的取值会选择:
在这里插入图片描述

SVM&Softmax比较:

机器学习之Softmax分类器_第2张图片
在实践中,SVM和Softmax通常具有可比性。 SVM和Softmax之间的性能差异通常非常小,不同的人对于哪种分类器更好地工作会有不同的看法。与Softmax分类器相比,SVM是更本地化的目标,可以将其视为错误或功能。考虑一个实现分数[10,-2,3]和第一类正确的例子。 SVM(例如,具有期望的Δ= 1的余量)将看到正确的类已经具有高于与其他类相比的余量的分数,并且它将计算零损失。 SVM不关心单个分数的细节:如果它们是[10,-100,-100]或[10,9,9],则SVM将无关紧要,因为1的余量得到满足,因此损失是零。然而,这些场景并不等同于Softmax分类器,它会为分数[10,9,9]累积比[10,-100,-100]更高的损失。换句话说,Softmax分类器对它产生的分数永远不会满意:正确的类不可能达到概率为1,不正确的类也不可能达到概率为0,损失总是会变得更好。然而,一旦边际得到满足,SVM就会感到高兴,并且它不会对超出此约束的精确分数进行微观管理。这可以直观地被认为是一个特征:例如,汽车分类器可能将大部分“努力”用于将汽车从卡车上分离出来的困难问题,不应该受到蛙类实例的影响,因为它已经分配得非常低得分为,并且可能聚集在数据云的完全不同的一侧。

你可能感兴趣的:(机器学习)