文章 "遗传算法 - 很简单!" - 页 12 1...567891011121314151617181920 新评论 Andrey Dik 2011.11.16 17:46 #111 Urain:....一般来说,我们应该明白,GA 找到的不是精确的解决方案,而是稳健的解决方案。也就是说,与所有可能的解决方案相比,它是一个相当成功的解决方案。测试功能被 "击败"。它们必须被打败。所以--你说得都对。 Mykola Demko 2011.11.16 17:50 #112 joo:测试功能被 "击败"。它们必须被击败。但你说的都是对的。是的,是的,我没有详细说明,这就是为什么它们是测试函数,算法必须接受它们,否则这样的算法就不能被认为是成功的。如果算法连测试都没有通过,很难想象它能在未知领域找到什么。 Alexey 2011.11.16 18:07 #113 谢谢大家,成功了。我一定是太笨了,把减法和乘法搞混了。 Andrey Dik 2011.11.16 21:10 #114 ivandurak:谢谢大家,成功了。 你是说你的算法?恭喜你 miklelv 2011.11.18 16:52 #115 我想知道,如果我们需要优化具有相同拟合函数值的不同变量,以最小化近似误差,那么如何正确拧紧 UGA?经典问题。例如,一个有 4 个神经元的五通两层神经网络,需要在 [-1...1] 范围内搜索 22 个系数和偏差,精度为 0.0001,同时在同一目标函数中选择输入指标的参数 5 个*2 个参数= 10 个变量,范围为 5...50。或者单独进行,但步长为 0.01。当然,您也可以在权重范围内对指标值进行编码。但这有点不同。还有一个问题。是否可以将跳过基因的条件传递给 UGA?例如,负责指标的基因应对应于 G23< G24 G25<G26 等条件。 Mykola Demko 2011.11.18 17:24 #116 miklelv:我想知道,如果我们需要优化具有相同拟合函数值的不同变量,以最小化近似误差,那么如何正确拧紧 UGA?经典问题。例如,一个有 4 个神经元的五通两层神经网络,需要在 [-1...1] 范围内搜索 22 个系数和偏差,精度为 0.0001,同时在同一目标函数中选择输入指标的参数 5 个*2 个参数= 10 个变量,范围为 5...50。或者单独进行,但步长为 0.01。当然,您也可以在权重范围内对指标值进行编码。但这有点不同。 还有一个问题。是否可以将跳过基因的条件传递给 UGA?例如,负责指标的基因应对应 G23< G24 G25<G26 等条件。就是这样,就是这样、大部分参数都有一个工作范围,其余参数只需通过移位和缩放进行调整。要知道,文章中的代码并不是为消费者的每一个喷嚏而进行的商业开发。我们希望为每个参数设置范围,没有人拉着你的手,但不要忘了,由于参数的数量以千计,手工设置范围将变得非常困难。有一个基因范围 [-1;1] --> (int)NormaliseDouble( ((gene+1)/2)*45+5 ,0) --> [5;50] 。虽然我同意会有很多不同的基因给出相同的结果,但在这里,你可以为组合基因制作一个精确度设置器,例如,从 0 到第 1000 个基因的精确度为 3 位数,从 1000 到 1010 个基因的精确度为 0 位数。 Serj 2011.11.18 17:51 #117 miklelv:还有一个问题。是否有可能将基因跳转的条件传递给 UGA?例如,负责指标的基因必须满足 G23< G24 G25<G26 等条件。 我们可以这样做: 参数 1=G23 参数 2=G23+G24。 Mykola Demko 2011.11.18 17:55 #118 her.human: 可以这样做: 参数 1=G23 参数 2=G23+G24。在转换范围时,最好进行逻辑检查转换,其中包括断点。否则,断裂范围的一部分与另一部分之间将没有任何联系,这里需要理解的是,从不同 染色体借入的基因只能是相应的,借入的第二个基因只能用于产生新染色体的第二个基因。如果一个参数由两个基因代表,它们之间就没有任何联系。 Serj 2011.11.18 18:22 #119 Urain:最好在进行转化时进行逻辑检查,其中包括断裂。否则,断裂范围的一部分与另一部分之间将没有任何联系,要知道,基因从不同的 染色体中借入只能是相应的,借入的第二个基因只能用于产生新染色体的第二个基因。如果一个参数由两个基因代表,它们之间就没有任何联系。也许这样更好。我提出了一个简单的变体。GA 可以毫无问题地处理它。一般来说,基因并不总是借来的,也有可能产生新的基因。 miklelv 2011.11.18 18:35 #120 感谢您的评论。这当然更容易编写代码。我正在尝试在 mql 上复制 Neuroshell 的预测向导。从这 20 个最佳指标(例如 5 个)中选取 2-4 个参数,在 200-2000 条历史记录的一个周期内,用 2-3 秒钟的时间在 20 个指标的 200-2000 条历史记录上形成 5...50 个参数。所有这些都是用 VBbasic 编写的。这一定是一种很酷的算法。UGA 会做得很好。 1...567891011121314151617181920 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
....
一般来说,我们应该明白,GA 找到的不是精确的解决方案,而是稳健的解决方案。也就是说,与所有可能的解决方案相比,它是一个相当成功的解决方案。
测试功能被 "击败"。它们必须被打败。
所以--你说得都对。
测试功能被 "击败"。它们必须被击败。
但你说的都是对的。
是的,是的,我没有详细说明,这就是为什么它们是测试函数,算法必须接受它们,否则这样的算法就不能被认为是成功的。
如果算法连测试都没有通过,很难想象它能在未知领域找到什么。
谢谢大家,成功了。
我一定是太笨了,把减法和乘法搞混了。
谢谢大家,成功了。
我想知道,如果我们需要优化具有相同拟合函数值的不同变量,以最小化近似误差,那么如何正确拧紧 UGA?经典问题。例如,一个有 4 个神经元的五通两层神经网络,需要在 [-1...1] 范围内搜索 22 个系数和偏差,精度为 0.0001,同时在同一目标函数中选择输入指标的参数 5 个*2 个参数= 10 个变量,范围为 5...50。或者单独进行,但步长为 0.01。
当然,您也可以在权重范围内对指标值进行编码。但这有点不同。
还有一个问题。是否可以将跳过基因的条件传递给 UGA?例如,负责指标的基因应对应于 G23< G24 G25<G26 等条件。
我想知道,如果我们需要优化具有相同拟合函数值的不同变量,以最小化近似误差,那么如何正确拧紧 UGA?经典问题。例如,一个有 4 个神经元的五通两层神经网络,需要在 [-1...1] 范围内搜索 22 个系数和偏差,精度为 0.0001,同时在同一目标函数中选择输入指标的参数 5 个*2 个参数= 10 个变量,范围为 5...50。或者单独进行,但步长为 0.01。
当然,您也可以在权重范围内对指标值进行编码。但这有点不同。
还有一个问题。是否可以将跳过基因的条件传递给 UGA?例如,负责指标的基因应对应 G23< G24 G25<G26 等条件。
就是这样,就是这样、
大部分参数都有一个工作范围,其余参数只需通过移位和缩放进行调整。
要知道,文章中的代码并不是为消费者的每一个喷嚏而进行的商业开发。
我们希望为每个参数设置范围,没有人拉着你的手,但不要忘了,由于参数的数量以千计,手工设置范围将变得非常困难。
有一个基因范围 [-1;1] --> (int)NormaliseDouble( ((gene+1)/2)*45+5 ,0) --> [5;50] 。
虽然我同意会有很多不同的基因给出相同的结果,但在这里,你可以为组合基因制作一个精确度设置器,例如,从 0 到第 1000 个基因的精确度为 3 位数,从 1000 到 1010 个基因的精确度为 0 位数。
还有一个问题。是否有可能将基因跳转的条件传递给 UGA?例如,负责指标的基因必须满足 G23< G24 G25<G26 等条件。
可以这样做: 参数 1=G23 参数 2=G23+G24。
在转换范围时,最好进行逻辑检查转换,其中包括断点。
否则,断裂范围的一部分与另一部分之间将没有任何联系,这里需要理解的是,从不同 染色体借入的基因只能是相应的,借入的第二个基因只能用于产生新染色体的第二个基因。
如果一个参数由两个基因代表,它们之间就没有任何联系。
最好在进行转化时进行逻辑检查,其中包括断裂。
否则,断裂范围的一部分与另一部分之间将没有任何联系,要知道,基因从不同的 染色体中借入只能是相应的,借入的第二个基因只能用于产生新染色体的第二个基因。
如果一个参数由两个基因代表,它们之间就没有任何联系。
也许这样更好。
我提出了一个简单的变体。GA 可以毫无问题地处理它。
一般来说,基因并不总是借来的,也有可能产生新的基因。