3.1 机器学习开发的迭代过程(Iterative loop of ML development)
案例:垃圾邮件分类器(Email spam classification)
方法:特征的选择——选出最常用的10000个词,这些词是否出现作为特征x1, x2, …, x10000;如果某个词出现在邮件里,则该属性记为1。
如果模型经过训练后其表现的性能并没有达到预期,那么应该如何减小分类器的错误率?策略有:
- Collect more data. E.g., “Honeypot” project(收集更多数据)
- Develop sophisticated features based on email routing(from email header).(追踪邮件来源)
- Define sophisticated features from email body. E.g., should “discounting” and “discount” be treated as the same world.(定义更复杂的特征,比如“discounting”和“discount”应识别为同一词)
- Design algorithms to detect misspellings. E.g., w4tches, med1cine, m0rtage.(设计能识别误拼的词,垃圾邮件会故意拼错一些词汇来避免分类器的识别)
3.2 误差分析(Error analysis)
假设交叉验证集中有500个样本(m_cv=500),算法的分类有100个样本是错误的;这是我们手动检查分析这100个样本,提取它们的共同特征并分类:
pharmaceutical: 21
Deliberate misspellings(w4tches): 3
Unusual email routing: 7
Steal passwords(phishing): 18
Spam message in embedded image: 5
3.3 添加更多数据(Adding data)
数据增强(Data augmentation
):根据误差分析的结果编辑修改现有数据集,以得到新的数据集。
Augmentation: modifying an existing training example to create a new training example.
案例:OCR(Optical Character Recognition)光学字符识别问题。比如要识别手写字母A,可以通过将数据集中的A图像镜像反转、放大、缩小、旋转、扭曲(distortion)等处理方法,来模拟应用时会遇见的各种场景,来导向性地增强数据集。
Distortion introduced should be representation of the type of noise/distortions in the test set.
引入的扭曲处理应该对于原始数据集中的噪声和扭曲等具有一定代表性。
数据合成(Data synthesis
):使用人工数据输入以获得新的训练数据集。
Synthesis: using artificial data inputs to create a new training example.
案例:计算机视觉识别/OCR问题。可以通过人工生成不同字体的不同字母图片,经过处理,输入到要识别的数据集中合成新的数据集,用于训练模型。
3.4 迁移学习-使用其它任务中的数据(Transfer learning: using data from a different task)
分为两步:
- 有监督预训练(
Supervised pretraining
):首先将神经网络模型在整个数据集上训练一遍,得到初始的w_[i], b_[i]参数; - 微调(
Fine tuning
):选取数据集中的一小部分,将上一步训练好的模型在小数据集上再训练;有两种方法,一种是只训练输出层的参数(only train output layers parameters);一种是训练整个模型每个层的参数(train all parameters)。
优势:网上有很多发布的预训练好的神经网络模型,我们可以直接下载下来,在自己的数据上进行微调,以获得性能良好的模型,很方便。
总结:
- Download neural network parameters pretrained on a large dataset with same input type(e.g., images, audio, text) as your application(or train your own).
- Further train(fine tune) the network on your own data.
3.5 机器学习项目的完整周期(Full cycle of a ML project)
应用部署(deployment):——
3.6 公平、偏见与伦理(fairness, bias and ethics)
4.1 不对称数据集的误差指标(Error metrics for skewed datasets)
查准率和查全率(precision and recall
)
对于一个输出y=1的概率很低的问题,可以采用计算查全率的方法,验证模型是在正常工作,还是有bug导致一直输出y=0。
4.2 查准率和查全率的权衡(Trading off precision and recall)
以逻辑回归为例,查准率与查全率取决于判断y=1/0的模型阈值的选择。当我们希望只有在非常确定结果正确时输出y=1,则提高阈值(当正确的概率较高时才输出1),这样会导致查准率增大,查全率降低;当我们希望不遗漏任何一个正确的可能样本,则降低阈值(就算正确的概率不高也要尽量记为1),这样会导致查准率降低,查全率增大。
衡量标准——F1 score
:
P(precision,查准率)和R(recall,查全率)的调和:
F
1
_
s
c
o
r
e
=
1
1
2
(
1
P
+
1
R
)
=
2
P
R
P
+
R
F1\_score = \frac{1}{{\frac{1}{2}\left( {\frac{1}{P} + \frac{1}{R}} \right)}} = 2\frac{{PR}}{{P + R}}
F1_score=21(P1+R1)1=2P+RPR
相比平均值来说,
F
1
_
s
c
o
r
e
F1\_score
F1_score更能反映两个值中较小值的情况。