反向传播如何改变神经风格迁移中的像素(输入数据)?

hpa*_*stt 5 backpropagation neural-network conv-neural-network

我对机器学习很陌生,我想更好地理解神经风格迁移,但我觉得我错过了一些东西。据我所知

  1. 反向传播更新权,而不是输入。生成的图像(G)是输入
  2. 神经风格迁移方法涉及迁移学习,这意味着它使用预训练网络(VGG)来计算成本函数。该网络不是用来学习其他东西,而是用来洞察 G 和内容图像 (C) 之间以及 G 和风格图像 (S) 之间的接近程度

我的问题是:图像如何更新?我可能是非常错误的,但是更新网络似乎破坏了最初帮助定义成本函数的见解(成本函数使用某些层的激活来确定 G 是否与 C 具有相似的内容以及接近于 C 的风格) S)。然而,假设我们改变了网络。但这意味着改变权重,而不是输入。我们如何根据成本函数调整像素?

我已经看过https://www.youtube.com/watch?v=xY-DMAJpIP4&list=PLkDaE6sCZn6Gl29AoE31iwdVwSG-KnDzF&index=39以及 Andrew Ng 关于该主题的其他视频,但我仍然不明白。我提到我指的是神经风格迁移的第一种方法(Leon A. Gatys 等人)

小智 3

我在阅读 deeplearning.ai 的 cnn 课程中关于神经风格迁移的编程教程时也有同样的疑问。当我完成关于张量流的神经风格迁移教程时,事情变得更加清晰。

在本教程中,生成的图像 G 被声明为tf.variable。因此,将 G 的像素想象为权重。因此,在梯度下降中,像素会随着权重的更新而更新。