sigmoid 函数的损失函数与参数更新

本文深入探讨了逻辑回归在分类问题中的应用,通过引入Sigmoid函数将模型输出转化为概率值,详细解析了其损失函数及参数更新过程,为理解机器学习中的数学原理提供了清晰路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 sigmoid 函数的损失函数与参数更新

逻辑回归对应线性回归,但旨在解决分类问题,即将模型的输出转换为 $[0, 1]$ 的概率值。逻辑回归直接对分类的可能性进行建模,无需事先假设数据的分布。最理想的转换函数为单位阶跃函数(也称 Heaviside 函数),但单位阶跃函数是不连续的,没法在实际计算中使用。故而,在分类过程中更常使用对数几率函数(即 sigmoid 函数):

$$ \sigma(x) = \frac{1}{1+e^{-x}} $$

易推知,$\sigma(x)' = \sigma(x)(1- \sigma(x))$.

假设我们有 $m$ 个样本 $D = \{(x_i, y_i)\}_i^m$, 令 $X = (x_1, x_2, \cdots, x_m)^T, y = (y_1, y_2, \cdots, y_m)^T$, 其中 $x_i \in \mathbb{R}^n, y_i \in \{0, 1\}$, 关于参数 $w \in \mathbb{R}^n, b \in \mathbb{R}$, ($b$ 需要广播操作),我们定义正例的概率为

$$ P(y_j=1|x_j;w,b) = \sigma(x_j^Tw +b) = \sigma(z_j) $$

这样属于类别 $y$ 的概率可改写为

$$ P(y_j|x_j;w,b) = \sigma(z_j)^{y_j}(1-\sigma(z_j))^{1-y_j} $$

令 $z = (z_1, \cdots, z_m)^T$, 则记 $h(z) = (\sigma(z_1), \cdots, \sigma(z_m))^T$, 且 Logistic Regression 的损失函数为

$$ \begin{aligned} L(w, b) =& - \displaystyle \frac{1}{m} \sum_{i=1}^m (y_i \log (\sigma(z_i)) +(1-y_i) \log (1 - \sigma(z_i)))\\ =& - \frac{1}{m} (y^T\log (h(z)) + (\mathbf{1}-y)^T\log(\mathbf{1}- h(z))), \text{ 此时做了广播操作} \end{aligned} $$

这样,我们有

$$ \begin{cases} \nabla_w L(w,b) = \frac{\text{d}z}{\text{d}w} \frac{\text{d}L}{\text{d}z} = - \frac{1}{m}X^T(y-h(z))\\ \nabla_b L(w,b) = \frac{\text{d}z}{\text{d}b} \frac{\text{d}L}{\text{d}z} = - \frac{1}{m}\mathbf{1}^T(y-h(z)) \end{cases} $$

其中,$\mathbf{1}$ 表示全一列向量。这样便有参数更新公式 ($\eta$ 为学习率):

$$ \begin{cases} w \leftarrow w - \eta \nabla_{w} L(w,b)\\ b \leftarrow b - \eta \nabla_b L(w,b) \end{cases} $$

更多机器学习中的数见:机器学习中的数学

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值