要给出逻辑回归中交叉熵损失函数最小化的梯度推导过程,我们首先定义损失函数和模型预测的形式。对于二分类逻辑回归,模型预测使用sigmoid函数,即:
\[\hat{y}_i = \sigma(z_i) = \frac{1}{1 + e^{-z_i}} \]其中,\(z_i = X_i \cdot \theta\)是模型对第\(i\)个样本的线性预测,\(X_i\)是样本的特征向量,\(\theta\)是模型参数。
对于单个样本的交叉熵损失,我们有:
\[L(y_i, \hat{y}_i) = -\left[ y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i) \right] \]整个数据集上的平均损失为:
\[J(\theta) = -\frac{1}{N} \sum_{i=1}^{N} \left[ y_i \log(\hat{y}_i) + (1 - y_i) \log(1 - \hat{y}_i) \right] \]为了找到最小化损失函数\(J(\theta)\)的参数\(\theta\),我们需要计算\(J(\theta)\)关于\(\theta\)的梯度。首先计算\(\hat{y}_i\)关于\(z_i\)的导数:
\[\frac{d\hat{y}_i}{dz_i} = \frac{d}{dz_i} \left( \frac{1}{1 + e^{-z_i}} \right) = \hat{y}_i (1 - \hat{y}_i) \]然后,我们将损失函数对\(z_i\)求导:
\[\frac{\partial L(y_i, \hat{y}_i)}{\partial z_i} = \frac{\partial L(y_i, \hat{y}_i)}{\partial \hat{y}_i} \cdot \frac{d\hat{y}_i}{dz_i} = -\left( \frac{y_i}{\hat{y}_i} - \frac{1 - y_i}{1 - \hat{y}_i} \right) \cdot \hat{y}_i(1 - \hat{y}_i) = -y_i (1 - \hat{y}_i) + (1 - y_i) \hat{y}_i = \hat{y}_i - y_i \]接下来,我们利用链式法则计算\(J(\theta)\)关于\(\theta_j\)的导数:
\[\frac{\partial J(\theta)}{\partial \theta_j} = \frac{1}{N} \sum_{i=1}^{N} \left( \hat{y}_i - y_i \right) x_{ij} \]因此,整个参数\(\theta\)的梯度向量为:
\[\nabla_{\theta} J(\theta) = \frac{1}{N} X^T \cdot (\hat{y} - y) \]其中,\(X\)是包含所有样本特征的矩阵,\(\hat{y}\)是模型预测值的向量,\(y\)是真实标签的向量。
这就是梯度下降更新参数\(\theta\)时使用的梯度表达式,用于指导如何调整\(\theta\)以减少损失函数\(J(\theta)\)的值。
标签:right,frac,函数,交叉,梯度,theta,hat,partial From: https://www.cnblogs.com/chenmoshaoalen/p/18103756