### Feature Engineering
- 机器学习算法偏好定义比较好的,固定长度的输入和输出
- 特征工程在深度学习之前的ML模型最重要的关键
- 在计算机视觉任务,人们尝试各种特征工程方法然后训练一个SVM分类
- DL训练神经网络来抓取特征
- 特征通常和任务是相关的
Tabular Data Features
- 整数/浮点:直接使用
- 类别的数据:One-hot编码
- cat -> [0, 1, 0, 0, 0] # fish, cat, and, dog, unkown
- 映射稀少的数据为“Unkown”
- 日期时间:一个特征列
- [year, month, day, day_of_year, week_of_year, day_of_week]
- 特征组合:
- [cat, dog] x [male, female] -> [(cat, male), (cat, female), (dog, male), (dog, female)]
Text Features
- 用token特征表示文本
- Bag of words模型(BoW)
- 把每个词元用One-hot表示,句子就是把全部加起来
- dog and cat and dinosaur -> [0, 1, 2, 1, 1]
- 限制:需要自习设计词库,容易缺失上下文信息
- Word Embeddings模型(Word2vec)
- 向量化词让相似的单词放的更近
- 训练的时候是通过从上下文中预测目标词
- Pre-trained language模型(BERT, GPT)
- 大的transformer模型
- 需要大量没标注的数据训练
- 在下游任务上微调
- Bag of words模型(BoW)
Imgae/Video Features
- 传统的手工抽取特征比如SIFT
- 现在常见的是使用预训练好的深度神经网络
- RestNet、I3D
Summary
- 特征非常重要
- 特征是手工提取或者深度神经网络提取
- 后者现在已经是主流了