深度神经网络学习:线性回归与逻辑回归

深度神经网络学习:线性回归与逻辑回归

    虽然大致明白了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函数能够解决非线性的分类问题。

      而这个函数的图像是这样的:

yinfupai--深度神经网络学习:线性回归与逻辑回归--线性回归 1

    而俺家的太极图是这样的:

yinfupai--深度神经网络学习:线性回归与逻辑回归--线性回归 2


    是不是很相似?为什么要采用S曲线?

    因为从分布上所,S曲线能最大限度上对中间的数据的变化显得最敏感,并能抑制两头的变化,可以更好的反映变化。

    太极线中的S线如果用正态分布函数进行一定的变换的话,就能够得到太极图的S线,百度上可以找到相关的论文。

   

 

 

 

 

 

 

    

    

    

    

    

   

 

 

三符风云涌

Leave a Reply