我正在尝试进行神经网络分类(使用python,Keras),以实现空间物理学的目的,其中我想根据多元时态数据识别特定的行星区域。给定我的目标,我想使用一个损失函数来最小化这样的参数:absolute_difference_between_predicted_and_real_class * temporal_distance_to_closest_real_class_change
更准确地说:我有3个类别,分别对应于行星周围的特定区域,即封闭的行星环境(类别1),冲击(内部环境极限处的物理薄边界;类别2),太阳风(由于太阳;第3类)。
使用经典算法,我有2个问题: 1)我得到了物理上不可能的预测类差异,例如3类=> 1类,反之亦然,并且预测类与真实类差异太大(3代替1或反之,而2代替1或3是对我来说没什么大问题);因此我想在损失函数中引入absolute_difference_between_predicted_and_real_class 2)我对班级更改的确切时间有很大的不确定性(3 => 2、2 => 1,反之亦然),因此,如果与“真实”课程相距不太远,则错误的预测班级过渡可能不会成为问题(但实际上总是不确定的)过渡;因此我想在损失函数中引入temporal_distance_to_closest_real_class_change
我知道我可以使用后处理功能,但如果可能的话,我希望将这些约束直接引入损失函数中。原则上,我可以编写一个函数来执行此操作,但是我不知道如何应对可导性约束以及损失函数所需的其他约束。我还阅读了一些有关序数分类的内容,这与我的问题#1相对应,但不确定是否适合问题#2。有任何想法或建议吗?
感谢您的帮助, 菲利普