机器学习 神经网络(BP)

 神经网络

神经网络,又称人工神经网络 (ANN) 或模拟神经网络 (SNN),是机器学习的一个重要子领域,同时也是深度学习算法的核心。其名称和结构均受到人脑的启发,目的是模拟大脑的某些机理与机制,实现诸如图像识别、语音识别等功能。

基本组成:神经元 + 层

1 神经元

对于神经元的研究由来已久,1904年生物学家就已经知晓了神经元的组成结构。一个神经元通常具有多个树突,主要用来接受传入信息;而轴突只有一条,轴突尾端有许多轴突末梢可以给其他多个神经元传递信息。轴突末梢跟其他神经元的树突产生连接,从而传递信号。这个连接的位置在生物学上叫做“突触

深度学习中被抽象

一个神经元的基本功能是将输入数据加权求和并通过激活函数进行处理得到输出y 

神经元模型

 神经元可以看作一个计算与存储单元。计算是神经元对其的输入进行计算功能。存储是神经元会暂存计算结果,并传递到下一层。当我们用神经元组成网络以后,描述网络中的某个神经元时,我们更多地会用“单元”(unit)来指代,同时由于神经网络的表现形式是一个有向图,有时也会用“节点”(node)来表达同样的意思。

w 是实数的表示权重的向量w⋅x 是点积。bb 是偏置,一个不依赖于任何输入值的常数。

2 感知机 

感知机模型是一种只有一层神经元参与数据处理的最简单的神经网络模型,可以看作是神经元的基本形式之一。与神经元模型的主要区别在于激活函数:感知机是一个简单的二分类模型,只能用于线性可分的数据集。它的目标是找到一个可以将两类数据分开的超平面。如果数据集不是线性可分的,感知机算法无法找到一个合适的解

3 层

单层

最基本的神经元网络形式,由有限个神经元构成,所有神经元的输入向量都是同一个向量

多层

  多层神经网络,即由多个层结构组成的网络系统,它的每一层都是由若干个神经元结点构成,该层的任意一个结点都与上一层的每一个结点相联,由它们来提供输入,经过计算产生该结点的输出并作为下一层结点的输入。第一层称为输入层,最后一层称为输出层,其他中间层称为隐藏层

层在整个网络中 分类:

3.1 基础层级架

  1. 输入层(Input Layer)

    • 接收外部输入数据,每个神经元对应输入数据的一个特征(如图像像素、文本词向量等)‌
    • 不进行数据处理,仅传递数据至隐藏层‌
  2. 隐藏层(Hidden Layer)

    • 位于输入层与输出层之间,负责对输入数据进行非线性变换和特征提取‌
    • 可包含多个子层(如卷积层、循环层等)‌
  3. 输出层(Output Layer)

    • 输出最终结果,神经元数量与任务相关(如分类任务对应类别数,回归任务输出连续值)‌

3.2 功能型层级架构

  1. 卷积层(Convolutional Layer)

    专用于处理网格结构数据(如图像),通过卷积核提取局部特征‌
  2. 全连接层(Fully Connected Layer)

    每个神经元与前一层的所有神经元相连,用于汇总特征并执行线性变换‌
  3. 池化层(Pooling Layer)

    降低数据空间维度,减少计算量并避免过拟合(如最大池化、平均池化)‌池化层没有参数。
  4. 循环层(Recurrent Layer)

    处理时序数据(如文本、时间序列),通过反馈机制传递时间序列信息‌
  5. 激活层(Activation Layer)

    引入非线性函数(如ReLU、Sigmoid),增强网络对复杂模式的表达能力‌
  6. 正规化层(Normalization Layer)

    如批量归一化层(Batch Normalization),通过调整输出分布加速训练并提升稳定性‌

3.3 深度学习常用模型

 1 卷积神经网络(CNN) 卷积神经网络指南

卷积神经网络(CNN)是一种深度学习算法,主要应用于图像识别领域。CNN的价值在于其能够将大数据量的图片有效地降维成小数据量,同时保留图片的特征,这类似于人类的视觉原理。

CNN的基本结构主要包括卷积层池化层全连接层

