第二章

本系列只用于自己做笔记用.

来源 : 实用机器学习 李沐
https://www.bilibili.com/video/BV1Xh411p7M9

2.2 数据清理

Data Errors

现实中, 当我们进行模型训练时, 如果我们使用的不是标准数据集, 我们就会难以评判模型的优劣. 特别是当用于训练的数据并不干净的时候, 模型可能会难以收敛, 或者会损失精度.

一个好的模型通常能容纳错误的数据, 但是会造成一定程度的精度下降.

而当这个模型被部署在online并且接受新的数据时, 将可能引发新的错误. (如使用self supervised learning时, 标记的label不干净, 但是又会重新放入到网络中进行训练)

Types of data errors

  • Outliers : 数据分布不在正常的分布中.

  • Rule violations : 违背规则. 如某个必要的要素缺失.

  • Pattern violations : 违背设定的格式/语法. 如价格设置了美元, 但是给出的是rmb.

How to detect

  • Outliers : 类别修改, boxplot

  • Rule : functional dependencies , Denial constraints

  • Pattern : syntactic, semantic

数据变换

raw data 到我们需要的数据大体上是不一样的, 这时候需要进行数据变形.
我们通常把数据标注后, 特征工程前的过程, 叫做数据变形.

Normalization

  • Min-Max normalization. 线性的划分到[a,b]中.
    x'_i = \frac{x_i - min_X}{max_X - min_X} (b-a)+a

  • Z-score normalization. 0 mean 1 standard deviation.
    x'_i = \frac{x_i - mean(X)}{std(X)}

  • Decimal scaling. minimized to [-1, 1].
    x'_i = x_i / 10^j \quad smallest \ j, \ s.t. \ max(|X'|)<1

  • Log scaling. 相比于数值, 更注重比例.
    x'_i = log(x_i)

Image Transformations

图片占用空间较大, 而且储存成本较高.
一般我们会使用下采样和剪切的方法. 而且机器学习对于低分辨率图像也有较好的适应性.
需要注意的是, 如果使用jpeg, 质量为中等质量(80%~90%), 大概会有1%的精度下降.
也可以使用whitening让输入冗余性更小, 且模型会收敛的更快.

Video Transformation

视频预处理跟图像大致相同, 都是用于平衡储存空间、图像质量和读取速度的.
通常使用的是10s内的短视频/片段(e.g. 包含一个动作)
复杂的视频也无法被神经网络所理解.
难点 : 不同的视频会有不同的压缩算法, 需要在储存和采样解码速度之间做妥协. 为了加速, 有时会使用GPU解码.

Text Transformation

词根化、语法化.

am, is, are -> be
car, cars, car's, cars' -> car

词源化tokenization.
把text分割成一个个词.

text.split(" ")

Summary

数据转换是把数据转换成模型更适合的状态.
需要平衡质量、储存、读取速度之间的关系.
表: normalization
图: 剪裁、下采样、 whitening
视频: clipping, sample frames
文本: 词根化、语法化, 来进行简化输入, 词源化得到输入到机器学习的小单元(unit).

2.4 特征工程

机器学习偏爱固定好的, 具有特定长度的输入/输出.
传统机器学习如SVM比较依赖特定的特征输入, 以前的数据工程师也专注于提取不同的数据特征用于训练网络.
深度学习的过程也大致相同, 但是特征提取并不是人工进行选择, 而是自动的选择, 代价是更花费数据和计算.

Tabular

  • int / float : 直接使用或者区间量化
  • categorical data : one-hot encoding. 不常见 / 不重要的放在同一类Unknown, 以维持列数在有限上.
  • Date-time : feature list. e.g. [year, month, day, day_of_year, week_of_year, day_of_week] 划分的时候最好能体现特定的特征.
  • Feature combination : 两种特征之间的外乘(Cartesian product)

Text

  • bag of words : 把token用one-hot表示出来, 然后对于一句话就把所有one-hot加起来. (会丢失顺序信息, 还可能内容过大)
  • Word embedding (Word2Vect): 把词表示成一个向量, 向量之间有语义信息 (语义相近体现为向量之间的内积较小). 这个向量是通过网络预测上下文的词训练出来的.
  • Pre-trained language models (e.g. BERT, GPT-3) : transformer模型, 相较于word2vect更大. 能抽取比较好的语义信息.

Image / Video

  • 传统特征 : 手动提取, 如sift
  • 预训练深度神经网络 : 分类器前的feature map, 如resnet, vgg等.

summary

特征提取很重要, 目前通常有手动提取和深度学习两种方法, 后面的方法更受人喜爱, 但是会更expensive.

2.5 总结

Challenge

  • 数据大小和质量之间的权衡.
  • 数据质量 :
    • 多样性 : 不同的方面
    • 无偏移的 : 没有偏移到特定的一方.
    • 公平性 : 没有区别对待人和事.
  • 大型数据管理 : 存储, 处理, 版本控制, 安全
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容