虽然大致明白了Sparse Coding的方法,但总觉得里面有还是有滞涩之处,按师父当年的教育来说,凡是遇到有思不通的问题时,必是基础不牢。所以重习一下线性回归与逻辑回归,以加清认识。
线性回归,从概念来说其实比较简单,它抽象成几何的概念,比如一个平面上,上面有一堆点,如果能用曲线把它们全穿起来,那么这个就是一个线性问题,因为可以用曲线把它们全覆盖,而线性问题就可以通过线性回归来解决。
对于回归这个词,如果用标准术语定义是这样的:回归研究一个随机变量Y对另一个(X)或一组(X1,X2,…,Xk)变量的相依关系的统计分析方法。研究一个或 多个随机变量Y1 ,Y2 ,…,Yi与另一些变量X1、X2,…,Xk之间的关系的统计方法。又称多重回归分析。通常称Y1,Y2,…,Yi为因变量,X1、X2,…,Xk为自变量。
所谓的回归,在下的理解就是,假设有那么一条线可以覆盖所有的点,然后不断在一个平面上画啊画啊,直到找出这个曲线为止,这个过程就叫回归。
而对于数据来说,它就是试图找出数据之间的关系,尤其是找出数据之间影响的显著关系。
而回归的方法,通常就是两种,一种叫最小二乘法。
最小二乘法是法国科学家勒让德于1806年独立发现的,但因不为世人所知而默默无闻,后来高斯《天体运动论》里使用了最小二乘法,后来勒让德跟高斯还掐了一架,争执是谁发明的。
这个过程非常简单,首先假设一个目标曲线为xi,那么每次尝试画出来的就是xj,比如在0点位置,而它们间的偏差就是x0-x0。
因为这里的Xi与Xj并不是两个点,而是两个函数,所以Xi与Xj之间相关做到最小。
显然,如果把每个Xi与Xj的误差都累加起来,就是两个函数的误差,但问题这样就不好求解了,所以用它们的平方差作为误差。所以总误差判断定为: Σ(xi-xj)2
要总误差最小,当然最好是Xi与Xj相等,问题是现在本来就是要找出xi,而不断尝试画的是xj.而要求的是如何能让xj不断通过调整变成Xi。
因为第一个xj相当于随手乱画上去的一条曲线,所以把这个问题转化成:如何让Xj能更快接近Xi。
这好比变成了这样的问题,现在有10个苹果,里面有一个苹果比其它苹果要轻,现在有一个天平,如何称才能最快找出这个最轻的苹果。
方法是,左五个,右五个,找出轻的一面,再把五个分成左两个右两个,再称,如果一样重,剩下的就是那个轻的,如果不一样重,再取轻的两个,放天平来称,这样轻的那个就找出来了。
为什么10个苹果三次可以找出来?因为2的三次方等于8,2的四次方等于16,在8~15个苹果范围内,都是三次就可以找出来的,这种就是最快找出的办法,它的本质就是:
y = 21+22+23+…2i
所以用这个办法就很容易想到,最快让xj逼近xi的方法就是不断的逼近中间的二乘曲线的过程,而恰好这个又是可以求出来的。
而通过不断逼近来进行调整的,称为梯度下降法,是局部最小值,而一次性找到全局最小值的,就称为最小二乘法。
为什么不一下子找到全局最小值?因为大多数情况下,样本数据量太大,计算非常繁重,很难找出全局最小值,而且在现实中数据并不是那么清晰可见,必须要加入损失函数,以忽视有可能错误的或需要忽略的样本,而回归的损失函数不是线性最小二乘问题,这导致了线性最小二乘问题即使在加入噪音干扰后无法去完全解决。
应该还有其它理由,不过个人以为,最重要的是原因个人以为,对于计算机来,梯度下降算法很好写代码,非常适合这种运算。
然后需要谈到逻辑回归,线性回归适合解决线性问题,所谓线性问题也就是说,可以直接给你一个答案的东西,而逻辑回归,就是一个告诉你有可能什么是个什么东西。
这个有什么意义呢?比如分类问题,就应该使用逻辑回归,而如果是计算比如持续投入多少钱会产生多少产生,就应该用线性回归。
再详细一点来说,比如一个人,根据性征分别是男人还是女人,这个就是逻辑回归的求解的问题,但如果吃多少食物变得有多胖,这个就是线性回归求解的问题。
逻辑回归问题实际上就是这样的概念:在每次试验中只有两种可能的结果,而且两种结果发生与否互相对立,并且相互独立,与其它各次试验结果无关,事件发生与否的概率在每一次独立试验中都保持不变,则这一系列试验总称为n重伯努利实验,当试验次数为1时,二项分布就是伯努利分布。
满足这个的就用逻辑回归。
然后说到逻辑回归,这个让人感觉比较有意思,因为逻辑回归最常用的是一个叫sigmoid函数的东西,通过sigmoid函数能够解决非线性的分类问题。
而这个函数的图像是这样的:
而俺家的太极图是这样的:
是不是很相似?为什么要采用S曲线?
因为从分布上所,S曲线能最大限度上对中间的数据的变化显得最敏感,并能抑制两头的变化,可以更好的反映变化。
太极线中的S线如果用正态分布函数进行一定的变换的话,就能够得到太极图的S线,百度上可以找到相关的论文。
发表评论