Broad Learning System (BLS) 宽度学习系统

        宽度学习(Broad Learning System, BLS)是一种有效的神经网络学习框架,旨在通过扩展网络的宽度而不是深度来提高学习能力和效率。与传统的深度学习相比,宽度学习通过堆叠多层特征节点和增强节点来构建网络,从而避免了深度学习中常见的梯度消失和复杂的训练过程。

BLS结构以及增量算法 

        宽度学习系统在 RVFLNN 基础上做出了改进。首先,宽度学习可以利用别的模型提取到的特征来训练,即可以和别的机器学习算法灵活地结合。其次,宽度学习中加入了增量学习算法,它允许在网络结构中加入新的结点时,以很小的计算开销来更新网络权重。这一特性使 BLS 在面对大规模的数据时,相对于深度结构具有巨大的优势。

通过 (a) 图基于 Pytorch 简单实现的 BLS 模型 :

class BLS(nn.Module):
    def __init__(self, input_dim, num_feature_nodes, num_enhancement_nodes, output_dim):
        super(BLS, self).__init__()
        # Step 1: Define feature mapping layers
        self.feature_layers = nn.ModuleList([nn.Sequential(
            nn.Linear(input_dim, num_feature_nodes),
            nn.ReLU()) for _ in range(num_feature_nodes)])

        # Step 2: Define enhancement nodes
        self.enhancement_layers = nn.ModuleList([nn.Sequential(
            nn.Linear(num_feature_nodes * num_feature_nodes, num_enhancement_nodes),  # 100,400
            nn.ReLU()) for _ in range(1)])

        # Step 3: Output layer
        self.output_layer = nn.Linear(
            num_feature_nodes * num_feature_nodes + num_enhancement_nodes, output_dim)

    def forward(self, x):
        print(x.shape) # torch.Size([32, 224])
        # Generate feature nodes Z^n
        Z = torch.cat([layer(x) for layer in self.feature_layers], dim = 1)
        print(Z.shape) # torch.Size([32, 100])
        # Generate enhancement nodes H^m
        H = torch.cat([layer(Z) for layer in self.enhancement_layers], dim = 1)
        print(H.shape) # torch.Size([32, 25])
        # Concatenate and predict
        combined = torch.cat((Z, H), dim = 1)
        print(combined.shape) # torch.Size([32, 125])
        output = self.output_layer(combined)
        print(output.shape) # torch.Size([32, 1])
        return output

通过 (b) 图基于 Pytorch 简单实现的 BLS 模型 :

class BLSv2(nn.Module):
    def __init__(self, input_dim, num_feature_nodes, num_enhancement_nodes, output_dim):
        super(BLSv2, self).__init__()
        # Step 1: Define feature mapping layers
        self.feature_layers = nn.ModuleList([nn.Sequential(
            nn.Linear(input_dim, num_feature_nodes),
            nn.ReLU()) for _ in range(num_feature_nodes)])

        # Step 2: Define enhancement nodes
        self.enhancement_layers = nn.ModuleList([nn.Sequential(
            nn.Linear(num_feature_nodes * num_feature_nodes, num_enhancement_nodes), # 100,20
            nn.ReLU()) for _ in range(num_enhancement_nodes)])

        # Step 3: Output layer
        self.output_layer = nn.Linear(
            num_feature_nodes * num_feature_nodes + num_enhancement_nodes * num_enhancement_nodes, output_dim)

    def forward(self, x):
        print(x.shape) # torch.Size([32, 224])
        # Generate feature nodes Z^n
        Z = torch.cat([layer(x) for layer in self.feature_layers], dim = 1)
        print(Z.shape) # torch.Size([32, 100])
        # Generate enhancement nodes H^m
        H = torch.cat([layer(Z) for layer in self.enhancement_layers], dim = 1)
        print(H.shape) # torch.Size([32, 25])
        # Concatenate and predict
        combined = torch.cat((Z, H), dim = 1)
        print(combined.shape) # torch.Size([32, 125])
        output = self.output_layer(combined)
        print(output.shape) # torch.Size([32, 1])
        return output

更多资料: 

宽度学习系统(BLS)的原理、变体形式及当前应用(随时更新……)「建议收藏」-腾讯云开发者社区-腾讯云 (tencent.com)

DeepLearning | Broad Learning System 宽度学习系统 : 高效增量式浅层神经网络-CSDN博客

相关推荐

  1. GBCD:图卷积宽度跨域推荐系统

    2024-05-15 22:16:23       39 阅读
  2. 算法学习日记 1 BFS算法 宽度优先算法 简介

    2024-05-15 22:16:23       39 阅读
  3. HTML固定表格宽度

    2024-05-15 22:16:23       52 阅读
  4. QTextEdit 设置宽度

    2024-05-15 22:16:23       28 阅读

最近更新

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

    2024-05-15 22:16:23       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-15 22:16:23       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-15 22:16:23       87 阅读
  4. Python语言-面向对象

    2024-05-15 22:16:23       96 阅读

热门阅读

  1. 电池的一些UL认证标准

    2024-05-15 22:16:23       28 阅读
  2. vue2中封装弹框插件

    2024-05-15 22:16:23       33 阅读
  3. 牛客周赛 Round 39vp(A--F)

    2024-05-15 22:16:23       36 阅读
  4. XML元素

    2024-05-15 22:16:23       35 阅读
  5. 嵌入式—模块代码(一)

    2024-05-15 22:16:23       37 阅读
  6. LabVIEW做仪器测试不知道是否适用

    2024-05-15 22:16:23       33 阅读
  7. 简单讲解SDL 互斥锁和信号量

    2024-05-15 22:16:23       25 阅读