❤️二项逻辑斯蒂回归和sigmoid函数


二项逻辑斯蒂回归模型是二分类模型,是一种生成模型,用**条件概率p(y|x)**表示:

$$ \begin{aligned}P(y=1|x)&=\frac{exp(w\cdot x+b)}{1+exp(w\cdot x+b)}:=\pi_w(x)\\P(y=0|x)&=\frac{1}{1+exp(w\cdot x+b)}:=1-\pi_w(x) \end{aligned} $$

$x=(x^{(1)},x^{(2)},\ldots,x^{(n)})\in R^n$是输入,$y\in \{0,1\}$为输出;

$w=(w_1,w_2,\ldots,w_n)\in R^n$是权值向量,b是偏置;

$w\cdot x=w_1x^{(1)}+w_2x^{(2)}+\ldots+w_nx^{(n)}$;

sigmoid函数是一种激活函数,将输出限制在(0,1)之间,

$$ \operatorname{sigmoid}(t)=\frac{1}{1+e^{-t}} $$

Untitled

二项逻辑斯蒂回归模型的概率输出为

$$ \pi_w(x)=\operatorname{sigmoid}(w\cdot x+b) $$

即将$w\cdot x+b$映射到概率(0,1)区间。

🧡二项逻辑斯蒂回归的损失函数以及模型的训练


损失函数:负对数似然函数,也是交叉熵损失函数

模型的**似然函数为**

$$ L(w,b)=\prod_{i=1}^N\left[\pi_w\left(x_i\right)\right]^{y_i}\left[1-\pi_w\left(x_i\right)\right]^{1-y_i} $$

负对数似然函数等价于交叉熵损失函数,极大似然估计也即极小化交叉熵损失函数

$$ \begin{aligned}-\log L(w,b)&=-\sum_{i=1}^N\left[y_i \log \pi_w\left(x_i\right)+(1-y_i)\log \left(1-\pi_w\left(x_i\right)\right)\right]\\&=-\sum_{i=1}^N\left[y_i(w\cdot x_i+b)-\log \left(1+e^{(w\cdot x_i+b)}\right)\right]\end{aligned} $$

注意⚠️:在上式中,N表示样本数,$x_i$表示某一个样本

模型的训练:利用梯度下降法或拟牛顿法

损失函数对参数w,b的梯度

$$ -\frac{\partial L(w,b)}{\partial w}=-\sum_{i=1}^N\left(y_i x_i-\frac{x_i}{1+e^{-(w \cdot x_i+b)}}\right) $$

$$ -\frac{\partial L(w,b)}{\partial b}=-\sum_{i=1}^N\left(y_i-\frac{1}{1+e^{-(w \cdot x_i+b)}}\right) $$

💛多项逻辑斯蒂回归与softmax


多项逻辑斯蒂回归模型是多分类模型

$$ \begin{aligned}P(y=k|x)&=\frac{exp(w_k\cdot x+b)}{1+\sum_{k=1}^{K-1} exp(w_k\cdot x+b)}:=\pi_k(x),k=1,2,\ldots,K-1\\P(y=K|x)&=\frac{1}{1+\sum_{k=1}^{K-1} exp(w_k\cdot x+b)}:=1-\sum_{k=1}^{K-1}\pi_k(x) \end{aligned} $$

softmax函数是一种激活函数,将一个向量映射到一个概率分布熵,

$$ \operatorname{softmax}(z_k)=\frac{e^{z_k}}{\sum_{k=1}^K e^{z_k}} $$

输入向量$(z_1,z_2,\ldots,z_K)^T$,softmax输出向量

$$ \left(\begin{matrix}\frac{e^{z_1}}{\sum_{k=1}^K e^{z_k}}\\\frac{e^{z_2}}{\sum_{k=1}^K e^{z_k}}\\\cdots\\\frac{e^{z_K}}{\sum_{k=1}^K e^{z_k}}\end{matrix}\right) $$

softmax函数的数值溢出问题

解决数值上溢: $z_k-\max(z)$

$$ \operatorname{softmax}(z_k)=\operatorname{softmax}(z_k-\max(z))=\frac{e^{z_k-\max(z)}}{\sum_{k=1}^K e^{z_k-\max(z)}} $$

解决数值下溢:log-softmax

$$ \begin{aligned}\log \left[\operatorname{Softmax}\left(z_k\right)\right]&=\log \frac{e^{z_k-\max(z)}}{\sum_{k=1}^K e^{z_k-\max(z)}}\\&=z_k-\max (z)-\log \left(\sum_{k=1}^K e^{z_k-\max (z)}\right)\end{aligned} $$

💚逻辑斯蒂回归实现多分类的三种方法