当前位置: 首页 > news >正文

企业网站能不能个人备案深圳本地网站建设

企业网站能不能个人备案,深圳本地网站建设,合肥门户网站建设,企业网站个人可以备案吗本篇文章Master Hyperband — An Efficient Hyperparameter Tuning Method in Machine Learning深入探讨了Hyperband这一高效的超参数调优方法。文章的技术亮点在于其结合了多臂老虎机策略和逐次减半算法#xff0c;能够在大搜索空间中快速剔除表现不佳的配置#xff0c;从而…本篇文章Master Hyperband — An Efficient Hyperparameter Tuning Method in Machine Learning深入探讨了Hyperband这一高效的超参数调优方法。文章的技术亮点在于其结合了多臂老虎机策略和逐次减半算法能够在大搜索空间中快速剔除表现不佳的配置从而节省计算资源。 文章目录1 介绍2 什么是 Hyperband2.1 Hyperband 的工作原理2.1.1 第1步 定义预算和淘汰因子2.1.2 第2步 遍历各个 Bracket2.1.3 第3步 运行 Successive Halving Algorithm (SHA)2.1.4 第4步 选出最佳配置2.1.5 例子演示 — 支持向量分类器SVC3 模拟实验3.1 创建训练和测试数据集3.2 模型定义 — LSTM网络3.3 搜索空间3.4 定义验证函数3.5 运行 Hyperband3.6 结果3.7 与其他调优方法的对比3.8 Bayesian Optimization3.9 Random Search3.10 Genetic Algorithms (GA)4 考虑与总结4.1 提升 Hyperband 性能的建议1 介绍 Hyperband 是一种强大的机器学习超参数调优方法利用**successive halving逐步淘汰**策略来高效分配资源。 然而执行 Hyperband 需要对其核心机制和参数进行细致考量以最大化其优势。 本文将通过调优用于股票价格预测的 LSTM 网络深入探讨 Hyperband 的核心机制并与其他主要调优方法进行性能对比 Bayesian Optimization贝叶斯优化Random Search随机搜索以及Genetic Algorithms遗传算法。 2 什么是 Hyperband Hyperband 是一种高效的超参数调优算法结合了multi-armed bandit多臂老虎机策略和successive halving algorithmSHA逐步淘汰算法。 多臂老虎机问题是概率论中的一个问题展示了以下基本权衡 探索Exploration 探索广泛的超参数配置利用Exploitation 利用最有前景的配置。 SHA 是一种资源分配策略它为随机采样的配置分配固定的预算如训练的epoch数。 在每个阶段SHA 评估超参数配置的表现剔除表现最差的配置同时将剩余预算重新分配给幸存的配置称为survivors幸存者。 Hyperband 更进一步通过使用不同的初始预算运行 SHA以平衡探索和利用。 下面的图表分类展示了主要的超参数调优方法 在众多调优方法中Hyperband 在速度和效率上具有明显优势尤其适合处理大规模搜索空间。 2.1 Hyperband 的工作原理 下图展示了 Hyperband 如何将更多预算分配给最终胜出者配置#4尽管在 Bracket 1 中的初始预算分配是随机的 Hyperband 以在Bracket 1中创建大量超参数配置并分配较小预算开始。 随后随着进入后续的各个 Bracket配置数量逐步减少而幸存配置获得更多预算。 在图中的Bracket 2Hyperband 将更多预算分配给来自 Bracket 1 的幸存者配置#1和#4。 最终在Bracket 3中将全部预算分配给最终胜出者配置#4。 这种方法有效地探索了广泛的配置同时快速剔除表现差的配置实现了探索与利用的平衡。 这一过程可分为四步 2.1.1 第1步 定义预算和淘汰因子 首先定义 最大资源预算R 单个模型可训练的最大epoch数淘汰因子η 预设的因子用于决定淘汰的激进程度。 常见的淘汰因子值有2、3或4。 每个阶段超参数配置数量除以η幸存配置的预算乘以η。 2.1.2 第2步 遍历各个 Bracket 算法运行一系列 Bracket每个 Bracket 是使用不同起始预算的完整 Successive Halving 算法SHA运行。 Bracket 数量由最大Bracket索引 smaxs_{max}smax​ 决定 其中 ηηη淘汰因子RRR最大资源预算。 算法从 smaxs_{max}smax​ 迭代到0。 2.1.3 第3步 运行 Successive Halving Algorithm (SHA) 对于每个 Bracket sssHyperband 确定开始时的超参数配置数量 nsn_sns​。 Hyperband 有意在预算小的 Bracket 中设置较多配置预算大的 Bracket 中配置较少。 数学表达式如下 其中 nsn_sns​当前Bracket的配置数量RRR最大资源预算ηηη淘汰因子smaxs_{max}smax​最大Bracket数sss当前Bracket索引范围从 smaxs_{max}smax​ 到 0。 Hyperband 还确定每个Bracket的初始预算 rsr_srs​ 其中 rsr_srs​当前Bracket的初始预算RRRηηηsmaxs_{max}smax​ 同上。 Hyperband 随机采样 nsn_sns​ 个超参数配置每个训练 rsr_srs​ 个 epoch。 然后根据表现选出前 ns/ηn_s / ηns​/η 个幸存者。 这些幸存者再接受更大预算训练总训练epoch达到 rs⋅ηr_s \cdot ηrs​⋅η。 此过程不断进行配置数量逐步减半预算逐步增加直到只剩一个配置或达到最大预算。 2.1.4 第4步 选出最佳配置 所有 Bracket 运行完毕后选出表现最优的超参数配置作为最终结果。 Hyperband 的效率来自于它能快速剔除表现不佳的配置释放资源训练更有潜力的配置更长时间。 2.1.5 例子演示 — 支持向量分类器SVC 下面通过调优支持向量分类器SVC的正则化参数 C 和核函数系数 gamma演示 Hyperband 的工作过程。 模型 支持向量分类器SVC 搜索空间 C: [0.1, 1, 10, 100]gamma: [‘scale’, ‘auto’, 0.1, 1, 10] 第1步 定义预算和淘汰因子 设最大预算 R81R81R81淘汰因子 η3η3η3。 第2步 遍历 Bracket 计算最大Bracket索引 即 Hyperband 将运行 s4,3,2,1,0s4,3,2,1,0s4,3,2,1,0 五个 Bracket。 每个 Bracket 的配置数量 nsn_sns​ 和初始预算 rsr_srs​ 如下 Bracket 1 (s4s4s4): ns1n_s1ns​1, rs9r_s9rs​9Bracket 2 (s3s3s3): ns3n_s3ns​3, rs3r_s3rs​3Bracket 3 (s2s2s2): ns9n_s9ns​9, rs1r_s1rs​1Bracket 4 (s1s1s1): ns27n_s27ns​27, rs1/3r_s1/3rs​1/3Bracket 5 (s0s0s0): ns81n_s81ns​81, rs1/9r_s1/9rs​1/9 预算 R81R81R81 在这些 Bracket 中分配以高效寻找最佳配置。 第3步 运行 SHA 以 Bracket 3 (s2s2s2) 为例 初始运行 随机采样9个配置每个训练1个 epoch记录表现保留表现最好的3个9/339/339/33其余剔除。 第二轮运行 这3个幸存者训练3个 epoch1×331 \times 331×33记录表现保留表现最好的1个3/313/313/31。 最终运行 剩下的单个幸存者训练9个 epoch3×393 \times 393×39记录表现。 第4步 选出最佳 Hyperband 对所有 Bracket 执行上述步骤最终选出表现最优的配置。 3 模拟实验 接下来演示 Hyperband 在更复杂模型——LSTM网络上的应用。 模型用于预测选定股票代码 NVDA 的收盘价。 3.1 创建训练和测试数据集 通过 Alpha Vantage API 获取历史日线股价数据。 将数据加载到 Pandas DataFrame 并预处理划分为训练集和测试集。 训练集用于模型训练和验证测试集保持独立以防止数据泄露。 import torch import pandas as pd from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler, OneHotEncoder from sklearn.compose import ColumnTransformertarget_col close y df.copy()[target_col].shift(-1) y y.iloc[:-1] input_cols [col for col in df.columns if col not in [target_col, dt]] X df.copy()[input_cols] X X.iloc[:-1] X_train, X_test, y_train, y_test train_test_split( X, y, test_size800, shuffleFalse, random_state42 )cat_cols [year, month, date] num_cols list(set(input_cols) - set(cat_cols)) preprocessor ColumnTransformer( transformers[ (num, StandardScaler(), num_cols), (cat, OneHotEncoder(handle_unknownignore), cat_cols) ] ) X_train preprocessor.fit_transform(X_train) X_test preprocessor.transform(X_test)X_train torch.from_numpy(X_train.toarray()).float() y_train torch.from_numpy(y_train.values).float().unsqueeze(1) X_test torch.from_numpy(X_test.toarray()).float() y_test torch.from_numpy(y_test.values).float().unsqueeze(1)原始数据包含 NVDA 的 6,501 条历史股价记录 class pandas.core.frame.DataFrame RangeIndex: 6501 entries, 0 to 6500 Data columns (total 15 columns): 0 dt 6501 non-null datetime64[ns] 1 open 6501 non-null float32 2 high 6501 non-null float32 3 low 6501 non-null float32 4 close 6501 non-null float32 5 volume 6501 non-null int32 6 ave_open 6501 non-null float32 7 ave_high 6501 non-null float32 8 ave_low 6501 non-null float32 9 ave_close 6501 non-null float32 10 total_volume 6501 non-null int32 11 30_day_ma_close 6501 non-null float32 12 year 6501 non-null object 13 month 6501 non-null object 14 date 6501 non-null object dtypes: datetime64[ns](1), float32(9), int32(2), object(3) memory usage: 482.6 KB3.2 模型定义 — LSTM网络 定义基于 PyTorch 的多对一架构的 LSTMModel 类。 import torch import torch.nn as nnclass LSTMModel(nn.Module): def __init__(self, input_dim, hidden_dim, layer_dim, output_dim, dropout): super(LSTMModel, self).__init__() self.hidden_dim hidden_dim self.layer_dim layer_dim self.dropout dropout self.lstm nn.LSTM( input_dim, hidden_dim, layer_dim, batch_firstTrue, dropoutdropout ) self.fc nn.Linear(hidden_dim, output_dim)def forward(self, x): h0 torch.zeros(self.layer_dim, x.size(0), self.hidden_dim).to(x.device) c0 torch.zeros(self.layer_dim, x.size(0), self.hidden_dim).to(x.device) o_t, _ self.lstm(x, (h0.detach(), c0.detach())) o_final self.fc(o_t[:, -1, :]) return o_final3.3 搜索空间 Hyperband 在较大的搜索空间表现更佳。定义如下搜索空间 import randomdef search_space(): return { lr: 10**random.uniform(-6, -1), hidden_dim: random.choice([16, 32, 64, 128, 256]), layer_dim: random.choice([1, 2, 3, 4, 5]), dropout: random.uniform(0.1, 0.6), batch_size: random.choice([16, 32, 64, 128, 256]) }3.4 定义验证函数 定义用于时间序列数据的 walk-forward validation滚动前移验证 的 train_and_val_wfv 函数 def train_and_val_wfv(hyperparams, budget, X, y, train_window, val_window): total_val_loss 0 all_loss_histories []num_folds (X.size(0) - train_window - val_window) // val_window 1for i in range(num_folds): train_start i * val_window train_end train_start train_window val_start train_end val_end val_start val_windowif val_end X.size(0): breakX_train_fold X[train_start:train_end] y_train_fold y[train_start:train_end] X_val_fold X[val_start:val_end] y_val_fold y[val_start:val_end]fold_val_loss, fold_loss_history train_and_val( hyperparamshyperparams, budgetbudget, X_trainX_train_fold, y_trainy_train_fold, X_valX_val_fold, y_valy_val_fold ) total_val_loss fold_val_loss all_loss_histories.append(fold_loss_history)avg_val_loss total_val_loss / num_folds return avg_val_loss, all_loss_histories3.5 运行 Hyperband 定义 run_hyperband 函数接受以下参数 搜索空间函数 search_space_fn验证函数 val_fn总预算 R淘汰因子 η。 示例中R100R100R100, η3η3η3训练和验证窗口分别为3000和500。 from math import log, floordef run_hyperband(search_space_fn, val_fn, R, eta): s_max int(log(R, eta))overall_best_config None overall_best_loss float(inf) all_loss_histories []for s in range(s_max, -1, -1): n int(R / eta**s) r int(R / n) main_logger.info(f... running bracket s{s}: {n} configurations, initial budget{r} ...)configs [search_space_fn() for _ in range(n)]for i in range(s 1): budget r * (eta**i) main_logger.info(f... training {len(configs)} configurations for budget {budget} epochs ...)evaluated_results [] for config in configs: loss, loss_history val_fn(config, budget) evaluated_results.append((config, loss, loss_history))all_loss_histories.append((evaluated_results, budget))evaluated_results.sort(keylambda x: x[1])if evaluated_results and evaluated_results[0][1] overall_best_loss: overall_best_loss evaluated_results[0][1] overall_best_config evaluated_results[0][0]num_to_keep floor(len(configs) / eta) configs [result[0] for result in evaluated_results[:num_to_keep]]if not configs: breakreturn overall_best_config, overall_best_loss, all_loss_histories, s_maxR 100 eta 3train_window 3000 val_window 500best_config, best_loss, all_loss_histories, s_max run_hyperband( search_space_fnsearch_space, val_fnlambda h, b: train_and_val_wfv(h, b, X_train, y_train, train_windowtrain_window, val_windowval_window), RR, etaeta )3.6 结果 最佳超参数配置 ‘lr’: 0.0001614172022855225‘hidden_dim’: 128‘layer_dim’: 3‘dropout’: 0.5825758700895215‘batch_size’: 16 最佳验证损失均方误差 MSE 0.0519 损失历史 下图中实线表示训练周期中平均验证损失MSE的变化垂直虚线表示 Hyperband 剪枝不佳模型的时刻 提前停止大多为紫色的曲线代表表现不佳被剪枝的模型。 持续训练到100个epoch大多为青色和蓝色的曲线代表表现优异的配置损失迅速下降并稳定在较低值显示出良好性能。 这种方式能高效快速地剔除表现差的配置避免长时间训练。 3.7 与其他调优方法的对比 为比较不同方法进行了20次试验 Bayesian Optimization贝叶斯优化Random Search随机搜索Genetic Algorithms遗传算法 使用相同的搜索空间、模型和训练/验证窗口。 3.8 Bayesian Optimization 贝叶斯优化使用概率模型如高斯过程拟合验证误差选择下一个最优配置进行评估。 最佳超参数配置 ‘lr’: 0.00016768631941614767‘hidden_dim’: 256‘layer_dim’: 3‘dropout’: 0.3932769195043036‘batch_size’: 64 最佳验证损失MSE 0.0428 损失历史 3.9 Random Search 随机搜索从搜索空间随机采样固定数量配置不利用之前试验结果。 最佳超参数配置 ‘lr’: 0.0004941205117774383‘hidden_dim’: 128‘layer_dim’: 2‘dropout’: 0.3398469430820351‘batch_size’: 64 最佳验证损失MSE 0.03620 损失历史 3.10 Genetic Algorithms (GA) 遗传算法受生物进化启发维护一组配置通过变异和交叉生成新的潜在更优配置。 最佳超参数配置 ‘lr’: 0.006441170552290832‘hidden_dim’: 128‘layer_dim’: 3‘dropout’: 0.2052570911345997‘batch_size’: 128 最佳验证损失MSE 0.1321 损失历史 完整源码请见 我的 Github 仓库。 4 考虑与总结 Random Search0.0362和 Bayesian Optimization0.0428在最终验证损失上略优于 Hyperband0.0519。 这体现了效率与全局最优发现能力之间的权衡。 Hyperband 的效率来源于其在训练早期快速剔除表现差的配置。 虽然节省了大量时间但也存在误删“后期表现优异”配置的风险。 本案例中Random Search 和 Bayesian Optimization 更成功 Random Search 允许高性能配置获得完整训练预算Bayesian Optimization 通过智能采样更有效地寻找最佳超参数。 4.1 提升 Hyperband 性能的建议 推荐调整 Hyperband 参数并结合其他方法 调整关键参数 设定较大 RRR总预算允许“后期表现优异”模型有机会充分训练减少误删设定较小 ηηη淘汰因子使淘汰过程更温和更多配置进入下一轮。 结合贝叶斯优化 BOHBBayesian Optimization and HyperBand 是一种混合方法使用 Hyperband 的逐步淘汰框架但用贝叶斯优化替代随机采样。 BOHB 利用贝叶斯优化选择最有潜力的候选配置进入 Hyperband Bracket。 该方法兼具 Hyperband 的快速性和贝叶斯优化的高性能。
http://www.pierceye.com/news/122373/

