【科普】贝叶斯神经网络与分形神经网络

贝叶斯神经网络

贝叶斯神经网络(Bayesian Neural Network,BNN )是一类结合了贝叶斯推断神经网络 的模型。它的核心思想是:不像传统神经网络那样学习固定的参数值(即网络权重),BNN 会学习这些参数的概率分布 。这样可以更好地量化不确定性,提高模型在不确定环境下的鲁棒性。


🔧 传统神经网络 vs 贝叶斯神经网络

特点 传统神经网络 贝叶斯神经网络
参数(权重) 固定值(点估计) 概率分布
输出 单值预测 预测分布
不确定性表示 没有或依赖于 dropout 等近似方法 内在地建模参数和预测的不确定性
优点 高效、易训练 不确定性建模、可避免过拟合
缺点 不提供置信度 推理成本高、训练复杂

🧠 BNN 的核心思想

BNN 采用贝叶斯公式:

P ( θ ∣ D ) = P ( D ∣ θ ) P ( θ ) P ( D ) P(\theta | D) = \frac{P(D | \theta) P(\theta)}{P(D)} P(θ∣D)=P(D)P(D∣θ)P(θ)

其中:

  • θ \theta θ:模型参数(如网络权重)
  • P ( θ ) P(\theta) P(θ):先验分布
  • P ( D ∣ θ ) P(D|\theta) P(D∣θ):似然函数
  • P ( θ ∣ D ) P(\theta|D) P(θ∣D):后验分布

我们不再学习一个确定的 θ \theta θ,而是学习其后验分布


🔁 推理过程

由于后验分布一般不可解析,BNN 常用近似推理方法:

常见推理方法包括:
  1. 变分推断(Variational Inference)

    用一个简单的分布 q ( θ ) q(\theta) q(θ) 去近似真实的后验分布 P ( θ ∣ D ) P(\theta | D) P(θ∣D)。

  2. 马尔可夫链蒙特卡洛(MCMC)采样

    精度高但计算开销大。

  3. 贝叶斯 dropout(Monte Carlo Dropout)

    在测试时启用 dropout 多次,近似后验采样,简单有效。


✅ BNN 的优势

  • 提供预测的不确定性(例如医疗、自动驾驶中的决策更可靠)
  • 抑制过拟合(通过先验正则)
  • 可与主动学习、强化学习等结合良好

🚫 挑战

  • 训练成本高(需要估计后验分布)
  • 模型复杂度增加
  • 推理速度慢于传统网络

🧪 PyTorch 中的 BNN 示例(简化版)

python 复制代码
import torch
import torch.nn as nn
import torch.nn.functional as F

class BayesianLinear(nn.Module):
    def __init__(self, in_features, out_features):
        super().__init__()
        self.w_mu = nn.Parameter(torch.Tensor(out_features, in_features).normal_(0, 0.1))
        self.w_logvar = nn.Parameter(torch.Tensor(out_features, in_features).normal_(-3, 0.1))
    
    def forward(self, x):
        epsilon = torch.randn_like(self.w_mu)
        w_sample = self.w_mu + torch.exp(0.5 * self.w_logvar) * epsilon
        return F.linear(x, w_sample)

# 用法类似普通神经网络

📚 推荐资源


分形神经网络

分形神经网络(Fractal Neural Network, FNN)是一类受自然界分形结构 启发的神经网络结构。它的核心理念是:通过自相似(self-similar)结构 来构建深度网络,以提高模型的表达能力和泛化能力,同时缓解梯度消失或爆炸等深度网络中的常见问题。


🧠 什么是分形结构?

在数学中,分形(Fractal)是具有自相似性的结构------整体与局部在形态上是相似的。例如:雪花、费尔南德斯三角形、树木、血管等自然结构。


🔧 分形神经网络的核心结构

分形神经网络中,一个典型的模块通过递归组合更小的网络结构来构造大网络,如图:

复制代码
F(C) = [F(C), F(C)] + C

