特征归一化(normalization)的理论与实践

背景

目标(物体/cat)=特征(1/eye)+特征(2/leg)+特征(3/body)+特征(4/head)+特征(5/tail),即研究对象(y)由多个特征(x)影响。


两只小猫
猫和狗

对比一下两幅图中的不同的猫,不管是眼睛还是毛发的颜色都不一样,像素大小差别明显,但他们两个都是属于猫,所以,不能仅通过像素大小/范围去判断,但这都是属于猫的一些特征。

对数值类型的特征做归一化可以将所有的特征都统一到一个大致相同的数值区间内。最常用的方法主要再以下两种。

min-max normalization

对原始数据进行线性变换,使结果映射到[min,max]的范围,实现对原始数据的等比缩放。


定义

公式

当min=0,max=1时,称为归一化。公式如下


0-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翻译为规范化。
译文版.PNG

实践:

图像预处理用到的是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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容