2 循环神经网络(RNN)

循环神经网络(Recurrent Neural Network, RNN)是一类‌处理序列数据‌的神经网络,通过内部循环结构捕捉序列中的时序信息和语义信息‌ 其核心特点包括:

  • 记忆性‌:通过隐藏状态(hidden state)存储历史信息,实现对序列上下文的理解‌;
  • 参数共享‌:同一权重矩阵在时间步间重复使用,降低模型复杂度‌
  • 图灵完备性‌:理论上可模拟任意计算过程,适合处理复杂序列任务‌ 

RNN的主要应用包括自然语言处理、时间序列预测和语音识别等领域。例如,在自然语言处理任务中,RNN可以用于词性标注、命名实体识别等;在时间序列预测中,RNN可以用于预测股票价格、天气变化等;在语音识别中,RNN可以用于将语音信号转换为文本。

3生成对抗网络(GAN) 

GAN,全称为生成对抗网络,是一种深度学习模型,它的核心原理是通过两个神经网络相互博弈学习产生数据。这两个神经网络分别是生成器判别器。生成器负责从随机噪声中生成数据,试图欺骗判别器以为是真实的数据。判别器则负责判断这些数据是真实还是由生成器生成的。在这场“博弈”中,生成器和判别器不断进行迭代优化,最终实现生成越来越逼真的数据。

GAN的主要应用可以分为两个方面:数据生成无监督学习

 层间数据流方向又分为 前向传播和反向传播

4 前向传播

4.1 定义

前向传播是神经网络从输入数据到输出结果的核心计算流程,通过逐层传递和变换数据实现预测功能

4.2 传播机制

其核心机制包括:

  1. 数据输入与处理

    • 输入层接收原始数据(如图像像素、文本向量等),不做计算直接传递至隐藏层‌
    • 隐藏层对输入数据进行线性加权求和(权重矩阵乘法与偏置项叠加),并通过激活函数(如ReLU、Sigmoid)实现非线性变换‌
  2. 特征传递与输出生成

    每一层的输出作为下一层的输入,最终到达输出层生成预测结果(分类概率或回归值)‌

5  损失函数

5.1 定义与作用

损失函数(Loss Function)是衡量模型预测值与真实值之间差异的函数,通过最小化损失值优化模型参数,提升预测精度‌。其本质是‌量化预测误差‌,并作为模型训练的核心优化目标‌。

每个批次的训练数据送入模型后,通过前向传播输出预测值,然后损失函数会计算出预测值和真实值之间的差异值,也就是损失值。得到损失值之后,模型通过反向传播去更新各个参数,以降低真实值与预测值之间的损失,使得模型生成的预测值更接近真实值,从而达到学习的目的。

  • 位置‌:位于神经网络前向传播(生成预测值)与反向传播(参数更新)之间‌
  • 作用‌:指导模型调整参数以缩小预测与真实值的差距,是模型收敛的关键指标‌ 损失函数越小,说明模型预测值与真实值越接近,模型的鲁棒性就越好。

5.2.2 分类及选择

根据任务类型,损失函数可分为以下两类:

  1. 回归任务

    • 均方误差(MSE)‌:
      • 公式‌:
      • 特点‌:对大误差敏感(平方放大差异),适用于对异常值需严格处理的场景‌
    • 平均绝对误差(MAE)‌:
      • 公式‌:
      • 特点‌:对异常值鲁棒性强,梯度稳定但收敛较慢‌
  2. 分类任务

    • 交叉熵损失(Cross-Entropy)‌:
      • 公式‌(二分类)
      • 特点‌:与Softmax结合用于多分类,通过概率分布差异优化模型,梯度更新高效‌27。
    • 合页损失(Hinge Loss)‌:
      • 公式‌:
      • 特点‌:适用于支持向量机(SVM),强制分类边界最大化‌
  3. 其他改进型

    • Huber Loss‌:结合MSE与MAE,对异常值敏感度介于两者之间‌
    • Triplet Loss‌:用于度量学习,通过锚点、正样本、负样本的间距优化特征表示‌

