首页 > 解决方案 > 使用自定义效用函数进行分类

问题描述

我有一个问题涉及随着时间的推移优化操作:

请注意,效用函数没有封闭形式的解决方案,其值取决于整个动作序列a_0 ... a_T

我将如何实现这样的事情?我对可以用来查找相关文献的关键字非常满意。我不需要完整的解决方案。- 虽然如果有人可以指向我执行此操作的 python sklearn 函数,我绝对不会拒绝...

我的第一个直觉是“逻辑回归”,但无法a_t在 time为动作分配“正确标签” t,因为效用取决于时间序列中早晚采取的动作。

标签: machine-learningartificial-intelligenceclassification

解决方案


如果您打算将神经网络与 TensorFlow 或 Pytorch 一起使用,那将很容易。只要您可以U在框架内表达函数并且效用函数合理地接近连续,您就可以将效用反向传播到网络。您只需要求优化器最大化效用,仅此而已。

如果效用函数是离散的,它会变得很棘手,但您可以尝试一些技巧。其中之一是REINFORCE 算法(蒙特卡洛策略梯度)。另一个非常流行的技巧是Gubmle softmax,它允许对离散动作进行采样并将错误传播到网络。

如果您打算使用不同的分类器(例如决策森林或其他),您可以尝试基于模仿学习的方法,例如SEARN 算法


推荐阅读