log函数的功能

因为后面要说的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函数的功能_第1张图片
图片发自App

你可能感兴趣的:(log函数的功能)