机器学习入门(吃瓜第六章 支持向量机)

目录

1. M-P 神经元

2. 感知机(分类模型)

2.1 sgn 函数

2.2 感知机

1)模型

2)策略

3)算法

3. 神经网络

3.1 优点

3.2 缺点

3.3 经典神经网络——多层前馈网络

3.4 神经网络训练方法——BP 算法

3.5 反向传播算法

4. 总结

参考文献


1. M-P 神经元

M-P 神经元,全称为 McCulloch-Pitts 神经元,是一种用于模拟生物神经元功能的数学模型。该模型由 Warren McCulloch 和 Walter Pitts 于 1943 年提出,是人工智能和计算神经科学领域的重要早期模型。

M-P 神经元接收 n 个输入(通常来自其他神经元),并对各个输入赋予权重,计算加权和,然后与神经元特有的阈值 θ 进行比较(作减法)。最后,经过激活函数(模拟“抑制”和“激活”)处理得到输出(通常传递给下一个神经元):

y = f\left( \sum_{i=1}^{n} w_i x_i - \theta \right) = f(w^T x + b)

单个 M-P 神经元可以构成感知机(使用 sgn 作为激活函数)或对数几率回归(使用 sigmoid 作为激活函数),多个 M-P 神经元可以构成神经网络。

2. 感知机(分类模型)

2.1 sgn 函数

sgn 函数,或称为符号函数(sign function),是一个用于确定实数符号的数学函数。sgn 函数的定义如下:

  • 当 x>0x > 0x>0 时,sgn(x) = 1
  • 当 x=0x = 0x=0 时,sgn(x) = 0
  • 当 x<0x < 0x<0 时,sgn(x) = -1

2.2 感知机

1)模型

感知机的具体公式如下:

y = \text{sgn}(w^T x - \theta) = \begin{cases} 1 & \text{if } w^T x - \theta \geq 0 \\ 0 & \text{if } w^T x - \theta < 0 \end{cases}

其中, x \in \mathbb{R^N}为样本的特征向量,是感知机模型的输入;w \in \mathbb{R}^n\theta\是感知机模型的参数,分别为权重和阈值。

从几何角度来看,给定一个线性可分的数据集T ,感知机的学习目标是找到能将数据集T中的正负样本完全正确划分的超平面,w^T x - \theta 即为超平面方程。 n 维空间中的超平面w^T x + b = 0具有以下特点:

1. 超平面方程不唯一 ;

2. 法向量 w垂直于超平面 - 法向量w 和位移项b 确定一个唯一的超平面 ;

3. 法向量w 指向的那一半空间为正空间,另一半为负空间。

缺点:感知机只能解决线性可分的问题。

模型图如下所示,只包含一个输入层和一个输出层。

2)策略

感知机的学习策略是随机初始化wb,将所有训练样本带入模型找出误分类样本。假设误分类样本的集合为M \subseteq T,对任意一个误分类样本 (x, y) \in M来说:

w^T x - \theta \geq 0时,模型输出\hat{y} = 1 \,但真实标记为y = 0

w^T x - \theta < 0时,模型输出\hat{y} = 0 ,但真实标记为 y = 1

综合两种情况可知,以下公式恒成立:(\hat{y} - y)(w^T x - \theta) \geq 0

所以,给定数据集T ,损失函数可以定义为:

L(w, \theta) = \sum_{x \in M} (\hat{y} - y)(w^T x - \theta)

如果没有误分类点,损失函数值为 0。当误分类点越少且离超平面越近,损失函数值越小。 损失函数还可以进一步优化,将\theta  并入w向量中成为第 n+1 维,其中x 的第 n+1 维恒为 -1。简化后的损失函数为:

L(w) = \sum_{x \in M} (\hat{y} - y) w^T x

3)算法

当误分类样本集合  M固定时,可以求得损失函数L(w)  的梯度:\nabla_w L(w) = \sum_{x_i \in M} (\hat{y}_i - y_i) x_i

学习算法具体采用随机梯度下降法,即每次随机选取一个误分类点进行梯度下降。权重 w 的更新公式为:

w \leftarrow w + \Delta w

\Delta w = -\eta (\hat{y}_i - y_i) x_i = \eta (y_i - \hat{y}_i) x_i

其中\eta为学习率。最终解出来的w通常不唯一。

3. 神经网络

为了解决线性不可分的数据集问题(感知机无法解决,但其他单个神经元模型可以),提出了由多个神经元构成的神经网络。根据通用近似定理,只需一个包含足够多神经元的隐层,多层前馈网络(最经典的神经网络之一)就能以任意精度逼近任意复杂度的连续函数。

3.1 优点

  1. 广泛的应用能力:神经网络既能用于回归问题,也能用于分类问题,显示出很强的通用性。
  2. 减少特征工程:神经网络能够自动提取特征,减少了复杂的人工特征工程工作量。

