Outlines about Machine Learning.

机器学习(Machine Learning)作为一门新兴的学科,已经逐渐渗透进我们的生活之中;迄今为止对于机器学习尚没有官方的定义,下面是一些关于机器学习的定义不妨作为参考:

学习机器学习相关算法前,需要先了解机器学习的一些基本定理和概念:

本文将从不同的角度介绍常用的机器学习方法,包括:

⚪ 监督学习

监督学习(Supervised Learning)是指给计算机同时提供训练数据(data,也叫样本sample)及其标签(label,也称ground truth),希望学习数据与标签之间的对应关系。

监督学习又可以分为回归问题和分类问题,实际上这类似于解决连续性问题和离散性问题。

(1) 回归

回归(Regression)的输出是连续值,范围为整个实数空间或其中一部分空间。

(2) 分类

分类(Classification)的输出是离散值,把输入样本划分为有限个类别。分类任务的常用性能指标包括准确率指标,P-R曲线与F1-score,ROC曲线与AUC,代价曲线

根据输出范围的取值不同,分类可以划分为硬分类(hard classify)软分类(soft classify)

(3) 神经网络

神经网络(Neural Network, NN)是一类通过人工神经元的建模和连接构造的多层学习结构,又逐渐衍生出深度学习这一领域。

是一类特殊的机器学习方法,通常是的。根据其输出层激活函数的选择不同,既可以用于回归又可以用于分类。神经网络又一些特殊的神经网络模型如下:

  1. 前馈神经网络(多层感知机)由多层感知机构成
  2. 径向基函数网络
  3. 深度信念网络
  4. 自组织映射网络 SOM:竞争学习型的无监督神经网络

(4) 推荐系统

⚪ 无监督学习

无监督学习(Unsupervised Learning)是指提供给计算机的数据不再带有标签,希望从无标签的数据中学习出有效的特征表示。常见的无监督学习方法包括聚类降维异常检测生成模型

(1)聚类

聚类(Clustering)是将一组样本根据一定的准则划分到不同的簇(Cluster),如按照数据之间的相似性把相近的数据划分为一类。

常见的聚类方法:

  1. K-Means聚类
  2. 层次聚类:Agglomerative Nesting(AGNES)、Divisive Analysis(DIANA)
  3. Mean-Shift
  4. 谱聚类

(2)降维

降维(Dimensionality Reduction)是指降低数据的特征维度。由于数据的某些特征具有相关性,降维可以作为数据预处理方法,减少特征冗余。此外降低数据的特征维度有利于可视化。

根据降维的运算是线性的还是非线性的,可分为线性降维和非线性降维。

(3)异常检测

异常检测(anomaly detection)用来判断数据集中是否存在异常点,或者一个新的数据点是否正常。

(4)生成模型

生成模型(generative model)通过学习数据的内在结构或数据中不同元素之间的依赖性,对高维数据(如图像、音频、视频、文本)的概率分布进行估计;通过这种数据表示可以进一步生成新的数据。

如果数据的概率分布形式$P(x ; \theta)$是已知的,则可以通过极大似然估计等方法求得数据分布的解析解:

\[\theta_{\text{MLE}} = \mathop{\arg \max}_{\theta} \log P(x ; \theta)\]

a. 隐变量模型

隐变量模型(latent variable model)是一类强大的生成模型,其主要思想是在已知的观测数据(observed data)$x_i$后存在未观测到的隐变量(latent variable)$z_i$,其图模型如下:

隐变量模型的概率分布表示如下:

\[p(x,z; \theta) = p_{\theta}(x | z; \theta)p_{\theta}(z; \theta)\]

隐变量的引入为模型引入了一些先验知识,增强了模型的可解释性。一些常见的隐变量模型及其隐变量的含义如下:

隐变量模型的极大似然估计为:

