Skip to content

机器学习

从经验中学习 从数据中的隐式模式中推断信息 对新事物进行标签推理

人工智能,机器学习,深度学习,数据科学之间的关系

  AI > ML > DL
	^ ^ ^ ^ ^ ^ ^
	| | | | | | |
	Data Science

机器学习的应用

  • 强规则性游戏——象棋 && 围棋
  • 推荐算法——netflix && google 用于提高对用户偏好的准确度
  • 药物侦测 && 字符识别——邮局
  • 声音辅助系统——Siri
  • 辅助驾驶
  • 人脸识别系统——Facebook
  • 癌症诊断
Alpha-beta剪枝

搜尋演算法
Alpha-beta剪枝是一种搜索算法,用以减少极小化极大算法搜索树的节点数。这是一种对抗性搜索算法,主要应用于机器游玩的二人游戏。当算法评估出某策略的后续走法比之前策略的还差时,就会停止计算该策略的后续发展。该算法和极小化极大算法所得结论相同,但剪去了不影响最终决定的分枝。

作出新的预测

  • 元素
    • 训练集
    • 验证集
  • 训练数据
  • 推理引擎

机器学习的类别

  1. 监督学习 与 非监督学习 supervised & unsupervised
  2. 聚类 与 分类

属性

模型复杂度

  • 复杂度越高,产生输出的速度越慢

泛化能力

  • 在未见过的数据上的表现能力

学习能力

  • 从数据中自动提取有用信息的能力
  • 能力越强,消耗的资源越大,产生的速度越慢

非线性

  • 模型对复杂函数的拟合能力

鲁棒性 可扩展性 灵活性 计算资源

特征工程

  • 核心是最大化信噪比,最大化携带信息最多的特征,最小化不是这样的特征

    • 测量哪些特征

    • 加权方法

  • 从聚类的角度看待数据

    • 相同属性
    • 不同属性
  • 特征 高匹配特征 权重计算

过拟合

  • 本不存在关联的元素之间,产生了某种映射关系
  • 过多的特征容易产生过拟合,出现更大错误的机率 => 功能的选择十分重要

决策树


使用树的数据结构进行决策。本质上可以说是从顶点开始向下不断生成的if-else的顺序结构语句。其满足树的定义以及特点,大致分为顶节点,内部节点,叶子节点。

特点

  • 工业应用多,往往是首选
  • 训练简单
  • 需要调整超参数少(调参少)
  • 结果相对较好
  • 拓展性好(数据 && 模型均可升级)

应用范围

  • 分类 针对具体的数据item,侧重信息本身
  • 回归 针对具体数字value

决策树的好处

最大的好处是可解释

  1. 结果和过程能够进行语言解释

    用于一些对最终结果需要过程 && 原因的行业。如银行,保险等高度涉及计算过程的行业,通知客户服务的达标情况以及给出过程

  2. 能够处理数值类 & 类别类的特征

    数值类,即节点中的值之间的大小关系

    类别类,即节点中的节点属性的值的关系

决策树的坏处

最大的问题是不稳定

  1. 受噪音十分影响大

    通常需要集成学习

  2. 容易过拟合

    数据复杂度和树的规模正相关,当数据本身很复杂的时候,生成的树也十分复杂(精准),容易过拟合

  3. 并行计算难度高

    树结构对上层的节点依赖,不容易通过GPU并行计算,线上部署会产生性能较差的情况

稳定策略

核心是通过多颗树降低偏移和方差

  1. 随机森林 Random Forest

    随机并行生成并独立训练多棵树,最后汇总结果。

    类似于民主投票。其核心在于随机,若不是随机,则对决策树的稳定性提升会很有限

    缺点:开销大。n颗树训练 && 预测成本为原来的n倍

    随机性来源(Bagging):从训练集随机采样(有放回,数据可重复),即拿到bagging。

    1. 在bagging上重复训练,直至训练完n棵树。
    2. 在bagging上随机采样特征(无放回,不出现重复的列),使用部分特征)
  2. 助推 Boosting(Gradient)

    生成并训练多颗树,但是顺序完成,树之间可合成较大的模型。

    通过计算特征残差(residual, 真实值和预测值之间的差),在残差之上训练树(在现有树不准的地方继续训练树),可以达到缩小预测值和真实值之间的差距,即将这颗树和已有的树相加。

    每次训练新的树,拟合负梯度。 $$

    $$

回归

$$ y = w_1x_1 + w_2x_2 + w_3x_3 + b \iff{\langle w,x \rangle} + b $$

weights和bias通过训练数据进行学习

  • 权重(weights, w1, w2, w3)
  • 偏移(bias, b)

*权重和偏移均可以根据实际数据确定值

predict = (x * w).sum() + b

目标函数 (Objective Function)

$$ 收集n个带有y=[y_1,... y_n]\top\in R^n属性的训练样本 X=[x_1, x_2, x_3, ...x_n]^\top \in R^{np}\ \E.g. 房子数据,房价。 n为样本数量,p为特征长度。 $$

目标:优化平均均方误差(minimize mean square error , MSE ) $$ \begin

w*, b* &=\mathop{\arg\min}\limits_{w,b} \ell (X,y,w,b) \ &=\mathop{\arg\min}\limits_{w,b} \frac{1}{n} \sum_{i=1}^{n}\parallel y_i - \langle x_i, w \rangle -b \parallel^2

\end{align} \\ *argmin为函数取值最小时的自变量取值 $$

补充

分类问题

在分类中,一般关心的是输出的是多个类别的预测,即输出类别。

向量

  • 点乘 / 内积 => 标量积
  • 叉乘 / 外积 => 向量积

欧几里得范数(L2范数)

$$ \parallel \vec{a} \parallel = \sqrt{\sum_i^n(a_i)^2} $$

Last updated: