“应是上帝打落银河,星星掉落凡间才有这水光粼粼,你的眼眸,如同那宇宙浩瀚星辰般闪烁。”

李宏毅2021春机器学习-第二节-机器学习任务攻略

1. Gradient descend

当gradient为0的时候(遇到critical point),无法进行gradient descend。这时候有几种情况:

  • Local minimal
  • Saddle point

$\theta^{'}$周围的Loss function可以定义为:

​ $L(\theta)\approx L(\theta^{'}) +(\theta-\theta^{'})^{T}g+\frac {1}{2}(\theta-\theta^{'})^{T}H(\theta-\theta^{'})$

loss

其中 Gradient $g$ 为一个 vector

​ $g=\nabla L(\theta^{'})$ $g_i=\frac{\partial L(\theta^{'})}{\partial \theta_i}$

Hessian $H$ 是一个矩阵

​ $H_{ij}=\frac {\partial^2}{\partial \theta_i \partial \theta_j}L(\theta^{'})$

在critical point:

​ $L(\theta)\approx L(\theta^{'})+\frac {1}{2}(\theta-\theta^{'})^{T}H(\theta-\theta^{'})$

令 $\lambda=\frac {1}{2}(\theta-\theta^{'})^{T}H(\theta-\theta^{'})$

  • 若 $\lambda>0$ 则:$L(\theta)>L(\theta^{'})$ 则该点为Local minima

  • 若 $\lambda<0$ 则:$L(\theta)<L(\theta^{'})$ 则该点为Local maxima

  • 若 $\lambda$ 有时候大于0有时候小于0,则该点为Saddle point

当为critical point时:

​ 找到 $\lambda<0$ 的点,则 $\theta=\theta^{'}+u$的方向就可以进行Gradient descend。

2. Batch

只使用一个batch的资料来算loss,当所有batch算完一遍为一个epoch。

在每一个epoch之后要进行Shuffer(每次重新划分batch)

区别:

​ large batch:每一步都是稳定的,但是需要长时间的计算

​ small batch:每一步都是不稳定的,但是更新速度快

Small batch Large batch
train 更好 不好
testing 更好 不好
Speed for one update(no parallel) faster slower
Speed for one update(with parallel) same same(not too large)
Time for one epoch slower faster
Gradient Noisy Stable
Optimization Better Worse
Generalization Better Worse

为什么大的batch在train的时候会出现较差的结果?

​ 若使用大的batch在梯度为0时就没办法更新。

​ 使用小的batch在梯度为0的时候停止更新,但在下一个batch又可以正常更新。

3. Momentum

通过物理学的势的概念进行梯度下降。

通过上一步的移动方向和当前的方向进行综合决定Gradient descend的方向。

可能会给Gradient descend带来更好的Local minima

4. Adaptive Learning Rate

当Loss减小到一定程度后不再下降。这时候可能遇到critical point也可能是Loss无法再下降。

  • 遇到critical point
  • convex的training,会受到learning rate的影响

将原来的Gradient descend:

​ $\theta^{t+1}_{i}\leftarrow \theta^{t}_{i}-{\eta}g^t_i$

变为:

​ $\theta^{t+1}_{i}\leftarrow \theta^{t}_{i}-\frac{\eta}{\delta^{t}_i}g^t_i$

几种方法:

名称 定义
Adagrad $\sigma_{i}^{t}=\sqrt{\frac{1}{t+1} \sum_{i=0}^{t}\left(\boldsymbol{g}_{i}^{t}\right)^{2}}$
RMSProp $\sigma_{i}^{t}=\sqrt{\alpha\left(\sigma_{i}^{t-1}\right)^{2}+(1-\alpha)\left(\boldsymbol{g}_{i}^{t}\right)^{2}}$,$1>\alpha>0$
Adam RMSPror+Momentum

Learning rate scheduling:

  • Learning rate decay:

​ 随着训练的进行逐渐减小learning rate

  • Warm UP:

​ learning rate 先增大再减小

5. Loss Function

  • Regression and Classification

    $y^{'}=softmax(y)$

    将 $y$ 的值转换为固定的类别

  • MSE(mean square error)

    $ e=\sum_{i}\left(\widehat{y}_{i}-y_{i}^{\prime}\right)^{2}$

  • Cross-entropy(常用与$softmax$绑定)

    $e=-\sum_{i} \widehat{y}_{i} l n y_{i}^{\prime}$

6. Batch Normalization

​ 让Loss收敛的更快,让Error Surface更加平缓。

​ 适用于Batch size比较大的情况

添加新评论