如何用caffe中的全卷积网络解决过拟合问题
How to tackle overfitting with fully convolutional network in caffe
我在 caffe 中有一个全卷积网络(特别是堆叠沙漏网络)。在每个卷积层之后,我都有一个批量归一化、一个缩放层和一个 ReLU 层。但是,我遇到了过度拟合的问题。通常,我会增加我的数据集(这是不可能的)或者我会使用 Dropout 层,但是由于我读到在全卷积网络中使用 Dropout 层没有用,我不知道如何解决这个问题。除了我提到的之外,还有什么事情要做吗?在这种情况下,正则化可能会有帮助吗?
这是我从互联网上偷来的一张方便的图片。当您的深度学习模型遇到问题时,这是一个方便的尝试图表。你说你听说 Dropout 在 Conv 中不好用,但是你测试过吗?从那开始,然后继续:
- 将dropout添加到具有接近输出的大深度维度的Conv层
- 尝试不要深入。这是 go deep 的反面,你应该在 going deep 之前尝试一下。确保您有一个不会过拟合的简单模型首先,然后尝试添加层。
- 如果你仍然过拟合并且有 dropout,那么尝试移除 neurons,让你后面的 Conv 层没有那么深。
- 按照 Z.Kal 所说的操作,通过转换来乘以您的数据集。
- 如果所有这些都不起作用,请接受您的体系结构可能有误的事实。你已经在它的深处埋下了一种方法,它可以逐字逐句地存储你提供给它的所有数据,而不是概括它。考虑做一个挤压点,你有一个比输入数据小的层。
更新 2020/10/22 - 经过几年的卷积编码和实验,我的嵌入层似乎具有不合理的高协方差问题的原因我已经追踪到它丢失. Dropout 鼓励协方差(顺便说一句,这不好)。我没有使用 dropout,而是使用其他正则化器或完全跳过正则化并专注于初始化和架构。这是我制作的一个(糟糕的)视频,展示了如何有效地训练超深度 400 layers of convolution 以及用于帮助训练和操作的技巧
我在 caffe 中有一个全卷积网络(特别是堆叠沙漏网络)。在每个卷积层之后,我都有一个批量归一化、一个缩放层和一个 ReLU 层。但是,我遇到了过度拟合的问题。通常,我会增加我的数据集(这是不可能的)或者我会使用 Dropout 层,但是由于我读到在全卷积网络中使用 Dropout 层没有用,我不知道如何解决这个问题。除了我提到的之外,还有什么事情要做吗?在这种情况下,正则化可能会有帮助吗?
这是我从互联网上偷来的一张方便的图片。当您的深度学习模型遇到问题时,这是一个方便的尝试图表。你说你听说 Dropout 在 Conv 中不好用,但是你测试过吗?从那开始,然后继续:
- 将dropout添加到具有接近输出的大深度维度的Conv层
- 尝试不要深入。这是 go deep 的反面,你应该在 going deep 之前尝试一下。确保您有一个不会过拟合的简单模型首先,然后尝试添加层。
- 如果你仍然过拟合并且有 dropout,那么尝试移除 neurons,让你后面的 Conv 层没有那么深。
- 按照 Z.Kal 所说的操作,通过转换来乘以您的数据集。
- 如果所有这些都不起作用,请接受您的体系结构可能有误的事实。你已经在它的深处埋下了一种方法,它可以逐字逐句地存储你提供给它的所有数据,而不是概括它。考虑做一个挤压点,你有一个比输入数据小的层。
更新 2020/10/22 - 经过几年的卷积编码和实验,我的嵌入层似乎具有不合理的高协方差问题的原因我已经追踪到它丢失. Dropout 鼓励协方差(顺便说一句,这不好)。我没有使用 dropout,而是使用其他正则化器或完全跳过正则化并专注于初始化和架构。这是我制作的一个(糟糕的)视频,展示了如何有效地训练超深度 400 layers of convolution 以及用于帮助训练和操作的技巧