李宏毅 DeepLeaning-2017-Tips for DP

**1.首先控制Train Data上的结果 train set上的performance一定要作为先检查的标准

2.进而再看在Testing Data上的结果

3.1好,2不好就是Overfitting**

在这里插入图片描述
在这里插入图片描述
举例:
在train set中的performance 56的layder就比20的差,所以在testing set的performance就无法断定是overfitting

在这里插入图片描述
注意:自己遇到的问题找到对应合适的方法解决这个问题,就是两个分支的结果
在这里插入图片描述
调节方法:在这里插入图片描述
在train set里面,network叠的越深,对于train的performance的结果是不好的
在这里插入图片描述
在这里插入图片描述
导致梯度消失的原因::
在这里插入图片描述
改进方法:
修改activate function
在这里插入图片描述
ReLU 的变种

在这里插入图片描述

自动学习activation function maxout

在这里插入图片描述

如何求出activation max(z1,z2)

在这里插入图片描述
在这里插入图片描述

这种制作的activation function如何微分??

分段求导,知道了谁最大,就是单独的linear function
在这里插入图片描述
在这里插入图片描述

调节方法二: Adaptive Learning Rate的方法

在这里插入图片描述
比Adagrad更好的一个方法:根据error suface表现出learning Rate的调大调小,把新的gradent考虑进去。
在这里插入图片描述
在这里插入图片描述

Momentum方法

惯性动量方法可以在某一程度上摆脱local min,考虑前一时刻的gradent
在这里插入图片描述
在这里插入图片描述其实在计算过程中考虑了之前所有的gradent

在这里插入图片描述
在这里插入图片描述问题:那么我们如何控制保证Train set 和 test set 的 performance的结果都是好的呢,我们都知道在lr设置没有问题时,通过增加epoc的次数可以让train set的performance越来越好,但是看testing 的performance 曲线,我们就可以看到并不是随着epoc增加越来越小,所以我们可以在每次的epoc的过程中来计算一次testing performance 称为 Validation set performance
在这里插入图片描述

Regularization

在这里插入图片描述

Regularization term(L2 regularization)

尽可能修改loss改为求最小值,接近零的。这里我们加一个term
在这里插入图片描述
在这里插入图片描述

Regularization term(L1 regularization)

在这里插入图片描述

Dropout

每次更新参数之前,抽取丢掉p%的节点,改变structure,形成比较瘦长的neuron network****继续做training
在这里插入图片描述
在这里插入图片描述
重中之重:
testing的时候是不抓爆的。但是testing要把weight缩小p%

在这里插入图片描述
在这里插入图片描述

Dropout是ensemble终极版本

在这里插入图片描述
weight是共用的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zjguilai/article/details/90024480