深度学习中的正则化与卷积神经网络
立即解锁
发布时间: 2025-09-01 01:49:23 阅读量: 3 订阅数: 15 AIGC 

### 深度学习中的正则化与卷积神经网络
#### 1. 正则化技术概述
在深度学习模型训练过程中,过拟合是一个常见的问题。为了提高模型的泛化能力,即减少训练误差和测试误差之间的差距,我们可以采用正则化技术。
早期停止是一种正则化技术,但它仅在测试误差呈现U型曲线时才有效,即测试误差在经过一段时间后开始增加。在某些情况下,这种情况并不出现,因此我们需要考虑其他技术。
#### 2. 权重衰减
权重衰减是一种常见的正则化技术,它通过在损失函数中添加惩罚项来实现:
- **L1正则化**:
损失函数公式为:$Loss = cross - entropy + \lambda \sum_{j=0}^{n} \lfloor w_j \rfloor$,其中 $\lambda$ 是一个常数,$w_0, w_1, \ldots, w_n$ 是模型中所有神经元的权重。学习算法试图最小化损失函数,这个误差项会促使权重最小化。对于那些对解决一般问题贡献不大的权重,尤其是只对特定输入示例有帮助而对一般情况无帮助的权重,会被减小,从而实现更好的泛化。
- **L2正则化**:
更常见的变体是对权重进行平方求和,公式为:$Loss = cross - entropy + \lambda \sum_{j=0}^{n} w_j^2$。权重衰减不仅适用于深度学习,也是传统机器学习技术中常用的正则化方法。
以下是在Keras中添加L2正则化的代码示例:
```python
from tensorflow.keras.regularizers import l2
# …
model.add(Dense(64, activation='relu',
kernel_regularizer=l2(0.1),
bias_regularizer=l2(0.1),
input_shape=[13]))
model.add(Dense(64, activation='relu',
kernel_regularizer=l2(0.1),
bias_regularizer=l2(0.1)))
model.add(Dense(1, activation='linear',
kernel_regularizer=l2(0.1),
bias_regularizer=l2(0.1)))
```
#### 3. Dropout
Dropout是专门为神经网络开发的另一种常见正则化技术。在训练过程中,它通过随机移除网络中的一部分神经元来工作。移除的神经元子集在每个训练周期都会变化,移除的神经元数量(辍学率)由一个参数控制,常见值为20%。在推理时,会使用所有神经元,但会对每个权重应用一个缩放因子,以补偿每个神经元现在从比训练期间更多的神经元接收输入的事实。
以下是在Keras中添加Dropout的代码示例:
```python
from tensorflow.keras.layers import Dropout
# …
model.add(Dense(64, activation='relu', input_shape=[13]))
model.add(Dropout(0.2))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(1, activation='linear'))
```
#### 4. 房价预测实验
为了验证正则化技术的效果,我们进行了一系列实验,结果如下表所示:
| 配置 | 拓扑结构 | 正则化方法 | 训练误差 | 测试误差 |
| --- | --- | --- | --- | --- |
| Conf1 | 1 | 无 | 10.15 | 10.24 |
| Conf2 | 64/64/1 | 无 | 0.647 | 2.54 |
| Conf3 | 64/64/1 | L2=0.1 | 1.50 | 2.61 |
| Conf4 | 64/64/1 | Dropout=0.2 | 2.30 | 2.56 |
| Conf5 | 128/128/64/1 | Dropout=0.2 | 2.04 | 2.36 |
| Conf6 | 128/128/64/1 | Dropout=0.3 | 2.38 | 2.31 |
从实验结果可以看出:
- 添加L2正则化(配置3)时,训练误差增加,测试误差也略有增加。
- 使用Dropout(配置4)更有效,几乎缩小了训练误差和测试误差之间的差距。
- 增加网络复杂度(配置5)后,测试误差有所改善,但训练误差减少更多,又出现了过拟合问题。
- 增加Dropout因子到0.3(配置6),训练误差增加,测试误差减小,得到了一个泛化能力较好的模型。
#### 5. 卷积神经网络简介
卷积神经网络(CNNs)是深度学习中的重要组成部分,在图像分类等任务中取得了显著的成果。2012年AlexNet的发布是深度学习发展的一个关键转折点,它在ImageNet分类挑战中表现出色,极大地推动了深度学习的普及。
AlexNet是一个用于图像分类的卷积神经网络,由五个卷积层和三个全连接层组成。其输入图像为224×224像素,每个像素有
0
0
复制全文
相关推荐










