多层感知器:训练、优化与泛化策略
1. 多层感知器训练问题概述
多层感知器在误差函数中容易形成狭窄的沟壑,这会降低训练过程的速度。为了更有效地训练多层感知器,我们需要关注输出单元与目标值、权重初始化、输入预处理、共享权重等方面,同时要重视模型的泛化能力。
2. 输出单元与目标值
多层感知器的实际应用大致可分为两类,不同类型对应不同的输出单元和目标值设置:
| 应用类型 | 目标输出值 | 输出单元类型 | 目标值选择 | 原因 |
| — | — | — | — | — |
| 非线性回归 | 连续值 | 线性单元 | 无特殊限制 | 希望输出能覆盖所有可能的目标值范围,线性单元更合适 |
| 分类与模式识别 | 二进制值 | 具有Sigmoid非线性的单元 | 接近但不等于Sigmoid渐近值(如逻辑函数用0.05和0.95) | 避免权重无限增长,加快训练速度 |
3. 权重初始化
在开始反向传播算法之前,需要对网络的权重进行初始化。不能将所有权重初始化为零,因为这样会导致梯度分量为零,无法有效训练。通常的做法是将权重初始化为在对称区间 [-a, a] 内均匀分布的随机值。
为避免单元饱和影响学习速度,参数 a 可根据单元的输入数量 fi 进行调整,公式为 ai = k / (fi)^(1/2) 。对于 k 的选择,不同人有不同偏好:
- 有些人喜欢将 k 设得很小(如0.01 -
超级会员免费看
订阅专栏 解锁全文
2283

被折叠的 条评论
为什么被折叠?



