李宏毅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机器学习深度学习(完整版)国语】 https://www.bilibili.com/video/BV1JE411g7XF/?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?

假设前面的参数有了一个变化 \triangle w ,在经过 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 都有 p\% 的概率被丢弃

在测试时则不需要 Dropout ,但参数要乘上 (1-p)\% 。

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

Why?

Intuitive Reason

表现变好?

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

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

Why 再乘上 (1-p)\% ?

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
李宏毅2020机器学习笔记中,有一个关于注意力机制(Attention)的部分。这部分内容主要介绍了生成模型(Generation)、注意力(Attention)、生成的技巧(Tips for Generation)以及指针网络(Pointer Network)。在生成模型中,主要讲述了如何生成一个有结构的对象。接下来介绍了注意力机制,包括一些有趣的技术,比如图片生成句子等。在生成的技巧部分,提到了一些新的技术以及可能遇到的问题和偏差,并给出了相应的解决方案。最后,稍微提到了强化学习。其中还提到了在输出"machine"这个单词时,只需要关注"机器"这个部分,而不必考虑输入中的"学习"这个部分。这样可以得到更好的结果。另外,还提到了关于产生"ei"的方法,其中有研究应用了连续动态模型自注意力(Self-attention)来学习位置编码的方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [2020李宏毅机器学习笔记-Condition Generation by RNN&Attention](https://blog.csdn.net/zn961018/article/details/117593813)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [李宏毅机器学习学习笔记:Self-attention](https://blog.csdn.net/weixin_44455827/article/details/128094176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值