如何正确训练DNN

一、训练一个网络的步骤:

1、定义一个网络架构

2、如何评估一个网络架构的好坏

3、真正训练出好的网络架构

4、在训练集上测试网络的好坏,如果不好,说明网络没有训练好

5、在测试集上测试网络的好坏,如果不好,说明出现过拟合现象


二、结果不好,并不意味着一定是overfitting

在下图左侧的training Data中,20层的网络误差比56层小,并不是说明20层的网络性能好,也可能是因为50层的网络并没有训练好。

在下图右侧的Testing Data中,20层的网络误差比56层小,并不是说明20层的网络性能好,56层的网络出现过拟合现象,也可能是因为50层的网络并没有训练好。


三、如果你的模型在Training Data的效果不好,可以采取以下策略



(1)检查你的Loss function

Loss function:希望预估出来的结果和实际结果越接近越好,测量方法很多,如:欧氏距离、Square Error、Cross Entropy


举例:Loss Function可能对于结果有很大的差别


为什么会有这种差别:Square Error的值落差很小,不利于模型选择最佳梯度,模型会默认你的结果已经很接近标准结果。而Cross Entropy的值落差很大,有助于模型选择最佳梯度,找到最优解。


(2)使用mini-batch

不要一次性拿60000张图片,以小单位来计算,一次拿1000张的total loss,来算最佳梯度,算完60000张后是一个epoch。如果epoch=20,随意一共是60*20=1200个interation,

下面是一次看60000张(update一次)和mini-batch(update20次)(不稳定)思想的图像表示:




设置mini-batch的小技巧:每个epoch中mini-batch的选择最好不一样。


(3)设置新的New activation function(激活函数)



一直困扰的一个问题就是:vanishing Gradient problem(梯度消散问题)



刚开始有人提出用RBM解决这个问题,后来又有人提出ReLU







ReLU有一些变形:




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值