背景
目标(物体/cat)=特征(1/eye)+特征(2/leg)+特征(3/body)+特征(4/head)+特征(5/tail),即研究对象(y)由多个特征(x)影响。
对比一下两幅图中的不同的猫,不管是眼睛还是毛发的颜色都不一样,像素大小差别明显,但他们两个都是属于猫,所以,不能仅通过像素大小/范围去判断,但这都是属于猫的一些特征。
对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。最常用的方法主要再以下两种。
min-max normalization
对原始数据进行线性变换,使结果映射到[min,max]的范围,实现对原始数据的等比缩放。
当min=0,max=1时,称为归一化。公式如下
z-score normalization
将原始数据的值根据其平均值和标准差进行规范化:
看到好多区分归一化和规范化的,在此不做文字探究,二者都是normalization。min-max normalization和z-score normalization定义来自以下原版数据挖掘。Data Mining: Concepts and Techniques (The Morgan Kaufmann Series in Data Management Systems)
中文版数据挖掘--数据挖掘 概念与技术(原书第3版),书中normalization翻译为规范化。
实践:
图像预处理用到的是z-score normalization
均值和标准差为imagenet数据集的RGB模式的统一数值
train_image_data = tf.cast(train_image_data, dtype=tf.float32)
test_image_data = tf.cast(test_image_data, dtype=tf.float32)
rgb_mean = np.array([0.485, 0.456, 0.406])
rgb_std = np.array([0.229, 0.224, 0.225])
train_image_data = (train_image_data / 255 - rgb_mean) / rgb_std
test_image_data = (test_image_data / 255 - rgb_mean) / rgb_std