24 Nov

exp(x)在x=0处的偶次泰勒展开式总是正的

刚看到一个有意思的结论:

对于任意实数$x$及偶数$n$,总有$\sum\limits_{k=0}^n \frac{x^k}{k!} > 0$,即$e^x$在$x=0$处的偶次泰勒展开式总是正的。

下面我们来看一下这个结论的证明,以及它在寻找softmax替代品中的应用。

证明过程

看上去这是一个很强的结果,证明会不会很复杂?其实证明非常简单,记
\begin{equation}f_n(x) = \sum\limits_{k=0}^n \frac{x^k}{k!}\end{equation}
当$n$是偶数时,我们有$\lim\limits_{x\to\pm\infty} f_n(x)=+\infty$,即整体是开口向上的,所以我们只需要证明它的最小值大于0就行了,又因为它是一个光滑连续的多项式函数,所以最小值点必然是某个极小值点。那么换个角度想,我们只需要证明它所有的极值点(不管是极大还是极小)所对应的函数值都大于0。

点击阅读全文...

20 May

函数光滑化杂谈:不可导函数的可导逼近

一般来说,神经网络处理的东西都是连续的浮点数,标准的输出也是连续型的数字。但实际问题中,我们很多时候都需要一个离散的结果,比如分类问题中我们希望输出正确的类别,“类别”是离散的,“类别的概率”才是连续的;又比如我们很多任务的评测指标实际上都是离散的,比如分类问题的正确率和F1、机器翻译中的BLEU,等等。

还是以分类问题为例,常见的评测指标是正确率,而常见的损失函数是交叉熵。交叉熵的降低与正确率的提升确实会有一定的关联,但它们不是绝对的单调相关关系。换句话说,交叉熵下降了,正确率不一定上升。显然,如果能用正确率的相反数做损失函数,那是最理想的,但正确率是不可导的(涉及到$\text{argmax}$等操作),所以没法直接用。

这时候一般有两种解决方案;一是动用强化学习,将正确率设为奖励函数,这是“用牛刀杀鸡”的方案;另外一种是试图给正确率找一个光滑可导的近似公式。本文就来探讨一下常见的不可导函数的光滑近似,有时候我们称之为“光滑化”,有时候我们也称之为“软化”。

max

后面谈到的大部分内容,基础点就是$\max$操作的光滑近似,我们有:
\begin{equation}\max(x_1,x_2,\dots,x_n) = \lim_{K\to +\infty}\frac{1}{K}\log\left(\sum_{i=1}^n e^{K x_i}\right)\end{equation}

点击阅读全文...

14 Dec

关于“微分”的理解

我从来不想在教科书上的定义上纠结太多,因为我知道,真正对定义的理解,需要在长期的实践应用中慢慢感悟的,所以我们唯一需要做的是继续我们的研究。

但是前些天有些朋友问到我关于微分的理解,比如“dx是不是一定很小”等等,所以决定在此写写我的理解。

与微分联系很紧密的,也是我们很熟悉的东西,当然是“增量 ”啦,比如$\Delta y$、$\Delta x$等等,增量显然是可以任意大的(只要自变量还在定义域内)。那么考虑一个函数$y=f(x)$,函数的微分是怎么出现的呢?那是因为我们直接研究函数的增量是比较麻烦的,所以就引入了微分dy,当$\Delta x$很小时,它代表增量的主项:$\Delta y=dy+o(\Delta x)=A \Delta x+o(\Delta x)$,A是一个常数。

点击阅读全文...

12 Sep

微积分学习(二):导数

自从上次写了关于微积分中的极限学习后,就很长的时间没有与大家探讨微积分的学习了(估计有20多天了吧)。启事,我自己也是从今年的9月下旬才开始系统地学习微积分的,到现在也就一个月的时间吧。学习的内容有:集合、函数、极限、导数、微分、积分。不过都是一元微积分,多元的微积分正在紧张地进修中......

现在不妨和大家探讨一下关于微积分中的最基本内容——“导数”的学习。

其实,用最简单的说法,如果存在函数$f(x)$,那么它的导数(一阶导数)为
$$\lim_{\Delta x->0} f'(x)=\frac{f(x+\Delta x)-f(x)}{\Delta x}$$

点击阅读全文...