0%

ML入门-机器学习简介

1. 什么是机器学习

机器学习是人工智能的一个分支,主要关于构造和研究可以从数据中学习的系统。

这也说明,机器学习的本质是通过数据实现的,更进一步讲,是从大量无法手动推算出规律、分布、结构的数据中,利用 CPU 强大的计算能力、通过迭代等科学的计算方法来自动计算出某种类型数据的共性,并使用这些共性为新来的数据假设、模拟出其可能的结果。

机器学习的数据通常包括训练数据和校验数据,其中:

  • 训练数据用于建立机器学习模型,通常包括:①输入:特征 X 和 ②输出:标签 y。
    注意:此处黑体 X 表示矩阵,且有一些模型可以没有输出 y。
  • 校验数据用于在模型初步建立完毕后检验模型的效果,常常从训练数据中分割一部分作为校验数据,与训练数据具有相同的分布和格式。

2. 机器学习的学习类型:

  1. 监督学习[Supervised Learning]:从带标签的数据中学习。例:房价预测、邮件识别等。
  2. 非监督学习[Unsupervised Learning]:从无标签的数据中学习蕴含的结构。例:文档聚类等。
  3. 强化学习[Reinforcement Learning]:通过曾经执行的动作及带来的奖惩进行学习,强化学习的标签 y 具有延迟性。例:AI 下棋等,当前棋子带来的影响需要经过一段时间才会表现出来。

2.1 监督学习

  1. 两种任务类型:

    ①回归任务[Regression]:输出 $y\in R$ 为连续值。
    ②分类任务[Classification]:输出 y 为离散值。

  2. 学习目的:学习到一个 X 到 y 的映射 f,从而对新输入的 X 预测其输出

    $\hat{y}=f(\textbf{X})$。

  3. 监督学习的训练数据包含标签 y,即标签在训练数据中是可见变量。

  4. 数据样式:

    $D=\{\textbf{X}_i, y_i\}_{i=1}^N$
    其中 D 为数据集,Xi 与 yi 为第 i 个样本的输入与输出,N 为样本总数。

  5. Scikit-Learn 中监督学习的大致流程:
    ①estimator.fit(X_train, y_train)
    ②estimator.predict(X_test)
    ③estimator.score(X_test, y_test)

2.2 非监督学习

(1)两种任务类型:

①聚类[Clustering]
②降维[Dimension Reduction]

(2)学习目的:发现数据中的“有意义的模式”,亦称为“知识发现”。

(3)非监督学习的训练数据不包含标签 y,即标签在训练数据中为隐含变量。

(4)数据样式:

$D=\{\textbf{X}_i\}_{i=1}^N$

(5)Scikit-Learn 中非监督学习的大致流程:

  • transformer.fit(X_train)
  • X_train_trans = transformer.transform(X_train)
  • X_test_trans = transformer.transform(X_test)

2.3 增强学习

(1)学习目的:从行为的反馈(奖励或惩罚)中学习,以找到一条回报值最大的路径。

(2)步骤:设计一个回报函数[Reward Function],若 Learning Agent 在执行一个动作后获得了较好的结果,则给予一些奖励(例如:回报函数为正),否则给予一些惩罚(例如:回报函数为负),驱使 Learning Agent 寻找出一条最终获得回报总和最高的学习路径。