gpt4 book ai didi

python - 如何通过向交叉熵添加负熵来创建自定义损失函数?

转载 作者:行者123 更新时间:2023-12-04 11:29:20 25 4
gpt4 key购买 nike

我最近读了一篇论文,题目是“REGULARIZING NEURAL NETWORKS BY PENALIZING CONFIDENT OUTPUT DISTRIBUTIONS https://arxiv.org/abs/1701.06548"。作者讨论了通过惩罚低熵来规范神经网络
通过向负对数似然添加负熵项并为模型训练创建自定义损失函数来获得输出分布。
enter image description here
值 β 控制置信惩罚的强度。我为分类交叉熵编写了一个自定义函数,如下所示,但需要将负熵项添加到损失函数中。

import tensorflow as tf
def custom_loss(y_true, y_pred):
cce = tf.keras.losses.CategoricalCrossentropy()
cce_loss = cce(y_true, y_pred)
return cce_loss

最佳答案

您不需要自定义损失,因为它可以实现为事件正则化器(应用于层的输出):

def regularizer(beta):
def entropy_reg(inp):
return -beta * K.mean(inp * K.log(inp))
然后这可以应用于您的输出层:
model = Sequential()
#Add layers here
model.add(Dense(num_classes, activation="softmax",
activity_regularizer=regularizer(0.01)))

关于python - 如何通过向交叉熵添加负熵来创建自定义损失函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68913379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com