\[\begin{aligned} \theta_{\text{MLE}} &= \mathop{\arg \max}_{\theta} \log P(x ; \theta)\\&= \mathop{\arg \max}_{\theta} \log \int_{z}^{} P(x,z ; \theta) dz \end{aligned}\]

由于隐变量的不可观测性,上式是不可解的,需要采用近似算法处理。根据后验概率$p(z | x)$是否可解,求解隐变量模型的方法包括:

\[\begin{aligned} \theta^{(t+1)}= \mathop{\arg \max}_{\theta} \Bbb{E}_{z \text{~}P(z|x ; \theta^{(t)})}[\log P(x,z ; \theta)] \end{aligned}\] \[\begin{aligned} \log P(x ; \theta) ≥ \mathbb{E}_{z \text{~} Q(z;\phi)} [\log \frac{P(x,z ; \theta)}{Q(z;\phi)}] \end{aligned}\]

b. 能量模型 (Energy-Based Model)

能量模型是指使用如下概率模型拟合一批真实数据$x_1,x_2,\cdots,x_n$~$p(x)$:

\[q_{\theta}(x) = \frac{e^{-U_{\theta}(x)}}{Z_{\theta}}, Z_{\theta} = \int e^{-U_{\theta}(x)}dx\]

其中$U_{\theta}(x)$是带参数的能量函数;$Z_{\theta}$是配分函数(归一化因子)。

直观地,真实数据应该分布在能量函数中势最小的位置。能量模型的学习过程旨在通过调整能量函数$U_{\theta}(x)$,使得真实数据落入能量函数的极值点处。

不同的能量模型具有不同的能量函数$U_{\theta}(x)$形式。

模型 网络结构 能量函数$U_{\theta}(x)$
Hopfield神经网络 \(-\frac{1}{2}\sum_{i,j}^{} {w_{ij}x_ix_j} - \sum_{i}^{} {b_ix_i}\)
玻尔兹曼机 BM \(-(\sum_{i<j}^{} {w_{ij}x_ix_j} + \sum_{i}^{} {b_{i}x_i})\)
受限玻尔兹曼机 RBM \(-(\sum_{i}^{} {a_ix_i} + \sum_{j}^{} {b_jz_j} + \sum_{i,j}^{} {w_{ij}x_iz_j})\)

⭐扩展阅读:

⚪ 集成学习

集成学习(Ensemble Learning)是指构建多个子模型,并通过某种策略将它们结合起来,从而通过群体决策来提高决策准确率。

若构建的子模型是同种类型的模型(如都是决策树),则集成是同质(homogeneous)的,每个子模型被称为基学习器(base learner),相应的学习算法称为基学习算法(base learning algorithm)。若构建的子模型是不同类型的模型,则集成是异质(heterogenous)的,每个子模型被称为组件学习器(component learner)

通常希望构建的子模型具有一定的准确率(至少不差于弱学习器,即泛化性能略优于随机猜测的学习器),又具有一定的多样性(即不同子模型之间具有一定的差异)。多样性(Diversity)衡量子模型之间的两两不相似性,可通过在学习过程中引入随机性以增强多样性。误差-分歧分解(Error-Ambiguity Decomposition)指出,集成学习中集成模型的泛化误差$E$是由子模型的平均泛化误差$\overline{E}$和子模型的分歧$\overline{A}$共同决定的:

\[E= \overline{E}-\overline{A}\]

根据子模型的构建方式,目前的集成学习方法可以分成两类:

⚪ 强化学习

强化学习(Reinforcement Learning, RL)是指我们给模型一些输入,但是不提供希望的真实输出,根据模型的输出反馈,如果反馈结果接近真实输出,就给其正向激励;如果反馈结果偏离真实输出,就给其反向激励。不断通过反馈-修正这种形式,逐步让模型学习的更好。

⭐扩展阅读:

⚪ 相关课程与书籍

⭐ 扩展阅读:

⭐ 相关课程:

⭐ 相关书籍