交易中的机器学习:理论、模型、实践和算法交易 - 页 1884

 
Evgeny Dyuka:
1.这是正确的,你必须通过所有的选项。问题是,这太耗费时间了。
2.我试了一下,情况变得更糟。
3.你怎么知道她在用哪些?这是一个黑匣子,所以我什么都喂。

有一些超参数优化器,如MT测试器中的优化器。你把它设定为24小时,它就会把它捡起来。

我很无聊地等待它的结果,但这是NS的一个特殊性,没有精确的科学,只有经验(我自己和别人的)和直觉。我可以在这里或私下里分享我的结果。

我之前贴了一个训练的例子。这个想法是要教会网络购买信号。然后反向进入,网络应该产生卖出信号。这是一个二元分类,不管是否有信号。你可以教网络识别买入和卖出,但我认为这更糟。输出的范围被限制在0-1;如果我们只寻找买入,范围被分为2个等级(有买入和没有买入),阈值可以移动0.8。如果我们寻找买入或卖出,0-1被分为3个部门:买入、卖出和介于两者之间的东西。我认为,只搜索买入信号是:2倍的训练实例(翻转输入),更小的网络规模(任务更容易,需要更少的神经元),更少的训练时间,更容易解决问题(只考虑1类),但这只是理论。

我有一个想法,网络会自己寻找功能,你给一个价格,想要的信号,它就会自己做一切。我已经开始使用lstm,它似乎是完美的,但到目前为止还不是很好。我想试试普通的网,如果不行的话,我会想接下来会发生什么。CNN有点乱,我已经厌倦了调整层和核心的配置。也许,将小波送入常规网络会更容易。如果它不适合我,我将不得不浪费更多的时间来选择输入信号,但在这种情况下,我有一个问题:是否真的有必要,使用 "经典 "系统会更容易,它将更容易理解,更可靠,更经济,更容易测试。

而你如何分析结果,只是看数字?这是你使用的代码吗?

plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])

你建立2个图,托盘上的错误和测试,你可以用它们来了解网络缺少什么,以及向什么方向移动。

 
Rorschach:

我也犹豫过要不要等它算数,但这是NS的一个特殊性,没有精确的科学,只有经验(别人的和我自己的)和直觉。你可以在这里或私下里分享你的结果。

我们是在谈论图片还是已经在谈论市场?

那你是如何分析结果的,你只看数字吗?这是你使用的代码吗?

你建立两个图表,一个用于托盘,一个用于测试。 利用它们,你可以了解网络缺少什么,以及向什么方向发展。

我可以很容易地看到,我在这个过程中 ))

起初我用标准的算法来画它

import matplotlib.pyplot as plt

但这是没有用的,因为巨大的噪音,在10个纪元之后,图就已经在水平线上了。
我有二元分类,我分析每个答案中网的确定性水平,即例如正确答案是0 1,网给出0.4 0.6--这是一个好的答案,更多的时候正确答案是0 1,网给出0.49 0.51
当答案是成千上万的时候,我可以按确定性分组并做分析。


 
Rorschach:

结果在实践中,这就是今天的欧元对M2,神经网络开始理解的东西,但到目前为止还很弱。
蓝色是预测上升,黄色是预测下降。


 
Evgeny Dyuka:

你一眼就能看出一个人在真实的过程中))

起初我用标准的

但这没有什么用处,因为在10个纪元后,图表的噪音很大,位于水平线上。
我有二元分类,我分析每个答案中网的确定性水平,即例如正确答案是0 1,网给出0.4 0.6--这是一个好的答案,更多的时候正确答案是0 1,网给出0.49 0.51
当答案是成千上万的时候,我可以按确定性分组并做分析。


你能贴出这些图表吗?纪元越多,棍棒尺寸越小,权重变化的次数就越多。另外,在优化器中改变lerning_rate是有意义的,因为它是+-个数量级的。你用的是什么优化器?

 
Rorschach:

你能贴出这些图表吗?除了epochs之外,还应该改变批次大小;epochs越多,批次大小越小,权重改变的次数就越多。另外,在优化器中改变lerning_rate是有意义的,因为它是+-个数量级的。你用的是什么优化器?

