逻辑回归中的优化算法总结一
假设我们有m个数据对(x,y),且数据x的维度为n的自变量,y为离散型因变量。在逻辑回归中,我们的任务通常是训练出一个多项式函数,其中w0等为未知常数,被称为权重,所有权重记为。(这个是线性回归的多项式函数,逻辑回归还需要一个sigmod函数进行压缩)我们通过这个多项式函数来拟合已有的数据对应关系(x,y),通常用如下公式来计算两者的差异和拟合程度。
因为在数据一定的情况下,拟合程度只和w0等参数相关,所以此函数是关于权重的多重函数,
。即这个函数中权重w是自变量,拟合的差值是因变量,这是关于权重的函数。当我们求的一个W0使得函数f的值最小时,那么我们使用W0去拟合数据对(x,y)将获得最大的拟合。当有新数据x时,使用公式计算出h(x),此时形成的新数据对(x,h(x))最大可能和原有的数据对符合同一种对应规则。我们获得了预测的能力。
一、梯度下降法
使用BG方法求函数最小值时,首先随机给自变量一个值w,然后求函数在自变量为w时的梯度,沿着梯度的反方向将w进行变化β,最后更新w为w+β。重复以上步骤,直到求出的函数值符合要求。
BG方法的原理在于函数在自变量w的梯度是一种向量,其方向是函数在w函数值变化最快的方向,其大小是函数在w的导数。
梯度的公式如下图
这样变化后,梯度转换成向量之间的运算。
参数iter轮次的含义是进行iter次梯度下降,即weight变化了iter次。每轮计算时都会计算整个数据集,进而计算梯度。
参数learnrate的含义是weight变化的快慢,因为梯度只是一个向量标明变化方向,但是没有说变化多少。learnrate越大,weight变化越大。
二、随机梯度下降法SGD
和上个算法的差异是,每轮不是对所有的数据进行计算梯度,而是每次随机选出一个数据进行计算梯度,计算差值,然后进行m次,相当于weight变化了iter*m次,变化次数更大了。
影响就是cost变化不是平滑的原来越低而是忽高忽低,有锯齿,如下图所示,左边是梯度下降,右边是随机梯度下降。
随机梯度下降也有批量的概念,每轮可以选出m个数据进行计算,也可以选出batch个数据进行计算batch次,batch越小,锯齿越严重。
三、批量梯度下降法
和梯度下降法不同的是,每轮训练的把全部数据分成若干批次,然后每个批次计算一下梯度,weihgt变化了m/batch次,另外为了随机,每轮分批次前还把数据进行打散
三个梯度方法的cost变化,进行了200轮训练,初始化的weight都是一样的。梯度下降法是红色,随机梯度下降法是蓝色,批量梯度下降法是绿色
三种方法的不同在于我们使用多少数据计算损失函数的梯度。全量,随机选若干,批数据。cost函数J(0)是和数据相关的,数据不同cost函数也不相同