这意味着:一个大的网络由多个小网络的组合构成,且每个小网络结构和大的结构是一样的(递归自我复制)。

🎯 举例:FractalNet(ICLR 2017)

FractalNet 是一个代表性的分形神经网络架构,由德国波恩大学提出。其特点是:

  • 多个路径、不同深度:网络中的每个分支代表一个不同深度的子网络
  • 自相似结构:使用统一的模块递归构建
  • drop-path 正则化:训练时随机丢弃某些路径,防止过拟合并增强鲁棒性

🏗️ 构造原理

一个深度为 n 的 Fractal Block 定义为:

F n ( x ) = Concat ( F n − 1 ( F n − 1 ( x ) ) , F n − 1 ( x ) ) F_{n}(x) = \text{Concat}(F_{n-1}(F_{n-1}(x)), F_{n-1}(x)) Fn(x)=Concat(Fn−1(Fn−1(x)),Fn−1(x))

其中 F_0 是基础卷积模块。

每一层都由前面层的重复结构构建,最终形成"树状结构"。


✅ 优势

优势 说明
多路径学习 类似 ResNet 的跳跃连接,多个深度路径并行
稀疏激活 每个样本可能只激活部分路径,形成类似 ensemble 效果
容易训练 由于浅层路径存在,梯度传导不再依赖太深的网络
自动选择路径 drop-path 类似强化学习中的 policy sampling,可自动选择最优深度

🧪 FractalNet 的 PyTorch 伪代码结构

python 复制代码
class FractalBlock(nn.Module):
    def __init__(self, conv, depth):
        super().__init__()
        self.depth = depth
        if depth == 1:
            self.block = conv()
        else:
            self.left = FractalBlock(conv, depth-1)
            self.right = FractalBlock(conv, depth-1)
    
    def forward(self, x):
        if self.depth == 1:
            return self.block(x)
        else:
            left = self.left(self.left(x))
            right = self.right(x)
            return (left + right) / 2

你可以将 conv() 替换为任意的 CNN 层模块。


🤔 分形神经网络 vs ResNet vs DenseNet

特性 ResNet DenseNet FractalNet
跳跃连接 是(结构性)
多路径结构
自动路径选择 是(drop-path)
模块构造方式 手动 累积连接 递归分形构造

📚 推荐资源


如果你想我为你:

  • 画出 FractalNet 的结构图
  • 写一个完整的 FractalNet 网络代码
  • 分析它在图像分类或NLP中的表现
相关推荐
SHIPKING3931 小时前
【机器学习&深度学习】LMDeploy的分布式推理实现
人工智能·深度学习
mit6.8241 小时前
[RestGPT] docs | RestBench评估 | 配置与环境
人工智能·python
CareyWYR2 小时前
每周AI论文速递(250818-250822)
人工智能
门思科技2 小时前
LoRaWAN 的网络拓扑全解析:架构、原理与应用实践
服务器·网络·人工智能·科技·物联网·架构
兔子的倔强2 小时前
Transformer在文本、图像和点云数据中的应用——经典工作梳理
人工智能·深度学习·transformer
lxmyzzs3 小时前
【图像算法 - 21】慧眼识虫:基于深度学习与OpenCV的农田害虫智能识别系统
人工智能·深度学习·opencv·算法·yolo·目标检测·计算机视觉
Gloria_niki3 小时前
机器学习之K 均值聚类算法
人工智能·机器学习
AI人工智能+3 小时前
表格识别技术:通过图像处理与深度学习,将非结构化表格转化为可编辑结构化数据,推动智能化发展
人工智能·深度学习·ocr·表格识别
深圳多奥智能一卡(码、脸)通系统4 小时前
智能二维码QR\刷IC卡\人脸AI识别梯控系统功能设计需基于模块化架构,整合物联网、生物识别、权限控制等技术,以下是多奥分层次的系统设计框架
人工智能·门禁·电梯门禁·二维码梯控·梯控·电梯
批量小王子4 小时前
2025-08-19利用opencv检测图片中文字及图片的坐标
人工智能·opencv·计算机视觉