Python TensorFlow-多个可能的标签
我正在创建一个Tic-Tac-Toe引擎,作为我的第一个Python TensorFlow-多个可能的标签,python,tensorflow,machine-learning,prediction,Python,Tensorflow,Machine Learning,Prediction,我正在创建一个Tic-Tac-Toe引擎,作为我的第一个机器学习项目。它的工作是预测每个职位的最佳变动。问题是,在某些情况下,可能会有几个“最佳举措”。因此,我想提供这些到TensorFlow的最佳移动,然后如果模型预测了其中任何一个,它将把它算作true/correct预测 我的问题是:这可能吗?如果是,如何实施?如果没有,是否有解决办法? 注意:我将TensorFlow与python3一起使用,这取决于您使用的模型,但一种解决方案可能是: 将每行的标签视为n^2维向量(在最常见的情况下,t
机器学习项目。它的工作是预测每个职位的最佳变动。问题是,在某些情况下,可能会有几个“最佳举措”。因此,我想提供这些到TensorFlow
的最佳移动,然后如果模型预测了其中任何一个,它将把它算作true/correct预测
我的问题是:这可能吗?如果是,如何实施?如果没有,是否有解决办法?
注意:我将TensorFlow
与python3
一起使用,这取决于您使用的模型,但一种解决方案可能是:
- 将每行的标签视为n^2维向量(在最常见的情况下,tic tac toe网格中的字段数为9,因为n为3),其中值1表示是否需要在该位置移动,否则为0,例如
[0,0,0,0,0,0,0,1,0,1]
可能表示理想的移动将位于网格的两个底角
- 模型最后一层的输出可以通过sigmoid函数输入
- 那么,在培训过程中丢失您的模型可能就是一个例子(关于这个主题的写作)。您不希望通过softmax函数提供输出,因为它将模型的输出值映射到概率,这些概率加起来等于一,因此假设只有一个最理想的标签
对于损失函数,您可以利用它,它是所有标签的二进制交叉熵的加权和(默认情况下)。如果你想深入了解细节的话,这是一个精确的定义(看看TensorFlow的源代码,了解它是如何工作的通常是很好的)
编辑:这里的假设是模型应该一次输出所有正确的动作,因此根据您想要实现的具体目标,这可能不是您所提到的模型预测任何正确标签的最佳解决方案。但它可能会引导您实现您的目标:)取决于您使用的模型,但一种解决方案可能是:
- 将每行的标签视为n^2维向量(在最常见的情况下,tic tac toe网格中的字段数为9,因为n为3),其中值1表示是否需要在该位置移动,否则为0,例如
[0,0,0,0,0,0,0,1,0,1]
可能表示理想的移动将位于网格的两个底角
- 模型最后一层的输出可以通过sigmoid函数输入
- 那么,在培训过程中丢失您的模型可能就是一个例子(关于这个主题的写作)。您不希望通过softmax函数提供输出,因为它将模型的输出值映射到概率,这些概率加起来等于一,因此假设只有一个最理想的标签
对于损失函数,您可以利用它,它是所有标签的二进制交叉熵的加权和(默认情况下)。如果你想深入了解细节的话,这是一个精确的定义(看看TensorFlow的源代码,了解它是如何工作的通常是很好的)
编辑:这里的假设是模型应该一次输出所有正确的动作,因此根据您想要实现的具体目标,这可能不是您所提到的模型预测任何正确标签的最佳解决方案。但也许它会引导你走向你的目标:)