机器学习简介

什么是机器学习?

定义

  • 从字面上看,“机器”表示编程机器/计算机,“学习”表示从数据中学习。
  • 从更广义上看,机器学习能够让计算机不需要显式编程就可以学习到某种能力。
  • 从工程的角度上看,给定某项任务$T$、对应的经验$E$(训练数据)以及任务执行的表现度量$P$,机器学习希望通过学习使得它在任务$T$的表现$P$可以借助已有的经验$E$进行提升。

人工智能是一个交叉领域,与计算机、统计学、数学等学科均有联系。

基本要素

  • 数据。每一个实例称为样本点,训练数据称为训练集,用于探索算法推广能力的测试集。另外某些算法需要调试参数,这又需要从训练集中划分出单独的一个集合作为验证集,用于评判不同参数的优劣。
  • 模型。可以视为一个函数$f$,给定输入$x$,可以得到输出$y$,模型可能依赖于某些可变的参数$\theta$。学习的过程就是对参数$\theta$的更新过程。
  • 评价标准。用于评价模型的效果,可以用效用函数适应度函数评价模型有多好,也可以用代价函数来表示模型有多差。

流程

  • 研究数据;
  • 选择模型;
  • 在训练集上训练模型;
  • 应用模型在新的数据上进行预测/推断。

为什么使用机器学习?

  • 代替人工规则编写;
  • 自动适应环境/数据变化;
  • 解决人类较难解决的复杂问题;
  • 自动学习未知的规则(数据挖掘)。

机器学习算法类别

对机器学习算法,有多种分类,总得来说,我们可以从以下几个角度进行分类。

根据训练数据分类

有监督学习

在有监督学习中,每一个样本$x\in \mathscr{X}$都有一个标签$y\in\mathscr{Y}$.

  • 分类。标签集$\mathscr{Y}$包含了有限个元素,例如$\{0,1\}$,$\{\text{Yes}, \text{No}\}$等等。分类任务的目的是给出一个给定样本的类别。
  • 回归。标签集$\mathscr{Y}$包含了一个区间或者含有更复杂的元素,例如$[0,1]$。回归任务的目的是寻找从$\mathscr{X}$到$\mathscr{Y}$的合适映射。
  • 排序。样本被划分为不同的组,标签集可以为离散或者连续的。这是一种特殊的任务,它常用于推荐系统,目的是对一个给定的组中所有样本进行排序。

常见的有监督学习算法:

  • k-Nearest Neighbors
  • Linear Regression
  • Logistic Regression
  • Support Vector Machines (SVMs)
  • Decision Trees and Random Forests
  • Neural networks

无监督学习

  • 聚类
    • K-Means
    • DBSCAN
    • Hierarchical Cluster Analysis (HCA)
  • 异常检测
    • One-class SVM
    • Isolation Forest
  • 降维与可视化
    • Principal Component Analysis (PCA)
    • Kernel PCA
    • Locally-Linear Embedding (LLE)
    • t-distributed Stochastic Neighbor Embedding (t-SNE)
  • 关联规则挖掘
    • Apriori
    • Eclat

半监督学习

强化学习

强化学习简介

根据学习方式分类

  • 离线学习/批次学习。
  • 在线学习。

根据推广方式分类

  • 基于实例的学习。
  • 基于模型的学习。

机器学习的主要挑战

数据

  • 训练数据数量不足;
  • 训练数据代表性不足;
  • 训练数据质量较差;
  • 特征与任务不相关。

模型

  • 模型在训练数据上过拟合;
  • 模型在训练数据上欠拟合。

参考文献

  1. Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow, 2nd Edition
Your support will encourage me to continue to create.