美文网首页
关于Softmax的一些想法

关于Softmax的一些想法

作者: zizon | 来源:发表于2016-09-10 23:40 被阅读0次

    考虑softmax = e^{x_k} / \sum e^{x_i}���.

    如果令y=e^x的话,则是一个较为一般的形式:
    softmax = y / \sum y_i.

    更一般的,假设y>0的话,则其实是一个类似percentage的东西.

    比如y是一个投资份额/资金比例,那么\sum y就是每个个体的资本之和.
    也就是总资本.

    所以本质上来说,这种情况下更类似于一种dimension �contribution的衡量方式.

    那么,如果�考虑下数据分布呢?

    一个极端的情况就是y=y_c,也就是所有y具有同一个值.
    也就是说每个dimension的contribution区分度不会太大.

    宽松一点来说,如果�y的variance的不大的话.
    那么softmax的值也不会有太大的偏差.

    再考虑一种情况.
    即对于y来说,存在两个value group,y_a和y_b.
    且y_a << y_b,或者宽松一点,y_a < y_b.

    如果整体\sum y比较大,或者dimension比较多.
    那么即使是y_b/ �\sum y 的值可能也不会比 y_a/ �\sum �y的值来地更显著.

    但从数据分布的人工直觉上来说,y_a和y_b的�contribution应该是存在有区分度的.

    所以,单从这个角度来说,softmax对于高维度的feature vector来说,可能并不是一个很好的选择.
    或者从某个层面上来说,更适合于一组互斥的feature set或者说classification/category.

    如果去掉y>0的约束呢?

    如果允许y<=0的话,那么直觉上就不太能将之于contribution做关联/联想了.

    考虑坐下变化.
    softmax=y / \sum y_i
    ->
    softmax = (y/n) / mean(y)

    对于给定的数据来说,n和mean(y)可以认为是一个常量.
    那么这样的话,softmax实际上就是一个对于feature y的scalar function.

    反过来说,对于每个特定的�feature set的�单个feature来说.
    这个���scalar是在某种程度上encdoe/�embeded了n和mean(n)这个样本相关的信息的.

    所以,从这个角度考虑的话,softmax更像是一种��relative measure.
    而且是针对每个独立的feautre set的一种某种程度上来说是标准的映射/转换过程.

    但,这种映射在不同的feature set/�vector之间是不是有可比性呢?

    因为维度n是固定相同的.
    所以,实际上就两张情况.

    mean(y)相同或相近的情况自然不用说了.

    考虑mean(y)差异比较大的情况.

    假设mean_a(y) << mean_b(y).
    那么,对于给定的y其对应的softmax的值对应的relative �position就会有比较大的偏差了.

    从直觉上来说,虽然可能再这些值当中存在着某种程度的structure/level.
    但由于数值上的区分度差异或者说classification的需要.
    这些差异信息就可能被从计量的层面上被抹掉.

    所以,从信息完整程度上来说,softmax也不太适合这种差异比较大的情况.

    当然,这个可能可以通过具体地再套一层�normalize function.
    或者再加一层network layer去�project到更高的维度再做softmax.

    但考虑y>0的情况的话,可能也不是一个好的解决方法.

    某种程度上来说,就像softmax名字所说的,着重点在max,注意点在soft.
    也就是针对某个单一�dominated的�feature的产生作用.

    所以从这个角度考虑的话,也不是说DNN和NN有多大的本质区别.
    可能只是一些数据分布差异所带来的工程化处理/解决方案/方式/方法而已.

    相关文章

      网友评论

          本文标题:关于Softmax的一些想法

          本文链接:https://www.haomeiwen.com/subject/aenzjttx.html