因为后面要说的softmax涉及数学公式,所以,先记录下为什么我们的一些公式里会用到了log函数。
斯坦福大学小教授原话是这样说的:
“log函数是单调函数,数学上,对原始数据取对数后进一步处理,远比直接在原始数据上取最大值要容易很多。”
说的很简单,但是背后的原理,依然值得我好奇,毕竟丢了数学很多年。
按照我自己的理解是:
Log对数函数,可以把乘法转变为加法,非线性变成线性的简化计算。
按照网络上资料的理解:
取对数后不会改变数据的性质和相对关系,但压缩了变量的尺度,数据更加平稳。
取对数作用主要有:
1、将乘法转成加法,缩小数据的绝对数值,方便计算。
例如,每个数据项的值都很大,许多这样的值进行计算可能对超过常用数据类型的取值范围,这时取对数,就把数值缩小了,例如,e^15=?很难计算对吗?就算计算出来,值也很大对吗?但是,取对数以后就变成了loge^15 = 15*loge,乘法变加法,数值也缩小了。
2、某些情况下,在数据的整个值域中的不同区间的差异会带来不同的影响。
从log函数的图像可以看到,自变量x的值越小,函数值y的变化越快。例如,A出现频率为500,B为200,C出现频率为800,而D为500,A和B,C和D的差距都是300,但是log500-log200 > log800 - log500,也就是说,对于数据小的差异的敏感程度比数值大的差异敏感度更高。
这也是符合生活常识的,例如对于价格,买个家电,如果价格差距300元,就很大程度影响你的判断了,但是买汽车时相差300元你就会忽略了。
3、在经济学中,常常取自然对数再做回归。
4、消除异方差。大体意思,保证随机误差不会随着响应变量而增加,即拥有相同的方差。
当然,如果数据集中有负数当然就不能取对数了。
总之,数学知识还是需要了解多一点,这样才能更好理解这些神经网络的公式在做什么。
最后贴一张,log likelihood(似然函数)的公式。
log函数的功能
网友评论