第 12 题:Dropout 在 Wide&Deep 中的最佳放置位置,输入层 vs 隐藏层的理论差异?
题目
Dropout在Wide&Deep中的最佳放置位置,输入层 vs 隐藏层的理论差异?
完整讲解
一、Dropout 作用
训练时以概率 $p$ 将神经元输出置 0,等价于采样「子网络」、做模型平均,起到正则、减轻共适应;推理时关闭或做 scale(乘 $1-p$)。
二、输入层 vs 隐藏层
- 输入层 Dropout:对特征/Embedding 做 dropout,直接丢掉部分特征维度。优点:防过拟合输入、对稀疏高维特征尤其有用;缺点:若放在 Embedding 后,会丢掉部分 ID 信息,可能影响记忆能力。推荐里常用在 Embedding 拼接之后、第一层 MLP 之前,比例一般较小(如 0.1~0.2),避免信息损失过大。
- 隐藏层 Dropout:对中间表示做 dropout。理论更经典:打破共适应、子网络集成。Wide&Deep 的 Deep 部分通常在各层之间加 dropout(如 0.3~0.5),最后一层前可略大。
三、Wide&Deep 中的建议
- Wide 侧:一般不加 dropout,Wide 负责记忆、需要完整特征。
- Deep 侧:
- 输入:Embedding concat 后可加轻度 dropout(0.1~0.2),防止某些 ID 过拟合。
- 隐藏层:每层后加 dropout(0.3~0.5),最后一层前可略大。
- 理论差异:输入层 dropout 控特征冗余与过拟合特征;隐藏层 dropout 控表示层共适应与容量。两者可同时用,输入轻、隐藏重。
面试要点
- 输入层 dropout:控特征过拟合,建议轻(0.1~0.2),放在 concat 后、MLP 前。
- 隐藏层 dropout:控共适应与容量,0.3~0.5;Wide 侧一般不加。
- 理论:输入=特征维度正则;隐藏=表示子网络正则。
记忆要点
- Wide&Deep:Wide 不加;Deep 输入轻 drop、隐藏层重 drop。
- 输入 drop:特征过拟合;隐藏 drop:共适应与子网络集成。