对于图表,我需要运行教程,然后...但没有什么有趣的东西--垂直向下然后水平,没有像教程中那样平滑下降))
Bach 128,如果我们说的是同一件事。它应该永远是128是与TPU有关的,这样的要求。
也停止了改变纪元,150年后通常没有什么变化。
我不能让它与SGD一起工作。
 
罗夏

这是我的网格,我在这里动态地改变了层的数量

def make_model(arr_size, lays):
  sgd = SGD(lr=0.01, decay=1 e-6, momentum=0.9, nesterov=True)

  #res = 2 # количество ответов
  act = "softmax"
  #act = "sigmoid"
  #opt = sgd
  opt = 'adam'

  model = Sequential()

  if lays == 1:
    model.add(Dense(int((arr_size-res)*k), input_dim=(arr_size-res), activation='relu'))
    model.add(Dropout(dropout))

  if lays == 2:
    model.add(Dense(int((arr_size-res)*k), input_dim=(arr_size-res), activation='relu'))
    model.add(Dropout(dropout))
    model.add(Dense(int((arr_size-res)*0.5*k), activation='relu'))
    model.add(Dropout(dropout))

  if lays == 3:
    model.add(Dense(int((arr_size-res)*k), input_dim=(arr_size-res), activation='relu'))
    model.add(Dropout(dropout))
    model.add(Dense(int((arr_size-res)*0.5*k), activation='relu'))
    model.add(Dropout(dropout))
    model.add(Dense(int((arr_size-res)*0.3*k), activation='relu'))
    model.add(Dropout(dropout))

  if lays == 4:
    model.add(Dense(int((arr_size-res)*k), input_dim=(arr_size-res), activation='relu'))
    model.add(Dropout(dropout))
    model.add(Dense(int((arr_size-res)*0.7*k), activation='relu'))
    model.add(Dropout(dropout))
    model.add(Dense(int((arr_size-res)*0.5*k), activation='relu'))
    model.add(Dropout(dropout))
    model.add(Dense(int((arr_size-res)*0.3*k), activation='relu'))
    model.add(Dropout(dropout))

  #model.add(Dense(int((arr_size-res)*0.1*k), activation='relu'))
  #model.add(Dropout(dropout))

  model.add(Dense(res, activation=act))

  if res==1:
    ls="binary_crossentropy"
  else:
    ls="categorical_crossentropy"
  model.compile(loss=ls, optimizer=opt, metrics=['accuracy'])
  return model
 
Evgeny Dyuka:

这是我的网格,我在这里动态地改变了层的数量

你可以尝试用别的方法代替Dropout,减少神经元的数量。增加权重的初始化和归一化。输入的数据是否经过某种处理?我的结果在输入数据乘以数量级后变得更好。 看来我终究要摆脱非平稳性。

 
Rorschach:

你可以尝试用别的方法代替Dropout,减少神经元的数量。增加权重的初始化和规范化。输入的数据是否经过某种方式的处理?在将输入数据乘以一个数量级后,我得到了更好的结果,看来我们毕竟需要摆脱非平稳性。

没有任何套餐会给出准确的结果。任何NS只能给出一个向上、向下或未知的概率预测。价格并不服从神经网络,很容易与之背道而驰。65%的选项已经可以接受。

 
Uladzimir Izerski:

没有任何套餐会给出准确的结果。任何NS只能给出一个向上、向下或未知的概率预测。价格并不服从神经网络,很容易与之背道而驰。65%的选项已经可以接受。

这里是56%。蓝色是应该的,红色是网络反应。百分比并不意味着什么。

这里是48%,这个数字甚至更低,但至少有一些影响。


 
Rorschach:

你可以尝试用别的方法代替Dropout,减少神经元的数量。增加权重的初始化和规范化。输入的数据是否经过某种方式的处理?我在输入数据乘以数量级后得到了更好的结果。 看来我终究需要摆脱非平稳性。

是的,你必须通过所有的人,否则你不会。
试试玩这个,这对了解参数如何影响结果很有好处。
Tensorflow — Neural Network Playground
Tensorflow — Neural Network Playground
  • Daniel Smilkov and Shan Carter
  • playground.tensorflow.org
It’s a technique for building a computer program that learns from data. It is based very loosely on how we think the human brain works. First, a collection of software “neurons” are created and connected together, allowing them to send messages to each other. Next, the network is asked to solve a problem, which it attempts to do over and over...
原因: