【发布时间】:2019-11-30 15:12:15
【问题描述】:
我想我不了解多输出网络。
虽然我了解如何实现并成功训练了这样一个模型,但我不了解如何训练多输出深度学习网络。我的意思是,训练期间网络内部发生了什么?
以keras functional api guide的这个网络为例:
您可以看到两个输出(aux_output 和 main_output)。反向传播是如何工作的?
我的直觉是该模型进行了两次反向传播,每个输出一次。 然后每个反向传播都会更新出口之前层的权重。 但这似乎不是真的:来自here (SO),我得到的信息是尽管有多个输出,但只有一个反向传播; 使用的损失根据输出加权。
但是,我仍然不明白网络及其辅助分支是如何训练的;辅助分支权重如何更新,因为它没有直接连接到主输出?辅助分支的根和主输出之间的网络部分是否与损失的权重有关?还是加权只影响连接到辅助输出的网络部分?
另外,我正在寻找关于这个主题的好文章。我已经阅读了 GoogLeNet / Inception 文章 (v1,v2-v3),因为该网络正在使用辅助分支。
【问题讨论】:
-
medium.com/@14prakash/… 可能会有所帮助。向您展示反向传播背后的数学原理。
-
感谢您的问题,但它更关注机器学习的理论方面,因此不适合 SO。您可能更有机会在CrossValidated 上获得答案。此外,不允许在 SO 上请求文章、教程或场外资源。
-
我明白你的意思。这个问题与理解 Keras 功能 API 如何在那里工作密切相关,因为这个架构是它的主要示例。所以我认为把它贴在那里是相关的。如果在赏金结束后我在这里找不到我的答案,我会在 CrossValidated 中移动问题!
标签: keras neural-network deep-learning backpropagation multipleoutputs