首页 > 解决方案 > 神经网络损失函数以及如何为其添加常数值

问题描述

我有一个只有卷积层的神经网络模型,需要一些关于损失函数的帮助。

我正在阅读一篇论文,该论文建议添加一个与所谓的“能量”成正比的常数,该常数可以从训练模型的结果中计算出来。它比简单的损失函数要复杂一些。这样做是为了帮助培训,而不是陷入局部最小值。

出现2个问题:

1:我如何简单地为损失的每个时期(或小批量?)步骤的损失函数添加一个值?

2:这如何帮助网络训练?由于为每个 epoch 步骤添加一些常数值对反向传播步骤没有帮助。因为这取决于一些推导。

(编辑从这里开始)

基本上模型看起来像这样(理解我的问题并不完全重要,而是额外的):

    model.append(models.Sequential())
    model[i].add(layers.Conv1D(1, 2, activation='relu', input_shape=(32+2,1)))
    model[i].add(layers.Conv1D(1, 2, activation='sigmoid', input_shape=(32+1,1)))
    model[i].compile(optimizer=tf.keras.optimizers.Adam(learning_rate = 1e-3),
                     loss=tf.keras.losses.BinaryCrossentropy(),metrics=['accuracy'])
['accuracy']) 
    es = EarlyStopping(monitor='loss', mode='min',verbose = 1, patience = 100, min_delta = 0)
    model[i].fit(train_rgS[i].reshape(10000,32+padding_size,1),
                 train_mcS[i].reshape(10000,32,1),
                 batch_size = 10**3, epochs=500, verbose=0, callbacks=[es])

我可以将此模型应用于一组输入数据,并从中计算出能量。这有点复杂,无法用任何损失函数来描述。但是我想将此值添加到我的损失函数中以帮助训练

因为我来自 Pytorch,所以很容易操纵损失函数。但是在 Tensorflow 中,所有东西都已经构建在一起了,我想知道如何为损失添加一个常数值。

我给你一张我所指的论文的整个摘录的图片:

在此处输入图像描述

我不想解释这种能量是什么,因为这对于一个简单的问题来说很深入,并且需要大量的背景信息。

(编辑到此结束)

如果您回答我的第一个问题,我已经非常感激了。非常感谢。

标签: pythontensorflowneural-networkloss-functionmodel-fitting

解决方案


推荐阅读