逻辑回归与梯度下降法

在此之前,我们得先重温一下回归,很多时候我们只记得公式,知道逻辑回归是怎么一回事,却忘了回归是什么,怎么来的

回归是一种归纳的思想,在深度学习领域,就是从样本的数据出发,确定某些变量之间的定量关系式;这个建立数学模型并估计未知参数的过程就叫做回归分析

好了,我们给出关系式:
y^=σ(wTx+b) ŷ=σ(w^Tx+b)

σ(z)=11+ez σ(z)=\frac{1}{1+e^{-z}}

这里我们设w和b均为一维

怎样估计w和b?我们总是希望预测值ŷ尽可能地拟合样本值y,损失函数描述了这种拟合关系,在逻辑回归中,使用交叉熵损失函数
L(y^,y)=[ylogy^+(1y)log(1y^)] L(\hat y,y)=-[ylog\hat y+(1-y)log(1-\hat y)]

我们可以将前面两个关系式代入,得到一个关于w和b的式子,而对于每一个样本都可以得到一个损失函数,设有m个样本,对这些损失函数求和得到一个成本函数:
J(w,b)=1mi=1mL(y^(i),y(i)) J(w,b)=\frac {1}{m} \sum _ {i=1}^m L(\hat y^{(i)}, y^{(i)})

接下来问题变成了如何找到一组w和b,使得这个成本函数尽可能地小,可以形象地将其表示为一个“找碗底”的过程
逻辑回归与梯度下降法
这就是梯度下降法所要做的,从初始点开始,每一次迭代都使用如下公式更新w和b,使得成本函数总是沿着最接近“碗底”的方向下降
w=wαJ(w,b)w w=w-α\frac {∂J(w,b)}{∂w}

b=bαJ(w,b)b b=b-α\frac {∂J(w,b)}{∂b}

其中α为学习率,用以控制每一次梯度下降的步长

关于初始化w和b,几乎是任意的初始化方法都有效,因为成本函数是凸函数,无论在哪里初始化,使用梯度下降法都应该能达到”碗底“或其附近,这也是为什么选择交叉熵作为损失函数的原因,它总能得到或接近一个全局最优解

下面我们只关注w,忽略b,具体来看看梯度下降法为什么能够”找到碗底“
逻辑回归与梯度下降法
由上图可以看到,无论怎样初始化w,梯度下降法总是使w朝着成本函数减少的方向移动的