文章 "深度神经网络 (第五部分)。 DNN 超参数的贝叶斯优化" - 页 3

 
Vladimir Perervenko:

对于贝叶斯法,您不仅需要考虑传球次数,还需要考虑点数。你必须寻找更快的方案。这非常繁琐

为了加快速度,可以在调用 BayesianOptimisation 时添加以下参数

maxit = 1 #1 而不是 100 - 用于超平面预测的 GP_fit 的重复次数
我没有注意到 100 次重复比 1 次重复有任何改进,所以我现在使用 1。
Ie.

BayesianOptimization(все как у вас , maxit = 1)

maxit=1 via ...将传递给GPfit:: GP_fit,优化将运行 1 次,而不是 100 次。
您也可以传递:
control = c(20*d, 10*d, 2*d);#default - control = c(200*d, 80*d, 2*d) - 从 200*d 中选择 80*d 最佳值并构建 2*d 簇 - 其中 d 是要优化的参数数。

此处对这些参数的描述https://github.com/cran/GPfit/blob/master/R/GP_fit.R

弗拉基米尔-佩列文科

PS.你不切换到 TensorFlow 吗?它只是一个更高的级别。

看来,使用 Darch 30% 的训练和 36% 的测试我都能做到。
虽然 Darch 的支持很差,但他们还是纠正和改进了一些东西,但在 1 月份,它因为没有修复错误(有一个错误是在训练模式下的验证评估)而被从 CRAN 发到了存档中。5 月,他们发布了第 13 版,但又退回到了第 12 版。现在,第 13 版又出现了--显然,它已经完成了。
 
elibrarius:

为了加快速度,在调用贝叶斯优化时,可以添加参数

maxit = 1 #1 而不是 100 - 用于超平面预测的 GP_fit 的重复次数
没有发现重复 100 次比重复 1 次有任何改进,所以我使用 1。
Ie.

maxit=1 via ...将传递给GPfit:: GP_fit,优化将运行 1 次,而不是 100 次。
您也可以传递:
control = c(20*d, 10*d, 2*d);#default - control = c(200*d, 80*d, 2*d) - 从 200*d 中选择 80*d 最佳,并建立 2*d 簇 - 其中 d 是要优化的参数数

是的,Darch 的训练率为 30%,测试率为 36%,似乎是有效的。
虽然 Darch 的支持很差,但他们还是纠正和改进了一些问题,但在 1 月份,它因未能修复错误(其中一个错误是在训练模式下的错误估计值与验证)而被从 CRAN 发到存档中。5 月,他们发布了第 13 版,但又退回到了第 12 版。现在第 13 版又出现了--显然他们已经完成了。

感谢您提供的信息。我将使用您提供的参数进行尝试。

我已经很久没有在 Github 上访问过他们了。我得写一份建议。darch 软件包提供了 GPU 的使用,但他们从 CRAN(3.4.4 版)上删除了用于 GPU 的软件包。而且 GPU 对速度和质量的影响也很有趣。

祝您好运

 

这里还有一个制动器

https://github.com/yanyachen/rBayesianOptimization/blob/master/R/Utility_Max.R

我还设置了maxit = 1,而不是 100。

通过 ...不能传递,你可以直接将 Utility_Max 函数加载到 R 中并使用修正后的版本。

 
elibrarius:

这里还有一个弱智

https://github.com/yanyachen/rBayesianOptimization/blob/master/R/Utility_Max.R

我还设置了maxit = 1,而不是 100。

通过 ...不能传递,你可以直接将 Utility_Max 函数加载到 R 中,然后使用修正后的版本。

我在优化 PartVI 文章中的神经网络集合时检查了它。maxit 和 control 对计算时间都没有明显影响。影响最大的是隐藏层的神经元数量。我把它改成这样

 OPT_Res <- BayesianOptimization(fitnes, bounds = bonds,
                                  init_grid_dt = NULL, init_points = 20, 
                                  n_iter = 20, acq = "ucb", kappa = 2.576, 
                                  eps = 0.0, verbose = TRUE,
                                  maxit = 100, control = c(100, 50, 8))
