卷积神经网络的图像预处理

Images pre-processing for convolutional neural network

我有 *.png 个文件,我想在卷积神经网络的上下文中将图像转换为单热编码。

  1. 我的图片是224x224。我搜索了许多在线参考资料,但我不太清楚如何将图像转换为 one-hot 编码。我是逐行追加还是逐列追加?一种方法比另一种更好吗?
  2. 一旦我创建了 one-hot 编码向量,就会应用归一化操作,例如将向量的每个值除以 256(RGB 的最大值)。这样可以防止数字爆炸并导致溢出。但是,我还看到从该值中减去 0.5。为什么是这样?这有效地将值的范围置于 [-0.5, 0.5] 之间。然而,在大多数卷积网络中,应用了一个 ReLU 层,无论如何都会将所有这些值变为零或更大。所以,我对为什么这样做感到困惑。
  3. 最后,一旦我将图像转换为单热编码向量,我应该在哪里添加偏置项?我是将它添加到 one-hot 编码向量的前面还是后面,这个值到底应该是什么?给定向量的归一化,我通常会看到偏置项是添加到向量前面的 1。但是,为什么我们选择1,为什么它通常附加在前面?
  1. 我想,我在 stats stackexchange 上回答了你的部分问题 :) 我猜你混淆了,因为你正在考虑将图像转换为 onehot 编码表示。这不是它的工作原理。一个热编码只是关于标签,你不需要转换图像(来自我上面的评论)
  2. 同样,当您对单热(稍微阅读一下)感到困惑时,您不会处理一个热编码标签。您处理图像(在本例中为预处理)。规范化可以有多种类型。对于深度学习,通常的方法是进行归一化,使均值为 0,标准差为 1。我没有尝试使用 (-0.5, 0.5) 进行归一化,而是在 ReLU 上回答你的问题。 ReLU 是为了引入非线性。如果您阅读更多有关深度学习(尤其是反向传播)的内容会更好。
  3. 又来了!你混淆了深度学习。偏置项是在训练过程中加入的。它是过程的一部分。由于您在问这个问题,因此您需要阅读神经网络。

这个简单的教程播放列表对我理解深度学习帮助很大,希望对你也有帮助!看看Neural network tutorial

祝你学习顺利:)