读《一天搞懂深度学习》ppt笔记
学习自http://www.cnblogs.com/liuyihai/p/8448977.html,推荐看这个链接。很全面很完整,我的笔记仅是记部分东西。
softmax
输出层:
一般情况下,输出层可以输出任何值:
在输出层前加Softmax Layer:
推荐的开发工具:
tips
不要总是将原因归到过拟合,下图中,56层的网络在训练集误差大,所以这个就是没训练好,而不是在测试集的过拟合。
20层的是过拟合。
对训练过程:
(1)选择合适的损失
(2)需要mini batch
也就是批梯度下降法。快而且好的方法。
每100个数据进行一次梯度下降
整个训练集数据拿来训练20轮
- 每轮整个数据集迭代结束后,对数据进行一次打乱,即shuffle
(3)选择合适的激励函数
可以解决梯度消失问题
很多都是用relu作为激励函数。
(4)恰当的学习率
Adagrad可以达到学习率由大变小:
(5)momentum
对测试数据:
早停:
权重消失
L1正则化其实就是这个
dropput
在训练集上:
在每一个mini batch 数据迭代更新完权重后,重新抽样dropout的神经元。这样,每个mini batch 训练的都是一个新结构的网络。网络的结构在重新抽样中被改变了。
在测试集上:
不能dropout
dropout和maxout在一起可以工作的更好