机器学习算法 --- 逻辑回归及梯度降低

1、逻辑回归简介

  logistic回归又称logistic回归分析,是一种广义的线性回归分析模型,经常使用于数据挖掘,疾病自动诊断,经济预测等领域。机器学习

  logistic回归是一种广义线性回归(generalized linear model),所以与多重线性回归分析有不少相同之处。函数

  其公式以下:学习

        

  其图像以下:spa

        

  咱们经过观察上面的图像能够发现,逻辑回归的值域为(0, 1),当输入为0时,其输出为0.5;当输入小于0,而且愈来愈小时,其输出愈来愈接近于0;相反的,当其输入大于0,而且愈来愈大时,其输出愈来愈接近于1。
3d

  一般咱们使用线性回归来预测值,但逻辑回归随有“回归”二字,却一般是用来解决二分类问题的。blog

  当其输出大于0.5时,咱们能够认为该样本属于甲类;小于0.5时,认为该样本属于已类。数学

  可是因为一个样本数据一般会有多个特征,咱们不能将其直接带入logistic回归公式中,因此,就须要借助以前所介绍的线性回归,使该样本的多个特征值生成一个特定的值,在带入公式中,对其分类,因此z的表达式以下:it

    

  便可获得对于一个数据关于逻辑回归的详细表达式:数据挖掘

    

  经过上式,咱们就能够对一个任意数据进行逻辑回归分析了,可是这当中存在一个问题,即关于θ的取值,只有公式中的θ已知,咱们才能对一个未分类的数据运用此公式,那么该如何求得θ呢?io

请看下面的公式推导。

2、Logistic Regression公式推导

  在上面,咱们获得  后,须要求得θ,关于如何求得θ,将在此进行详细分析。

  一般在机器学习中,咱们经常有一个过程叫训练,所谓训练,即经过已知分类(或标签)的数据,求得一个模型(或分离器),而后使用这个模型对未知标签的数据打上标签(或者对其进行分类)。

  因此,咱们使用样本(即已知分类的数据),进行一系列的估算,获得θ。这个过程在几率论中叫作参数估计。

  在此,咱们将使用极大似然估计的推导过程,求得关于计算θ的公式:

    (1) 首先咱们令:

      

    (2) 将上述两式整合:

        

    (3) 求其似然函数:

      

    (4) 对其似然函数求对数:

       

    (5) 当似然函数为最大值时,获得的θ便可认为是模型的参数。求似然函数的最大值,咱们可使用一种方法,梯度上升,但咱们能够对似然函数稍做处理,使之变为梯度降低,而后使用梯度降低的思想来求解此问题,变换

  的表达式以下:

       (因为乘了一个负的系数,因此梯度上升变梯度降低。)

    (6) 由于咱们要使用当前的θ值经过更新获得新的θ值,因此咱们须要知道θ更新的方向(即当前θ是加上一个数仍是减去一个数离最终结果近),因此获得J(θ)后对其求导即可获得更新方向(为何更新方向这么求?以及获得更新方向后为何按照下面的式子处理?请看下方的梯度降低公式的演绎推导),求导过程以下:

      

    (7) 获得更新方向后即可使用下面的式子不断迭代更新获得最终结果。

        

3、梯度降低公式的演绎推导

  关于求解函数的最优解(极大值和极小值),在数学中咱们通常会对函数求导,而后让导数等于0,得到方程,而后经过解方程直接获得结果。可是在机器学习中,咱们的函数经常是多维高阶的,获得导数为0的方程后很难直接求解(有些时候甚至不能求解),因此就须要经过其余方法来得到这个结果,而梯度降低就是其中一种。

  对于一个最简单的函数:, 咱们该如何求出y最小是x的值呢(不经过解2x = 0的方法)?  

    (1) 首先对x任取一个值,好比x = -4,能够获得一个y值。  

    (2) 求得更新方向(若是不求更新方向对x更新,好比x-0.5,或x+0.5,获得图像以下)。

      能够发现,咱们若是是向负方向更新x,那么我就偏离了最终的结果,此时咱们应该向正方向更新,因此咱们在对x更新前须要求得x的更新方向(这个更新方向不是固定的,应该根据当前值肯定,好比当x=4时,应向负方向更新)

      求其导函数在这一点的值,y' = 2x,x = -4, y' = -8,那么它的更新方向就是y',对x更新咱们只需x:=x-α·y'(α(大于0)为更新步长,在机器学习中,咱们叫它学习率)。

      PS:以前说了是多维高阶方程,没法求解,而不是不能对其求导,因此能够对其求导,而后将当前x带入。

    (3) 不断重复以前的(1),(2)步,直到x收敛。

  

  梯度降低方法:

    对于这个式子,若是:

      (1) m是样本总数,即每次迭代更新考虑全部的样本,那么就叫作批量梯度降低(BGD),这种方法的特色是很容易求得全局最优解,可是当样本数目不少时,训练过程会很慢。当样本数量不多的时候使用它。

      (2)当m = 1,即每次迭代更新只考虑一个样本,公式为,叫作随机梯度降低(SGD),这种方法的特色是训练速度快,可是准确度降低,并非全局最优。好比对下列函数(当x=9.5时,最终求得是区部最优解):

      (3) 因此综上两种方法,当m为全部样本数量的一部分(好比m=10),即咱们每次迭代更新考虑一小部分的样本,公式为,叫作小批量梯度降低(MBGD),它克服了上述两种方法的缺点而又兼顾它们的优势,在实际环境中最常被使用。

相关文章
相关标签/搜索