MIT那本书不适合短平快的学习方式,转战Udacity里基于Tensorflow的一个视频教学
1. softmax的优势
格式为
exi∑jexj
相比较
xi∑jxj
假设原数据为
[3.0,1.0,0.2]
那么经过softmax运算,则得到
[0.8360188,0.11314284,0.05083836]
经过普通运算得到
[0.714285,0.238095,0.047619]
看起来差不太多。
但是原数据 ×10 后,差别就显示出来了。
经过普通运算的原数据是没有变化的。
[0.714285,0.238095,0.047619]
经过softmax运算前将原数据乘以10以后,softmax运算的结果为
[9.99999998e−01,2.06115362e−09,6.91440009e−13]
显而易见,最大的可能得到的结果几乎为1,其它可能得到的结果几乎为0,换句话说不是0就是1。
经过softmax运算前将原数据除以10以后,softmax运算的结果为
[0.38842275,0.31801365,0.2935636]
同样显而易见,他们几乎相等,均匀分布。
一个分类器开始的时候,需要对分类结果不要抱有太大信心,而在结束的时候要对分类结果抱有很大的信心,显然softmax可以做到这一点。
2. One-hot encoding
就是说
[1,0,0,0,0]
对应a
[0,1,0,0,0]
对应b
[0,0,0,0,1]
对应c
[0,0,1,0,0]
对应d
[0,0,0,1,0]
对应e
注意后三个没有写错。
每一排是结果向量,显然形成了一一对应关系。