elapsed = 14.42 Round = 1       numFeature = 9.0000     r = 7.0000      nh = 36.0000    fact = 9.0000   Value = 0.7530 
elapsed = 42.94 Round = 2       numFeature = 4.0000     r = 8.0000      nh = 46.0000    fact = 6.0000   Value = 0.7450 
elapsed = 9.50  Round = 3       numFeature = 11.0000    r = 5.0000      nh = 19.0000    fact = 5.0000   Value = 0.7580 
elapsed = 14.17 Round = 4       numFeature = 10.0000    r = 4.0000      nh = 35.0000    fact = 4.0000   Value = 0.7480 
elapsed = 12.36 Round = 5       numFeature = 8.0000     r = 4.0000      nh = 23.0000    fact = 6.0000   Value = 0.7450 
elapsed = 25.61 Round = 6       numFeature = 12.0000    r = 8.0000      nh = 44.0000    fact = 7.0000   Value = 0.7490 
elapsed = 8.03  Round = 7       numFeature = 12.0000    r = 9.0000      nh = 9.0000     fact = 2.0000   Value = 0.7470 
elapsed = 14.24 Round = 8       numFeature = 8.0000     r = 4.0000      nh = 45.0000    fact = 2.0000   Value = 0.7620 
elapsed = 9.05  Round = 9       numFeature = 7.0000     r = 8.0000      nh = 20.0000    fact = 10.0000  Value = 0.7390 
elapsed = 17.53 Round = 10      numFeature = 12.0000    r = 9.0000      nh = 20.0000    fact = 6.0000   Value = 0.7410 
elapsed = 4.77  Round = 11      numFeature = 9.0000     r = 2.0000      nh = 7.0000     fact = 2.0000   Value = 0.7570 
elapsed = 8.87  Round = 12      numFeature = 6.0000     r = 1.0000      nh = 40.0000    fact = 8.0000   Value = 0.7730 
elapsed = 14.16 Round = 13      numFeature = 8.0000     r = 6.0000      nh = 41.0000    fact = 10.0000  Value = 0.7390 
elapsed = 21.61 Round = 14      numFeature = 9.0000     r = 6.0000      nh = 47.0000    fact = 7.0000   Value = 0.7620 
elapsed = 5.14  Round = 15      numFeature = 13.0000    r = 3.0000      nh = 3.0000     fact = 5.0000   Value = 0.7260 
elapsed = 5.66  Round = 16      numFeature = 6.0000     r = 9.0000      nh = 1.0000     fact = 9.0000   Value = 0.7090 
elapsed = 7.26  Round = 17      numFeature = 9.0000     r = 2.0000      nh = 25.0000    fact = 1.0000   Value = 0.7550 
elapsed = 32.09 Round = 18      numFeature = 11.0000    r = 7.0000      nh = 38.0000    fact = 6.0000   Value = 0.7600 
elapsed = 17.18 Round = 19      numFeature = 5.0000     r = 3.0000      nh = 46.0000    fact = 6.0000   Value = 0.7500 
elapsed = 11.08 Round = 20      numFeature = 6.0000     r = 4.0000      nh = 20.0000    fact = 6.0000   Value = 0.7590 
elapsed = 4.47  Round = 21      numFeature = 6.0000     r = 2.0000      nh = 4.0000     fact = 2.0000   Value = 0.7390 
elapsed = 5.27  Round = 22      numFeature = 6.0000     r = 2.0000      nh = 21.0000    fact = 10.0000  Value = 0.7520 
elapsed = 7.96  Round = 23      numFeature = 7.0000     r = 1.0000      nh = 41.0000    fact = 7.0000   Value = 0.7730 
elapsed = 12.31 Round = 24      numFeature = 7.0000     r = 3.0000      nh = 41.0000    fact = 3.0000   Value = 0.7730 
elapsed = 7.64  Round = 25      numFeature = 8.0000     r = 4.0000      nh = 16.0000    fact = 7.0000   Value = 0.7420 
elapsed = 6.24  Round = 26      numFeature = 13.0000    r = 5.0000      nh = 6.0000     fact = 1.0000   Value = 0.7600 
elapsed = 8.41  Round = 27      numFeature = 11.0000    r = 8.0000      nh = 8.0000     fact = 7.0000   Value = 0.7420 
elapsed = 8.48  Round = 28      numFeature = 6.0000     r = 7.0000      nh = 15.0000    fact = 2.0000   Value = 0.7580 
elapsed = 10.11 Round = 29      numFeature = 12.0000    r = 6.0000      nh = 17.0000    fact = 4.0000   Value = 0.7310 
elapsed = 6.03  Round = 30      numFeature = 8.0000     r = 3.0000      nh = 12.0000    fact = 1.0000   Value = 0.7540 
elapsed = 8.58  Round = 31      numFeature = 13.0000    r = 5.0000      nh = 18.0000    fact = 2.0000   Value = 0.7300 
elapsed = 6.78  Round = 32      numFeature = 13.0000    r = 2.0000      nh = 15.0000    fact = 8.0000   Value = 0.7320 
elapsed = 9.54  Round = 33      numFeature = 10.0000    r = 3.0000      nh = 37.0000    fact = 9.0000   Value = 0.7420 
elapsed = 8.19  Round = 34      numFeature = 6.0000     r = 1.0000      nh = 42.0000    fact = 3.0000   Value = 0.7630 
elapsed = 12.34 Round = 35      numFeature = 7.0000     r = 2.0000      nh = 43.0000    fact = 8.0000   Value = 0.7570 
elapsed = 20.47 Round = 36      numFeature = 7.0000     r = 8.0000      nh = 39.0000    fact = 2.0000   Value = 0.7670 
elapsed = 11.51 Round = 37      numFeature = 5.0000     r = 9.0000      nh = 18.0000    fact = 3.0000   Value = 0.7540 
elapsed = 32.71 Round = 38      numFeature = 7.0000     r = 7.0000      nh = 40.0000    fact = 6.0000   Value = 0.7540 
elapsed = 28.33 Round = 39      numFeature = 7.0000     r = 9.0000      nh = 38.0000    fact = 5.0000   Value = 0.7550 
elapsed = 22.87 Round = 40      numFeature = 12.0000    r = 6.0000      nh = 48.0000    fact = 3.0000   Value = 0.7580 

 Best Parameters Found: 
