什么是机器学习?
定义
- 从字面上看,“机器”表示编程机器/计算机,“学习”表示从数据中学习。
- 从更广义上看,机器学习能够让计算机不需要显式编程就可以学习到某种能力。
- 从工程的角度上看,给定某项任务$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
半监督学习
强化学习
强化学习简介根据学习方式分类
- 离线学习/批次学习。
- 在线学习。
根据推广方式分类
- 基于实例的学习。
- 基于模型的学习。
机器学习的主要挑战
数据
- 训练数据数量不足;
- 训练数据代表性不足;
- 训练数据质量较差;
- 特征与任务不相关。
模型
- 模型在训练数据上过拟合;
- 模型在训练数据上欠拟合。