【周志华 机器学习】入门 (中)

目录

四、神经网络

4.1 什么是神经网络 ? 

4.2“简单单元”神经元模型

4.3 神经元的"激活函数"

4.4 多层前馈网络(Multilayer Feedforward Neural Network)

4.4.1 结构

4.4.2 工作原理

五、支持向量机(Support Vector Machine,SVM)

5.1 定义和历史

5.2 数学原理

5.2.1 线性可分

5.2.2 非线性问题


四、神经网络

4.1 什么是神经网络 ? 

神经网络是由具有适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。

4.2“简单单元”神经元模型

神经元是神经网络中的基本构建块。在“简单单元”神经元模型中,每个神经元接收来自其它神经元或外部输入的信息,并进行处理后输出一个结果。

以下为神经元模型的几个重要组成部分:

  • 输入:神经元接收来自上一层神经元或外部输入的信号。
  • 权重:每个输入信号都与一个权重相关联,权重决定了每个输入对神经元的影响程度。权重可以调整,通过这种方式神经网络学习适应不同的任务和数据模式。
  • 激活函数:神经元接收加权输入后,将其作为输入传递给激活函数。激活函数决定神经元是否应该被激活,这种非线性映射是神经网络能够学习非线性函数的关键。
  • 输出:激活函数处理后的结果成为神经元的输出,可能会传递到网络中的下一层神经元或作为最终的网络输出。

4.3 神经元的"激活函数"

理想的激活函数是阶跃函数,0表示抑制神经元而1表示激活神经元

常见激活函数:

  • Sigmoid函数:\sigma(x) = \frac{1}{1 + e^{-x}}

特点:将输入压缩到 (0, 1) 的范围内,输出是一个平滑的曲线。在早期的神经网络中广泛使用,但现在由于存在梯度消失和输出非零均值的问题,使用已经有所减少。

  • ReLU函数\text{ReLU}(x) = \max(0, x)

特点:在输入为正时,输出与输入相等;在输入为负时,输出为零。简单高效,能够加速训练过程。但可能会导致“神经元死亡”问题(某些神经元在训练过程中永远不会被激活)。

  • Leaky ReLU函数

特点:解决了ReLU可能出现的神经元死亡问题,对负值有一个小的斜率,使得即使是负数输入,也能有一个非零的梯度。

4.4 多层前馈网络(Multilayer Feedforward Neural Network)

多层前馈神经网络是一种经典的神经网络结构,通常包括多个隐藏层。这种网络结构是指数据流只朝一个方向传播,不形成环路或循环连接。

4.4.1 结构

1.输入层:接收外部输入数据,每个输入节点对应一个输入特征。

2.隐藏层:位于输入层和输出层之间,负责处理输入数据并提取特征。隐藏层可以有一个或多个,每个隐藏层包含若干个神经元(或称节点)。

3.输出层:生成最终输出,如分类结果或预测值。输出层的神经元数量通常取决于任务的需求。

4.4.2 工作原理

1.输入数据:数据从输入层进入网络,每个特征对应一个输入节点。

2.权重和偏置:每个连接(即每个神经元之间的连接)都有一个权重,初始时这些权重是随机分配的。每个神经元还有一个偏置值。

3.激活函数:输入数据经过权重和偏置的线性变换后,通过激活函数(如Sigmoid、ReLU等)处理,引入非线性因素,使得神经网络能够学习复杂的模式。

3.前向传播:数据从输入层经过隐藏层逐层传递到输出层,层与层之间通过激活函数处理后的值传递。

4.损失函数:输出层的输出与真实值进行比较,通过损失函数(如均方误差)计算误差。

5.反向传播:根据误差,通过反向传播算法(Back Propagation, BP)调整权重和偏置,以减少误差。这个过程通过梯度下降等优化算法实现。

五、支持向量机(Support Vector Machine,SVM)

5.1 定义和历史

支持向量机是一种由Vladimir Vapnik等人提出的监督学习算法,最初用于解决分类问题,后来也扩展到回归问题。其主要思想是在特征空间中找到一个最优的超平面,用于对数据进行分类或回归。

5.2 数学原理

5.2.1 线性可分

在理想情况下,如果训练数据可以被一个超平面完全分开,即线性可分,那么支持向量机的任务就是找到一个最大间隔超平面,来实现分类。

  • 数学形式(求解凸二次优化问题)

\min_{\mathbf{w}, b} \frac{1}{2} | \mathbf{|w|} |^2

\text{subject to } y_i (\mathbf{w}^T \cdot \mathbf{x}_i + b) \geq 1 \quad \forall i = 1, \ldots, n

  • 对偶形式

通过拉格朗日对偶性质,可以将原始优化问题转化为对偶问题。

对偶形式的目标是最大化关于拉格朗日乘子\alpha_i的函数\sum_{i=1}^{n} \alpha_i - \frac{1}{2} \sum_{i=1}^{n} \sum_{j=1}^{n} \alpha_i \alpha_j y_i y_j \mathbf{x}_i \cdot \mathbf{x}_j

其中约束条件为:

  • \alpha_i \geq 0
  • \sum_{i=1}^{n} \alpha_i y_i = 0

解出\alpha后,求出\mathbf{w}和b即可得f(\mathbf{x}) =\mathbf{w}^T\mathbf{x}+b= \sum_{i=1}^{n} \alpha_i y_i \mathbf{x}^T_i \cdot \mathbf{x} + b

5.2.2 非线性问题

线性SVM只能处理线性可分的情况,为了处理非线性问题,引入了核函数的概念。

核函数能够将输入特征映射到更高维的空间中,使得原本线性不可分的问题在新的空间中变得线性可分。

常见的核函数包括:

  • 线性核(Linear Kernel):K(\mathbf{x}_i, \mathbf{x}_j) = \mathbf{x}_i \cdot \mathbf{x}_j对应于原始的线性支持向量机。
  • 多项式核(Polynomial Kernel):K(\mathbf{x}_i, \mathbf{x}_j) = ( \gamma \mathbf{x}_i \cdot \mathbf{x}_j + r)^d
  • 径向基函数核(RBF Kernel):K(\mathbf{x}_i, \mathbf{x}_j) = \exp(-\gamma | \mathbf{x}_i - \mathbf{x}_j |^2)

通过使用核函数,可以将对偶问题中的内积 \mathbf{x}_i \cdot \mathbf{x}_j 替换为核函数 K(\mathbf{x}_i, \mathbf{x}_j) ,从而将线性SVM扩展到非线性情况,提高了模型的适应能力和灵活性。

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值