Round = 12      numFeature = 6.0000     r = 1.0000      nh = 40.0000    fact = 8.0000   Value = 0.7730                                  maxit = 100, control = c(100, 50, 8))

最佳 10

OPT_Res %$% History %>% dp$arrange(desc(Value)) %>% head(10) %>%
    dp$select(-Round) -> best.init
  best.init
   numFeature r nh fact Value
1           6 1 40    8 0.773
2           7 1 41    7 0.773
3           7 3 41    3 0.773
4           7 8 39    2 0.767
5           6 1 42    3 0.763
6           8 4 45    2 0.762
7           9 6 47    7 0.762
8          11 7 38    6 0.760
9          13 5  6    1 0.760
10          6 4 20    6 0.759

值 - 平均 F1。性能还不错。

为了加快计算速度,我们需要重写软件包中的一些函数。首先是用 dim()[1]、dim()[2] 代替所有 ncol()、nrow(),因为这些函数很多。它们的执行速度要快几十倍。此外,由于只有矩阵操作,可能还需要使用 GPU(gpuR 软件包)。我自己做不了,能建议开发人员 吗?

祝你好运

 
Vladimir Perervenko:

在对 PartVI 论文中的神经网络组合进行优化时对其进行了检查。无论是 maxit 还是 control,都没有明显的执行时间。影响最大的是隐藏层的神经元数量。我是这样设置的

最佳 10

值 - 平均 F1。表现不俗。

为了加快计算速度,我们需要重写软件包中的一些函数。首先是用 dim()[1], dim()[2] 代替所有 ncol(), nrow() 函数。它们的执行速度要快几十倍。另外,由于只有矩阵操作,可能需要使用 GPU(gpuR 软件包)。我自己做不了,能向开发人员提出建议 吗?

祝你好运

你只需优化几个参数,我优化了 20 个点,当已知点变成 20-40 个点时,只计算 GPfit 就需要几十分钟,在这种情况下你会看到加速。

神经元数量只影响 NS 本身的计算时间。

 
elibrarius:

只需优化几个参数,我优化了 20 个点,当已知点变成 20-40 个点时,仅计算 GPfit 就需要几十分钟,在这种条件下,你会看到加速度。

而神经元数量只影响 NS 本身的计算时间。

我想是的。

 
具体怎么使用呢,怎么把我的交易系统也整理成神经网络  或者一个比较复杂的EA自动化交易
[删除]  
MetaQuotes Software Corp.:

新文章:深度神经网络(第五部分)。DNN 超参数的贝叶斯优化》已出版:

作者:Vladimir Perervenko弗拉基米尔-佩列文科

你好,弗拉基米尔、
我正在为安卓手机开发 MACD 衍生工具,需要帮助我编写一个关于属性参数填写表格的精确算法。
谢谢、
保罗