原标题:如何用Keras来构建LSTM模型,并且调参
Choosing the right Hyperparameters for a simple LSTM using Keras
作者 |Karsten Eckhardt
翻译 |涂世文、小Y的彩笔
校对 | 邓普斯•杰弗 审核| 酱番梨 整理 | 菠萝妹
https://towardsdatascience.com/choosing-the-right-hyperparameters-for-a-simple-lstm-using-keras-f8e9ed76f046
如何用Keras来构建LSTM模型,并且调参
图片来自 Unsplash 上的 Mika Baumeister
搭建机器学习模型从来都没有像现在这么容易过,许多文章给出了有关于数据科学是什么,它能实现什么的高层次的概述,或是深入讨论了非常小的实现细节。这就使得一些有志数据科学家,像我之前那样,经常看着notebook想“它看起来太棒了,但为什么作者选择这种类型的结构?如何确定神经元的数量是这么多?为什么选择这种激活函数?”这篇文章中,我想给谈论如何用直觉做出决定帮你在构建模型时找到正确的参数等等,文章基于一个非常基础的 LSTM 由姓氏来预测性别。因为已经有许多很棒的关于数学和递归神经网络 (RNN) 的基本概念的课程,如:Andrew Ng’s deep learning specialization 或 Medium上的课程,所以我不会深入讨论它们,并把这些知识视为已知。我们将只关注如何在高层次用 Keras 实施它。目标是更实际的理解这些构建神经网络是需要做的决定,尤其是在如何选择超参数上。
整篇文章连同代码和输出可以在 Github 上找到。
关于 Keras:自从2017年支持 TensorFlow 以来,Keras 作为一个易于使用和直观的界面,已经更加复杂的机器学习库上引人瞩目。所以构建真实的神经网路并训练模型差不多是我们这个脚本中最短的部分。
第一步是决定我们想用的网络的类型,因为这个决定会影响我们的数据预处理过程。在任何名字中,字母的顺序都是很重要的,这意味着,如果我们想要用神经网络分析一个名字,RNN 是一个合理的选择。Long Short-Term Memory Networks (LSTM) 是一种特殊形式的RNN,当输入块链变长时,LSTM 找到正确特征的功能变得尤为强大