相关文章:

  • wordpress文章所有图片seo中文含义
  • 免费网站建设开发个人 网站备案 幕布
  • 公司网站设计 优帮云网站开发合同注意事件有哪些
  • 网站建设费用用温州建设局老网站
  • 做网站全部乱码怎么办网络平台销售
  • wordpress建立移动m站wordpress免费主题企业
  • 珠海市网站建设重庆建站公司网站模板
  • 网页设计与网站开发pdf备案网站可以做接码平台么
  • 国外网站国内备案南京网站seo优化公司
  • 岱山县网站建设网站后台管理系统怎么上传
  • 做网站需要什么东西重庆市招投标网官网
  • 潢川手机网站建设戴尔公司网站开发的经营目标
  • 创建网站代码是什么问题wordpress屏蔽广告插件下载
  • 网站接入服务提供商纪检网站建设计划
  • 佛山做网站公司有哪些做拆分盘网站
  • 沈阳做微网站注册一个有限公司需要多少钱
  • 网站首页logo怎么修改优化方案英语答案
  • 东南亚网站建设市场用照片做视频的模板下载网站
  • 做seo网站的公司2网站建设公司
  • phpmysql旅游网站开发wordpress 需要多大数据库
  • 做预算查市场价格的网站阿里巴巴旗下跨境电商平台有哪些
  • 搜狗网站提交入口有哪些做问卷调查赚钱的网站6
  • 上海市住房和城乡建设厅官方网站码上游二维码制作
  • wordpress生活插件上海做网站优化
  • 长武网站建设做网站吉林
  • 定制做网站技术建网站不做广告怎么赚钱
  • 南宁市做网站的公司yellow的视频播放
  • 网络营销的效果是什么杭州seo网站建设
  • 南沙免费网站建设阿里巴巴网站工作流程
  • 东莞公司网站建设河南省专业做网站公司