机器学习-梯度下降的优化
在回归中,我们需要解决下面的优化问题,即使得Loss函数尽可能的小 \[ \theta^*=arg\min L(\theta),L:loss function,\theta:parameters \] 假设一共有两个参数\(\theta_1,\theta_2\),使得\(\theta^0= \begin{bmatrix}\theta^0\\\theta^1\end{bmatrix}\),便有梯度如下 \[\nabla L(\theta)=\begin{bmatrix} \partial L(\theta_1)/ \partial \theta_1\\\ \partial L(\theta_2)/ \partial \theta_2\end{bmatrix}\] 那么参数的更新便可通过向量的形式进行 \[ \begin{bmatrix}\theta^1_1\\\theta^1_2\end{bmatrix}=\begin{bmatrix}\theta^0_1\\\theta^0_2\end{bmatrix}-\eta\begin{bmatrix} \partial L(\theta^0_1)/ \partial \theta_1\\\ \partial L(\theta^0_2)/ \partial \theta_2\end{bmatrix} \] 但是其中,\(\eta\)是一直不变的,但是我们知道,经过迭代之后,在越来约接近目标的时候,我们需要将学习率降低,使其能够愈发趋近目的地。故,我们对\(eta\)进行改进,使其经过一定的迭代后越来越小。 \[ \eta^t=\eta/\sqrt{t+1} \] 但是学习率不能一刀切,对于参数,我们也需要给予其一定的改变。一般我们的参数的改变为 \[ w^{t+1}=w^t-\eta^tg^t \] w是一个参数,我们设置\(\eta^t\) 为参数w之前导数的均方根,使其成为一个参数依赖型的学习率。也就是说 \[ w^1=w^0-\frac{\eta^0}{\sigma^0}g^0,\sigma^0=\sqrt{(g^0)^2}\\ w^2=w^1-\frac{\eta^1}{\sigma^1}g^1,\sigma^1=\sqrt{\frac{1}{2}[(g^0)^2+(g^1)^2]}\\ \] 如此迭代,直到 \[ w^{t+1}=w^t-\frac{\eta^t}{\sigma^t}g^t,\sigma^t=\sqrt{\frac{1}{t+1}\sum^t_{i=0}(g^i)^2} \] 从上面的式子中,我们可以看到\(\eta^t\)是一个时间相关的学习率,\(\sigma^t\)是一个参数相关的学习率,且 \[ \eta^t=\frac{\eta}{\sqrt{t+1}},\sigma^t=\sqrt{\frac{1}{t+1}\sum^t_{i=0}(g^i)^2} \] 故相除之后得到下列的公式 \[ w^{t+1}=w^t-\frac{\eta}{\sqrt{\sum^t_{i=0}(g^i)^2}}g^t \] 梯度改进之后的对比如下: