Tensorflow RNN LSTM Keras自定义损耗函数

Tensorflow RNN LSTM Keras自定义损耗函数,tensorflow,deep-learning,keras,lstm,rnn,Tensorflow,Deep Learning,Keras,Lstm,Rnn,我从Keras和TensorFlow开始 我在股票价格数据集上学习了LSTM模型。 我不想让我的模型学会预测像今天这样的下一步。我想让我的模型在每一步都了解它是否必须购买、出售或什么都不做,以及需要多少 我想我需要做一个自定义的损失函数,但我真的不知道如何编码我的概念:买,卖,什么都不做,多少钱是基于一个资本,比如开始时的100个单位。我们的目标是最终获得尽可能高的资本 我必须使用现有的功能,并像MSE一样定制它?如果是,如何进行 我必须让我的模型学习时间序列,然后添加购买/出售层?如果是,如

我从Keras和TensorFlow开始

我在股票价格数据集上学习了LSTM模型。 我不想让我的模型学会预测像今天这样的下一步。我想让我的模型在每一步都了解它是否必须购买、出售或什么都不做,以及需要多少

我想我需要做一个自定义的损失函数,但我真的不知道如何编码我的概念:买,卖,什么都不做,多少钱是基于一个资本,比如开始时的100个单位。我们的目标是最终获得尽可能高的资本

  • 我必须使用现有的功能,并像MSE一样定制它?如果是,如何进行
  • 我必须让我的模型学习时间序列,然后添加购买/出售层?如果是,如何进行
  • 其他的
我迷路了

非常感谢你的帮助

萨姆

我会试试看

我的意思是你有三个选择:买(0),卖(1),什么都不做(2)。您可以这样对其进行编码:

[1,0,0] < - means 'buy'
[0,1,0] < - means 'sell'
[0,0,1] < - means 'do nothing'
[1,0,0]<-表示“购买”
[0,1,0]<-表示“出售”
[0,0,1]<-表示“什么也不做”

别忘了在你的末尾添加softmax函数NN。

据我所知,我们有股票价格数据集,在每一点上,我们都需要预测购买/出售/不购买的决策

对于每个点,我们应该确定一个窗口大小,我们认为它会影响当前点。 将此窗口用作LSTM层的时间序列输入。使用移动窗口,我们可以创建多个输入。相应的输出将是判决,可将其编码为3位

  • 对于时间点t,使用时间序列(0..t-1)作为输入。以及判决[0,0,1]或[0,1,0]或[1,0,0]作为输出。该模型将学习预测每个决策的概率
  • 如Paddy所述,计算损失将非常有用
    此外,如果您没有查看预处理数据,则在这种情况下,对数据进行去趋势化处理非常有用。这可能很有用。

    您的培训数据是什么样的?你是否只了解股票价格,或者是否也有可用的决策(买入、卖出、不买、多少)?我的培训数据只是股票价格。我想让模型自己学习决策(买、卖、不买、多少)。我想象一个模型,它实际上不需要学习时间序列,而是需要更多的决策,每一步都要在最后实现资本最大化。但也许我错了,它需要在时间序列之前和决策之后学习。如果我有代码示例,我可以测试它。我明白了。我认为您肯定需要为您的模型提供一些提示,以确定哪个决策是正确的。这样想:如果有人只是向你展示了一系列股票价格,却没有告诉你它们的含义(想象一下,你没有财务背景),你知道该怎么理解吗?从某种意义上讲,模特就像一个完全天真的孩子,对这个世界一无所知。你必须给它一些数据,它可以学习。感谢你的解释,但对我来说,它可以存在一种方法来训练模型,而无需购买和出售训练数据。看,如果我每一步都随机地做一个wieght和bias,然后保存模型,在最后给出最好的资本,它可以比50%更好。所以用损失函数来学习..^^。问题是如何编码:/。我必须承认我不熟悉这种数据,但你如何从股票价格中获得总体资本?这笔资金是用于整个系统还是用于股票?您的情景开始听起来好像您应该研究强化学习。这里有一个介绍,但我建议你在尝试训练一个模型之前多读一读。谢谢你的回答,我会试试的。你认为这个函数允许回答“多少”的问题吗?并以%的资金用于购买,%的资金用于出售为基础?请注意,这种方法只有在你有东西可以与你的决定进行比较的情况下才真正有效。因此,您需要首先获取培训数据,其中包含做出(可能是正确的)决策的信息。@Samantha我认为您可以尝试类似两阶段方法的方法。其中第一个阶段是行动决定(买、卖、不买),第二个阶段是“多少”的答案。因此,如果你从第一阶段得到一个购买预测,那么使用第二阶段(另一个NN),你就是在预测数量。事实上,你可以用一个单一的神经网络模型,只使用两个输出,作为动作和数量的答案。你认为我可以在没有购买、出售、无任何训练数据的情况下完成第一步吗?我的想法是在最后只查看整个系统的资本,但这种方法无法与之配合不?@Samantha,不幸的是不,如果您没有培训数据,我建议您寻找一种强化学习方法。非常感谢您提供的预处理信息!你认为你的方式和莉亚·库伦多夫说的相符吗?他说,如果不买卖培训数据,这种方式无法培训一个最终只有最高资本的模型。