3.2 缺点

  1. 架构设计依赖经验:在具体应用场景中,如何选择神经网络的深度和宽度没有明确的理论指导,通常依赖于经验和实验。
  2. 结构设计缺乏理论支撑:在设计神经网络的结构时,没有强有力的理论指导,设计最合理的网络结构需要反复尝试和优化。
  3. 可解释性差:神经网络的输出结果通常难以解释,模型的决策过程不透明,这在需要高可解释性的应用中是一个挑战。模型的可解释性对于指导特征调整非常重要。

3.3 经典神经网络——多层前馈网络

每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。

可以将神经网络(NN)看作一个特征加工函数:

x \in \mathbb{R}^d \rightarrow NN(x) \rightarrow y = x^* \in \mathbb{R}^l

回归:后面接一个\mathbb{R}^l \rightarrow \mathbb{R}的神经元,形式为 y = w^T x^* + b

分类:后面接一个  \mathbb{R}^l \rightarrow [0, 1]的神经元,例如激活函数为 sigmoid 的神经元,形式为:

y = \frac{1}{1 + e^{-(w^T x^* + b)}}

神经网络可以自动提取特征,不用人为的手工设计特征。

3.4 神经网络训练方法——BP 算法

在20世纪80年代之前,尽管神经网络已经存在一段时间,但其实际应用受到了限制,主要原因在于无法有效地训练多层神经网络。在此背景下,1986年,David E. Rumelhart、Geoffrey E. Hinton 和 Ronald J. Williams 在他们的论文《Learning Representations by Back-Propagating Errors》中提出了反向传播算法。这一算法为多层前馈神经网络的训练提供了有效的方法,使得神经网络可以在更复杂的问题上展现出强大的表现力。

3.5 反向传播算法

反向传播算法(Backpropagation,简称BP)是一种基于随机梯度下降(SGD)的参数更新算法。在处理多层神经网络时,反向传播通过链式法则有效地计算每个参数的梯度,而随机梯度下降则利用这些梯度来更新权重,从而实现网络的高效训练。

反向传播算法与随机梯度下降相辅相成,共同实现了多层神经网络的高效训练。以下是以输入层第 i个神经元与隐层第 h 个神经元之间的连接权重为例的推导:

损失函数:

E_k = \frac{1}{2} \sum_{j=1}^{l} (\hat{y}_j^k - y_j^k)^2

权重的更新量:

\Delta v_{ih} = -\eta \frac{\partial E_k}{\partial v_{ih}}

通过链式求导得到:

\frac{\partial E_k}{\partial v_{ih}} = \sum_{j=1}^l \frac{\partial E_k}{\partial \hat{y}_j^k} \cdot \frac{\partial \hat{y}_j^k}{\partial \beta_j} \cdot \frac{\partial \beta_j}{\partial b_h} \cdot \frac{\partial b_h}{\partial \alpha_h} \cdot \frac{\partial \alpha_h}{\partial v_{ih}}

反向传播的关键步骤

  1. 前向传播:计算每一层的输出,直到得到网络的最终输出。
  2. 计算损失:根据输出和目标值,计算损失函数 EEE。
  3. 反向传播:通过链式法则计算损失函数关于每个权重的梯度。
  4. 更新权重:使用梯度下降法更新权重。

4. 总结

  • M-P 神经元 是一种早期重要的数学模型,用于模拟生物神经元的功能。
  • 感知机 是基于 M-P 神经元的分类模型,适用于线性可分的数据。
  • 神经网络 由多个神经元构成,能够解决线性不可分的问题,并且具有很强的函数逼近能力。
  • 反向传播算法(BP算法) 是训练神经网络的核心方法,通过梯度下降法实现高效训练。

参考文献

[1] 【吃瓜教程】《机器学习公式详解》(南瓜书)与西瓜书公式推导
[2] 周志华.机器学习[M].清华大学出版社,2016.
[3] 谢文睿 秦州 贾彬彬.机器学习公式详解第2版[M].人民邮电出版社,2023.

相关推荐

  1. 机器学习 -- 支持向量

    2024-07-10 04:48:04       49 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 04:48:04       49 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 04:48:04       53 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 04:48:04       42 阅读
  4. Python语言-面向对象

    2024-07-10 04:48:04       53 阅读

热门阅读

  1. 在Spring Boot项目中使用Leyden

    2024-07-10 04:48:04       25 阅读
  2. 大模型推理:vllm多机多卡分布式本地部署

    2024-07-10 04:48:04       44 阅读
  3. 调度的艺术:Eureka在分布式资源调度中的妙用

    2024-07-10 04:48:04       27 阅读
  4. 前后端的身份认证(学习自用)

    2024-07-10 04:48:04       23 阅读
  5. 计算机网络和因特网

    2024-07-10 04:48:04       25 阅读
  6. MySQL DDL

    MySQL DDL

    2024-07-10 04:48:04      25 阅读
  7. vue父子组件通信实现模糊搜索功能

    2024-07-10 04:48:04       23 阅读
  8. C#与物联网:打造智能家居解决方案

    2024-07-10 04:48:04       31 阅读