损失函数公式推导以及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\) 越大,权重衰减的越厉害