mlp 参数调优_自动化机器学习第一步:使用Hyperopt自动选择超参数

本文介绍了如何使用Hyperopt库进行超参数优化,特别是在多层感知器(MLP)模型中的应用。通过实例展示了如何自动选择网络层数、激活函数、学习率等超参数,以提高模型预测比特币价格的效果。实验结果显示,自动选择的超参数(如sigmoid激活函数和30分钟时间窗口)在某些情况下优于传统选择。
摘要由CSDN通过智能技术生成

有时候在学习神经网络教程时,我们通常会看到有的实验似乎理所当然地就选定了某种神经网络架构以及特定的网络层数、激活函数、损失函数等等,却没有解释原因。因为解释起来有点难。是的,深度学习社区选择 ReLU(或更现代的选择 ELU 或 SELU)作为激活函数是「常态」,而且我们基本上也欣然接受,但我们通常并没有思考这是否是正确的。比如在网络的层数和优化器的学习率选择上,我们通常都遵循标准。近日,机器学习开发者兼饶舌歌手 Alex Honchar 在 Medium 上发文分享了自动化这些选择过程的方式。另外,本文涉及的相关代码也已在 GitHub 上公开。

超参数搜索

卷积神经网络训练的典型超参数的列表

在开始训练一个模型之前,每个机器学习案例都要选择大量参数;而在使用深度学习时,参数的数量还会指数式增长。在上面的图中,你可以看到在训练计算机视觉卷积神经网络时你要选择的典型参数。

但有一个可以自动化这个选择过程的方法!非常简单,当你要选择一些参数和它们的值时,你可以:启动网格搜索,尝试检查每种可能的参数组合,当有一种组合优化了你的标准时(比如损失函数达到最小值),就停止搜索。

当然,在大多数情况下,你可等不了那么久,所以随机搜索是个好选择。这种方法可以随机检查超参数空间,但速度更快而且大多时候也更好。

贝叶斯优化——我们为超参数分布设置一个先决条件,然后在观察不同实验的同时逐步更新它,这让我们可以更好地拟合超参数空间,从而更好地找到最小值。

在这篇文章中,我们将把最后一个选项看作是一个黑箱,并且重点关注实际实现和结果分析。

HFT 比特币预测

比特币价格的样本图

我们将取出其中最近 10000 分钟的一个子集,并尝试构建一个能够基于我们选择的一段历史数据预测未来 10 分钟价格变化的最好模型。

对于输入,我想使用 OHLCV 元组外加波动,并将这个数组展开以将其输入多层感知器(MLP)模型。o = openp[i:i+window]

h = highp[i:i+window]

l = lowp[i:i+window]

c = closep[i:i+window]

v = volumep[i:i+window]

volat = volatility[i:i+window]

x_i = np.column_stac

好的,我们可以使用鸢尾花数据集来训练一个多层感知机(MLP)模型。MLP是一种常用的深度学习模型,可以用于分类任务。我们可以通过调整超参数来优化模型,例如学习率、隐藏层神经元的数量和大小等。 以下是一个使用Python和Scikit-learn库训练和优化MLP模型的示例代码: ```python # 导入库 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neural_network import MLPClassifier from sklearn.metrics import accuracy_score # 加载数据集 iris = load_iris() X = iris.data y = iris.target # 将数据集划分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 定义MLP模型 mlp = MLPClassifier(hidden_layer_sizes=(10, 10), max_iter=1000, alpha=0.01, solver='adam', verbose=10, random_state=42, tol=0.0001) # 训练模型 mlp.fit(X_train, y_train) # 预测测试集并计算准确率 y_pred = mlp.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy) ``` 在这个例子中,我们使用了鸢尾花数据集,并将其划分为训练和测试集。我们定义了一个具有两个隐藏层,每个层中有10个神经元的MLP模型。我们使用adam优化器和alpha=0.01的L2惩罚来训练模型。我们还设置了最大迭代次数和容忍度,以及打印训练过程的详细信息。最后,我们计算了模型在测试集上的准确率。 你可以尝试不同的超参数组合,以获得更好的性能。例如,你可以增加隐藏层的数量或神经元的数量,或者尝试不同的优化器或学习率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值