python - 神经网络损失函数以及如何为其添加常数值
问题描述
我有一个只有卷积层的神经网络模型,需要一些关于损失函数的帮助。
我正在阅读一篇论文,该论文建议添加一个与所谓的“能量”成正比的常数,该常数可以从训练模型的结果中计算出来。它比简单的损失函数要复杂一些。这样做是为了帮助培训,而不是陷入局部最小值。
出现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 中,所有东西都已经构建在一起了,我想知道如何为损失添加一个常数值。
我给你一张我所指的论文的整个摘录的图片:
我不想解释这种能量是什么,因为这对于一个简单的问题来说很深入,并且需要大量的背景信息。
(编辑到此结束)
如果您回答我的第一个问题,我已经非常感激了。非常感谢。
解决方案
推荐阅读
- javascript - 用 JSON 中的动态值替换键
- android - AOSP 汽车方向更改不起作用
- bash - 带有 if 条件和运算符的 Bash 脚本
- jquery - 如何使用 Ajax 调用 MVC4 传递两个字符串数组
- git - 将分离的 HEAD 推送到新标签
- django - 如果模型分配了lookup_fields,如何使用drf-extension(Django Rest Framework)
- angular - 谷歌字体导入不适用于 Angular Material 生产版本
- java - 构建图形数组
- azure - 无法通过 Ngnix 使用 SSL 实现与 redis 容器的安全连接
- python - 在python中获取最短路径时出现Dijkstra算法错误