4 ML模型回顾
4.1 机器学习介绍
- 算法类型
- 监督学习
- 在打标签后的数据上训练,去预测标签
- 自监督学习(标号来自于数据本身)E.g. word2vec BERT
- 半监督学习
- 同时在标注和未标注上的数据上训练,通过已标注的数据去预测未标注数据 E.g. 自训练
- 无监督学习
- 在无标签数据训练 E.g. 分簇、分布估计(GAN)
- 强化学习
- 和环境交互,采取行动去获取奖励
- 监督学习
- 监督学习训练
- 模型
- 通过输入获取输出
- 损失函数
- 衡量预测值和真实值的不同
- 目标
- 例如:最小化损失函数
- 优化
- 改变可学习参数,使之满足目标函数
- 模型
- 监督学习模型
- 决策树
- 线性模型
- 核方法
- 神经网络
4.2 决策树/随机森林
- 决策树
- 优点:
- 可解释
- 能够处理数字和类别型特征
- 缺点:
- 不具有健壮性(使用集成学习可以缓和)
- 复杂的树容易过拟合(剪枝)
- 在计算中不容易并行
- 优点:
- 随机森林
- 训练多个决策树,提升稳定性
- 每个数,独立训练
- 多数投票用来分类,取平均用来回归
- 随机的产生
- Bagging:有放回的采样,组成训练集
- 随机挑选一些特征子集
- 训练多个决策树,提升稳定性
- 梯度提升树
- 训练多课树,连续的完成
-
F
t
(
x
)
F_t(x)
Ft(x)表示前面
t
−
1
t-1
t−1棵树
- 在残差上训练新的树: ( x i , y i − F t ( x i ) ) i = 1 , . . {(x_i,y_i-F_t(x_i))}_{i=1,..} (xi,yi−Ft(xi))i=1,..
- F t + 1 = F t ( x ) + f t ( x ) F_{t+1} = F_t(x) + f_t(x) Ft+1=Ft(x)+ft(x)
- − ∂ L / ∂ F -\partial L / \partial F −∂L/∂F ,如果使用均方误差,这就叫做梯度提升
- 小结
- 可解释性 分类/回归模型
- 集成学习去降低偏移和偏差
- 随机森林:带有随机性地并行训练
- 梯度提升树:在残差上训练一个序列的树
- 树模型被广泛用到工业界
- 简单、易调参、通常给出一个满意的结果
4.3 线性模型
-
线性回归
y h a t = < w , x > + b y^{hat} = <w,x>+b yhat=<w,x>+b
-
目标函数
w ∗ , b ∗ = a r g m i n w , b l ( X , y , w , b ) = a r g m i n w , b 1 n ∣ ∣ y i − < X i , w > − b ∣ ∣ 2 \begin{aligned} w^*,b^* &= argmin_{w,b} l(X,y,w,b) \\ &= argmin_{w,b}\frac{1}{n}||y_i-<X_i,w>-b||^2 \\ \end{aligned} w∗,b∗=argminw,bl(X,y,w,b)=argminw,bn1∣∣yi−<Xi,w>−b∣∣2
-
线性模型分类
- 多类输出:输出向量, i i i-th输出表示类别 i i i的置信度
- o i = < x , w i > + b i o_i = <x,w_i> + b_i oi=<x,wi>+bi
- 真实标签采用独热编码
- m i n 1 m ∣ ∣ o − y ∣ ∣ 2 min \frac{1}{m}||o-y||^2 minm1∣∣o−y∣∣2
- a r g m a x i o i i = 1 m argmax_i{o_i}_{i=1}^m argmaxioii=1m
- 存在问题:导致模型不仅要关注需要预测的标签让它最大,还需要让其他标签最小
-
Softmax回归
- 将预测的分数变成概率 y h a t = s o f t m a x ( o ) y^{hat}=softmax(o) yhat=softmax(o)
- 交叉熵损失函数: H ( y , y ^ ) = ∑ i − y i l o g ( y ^ i ) = − l o g y ^ y H(y,\hat y) = \sum_i - y_ilog(\hat y_i) = -log\hat y_y H(y,y^)=∑i−yilog(y^i)=−logy^y
4.4 随机梯度下降
- 小结:
- Mini-batch SGD
4.5 多层感知机
- 线性层+激活函数叠加在一起
4.6 卷积神经网络
- 识别图片中的目标:
- 平移不变性:无论目标在哪儿,输出的结果是一样的(卷积+池化提供了平移不变性,目标移动了,那么只有当卷积核移动到目标所在位置,卷积核才会有相应的输出)
- 局部性:一个像素和周围较近的像素关系较大
4.7 循环神经网络
-
小结:
5 模型验证
5.1 模型评估
-
模型指标
- 在监督学习中,通过最小化训练损失来训练模型
- 其他指标:
- 模型特定的指标,例如:目标检测中的mAP
- 商业特定的指标,例如:营收,推理时间
- 多指标来选择模型
-
案例分析:展示广告
- 搜索/页面 ——> 取出相关广告 ——> 估计click through rate(CTR) ——> 通过CTR和价格展示广告
-
分类的指标
y=1(真实标签) y=0 y_hat = 1(预测标签) 11(TP) 01(FP) y_hat = 0 10(FN) 00(TN) 准确度:
sum(y == h_hat) / y.size
精确度:
sum((y_hat == 1) & (y == 1) / sum(y_hat == 1))
召回率:
sum((y_hat == 1) & (y == 1) / sum(y == 1))
F1 :
2pr/(p+r)
-
AUC & ROC
-
展示广告的商业指标
- 优化营收和用户体验
- 延迟低 <300ms
- ASN:平均每页展示多少广告
- CTR:真实用户点击率,展现广告的阈值
- ACP:每次点击的价格
营 收 = p a g e v i e w s × A S N × C T P × A C P 营收 = pageviews × ASN × CTP × ACP 营收=pageviews×ASN×CTP×ACP
- 优化营收和用户体验
5.2 过拟合和欠拟合
-
训练误差和泛化误差
泛化误差\训练误差 Low High Low Good Bug? High 过拟合 欠拟合 -
数据复杂度和模型复杂度匹配
-
模型复杂度
- 去拟合多种函数的能力
- 很难去比较不同的模型
- 在一个模型家族中,参数越多、可学习参数取值范围越大往往模型越复杂
5.3 模型验证
-
衡量模型泛化误差
- 在测试数据集(只使用一次)上的误差
- 验证数据集(能被使用多次)
-
在非I.I.D.数据上划分(I.I.D. : 随机同分布)
- 时序信息,例如:房价、股票价格
- 非平衡数据
- 具有组信息的数据,按照组进行划分
-
K-fold 交叉验证
-
常见错误
- 信息泄露
- 验证集被训练集包含了