神经网络基础讲解 一

发布于:2025-06-20 ⋅ 阅读:(20) ⋅ 点赞:(0)

​一.神经网络

​1. 全连接神经网络(Fully Connected Network, FCN)​

​核心概念:​

  • ​输入层​​:接收原始数据(如数字、图片像素等)   数字矩阵 。
  • ​隐藏层​​:对数据进行计算和变换(可以有多个隐藏层)。
  • ​输出层​​:给出最终结果(如分类标签、预测值等)。

​计算方式:​
每个神经元的输出计算如下:

a=h(w⋅x+b)

  • x:输入数据
  • w:权重(决定输入的重要程度)
  • b:偏置(调整输出的偏移)
  • h:激活函数(如 ReLU、Sigmoid,让网络能学习复杂模式)

​特点:​

  • ​全连接​​:每一层的每个神经元都与下一层的所有神经元相连。
  • ​适合简单任务​​(如分类数字、预测房价),但处理图像等高维数据时效率较低。

​2. 神经网络的训练与优化​

​核心目标:​
找到最佳的 ​​权重(w)​​ 和 ​​偏置(b)​​,让模型的预测尽可能准确。

​训练过程:​

  1. ​前向传播​​:输入数据经过网络计算,得到预测值 y。
  2. ​计算误差​​:用 ​​损失函数(Loss Function)​​ 衡量预测值与真实值的差距。
  3. ​反向传播​​:从输出层反向调整 w 和 b,让误差变小。
  4. ​优化算法​​(如梯度下降):不断更新参数,使模型越来越准。

​简单理解:​

  • 就像学习骑自行车,一开始会摔倒(误差大),但通过不断调整(优化参数),最终能骑得稳(预测准)。

​3. 卷积神经网络(CNN)的引入​
​为什么需要 CNN?​
全连接网络在处理图片时:
  • ​参数太多​​(一张 100x100 的图片,全连接层可能有上百万参数!)
  • ​计算太慢​​,且容易过拟合。

​CNN 的核心:卷积核(Filter)​

  • ​作用​​:像一个小窗口,在图片上滑动,提取局部特征(如边缘、纹理)。
  • ​优点​​:
    • ​参数更少​​(共享权重,减少计算量)。
    • ​保留空间信息​​(适合图像、视频等数据)。

​典型结构:​

  1. ​卷积层(Convolution)​​:提取特征
  2. ​池化层(Pooling)​​:降低数据量(如取最大值或平均值)
  3. ​全连接层(FC)​​:最终分类或回归

​适用场景:​

  • 图像识别(如人脸检测、物体分类)
  • 视频分析、医学影像处理等

​总结对比​
​网络类型​ ​适用场景​ ​核心特点​
​全连接网络(FCN)​ 简单分类、回归(如房价预测) 所有神经元相连,参数多
​卷积网络(CNN)​ 图像、视频等空间数据 用卷积核提取特征,参数更高效

​为什么需要激活函数?​

​核心问题:​
如果不用激活函数,多层神经网络会退化成“单层线性模型”。

  • ​例子​​:假设激活函数是线性的,比如 h(x)=2x,那么一个 3 层网络的计算过程是:y(x)=h(h(h(x)))=2×2×2×x=8x这其实等价于单层网络 y(x)=8x,多层网络没有发挥任何优势。

​关键作用:​
激活函数引入​​非线性​​,使得神经网络可以:

  • 学习复杂模式(比如图像中的曲线、文本中的语义关系)。
  • 解决线性模型无法处理的问题(如分类复杂数据)。
  • 让深层网络真正发挥“深度”价值,而不是简单堆叠线性计算。

​1. Sigmoid 激活函数​

​公式:​

​特点:​
✅ ​​优点​​:

  • 输出在 (0,1) 之间,适合做​​概率输出​​(比如二分类问题,判断“是猫”或“不是猫”)。
  • 计算简单,早期神经网络常用。

❌ ​​缺点​​:

  1. ​梯度消失​​:
    • 当输入 z 很大或很小时,导数 y′ 接近 0,导致参数(w,b)几乎不更新,深层网络训练困难。
    • 比如,z=10 时,y≈1,y′≈0,梯度几乎消失。
  2. ​输出不对称​​: 
    •         输出恒为正(> 0),导致后续层的输入总是正数,影响参数优化效率。
  3. ​训练慢​​:
    •         梯度更新方向不稳定,优化过程耗时较长。