选择损失函数的基本要求是衡量模型输出分布和样本标签分布之间的接近程度。此外,根据特定的预测建模问题(如分类或回归),损失函数的选择必须匹配问题的框架。例如,对于神经网络模型,输出层的参数选择也必须与所选的损失函数相适应。因此,如何选择合适的损失函数是问题抽象建模中的关键步骤。

选择建议

  1. ‌任务类型‌:
    • ‌回归‌:优先MSE(需严格惩罚大误差)或MAE(需鲁棒性)‌
    • ‌分类‌:交叉熵损失(概率输出场景)或Hinge Loss(边界清晰场景)‌
  2. ‌样本平衡‌:
    • 类别不平衡时,可对交叉熵损失加权,缓解少数类被忽略的问题‌
  3. ‌优化效率‌:
    • 结合正则化(如L1/L2)防止过拟合,提升泛化能力‌

6 反向传播

6.1 定义与作用

反向传播基于链式法则计算损失函数对网络参数的梯度,用于优化模型性能。

反向传播是训练神经网络的核心,它用于计算损失函数关于每个权重的梯度,并通过梯度下降算法来更新权重。

6.2 传播机制

其核心步骤为:

  1. 梯度计算原理

    从输出层反向逐层计算损失函数对权重和偏置的偏导数,利用链式法则分解复合函数的导数‌
    • 计算损失函数对输出的梯度
      在这里插入图片描述

    • 计算每一层的误差

      然后,通过链式法则逐层将误差向后传播,计算每一层的误差

    • 在这里插入图片描述

    • 计算权重和偏置的梯度

      然后,计算每一层的权重和偏置的梯度

      在这里插入图片描述

  2. 参数更新机制

    • 通过梯度下降或自适应优化器(如Adam)调整权重和偏置,最小化损失函数‌;
    • 更新公式示例:

      在这里插入图片描述

7 激活函数

7.1 定义与核心作用

激活函数(Activation Function)是人工神经网络中神经元上运行的非线性函数,负责将输入信号映射到输出端,从而引入非线性特性‌ 若没有激活函数,无论神经网络有多少层,其输出仅为输入的线性组合(即原始的感知机模型),无法处理复杂的非线性问题‌

7.2、常见类型及特性

  1. Sigmoid 能将输入值压缩到0和1之间,常用于二分类问题的输出层。‌

    • 表达式‌:输出范围(0,1)。
    • 优点‌:输出可视为概率,适合二分类问题的输出层‌56。
    • 缺点‌:梯度消失问题显著(输入极大/极小时梯度趋近于0);输出非零中心化‌
  2. Tanh  与Sigmoid类似,但输出范围是-1到1,常用于二分类问题的输出层。‌

    • 表达式‌:,输出范围(-1,1)。
    • 特点‌:以0为中心,缓解了Sigmoid的非对称问题,但仍存在梯度消失‌
  3. ReLU(Rectified Linear Unit) ReLU是目前最常用的激活函数之一,因为它能够缓解梯度消失问题‌

    • 表达式‌:
    • 优点‌:计算高效,缓解梯度消失(正区间梯度恒为1);广泛用于卷积神经网络(CNN)的隐藏层‌
    • 缺点‌:负区间输出为0,可能导致神经元“死亡”‌
  4. Leaky ReLU/ELU

    • 改进‌:负区间引入小斜率(Leaky ReLU)或指数修正(ELU),缓解神经元死亡问题‌
  5. Softmax

    ‌                                                                          作用‌:将输出归一化为概率分布,适用于多分类任务的输出层‌

7.3 选择建议

  1. 隐藏层‌:优先使用ReLU及其变体(如Leaky ReLU),因计算高效且能缓解梯度消失‌
  2. 输出层‌:
    • 二分类:Sigmoid;
    • 多分类:Softmax‌
  3. 梯度敏感场景‌:避免Sigmoid/Tanh(易梯度消失),可结合批归一化(Batch Normalization)优化输入分布‌

通过合理选择激活函数,可显著提升神经网络的非线性建模能力,适应图像识别、自然语言处理等复杂任务的需求‌。

常用激活函数及及分布

参 https://zhuanlan.zhihu.com/p/678231997

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值