如果您计划尝试深度学习模型,那么Keras可能是一个很好的起点。它是用Python编写的高级API,后端支持Tensorflow、CNTK和Theano。
对于那些对Keras不熟悉的人,你可以在Keras阅读更多。io或一个简单的谷歌搜索将带你到基础和更多的Keras。
在这篇文章中,我想分享我在一年前用Keras做实验时学到的经验或希望我知道的事情。我正在分享的一些东西可能会被新的方法取代,甚至被先进的机器学习平台自动化。
1、一般来说,从较小的神经网络架构开始,看看模型在dev/test集上的表现如何。
2、模型架构,超参数值根据数据集而变化。换句话说,对于不同的数据集/业务问题,它可能是不同的。
3、架构和超参数通常使用迭代方法派生。这里没有黄金法则。
4、培训/开发/测试的分割可以是90%,5%,5%甚至98%,1% 1%。在Keras中,dev split被指定为模型的一部分。适合验证关键字。
5、在构建模型之前,定义并确定度量标准。一个度量可以关注模型的精度(MAE、精度、精度、召回等),但是还需要一个与业务相关的度量。
6、您并不总是需要一个深度学习模型来解决业务问题。与CNN或LSTM相比,迭代和运行基于树的模型(如梯度助力法或随机森林)要快得多
参数选择:- 1、学习速率-从默认速率开始,如果网络没有学习,增加到。001,。0001,。00001等等。
-
- 2、激活函数(relu和tanh是常用的激活函数)。利用激活函数对模型进行非线性引入。最后一层通常是线性的。
-
- 3、优化器(nadam是最常用的优化器。在大多数用例中,您只需要更改学习率并将所有其他参数保留在默认值。
-
- 4、隐藏层数和每层单元数主要是通过迭代得到的。
-
- 5、批量大小对模型的性能也有影响。同样,这是由试错法确定的。
-
- 6、数据需要规范化。(在0和1之间,或-1和1之间)。
-
- 7、从低时期开始(比如10年,看看模型表现如何)
-
- 8、不足拟合:这可以通过添加更多的数据、构建更深的层和减少任何过拟合技术来解决。
-
- 9、超拟合:增加一个差值层或正则化参数(L1或L2)是减少超拟合的一种方法。
-
- 10、利用损失函数图和历元图来评估模型是否收敛
下图显示了一个模型在epoch ~ 100收敛。如果模型不收敛,训练和验证曲线就不会相交。
我希望这篇文章对您学习和使用Keras进行深度学习模型实验非常有用。
如果我漏掉了什么重要的东西,或者你发现了与你的实验不同的东西,请在下面评论。