​适用场景​​:二分类问题的输出层(现代神经网络隐藏层一般不用 Sigmoid)。


​2. Tanh 激活函数​

​公式:​

​特点:​
✅ ​​优点​​(相比 Sigmoid):

  1. ​输出对称​​:
    • 输出在 (-1, 1) 之间,以 0 为中心,缓解了 Sigmoid 的“恒正”问题,训练更稳定。
  2. ​收敛更快​​:
    • 梯度更新更合理,模型训练速度比 Sigmoid 快。

❌ ​​缺点​​:

  1. ​梯度消失仍然存在​​:
    • 当 ∣z∣ 很大时,导数 y′ 接近 0,深层网络依然可能训练困难。
  2. ​非线性能力有限​​:
    • 和 Sigmoid 类似,Tanh 仍然是“饱和型”激活函数,对复杂数据的拟合能力不如 ReLU 等现代激活函数。

​适用场景​​:RNN、LSTM 等序列模型(隐藏层),二分类问题的输出层(替代 Sigmoid)。


​对比​
​激活函数​ ​输出范围​ ​优点​ ​缺点​ ​适用场景​
​Sigmoid​ (0, 1) 适合概率输出,计算简单 梯度消失、训练慢、输出不对称 二分类输出层
​Tanh​ (-1, 1) 输出对称,训练比 Sigmoid 快 仍有梯度消失问题 RNN/LSTM 隐藏层

3. ​​ReLU & Leaky ReLU 激活函数


​一、ReLU(修正线性单元)​

​1. 公式与计算规则​

  • ​直观理解​​:输入 > 0 时,直接输出原值;输入 ≤ 0 时,输出 0。反向传播时,正输入的梯度恒为 1,负输入的梯度为 0。

​2. 核心优势​​ ✅

  1. ​解决梯度消失​​:正区间的梯度恒为 1,深层网络训练时梯度能稳定传递(不像 Sigmoid/Tanh 会接近 0)。
  2. ​计算极快​​:只需判断是否大于 0,没有指数、除法等复杂运算,适合大规模网络(如 CNN、Transformer)。
  3. ​稀疏激活​​:负输入直接输出 0,让部分神经元“关闭”,提升模型效率。

​3. 主要缺点​​ ❌
​神经元死亡问题​​:

  • 如果某个神经元的输入长期 ≤ 0(比如初始化不好或学习率太高),它的梯度永远是 0,参数无法更新,这个神经元就“死”了,失去作用。
  • 影响:部分神经元失效,降低模型表达能力。

​适用场景​​:

  • ​绝大多数深度学习模型​​(如 CNN、全连接网络)的隐藏层默认选择。
  • 代表网络:ResNet、VGG、AlexNet 等。

​二、Leaky ReLU(带泄漏的 ReLU)​

​1. 公式与计算规则​

  • ​直观理解​​:输入 > 0 时和 ReLU 一样;输入 ≤ 0 时,输出一个很小的比例(如 0.01 倍),而不是直接归零。

​2. 核心优势​​ ✅
​解决神经元死亡​​:

  • 负输入也有微小梯度(如 0.01),神经元不会完全“死掉”,保留了学习能力。

​3. 主要缺点​​ ❌

  1. ​需要调参​​:泄漏系数 a 是人工设定的(通常 0.01),不同任务可能需要调整。
  2. ​训练可能不稳定​​:正负区间的处理方式不同,可能导致梯度更新波动。

​适用场景​​:

  • 担心 ReLU 神经元死亡的场景(如训练不稳定或深层网络)。
  • 改进版:​​PReLU​​(Parametric ReLU),让 a 变成可学习的参数,自动优化。

​三、对比
​特性​ ​ReLU​ ​Leaky ReLU​
​计算速度​ ⚡️ 极快(主流选择) ⚡️ 快(稍慢于 ReLU)
​梯度消失​ ✅ 正区间无消失 ✅ 正区间无消失
​神经元死亡​ ❌ 可能死亡 ✅ 缓解死亡问题
​超参数​ 需设定泄漏系数 a

二. 损失函数

1. 均方误差损失函数


    网站公告

    今日签到

    点亮在社区的每一天
    去签到