Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

咕了好长时间的Logistic回归, 今天晚上不小心睡着了现在不困就写一点.

Logistic回归主要是解决二分类问题, 普通的线性拟合拟合出的函数值域是实数集, 通过套一个激活函数就可以把这个实数集映射到上[0,1].

常见的激活函数之一是Sigmoid函数:

S(x) = \frac{1}{1+e^{-x}}

这个函数有个性质, 就是求导之后可以用原函数的一个简单的多项式表达, 一会推导的时候有用:

S'(x) = S(x)(1-S(x))

然后就可以用之前的线性拟合套一个这个函数拟合, 因为这个函数可导, 推导过程和线性拟合的推导过程差不多.

如果反过来写, 把y = S(w^T x)x解出来, 可以写成:

ln \frac{y}{1-y} = w^T x

其中这个ln \frac{y}{1-y}又叫对数几率, y是概率, 在[0,1]上, 通过这个函数映射到R上, 实际上Logistic回归就是用线性拟合去拟合对数几率.

关于Loss函数, 有些文章直接给出了这个Loss函数的表达式, 然后简单的定性说明一下, 实际上这个函数就是极大似然函数. (只在期末考试前学了一天概率论的我记住的为数不多的东西)

对线性拟合的系数矩阵进行极大似然估计, 写出似然函数L(w), 然后求个导就能用梯度下降了. 推导过程就不写Latex了, 太麻烦了, 放一个我之前自己推导的草稿吧.

img

还有, Sigmoid函数是任意阶可导的, 所以牛顿法也是可以用的.

下面都是我瞎想口胡的, 还没来得及验证.

Logistic回归是解决二分类问题的, 得到的结果是一个点属于其中一类的概率. 顺着这个思路, 我想如果把里面的一个数改成一个向量, 然后函数得到的结果是也是一个向量, 向量的每一个元素代表这个点属于这个类的概率, 这样就可以解决多分类问题了.

按照Logistic回归的想法, 首先得到的是一个在R上的数, 在我这个多分类模型的想法中, 首先就要得到一个R^n的向量, 其中每一个元素都是单独线性拟合出的结果. 然后对这个向量加一个激活函数, 就可以得到最终的结果向量. 这个激活函数需要把一个R^n的向量映射到一个[0,1]^n的向量, 并且这个向量元素加起来等于1. 查了一下, 都用的softmax做到这个.

Loss函数也按照极大似然估计的思路来推, 应该就可以实现多分类了, 有时间去试验一下.

评论



本站总访问量为 访客数为