美文网首页
发生在 LR 之前的故事

发生在 LR 之前的故事

作者: 自由调优师_大废废 | 来源:发表于2021-03-10 15:30 被阅读0次
    • 没有逻辑回归之前,我们是怎么思考一个分类问题呢?

    Gaussian distribution (高斯分布)

    假设在一个平面直角坐标系上朝原点扔飞镖,投掷的结果会产生随机误差。我们假设对于误差只和距离有关,与方向无关。如图所示:


    image.png

    约定 P 是概率密度函数,落在 x 的概率为 P(x), 落在 y 的概率为 P(y)。则有落在 (x,y) 点的概率为 P(x)P(y). 该点距离原点距离为 r。 令 g(r) = P(x)P(y)。

    由上可知:

    • x = r cos(\theta), y = r sin(\theta)
    • g(r) 函数与 \theta 无关。
    • \int_{-\infty}^{\infty}p(x)dx=1

    g(r)=p(x)p(y)
    两边对 \theta 求导:
    p(x){p(y)}'rcos(\theta)+p(y){p(x)}'(-rsin(\theta))=0
    \frac{{p(x)}'}{p(x)x}=\frac{{p(y)}'}{p(y)y}

    上式对任意的 x,y 均成立, 且 x,y 相互独立。所以该比值一定为定值。即:
    \frac{{p(x)}'}{p(x)x}=C
    \frac{{p(x)}'}{p(x)}=Cx
    ln'p(x)=Cx
    lnp(x)=\frac{1}{2}Cx^{2}+b
    p(x)=Ae^{\frac{1}{2}Cx^{2}}

    已知 \int_{-\infty}^{\infty}p(x)dx=1, 则必有 C 小于 0,上式改写为:
    p(x)=Ae^{-\frac{1}{2}kx^{2}}
    其中 k>0
    \int_{-\infty}^{\infty}Ae^{-\frac{1}{2}kx^{2}}dx=1
    \int_{0}^{\infty}e^{-\frac{1}{2}kx^{2}}dx=\frac{1}{2A}
    令:t=\sqrt{\frac{k}{2}}x
    \sqrt{\frac{2}{k}}\int_{0}^{\infty}e^{-t^{2}}dt=\frac{1}{2A}
    \sqrt{\frac{2}{k}}\frac{\sqrt{\pi}}{2}=\frac{1}{2A}
    p(x)=\sqrt{\frac{k}{2\pi}}e^{-\frac{1}{2}kx^{2}}

    由统计学定义,连续性概率密度函数:

    • \mu=\int_{-\infty}^{\infty}x*p(x)dx
    • \sigma^2=\int_{-\infty}^{\infty}(x-\mu)^2*p(x)dx

    xp(x) 为奇函数,故均值为0,即 \mu 为 0 。则有:
    \int_{-\infty}^{\infty}x^2p(x)dx=\sigma^2
    \int_{-\infty}^{\infty}x^2*\sqrt{\frac{k}{2\pi}}e^{-\frac{1}{2}kx^{2}}dx=\sigma^2

    利用分部积分法:
    \int_{}^{}u(x)v'(x)dx=uv-\int_{}^{}u'(x)v(x)dx
    根据上式,令:

    • u(x)=x
    • v'(x)=xe^{-\frac{1}{2}kx^{2}}
    • v(x)=-\frac{1}{k}e^{-\frac{1}{2}kx^{2}}
      \int_{-\infty}^{\infty}x^2*\sqrt{\frac{k}{2\pi}}e^{-\frac{1}{2}kx^{2}}dx=2\sqrt{\frac{k}{2\pi}}\int_{0}^{\infty}x*xe^{-\frac{1}{2}kx^{2}}dx
      \int_{0}^{\infty}x*xe^{-\frac{1}{2}kx^{2}}dx=(-\frac{x}{k}e^{-\frac{1}{2}kx^{2}})|_{0}^{\infty}-\int_{0}^{\infty}(-\frac{1}{k})e^{-\frac{1}{2}kx^{2}}dx
      (-\frac{x}{k}e^{-\frac{1}{2}kx^{2}})|_{0}^{\infty}=0
      \int_{0}^{\infty}(-\frac{1}{k})e^{-\frac{1}{2}kx^{2}}dx=(-\frac{1}{k})\sqrt{\frac{2}{k}}\frac{\sqrt{\pi}}{2}
      则有:
      2\sqrt{\frac{k}{2\pi}}\int_{0}^{\infty}x*xe^{-\frac{1}{2}kx^{2}}dx=2\sqrt{\frac{k}{2\pi}}(\frac{1}{k})\sqrt{\frac{2}{k}}\frac{\sqrt{\pi}}{2}=\frac{1}{k}
      k=\frac{1}{\sigma^{2}}

    最终得到:
    p(x)=\sqrt{\frac{k}{2\pi}}e^{-\frac{1}{2}kx^{2}}=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{1}{2\sigma^{2}}x^{2}}
    至此,我们就得到了一个均值为 \mu(这里的均值为0),方差为\sigma 的正态概率分布函数,也就是一维的高斯分布。

    LR 以及 Sigmod 函数的由来

    通过上面我们已经知道了一维的高斯分布:
    f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^{2}}{2\sigma^{2}}}
    其中 \mu=\frac{1}{n}\sum_{i=1}^{n}x_{i}\sigma=\frac{1}{n}\sum_{i=1}^{n}(x_{i}-\mu)^{2}

    这里我们直接给出多维(D维)高斯分布,具体推导过程暂不推导:
    f(x)=\frac{1}{(2\pi)^{\frac{D}{2}}}*\frac{1}{|\sum|^{\frac{1}{2}}}e^{[-\frac{1}{2}(x-\mu)^{T}\sum^{-1}(x-\mu)]}
    此时的\mu 是一个 D1 的向量,D 是维度数目,即特征向量。\sigma 是协方差矩阵,形状大小为 DD。
    附图:

    image.png

    分类问题的解决思路

    假设现在有 n 个样本,总共有两个类别:C1、C2。假设整体样本符合正态分布由极大似然估计:
    L(\mu,\sum)=f_{\mu}(x_{1})f_{\mu}(x_{2})···f_{\mu}(x_{n})
    对于 C1 类别则有:
    L(\mu_{1},{\sum}_{1})=f_{\mu_{1}}(x_{1})f_{\mu_{1}}(x_{2})···f_{\mu_{1}}(x_{n})
    求极大值,解出当前的\mu_{1}{\sum}_{1}即可。
    对于 C2类别则有:
    L(\mu_{2},{\sum}_{2})=f_{\mu_{2}}(x_{1})f_{\mu_{2}}(x_{2})···f_{\mu_{1}}(x_{n})
    求极大值,解出当前的\mu_{2}{\sum}_{2}即可。
    最终得到:
    P(x|C_{1})=\frac{1}{(2\pi)^{\frac{D}{2}}}*\frac{1}{|{\sum}_{1}|^{\frac{1}{2}}}e^{[-\frac{1}{2}(x-\mu_{1})^{T}\sum_{1}^{-1}(x-\mu_{1})]}

    P(x|C_{2})=\frac{1}{(2\pi)^{\frac{D}{2}}}*\frac{1}{|{\sum}_{2}|^{\frac{1}{2}}}e^{[-\frac{1}{2}(x-\mu_{2})^{T}\sum_{2}^{-1}(x-\mu_{2})]}
    得到 C1、C2的高斯分布函数,我们就可以计算每个样本属于类别的概率。

    当然这是最传统的解法,接下来我们换个角度来尝试解决问题。
    由全概率公式,我们可以得到:
    P(C_{1}|x)=\frac{P(x|C_{1})P(C_{1})}{P(x|C_{1})P(C_{1})+P(x|C_{2})P(C_{2})}
    P(C_{1}|x)=\frac{1}{1+\frac{P(x|C_{2})P(C_{2})}{P(x|C_{1})P(C_{1})}}
    根据数据可以知道这里的P(C_{1})P(C_{2}) 为已知,且比值为定值。
    令:
    z(x) = \frac{P(x|C_{2})P(C_{2})}{P(x|C_{1})P(C_{1})}
    lnz(x) = ln{\frac{P(x|C_{2})}{P(x|C_{1})}} + ln{\frac{P(C_{2})}{P(C_{1})}}
    假设我们现在已经知道了 C1、C2的高斯分布函数,带入上式,进行运算:
    lnz(x) = ln{\frac{\frac{1}{(2\pi)^{\frac{D}{2}}}*\frac{1}{|{\sum}_{2}|^{\frac{1}{2}}}e^{[-\frac{1}{2}(x-\mu_{2})^{T}\sum_{2}^{-1}(x-\mu_{2})]}}{\frac{1}{(2\pi)^{\frac{D}{2}}}*\frac{1}{|{\sum}_{1}|^{\frac{1}{2}}}e^{[-\frac{1}{2}(x-\mu_{1})^{T}\sum_{1}^{-1}(x-\mu_{1})]}}}+ln{\frac{P(C_{2})}{P(C_{1})}}

    lnz(x) = ln{\frac{|{\sum}_{1}|^{\frac{1}{2}}}{|{\sum}_{2}|^{\frac{1}{2}}}} e^{\{[-\frac{1}{2}(x-\mu_{2})^{T}\sum_{2}^{-1}(x-\mu_{2})]-[-\frac{1}{2}(x-\mu_{1})^{T}\sum_{1}^{-1}(x-\mu_{1})]\}}+ln{\frac{P(C_{2})}{P(C_{1})}}

    lnz(x) = ln{\frac{|{\sum}_{1}|^{\frac{1}{2}}}{|{\sum}_{2}|^{\frac{1}{2}}}} +[-\frac{1}{2}(x-\mu_{2})^{T}{\sum}_{2}^{-1}(x-\mu_{2})]-[-\frac{1}{2}(x-\mu_{1})^{T}{\sum}_{1}^{-1}(x-\mu_{1})]+ln{\frac{P(C_{2})}{P(C_{1})}}

    lnz(x) = ln{\frac{|{\sum}_{1}|^{\frac{1}{2}}}{|{\sum}_{2}|^{\frac{1}{2}}}} -\frac{1}{2}x^{T}{\sum}_{2}^{-1}x+\mu_{2}^{T}{\sum}_{2}^{-1}x-\frac{1}{2}\mu_{2}^{T}{\sum}_{2}^{-1}\mu_{2}+\frac{1}{2}x^{T}{\sum}_{1}^{-1}x-\mu_{1}^{T}{\sum}_{1}^{-1}x+\frac{1}{2}\mu_{1}^{T}{\sum}_{1}^{-1}\mu_{1}+ln{\frac{P(C_{2})}{P(C_{1})}}
    这里不妨令 {\sum}_{1}={\sum}_{2} = \sum
    则上式可写作:
    lnz(x) = (\mu_{2}-\mu_{1})^{T}{\sum}^{-1}x-\frac{1}{2}\mu_{2}^{T}{\sum}^{-1}\mu_{2}+\frac{1}{2}\mu_{1}^{T}{\sum}^{-1}\mu_{1}+ln{\frac{P(C_{2})}{P(C_{1})}}

    其中对于 (\mu_{2}-\mu_{1})^{T}{\sum}^{-1} 运算结果为矩阵,记为 W^{T}。对于-\frac{1}{2}\mu_{2}^{T}{\sum}^{-1}\mu_{2}+\frac{1}{2}\mu_{1}^{T}{\sum}^{-1}\mu_{1}+ln{\frac{P(C_{2})}{P(C_{1})}} 运算结果为常数,记作 b。

    到这里我们突然发现,我们不用再去拟合\mu\sum,既然最终的结果只和W^{T}b 有关,那么直接对这两个变量进行拟合即可。也就是 LR 思想,拟合 W^{T}b,然后使用 sigmoid 函数进行分类。

    现在我们可以把上式写作:
    lnz(x) = W^{T}x+b
    z(x) = e^{W^{T}x+b}
    这里有一点需要注意,在我们最开始令的时候,令 z(x) = \frac{P(x|C_{2})P(C_{2})}{P(x|C_{1})P(C_{1})},其实不难发现,如果令 z(x) = \frac{P(x|C_{1})P(C_{1})}{P(x|C_{2})P(C_{2})} ,区别就是最后计算结果\mu_{1}\mu_{2}的位置互换了,并不会影响最终的运算结果 z(x) = e^{W^{T}x+b}

    至此,根据推导方法不同我们得到
    P(C_{1}|x)=\frac{1}{1+\frac{P(x|C_{2})P(C_{2})}{P(x|C_{1})P(C_{1})}}

    P(C_{1}|x)=\frac{1}{1+z(x)}=\frac{1}{1+e^{(W^{T}x+b})} 或者
    P(C_{1}|x)=\frac{1}{1+z(x)^{-1}}=\frac{1}{1+e^{-(W^{T}x+b)}}
    上面两式虽然不同,但并不会影响最终的分类结果,只是一个相反的操作。当然原始的 LR 使用的是 P(C_{1}|x)=\frac{1}{1+z(x)^{-1}}=\frac{1}{1+e^{-(W^{T}x+b)}},对此我更愿意相信,这样我们得到的刚好就是 Sigmoid 函数,整个算法看起来更加的合理。(当然如果你使用另一个式子,依然可以达到和 LR一样效果,但不得不承认这样做的意义并不是很大)

    相关文章

      网友评论

          本文标题:发生在 LR 之前的故事

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