【机器学习】逻辑回归(Logistic Regression)
逻辑回归
- 逻辑回归
- 逻辑回归的流程
- Sigmoid函数
- Sigmoid函数的公式及图像
- 逻辑回归的损失函数与最优化求解
- 逻辑回归使用梯度下降法求解
逻辑回归
逻辑回归与线性回归都是线性模型,其中线性回归使用线性式来预测数值,逻辑回归使用线性式来进行分类任务。
逻辑回归就是使用1条线(在特征向量为1维或2维的情况) 或 1个超平面(特征数量超过2维的情况) 来对数据进行划分,根据特征向量落在线或超平面的2侧来对其进行划分,因此,逻辑回归是用来处理二分类问题的。
逻辑回归可以通过组合多个逻辑回归来进行多分类任务。
逻辑回归的流程
逻辑回归使用线性式和Sigmoid的函数来得到结果。逻辑回归的输入为
N
N
N维特征向量,将
N
N
N维特征向量带入线性式,得到输出公式如下,将结果带入Sigmoid函数。
f
(
x
)
=
w
0
+
w
1
∗
x
1
+
.
.
.
+
w
n
∗
x
n
∑
1
1
=
∑
i
=
0
n
w
i
∗
x
i
∑
1
1
=
w
T
x
∑
1
1
p
=
s
i
g
m
o
i
d
(
f
(
x
)
)
∑
1
1
\begin{align} f(x)&=w_0+w_1*x_1+...+w_n*x_n\vphantom{\sum_1^1}\\ &=\sum_{i=0}^{n}w_i*x_i\vphantom{\sum_1^1}\\ &=\mathbf{w}^T\mathbf{x}\vphantom{\sum_1^1}\\ p&=sigmoid(f(x))\vphantom{\sum_1^1}\\ \end{align}
f(x)p=w0+w1∗x1+...+wn∗xn1∑1=i=0∑nwi∗xi1∑1=wTx1∑1=sigmoid(f(x))1∑1
(
3
)
(3)
(3)式是使用线性代数的方法表示
(
1
)
(1)
(1)以及
(
2
)
(2)
(2)式。
Sigmoid函数
Sigmoid函数在机器学习和深度学习中通常被简写为 σ \sigma σ,Sigmoid函数接接收 ( − ∞ , ∞ ) (-\infin,\infin) (−∞,∞)的数值,并将其映射到 ( 0 , 1 ) (0,1) (0,1)范围之内,因此可以具有概率的意义。
Sigmoid函数的公式及图像
Sigmoid函数的公式如下:
σ
(
x
)
=
1
1
+
e
x
p
(
−
x
)
\sigma(x)=\frac{1}{1+exp(-x)}
σ(x)=1+exp(−x)1
其中
e
x
p
(
x
)
exp(x)
exp(x)函数为自然对数的
x
x
x次幂。
Sigmoid函数的图像如下:
Sigmoid函数单调递增,在自变量 x = 0 x=0 x=0附近斜率变化较大,函数值增长较快,而在远离 x = 0 x=0 x=0处,函数值变化较慢。在 x = 0 x=0 x=0处,Sigmoid函数值为 1 1 + e x p ( 0 ) = 0.5 \frac{1}{1+exp(0)}=0.5 1+exp(0)1=0.5。
在进行预测时,Sigmoid函数计算之后,函数大于
0.5
0.5
0.5,则特征向量属于目标类别,否则特征向量不属于目标类别。
{
y
^
=
1
i
f
p
>
=
0.5
y
^
=
0
i
f
p
<
0.5
\begin{equation} \begin{cases} \hat{y}=1\space\space if\space p>=0.5\\ \hat{y}=0\space\space if \space p<0.5 \end{cases} \end{equation}
{y^=1 if p>=0.5y^=0 if p<0.5
逻辑回归的损失函数与最优化求解
在回归问题中,我们通常使用MSE,RMSE以及MAE损失,这些损失函数使用不同的方式计算计算预测值与真实值的距离,如明氏距离,曼哈顿距离以及欧式距离,不同损失函数使用不同的加权方式从而得到损失值。
在分类问题中,样本的真实值是离散的标签(如A类,B类等),线性式的结果经过Sigmoid函数变换之后,再经过MSE求损失并无更大的意义,因为MES衡量的是欧式空间中的距离,而逻辑回归经过Sigmoid处理后的数据可以理解为概率,两者并不对应。
在分类问题中,通常使用交叉熵损失,因为交叉熵模型的本质决定其可以用来衡量概率模型的差别。
逻辑回归适用于二分类问题。对于二分类问题,可以使用二元交叉熵损失(Binary Cross Entropy Loss)。逻辑回归问题模型求解,即求解使得对样本集合的总体损失最小的模型参数,使用公式表述如下:
arg min
w
0
.
.
.
w
n
1
m
∑
i
=
1
m
B
C
E
L
o
s
s
(
y
i
,
y
i
^
)
\argmin_{w_0...w_n}\frac{1}{m}{\sum_{i=1}^mBCELoss(y_i,\hat{y_i})}
w0...wnargminm1i=1∑mBCELoss(yi,yi^)
其中二元交叉熵损失的公式如下:
B
C
E
L
o
s
s
(
y
,
y
^
)
=
−
(
y
∗
log
y
^
+
(
1
−
y
)
∗
log
(
1
−
y
^
)
)
BCELoss(y,\hat{y})=-(y*\log{\hat{y}}+(1-y)*\log{(1-\hat{y})})
BCELoss(y,y^)=−(y∗logy^+(1−y)∗log(1−y^))
将二元交叉熵公式代入,即得:
arg min
w
0
.
.
.
w
n
1
m
∑
i
=
1
m
−
(
y
i
∗
log
y
i
^
+
(
1
−
y
i
)
∗
log
(
1
−
y
i
^
)
)
\argmin_{w_0...w_n}\frac{1}{m}\sum_{i=1}^m-(y_i*\log{\hat{y_i}}+(1-y_i)*\log{(1-\hat{y_i})})
w0...wnargminm1i=1∑m−(yi∗logyi^+(1−yi)∗log(1−yi^))
其中
m
m
m是样本数量,
y
i
y_i
yi是第
i
i
i个样本的真实值(真或假),
y
i
^
\hat{y_i}
yi^是第
i
i
i个样本的预测值,为经过Sigmoid函数求解后获得的
(
0
,
1
)
(0,1)
(0,1)之间的数值,意为概率。
逻辑回归使用梯度下降法求解
由于逻辑回归模型使用了非线性的Sigmoid函数,因此逻辑回归模型并没有解析解,需要使用梯度下降法求解。