卷积神经网络的归一化方法
Normalization method for Convolutional Neural Network
常见的图像数据归一化方法有3种,分别是
1. X = (X - X.mean) / X.std
2. X /= 255. # (based on formula: (X - min) / (max - min) which can converge data into [0, 1].)
3. X = 2 * (X - min) / (max - min) - 1 # converge into [-1, 1]
我发现在不同的 CNN 教程或帖子中,人们可能会使用其中一个来规范化数据。但是我对它们有点困惑,我应该如何 select 一个不同的情况?
提前感谢您的任何解释。
广义上讲,我们对图像进行归一化的原因是为了让模型收敛得更快。当数据未归一化时,网络的共享权重对不同的特征有不同的校准,这会使成本函数收敛非常缓慢且无效。规范化数据使成本函数更容易训练。
具体选择哪种归一化方法取决于您处理的数据以及您对该数据所做的假设。以上三种归一化方法都是基于两个思想,即居中和缩放。方法 2. 仅涉及将数据缩放到特定范围内。这确保了各种特征的比例在相似的范围内,从而提供稳定的梯度。方法 1. 涉及将数据集中在平均数据点周围,然后将数据点的每个维度除以其标准差,以便所有维度对学习算法具有同等重要性。当您有理由相信数据中的不同维度具有截然不同的范围时,这种规范化会更有效。将所有维度置于同一范围内,从而使参数共享变得有效。方法 3 也可以看作是某种程度上与方法 1 相同的工作。
常见的图像数据归一化方法有3种,分别是
1. X = (X - X.mean) / X.std
2. X /= 255. # (based on formula: (X - min) / (max - min) which can converge data into [0, 1].)
3. X = 2 * (X - min) / (max - min) - 1 # converge into [-1, 1]
我发现在不同的 CNN 教程或帖子中,人们可能会使用其中一个来规范化数据。但是我对它们有点困惑,我应该如何 select 一个不同的情况?
提前感谢您的任何解释。
广义上讲,我们对图像进行归一化的原因是为了让模型收敛得更快。当数据未归一化时,网络的共享权重对不同的特征有不同的校准,这会使成本函数收敛非常缓慢且无效。规范化数据使成本函数更容易训练。
具体选择哪种归一化方法取决于您处理的数据以及您对该数据所做的假设。以上三种归一化方法都是基于两个思想,即居中和缩放。方法 2. 仅涉及将数据缩放到特定范围内。这确保了各种特征的比例在相似的范围内,从而提供稳定的梯度。方法 1. 涉及将数据集中在平均数据点周围,然后将数据点的每个维度除以其标准差,以便所有维度对学习算法具有同等重要性。当您有理由相信数据中的不同维度具有截然不同的范围时,这种规范化会更有效。将所有维度置于同一范围内,从而使参数共享变得有效。方法 3 也可以看作是某种程度上与方法 1 相同的工作。