前言

我们知道,线性回归的公式是
hθ(x)=θTx h_{\theta}(x)={\theta}^Tx
如果想实现分类功能,就需要把输出变成一个阶跃函数,比如
y={0;z01;z0,z=hθ(x) y=\left\{\begin{matrix} 0; & z\leqslant 0 \\ 1; & z \geqslant 0 \end{matrix}\right. ,z=h_{\theta}(x)
但是这样就太粗糙了,而且不连续不可微。我们希望有一个理想的阶跃函数,而且是单调可微的函数。于是找到了对数几率函数(Logistic Function)。因为曲线像S,又称Sigmoid

定义

Sigmoid函数的定义是:
y=11+e(θTx+b) y=\frac {1} {1+e^{-(\theta^Tx+b)}}

接下来就是根据给定的训练集,求出参数w。首先要找到目标函数(代价函数/损失函数)。

目标函数、代价函数、损失函数,一般而言,这三个概念是一回事。

如果深究的话,有细微的差别。参考深入理解机器学习中的:目标函数,损失函数和代价函数

损失函数:计算的是一个样本的误差

代价函数:是整个训练集上所有样本误差的平均

目标函数:代价函数 + 正则化项

首先想到的就是模仿线性回归的思路,用最小二乘当损失函数。
J(θ)=i12(hθ(xi) yi)2 J(\theta)=\sum_{i} \frac 1 2 (h_{\theta}(x^i) - \ y^i)^2
但是,把Sigmoid带入后,会发现这是一个非凸函数,这就意味着代价函数有着许多的局部最小值,不利于求解。

机器学习算法推导——逻辑回归

后来人们想到,用极大似然函数作为损失函数,这样就是一个凸函数
机器学习算法推导——逻辑回归

损失函数

如果将hθ(x)h_{\theta}(x)看做是正类的后验概率,则有
hθ(x;θ)=p(y=1x;θ)=ϕ(x)=11+e(θTx+b) h_{\theta}(x;\theta)=p(y=1|x;\theta)=\phi(x)=\frac {1} {1+e^{-(\theta^Tx+b)}}
那么,有
p(y=0x;θ)=1ϕ(x) p(y=0|x;\theta) = 1-\phi(x)
将上面两式写成一般形式(概率分布函数
p(yx;θ)=hθ(x;θ)y(1hθ(x;θ))1y p(y|x;\theta)=h_{\theta}(x;\theta)^y(1-h_{\theta}(x;\theta))^{1-y}
接下来用对数极大似然估计(加上对数是为了方便求导)根据训练集估计出参数θ\theta
l(θ)=Log L(θ)=j=1M(yjln h(xj)+(1yj)ln (1h(xj))) \begin{aligned} l(\theta) &= Log\ L(\theta)\\ &=\sum_{j=1}^M(y_jln\ h(x_j)+(1-y_j)ln\ (1-h(x_j))) \end{aligned}
其中M是样本个数。对其求关于θ\theta的偏导。

1)首先求hθ(x)h_{\theta}(x),即Sigmoid的偏导。
hθ(X)=hθ(X)(1hθ(X)) h_{\theta}^{'}(\mathbf X) = h_{\theta}(\mathbf X)(1-h_{\theta}(\mathbf X))
推导过程如下:

机器学习算法推导——逻辑回归

2)有了第一步得出的公式后,得到

机器学习算法推导——逻辑回归

3)利用梯度下降法求解参数。由于损失函数是凸函数,沿着梯度下降方向找到最小点。

之所以是梯度下降,因为偏导取了负值

批量梯度下降是:
Repeat until convergence{θ(t+1):=θtηtθl(θt,Z)}(1-2) Repeat\ until\ convergence \{ \\ \theta^{(t+1)} := \theta^t - \eta^t\triangledown _{\theta}l(\theta^{t},Z) \\ \}\\ \tag{1-2}
随机梯度下降(SGD)
Repeat until convergence{for j=1 to M,{θ(t+1):=θtηtθl(θt,Zj)} Repeat\ until\ convergence \{ \\ for\ j=1\ to\ M, \{ \\ \theta^{(t+1)} := \theta^t - \eta^t\triangledown _{\theta}l(\theta^{t},Z_j) \\ \}
两者的区别是:

前者每次更新θ\theta都需要遍历一次整个样本集合;而后者在遍历样本集合的时候,每个样本都能改变θ\theta ,有更快的收敛速度 。由于SGD针对观测到的随机一条数据进行权重的更新,很适合进行增量计算,实现梯度下降的online模式。

small batch梯度下降

结合了上述两点的优点,每次更新参数时仅使用一部分样本,减少了参数更新的次数,可以达到更加稳定的结果,一般在深度学习中采用这种方法。

参考:

Logistic Regression——逻辑回归算法推导

逻辑回归与最大似然估计推导

相关文章:

  • 2021-04-29
  • 2021-07-29
  • 2021-07-05
  • 2021-12-25
  • 2021-06-19
  • 2021-12-07
猜你喜欢
  • 2022-01-07
  • 2021-06-12
  • 2021-11-04
  • 2021-08-16
  • 2022-01-08
  • 2021-06-07
相关资源
相似解决方案