李宏毅2020机器学习 【学习笔记】 P14Tips for DP

编程入门 行业动态 更新时间:2024-10-22 15:22:39

李宏毅2020机器学习 【<a href=https://www.elefans.com/category/jswz/34/1770117.html style=学习笔记】 P14Tips for DP"/>

李宏毅2020机器学习 【学习笔记】 P14Tips for DP

目录

解决 Traning Data 表现不好

Vanishing Gradient Problem  梯度消失问题

Why?

Solution

将 Activation Function 替换为 ReLU ( Rectified Linear Unit )

 一个问题:都是线性的,那有什么用?我们做NN不就是为了更复杂的 Function 吗?

ReLU 的改进

Maxout (自动学习的 activation function ,再某种特定情况下可以学出 ReLU )

那为什么能模拟 ReLU 函数呢?

一个问题:那些不是 max 的值不会被 train 到?

Adapative Learning Rate

解决 Training Data 表现不好

Early Stopping

Regularization 正则化

Dropout ( DNN 特色的处理方法 )

Why?

表现变好?

Why 再乘上  ?


感谢B站up主搬运的课程:

【李宏毅2020机器学习深度学习(完整版)国语】 /?share_source=copy_web&vd_source=262e561fe1b31fc2fea4d09d310b466d


对于 NN ,在 Training data 上表现好,在 Testing data 上表现不好即 Overfiting 。

但也不是 Testing data 上的不好的表现就是 Overfiting ,也有可能在 Training data 上就已经表现不好了,即 Not well trained 。

解决 Traning Data 表现不好

Vanishing Gradient Problem  梯度消失问题

前面的 layer 拥有较小的 Gradients ,后面的 layer 拥有较大的 Gradients ,在相同的 Learning rate 下,后面的参数会更新得更快,前面的参数还是 random 的时候(一开始的参数是随机选择的)后面就已经收敛了。

前面都还是 random 的,那结果自然还是很差的。

Why?

假设前面的参数有了一个变化  ,在经过 sigmoid function 时,再大的变化也都会被压缩到0到1之间,再经过后续的多个 sigmoid function ,这个变化的影响只会越来越小

Solution

将 Activation Function 替换为 ReLU ( Rectified Linear Unit )

Neuron 使用 ReLU 之后

要么input<0,output=0;

要么input>0,output=input,是线性的。

=0的 Neuron 对神经网络没有影响,可以摘除~

便得到了一个更加细长的NN,且由于是线性的,不会像 sigmoid 那样出现 Vanishing Gradient Problem

 一个问题:都是线性的,那有什么用?我们做NN不就是为了更复杂的 Function 吗?

其实,当参数变化小时,z的定义域没有跨过>0、<0的边界, Function 没有变化,那就是 Linear 的,如果变化较大,z的取值使得进入了另一段分段函数的定义域,那NN就是 non-linear 的。

ReLU 的改进

Leaky ReLU(<0处有了斜率,不再等于0,参数得以更新)、Parametric ReLU(斜率自动学习)

Maxout (自动学习的 activation function ,再某种特定情况下可以学出 ReLU )

原理如下,选出每组里最大的向后传(一组可以不止两个)

那为什么能模拟 ReLU 函数呢?

一个问题:那些不是 max 的值不会被 train 到?

其实不然,要么参数变化后,定义域越过了;要么不同样本的 max 是不一样的,都会被 train 到。

Adapative Learning Rate

  • AdaGrad
  • RMSProp
  • Momentum
  • Adam

前面的笔记有讲过,具体参考

李宏毅2020机器学习 【学习笔记】 P8 Optimization for Deep Learning__bh的博客-CSDN博客

解决 Training Data 表现不好

Early Stopping

将 Validation Set ,视作 Testing Set (不是真的 Testing Set ,我们是知道其 Loss function 的)

如此可以在更合理的地方停止 Training 。

Regularization 正则化

每次都先给参数缩小一下。

每次都减去一个固定值。

区别,L2按比例减(大参数减很快,小参数减很慢,结果都平均很小),L1以固定值减;

Dropout ( DNN 特色的处理方法 )

每次更新参数前,每个 Neuron 都有  的概率被丢弃

在测试时则不需要 Dropout ,但参数要乘上  。

但注意, Dropout 后 Training Data 的表现是会变差的(训练的时候神经元总是莫名奇妙地消失),不过在 Testing Data 上的表现会变好。

Why?

Intuitive Reason

表现变好?

traning 时给予了重重阻碍,则放下重负时会表现更好。

每次训练的部分神经元能更好地得到训练。

Why 再乘上  ?

假设训练的时候总是丢掉一部分的 Neuron (  ),剩下  的 Neuron ,那测试时不丢弃,输出会是不丢弃时的表现,那么自然就要乘上一个  来等同于训练时的表现。

更多推荐

李宏毅2020机器学习 【学习笔记】 P14Tips for DP

本文发布于:2024-03-12 17:43:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1732058.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:学习笔记   机器   李宏毅   P14Tips   DP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!