损失函数公式推导以及L2正则化

损失函数公式推导以及L2正则化

假设预测函数为 \(h\),预测函数中出现的所有常量为 \(\Theta\)(常量可能不止一个,所以用大写的来表示)

例如 \(h=ax+bx^2+c\),那么 \(\Theta=(a,b,c)\)

那么 \(h_{\Theta}\) 就表示再常量为 \(\Theta\) 的情况下的假设函数

假设函数就是预测函数,同样代价函数和损失函数也是一个意思

假设损失函数为 \(J\) ,则

\[\begin{aligned} J(\Theta)&=\frac{1}{2m}\sum_{i=1}^m(h_{\Theta}(x_i)-y_i)^2\\ \frac{\part J}{\part \theta_k}&=\frac{1}{m}\sum_{i=1}^m(h_{\Theta}(x_i)-y_i)\frac{\part h_{\Theta}(x_i)}{\part \theta_k} \end{aligned} \]

其中 \(m\) 表示样本数、\(x_i\) 表示第 \(i\) 个样本、\(y_j\) 表示第 \(i\) 个样本的标签、\(\theta_k\) 表示第 \(k\) 个常量

\(x_i\) 表示的是一个完整的样本,不一定是一个数,也有可能是一个矩阵,\(y_i\) 同理

那么 \(\frac{\part J}{\part \theta_k}\) 就表示代价函数 \(J\) 的对其第 \(k\) 个参数的偏导数

得到了偏导数,我们就可以根据梯度下降的公式来更新参数,即

\[\begin{aligned} \theta_k\rightarrow\theta_k-lr\frac{\part J}{\part \theta_k} \end{aligned} \]

其中 \(lr\) 表示学习率


L2正则化(权重衰减)

L2正则化可以减少过拟合,因为它可以使权重衰减。过拟合的原因一般是因为假设函数顾及到了样本中的每一个点,最终形成的函数波动很大,自变量稍微变化就会导致函数值剧烈变化,结果一般显现为在训练集上的准确率很高,而在测试集上的准确率很低。从函数的结构上来看,波动很大的原因就是因为函数中的权重(常量)太大了,如果能将权重减小,就能减小波动,就能在一定程度上减小过拟合的情况。

\[\begin{aligned} J_{L2}(\Theta) &=\frac{1}{2m}\left(\sum_{i=1}^m(h_{\Theta}(x_i)-y_i)^2+\lambda\sum_{j=1}^n\theta_j^2\right) \\ &=J(\Theta)+\frac{\lambda}{2m}\sum_{j=1}^n\theta_j^2\\ \frac{\part J_{L2}}{\part\theta_k} &=\frac{1}{m}\left(\sum_{i=1}^m(h_{\Theta}(x_i)-y_i))\frac{\part h_{\Theta}(x_i)}{\part\theta_k}+\lambda\theta_k\right)\\ &=\frac{\part J}{\part\theta_k}+\frac{\lambda}{m}\theta_k\\ \end{aligned} \]

其中 \(\lambda\) 表示正则化系数,\(n\) 表示权重的个数,\(\theta_j\) 就表示第 \(j\) 个权重

重新推导权重更新方程

\[\begin{aligned} \theta_k &\rightarrow\theta_k-\frac{\part J_{L2}}{\part\theta_k}\\ &\rightarrow\theta_k-\left(\frac{\part J}{\part\theta_k}+\frac{\lambda}{m}\theta_k\right)\\ &\rightarrow\theta_k-\frac{\part J}{\part\theta_k}-\frac{\lambda}{m}\theta_k\\ &\rightarrow\theta_k(1-\frac{\lambda}{m})-\frac{\part J}{\part\theta_k} \end{aligned} \]

与原来的推导方程相比仅仅是 \(\theta_k\) 被放大了 \(1-\frac{\lambda}{m}\)

所以 \(\lambda\) 越大,权重衰减的越厉害

posted @ 2022-03-14 20:06  jawide  阅读(757)  评论(0编辑  收藏  举报