时隔一个月,我又回来了
好了,好了
(做出停止鼓掌的手势
今天我们的主题是CNN最后最后那个Softmax Function
可是网上已经把关于Softmax讲烂了
于是今天,我只想谈谈我对Softmax某些方面的理解
建议大家看之前,先去别的地方学习一些Softmax
敲黑板了,前排玩手机的同学麻烦叫一下后排的睡觉的同学
首先这是卷积神经网络最后一层全连接层的构造,W是神经元的权值,K是要分类的类别数,X是上一层的输出平铺(Flatten)后的结果
下面是softmax 的公式
那么我们怎么理解上面的公式呢
首先我们先来看Softmax Function公式本身,非常好理解
1. 当输入为X, 预测类别为j 的概率为P
2. 所有预测类别概率和为1
然后我们把CNN 和 Softmax 相结合
假设首先我们现在的任务是区别一图片是不是猫
假设这个神经网络模型已经训练完了
全连接层已经知道
当我们得到以上特征,我就可以判断这个东东是猫了
假设现在我们要给猫和狐狸分类,输入x是一堆特征,最后得到猫的特征表示值1.9,狐狸特征表示值0.6,这样意思是输入包含了更多猫的特征,包含更少狐狸的特征
这个时候,根据常理,为了做出判断,你肯定会选特征表示值最大(max)的那个,对,也就是猫(1.9)
到这里你肯定会问,既然max可以帮我搞定分类问题,为什么还需要Softmax
因为在实际运用中,特征表示值的用途不大, 我们更希望得到具有统计意义的概率
那我们来看看Softmax 是怎么实现的
根据上面的图示,我们可以得到如下Softmax公式,当输入为X时,输出为猫的概率
Softmax 输出概率图
Softmax 物理意义图
然后我们把上面的Softmax物理意义图拆分一下, 变成如下图
现在把分子拆分成如上图,我想你应该明白了
没错 ,预测结果与输入特征之间存在明显相关性
并且,Softmax 具有更好的解释性,包含属于猫的这一类的特征越多,输出为猫的概率就越大
(插播一句,这里所谓的概率,是相对概率,而不是绝对概率,假设上图P输出的概率为0.75,物理含义是,当输入为X时,预测为猫的概率是预测不是猫的概率的3倍))
上面的情况是假设不同特征是相互独立的
然而,这可能在许多情况下不成立,因为特征之间可能存在协同作用或冗余
这种协同或者作用会直接影响输出概率,比如猫前脚和猫后脚
为了解决这种情况,我们可以:(来自我们Lab办公室的李博士建议)
1)去除有协同作用或冗余的特征,如x3 =X1⋅x2x3=x1⋅x2(但是如果我们不知道哪些特征值是相关的,我们可能会引入更多无用的特征!
2)当两个特征经常一起被激活时,训练过程将学习较小的权重W1和W2,使得它们的联合效果更接近真实效果
领取专属 10元无门槛券
私享最新 技术干货