宽度学习代码的一些问题

article/2025/11/9 22:20:22

最近在拜读陈院士的宽度学习论文,受益匪浅,在此先感谢陈院士团队的开源代码!

在复现代码的过程中,发现了一些小问题,在此记录,方便自己日后翻阅。

此博客仅代表个人观点,姑且算作个人读书笔记。

[1] C. L. P. Chen and Z. Liu, “Broad Learning System: An effective and efficient incremental learning system without the need for deep architecture,” IEEE Transactions on Neural Networks and Learning Systems, vol. 29, no. 1, pp. 10–24, Jan. 2018.
[2] C. L. P. Chen, Z. Liu, and S. Feng, “Universal approximation capability of broad learning system and its structural variations, IEEE Transactions on Neural Networks and Learning Systems, vol. 30, no. 4, pp. 1191–1204, Apr. 2019.

陈院士团队的开源代码中包含了3种宽度学习框架:(所有图都来自论文[1])
1. 最原始的宽度学习

2.  增加强化节点的宽度学习

3. 增加特征映射节点和强化节点的宽度学习

其中出现问题的代码为第三种(python版本),问题记录如下

在生成特征映射节点的过程中

for i in range(N2):random.seed(i+u)weightOfEachWindow = 2 * random.randn(train_x.shape[1]+1,N1)-1FeatureOfEachWindow = np.dot(FeatureOfInputDataWithBias,weightOfEachWindow) scaler1 = preprocessing.MinMaxScaler(feature_range=(-1, 1)).fit(FeatureOfEachWindow)FeatureOfEachWindowAfterPreprocess = scaler1.transform(FeatureOfEachWindow)betaOfEachWindow  =  sparse_bls(FeatureOfEachWindowAfterPreprocess,FeatureOfInputDataWithBias).TBeta1OfEachWindow.append(betaOfEachWindow)outputOfEachWindow = np.dot(FeatureOfInputDataWithBias,betaOfEachWindow)distOfMaxAndMin.append(np.max(outputOfEachWindow,axis = 0) - np.min(outputOfEachWindow,axis = 0))minOfEachWindow.append(np.mean(outputOfEachWindow,axis = 0))outputOfEachWindow = (outputOfEachWindow-minOfEachWindow[i])/distOfMaxAndMin[i]OutputOfFeatureMappingLayer[:,N1*i:N1*(i+1)] = outputOfEachWindowdel outputOfEachWindow del FeatureOfEachWindow del weightOfEachWindow 

在第5行中, MinMax归一化应将特征归一化到[0,1]的空间中,应修改为:

 scaler1 = preprocessing.MinMaxScaler(feature_range=(0, 1)).fit(FeatureOfEachWindow)

 在第11行中,取最小值应使用np.min()函数,应修改为

 minOfEachWindow.append(np.min(outputOfEachWindow,axis = 0))

与之对应的,在增加特征映射节点和强化节点的代码段中,也存在上述问题,源代码为:

    '''增加Mapping 和 强化节点'''WeightOfNewFeature2 = list()WeightOfNewFeature3 = list()for e in list(range(L)):time_start = time.time()random.seed(e+N2+u)weightOfNewMapping = 2 * random.random([train_x.shape[1]+1,M1]) - 1NewMappingOutput = FeatureOfInputDataWithBias.dot(weightOfNewMapping)scaler2 = preprocessing.MinMaxScaler(feature_range=(-1, 1)).fit(NewMappingOutput)FeatureOfEachWindowAfterPreprocess = scaler2.transform(NewMappingOutput)betaOfNewWindow  =  sparse_bls(FeatureOfEachWindowAfterPreprocess,FeatureOfInputDataWithBias).TBeta1OfEachWindow.append(betaOfNewWindow)TempOfFeatureOutput = FeatureOfInputDataWithBias.dot(betaOfNewWindow)distOfMaxAndMin.append( np.max(TempOfFeatureOutput,axis = 0) - np.min(TempOfFeatureOutput,axis = 0))minOfEachWindow.append(np.mean(TempOfFeatureOutput,axis = 0))outputOfNewWindow = (TempOfFeatureOutput-minOfEachWindow[N2+e])/distOfMaxAndMin[N2+e]OutputOfFeatureMappingLayer = np.hstack([OutputOfFeatureMappingLayer,outputOfNewWindow])NewInputOfEnhanceLayerWithBias = np.hstack([outputOfNewWindow, 0.1 * np.ones((outputOfNewWindow.shape[0],1))])

其中scaler2与minOfEachWindow两行应修改为

# scaler2
scaler2 = preprocessing.MinMaxScaler(feature_range=(0, 1)).fit(NewMappingOutput)
# minOfEachWindow
minOfEachWindow.append(np.min(TempOfFeatureOutput,axis = 0))


http://chatgpt.dhexx.cn/article/7tTAaWDN.shtml

相关文章

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

Broad Learning System (BLS,宽度学习系统)是澳门大学的陈俊龙教授在2017年TNNLS上基于随机向量函数链接神经网络(RVFLNN)和单层前馈神经网络(SLFN)提出的一种单层增量式神经网络。这个模型相比于传统的深层网络模型,它在保证一定精度的同时,…

宽度学习系统(BLS)的原理、变体形式及当前应用(随时更新......)

ABSTRACT 近年来深度学习迅猛在各个研究领域发展发展,新的模型结构不断涌现,且有层数逐渐加深的趋势。然而深度模型往往有数量过于庞大的待优化参数,通常需要耗费大量的时间和机器资源来进行优化,而且不能根据需求及输入的变化进行…

为什么要做深度学习而不是宽度学习?

点击此处返回总目录 前面在深度学习介绍的最后有留下一个疑问。我们为什么要deep learning。 我们说,变深了,参数增多,model变复杂,performance变好,是很正常的。 所以,真…

宽度学习学习笔记

宽度学习笔记 随机向量函数链接网络(RVFLNN)增强节点权值计算Greville 定理 宽度学习系统(Broad Learning System)数据处理简单BLS增强节点的增量学习特征节点的增量学习输入的增量学习SVD 参考论文: Broad Learning …

宽度学习(一):宽度学习体系:有效和高效的无需深度架构的增量学习系统

Motivation 深度学习: 1,时间长:由于涉及到大量的超参数和复杂的结构,大多数神经网络的训练过程非常耗时。 2,重新训练:如果要更改神经网络的结构,或者增加样本,深度学习系统将遇到一个完整的重新训练过程。 宽度学习: 1,消除了训练过程长的缺点,并且提供了很好的…

第三十七课.宽度学习

目录 前置内容宽度学习的基本结构:RVFLNN宽度学习系统岭回归 前置内容 深度学习计算量过大,成本过高,因此提出宽度学习(BLS,Broad Learning System)。我们首先要知道,BLS的网络结构不是固定的&…

宽度学习详解(Broad Learning System)

宽度学习(Broad Learning System) 1:Introduction1.1:级联相关网络(本节来自周志华《机器学习》)1.2:随机向量函数连接网络(RVFLNN) 2:宽度学习系统(Broad Learning Syst…

七、宽度学习系统Broad Learning System

七、宽度学习系统Broad Learning System 1、宽度学习的发展2、宽度学习系统(BLS)3、 BLS的增量形式1、宽度学习的发展 宽度学习系统(BLS) 的提出最早源于澳门大学科技学院院长陈俊龙和其学生于2018年1月发表在IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS,…

宽度学习(Broad Learning System)

一、宽度学习的前世今生 宽度学习系统(BLS) 一词的提出源于澳门大学科技学院院长陈俊龙和其学生于2018年1月发表在IEEE TRANSACTIONS ON NEURAL NETWORKS AND LEARNING SYSTEMS,VOL. 29, NO. 1 的一篇文章,题目叫《Broad Learnin…

宽度学习(BLS)实战——python复刻MNIST数据集的数据预处理及训练过程

目录 1.宽度学习(Broad Learning System) 2.MNIST数据集 3.复刻MNIST数据集的预处理及训练过程 1.宽度学习(Broad Learning System) 对宽度学习的理解可见于这篇博客宽度学习(Broad Learning System)_颹蕭蕭的博客-CSDN博客_宽度学习 这里不再做详细…

《Linux设备驱动开发详解(第3版)》(即《Linux设备驱动开发详解:基于最新的Linux 4.0内核》)进展同步更新

本博实时更新《Linux设备驱动开发详解(第3版)》的最新进展。 目前已经完成稿件。 2015年8月9日,china-pub开始上线预售: http://product.china-pub.com/4733972 2015年8月20日,各路朋友报喜说已经拿到了书。 本书已经rebase到开发中的Linu…

linux_设备驱动_设备树

一.什么是DTS?为什么要引入DTS? DTS即Device Tree Source 设备树源码, Device Tree是一种描述硬件的数据结构,它起源于 OpenFirmware (OF)。 在Linux 2.6中,ARM架构的板极硬件细节过多地被硬编码在arch/arm/plat-xxx和arch/arm/ma…

Linux设备驱动模型(一)

一、sysfs文件系统 sysfs是一个虚拟文件系统,将内核总的设备对象的链接关系,以文件目录的方式表示出来,并提对设备提供读写接口。 二、kobject kobject是内核中对象表示的基类,可以认为所有的内核对象都是一个kobject kobject单…

Linux设备驱动基础03:Linux字符设备驱动

1 Linux文件系统与设备驱动 1.1 文件系统与设备驱动之间的关系 Linux中文件系统与设备驱动程序之间的关系如下图所示, 应用程序和VFS之间的接口是系统调用;VFS和文件系统以及设备文件之间的接口是file_operations结构体中的成员函数,该结构体…

Linux 设备驱动程序(二)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核 Linux 设备驱动程序(一) Linux 设备驱动程序(二) Linux 设备驱动程序(三) Linux 设备驱动程序(四) Linux设备驱动开发详解 …

Linux驱动——字符设备驱动

目录 一、代码编译环境 二、Linux驱动开发分类 三、字符设备驱动开发流程 1.编译驱动模块代码(Makefile) 2.驱动模块的加载与卸载 四、字符设备驱动编写 1.驱动模块 2. 字符设备驱动编写步骤 2.1 设备号的注册与注销 2.2 设备节点的注册与注销 …

【Linux设备驱动】设备驱动分类

Linux设备驱动分类 驱动分为有操作系统设备驱动和误操作系统的设备驱动。 有无操作系统设备驱动 无操作系统设备驱动 不是所有的计算机系统都一定要有操作系统,在许多情况下,操作系统都是不必存在的。对于功能比较单一、控制不复杂的系统&#xff0c…

Linux-设备驱动概述

文章目录 Linux设备驱动概述1. 设备驱动的作用2. 无操作系统的设备驱动3. 有操作系统时的设备驱动4. Linux设备驱动4.1 设备的分类及特点4.2 Linux设备驱动与整个软硬件系统的关系4.3 Linux设备驱动的重难点 5. 源代码阅读6. 设备驱动:LED驱动6.1 无操作系统的LED驱…

Linux设备驱动和设备匹配过程

Linux设备驱动和设备匹配过程 1. 设备驱动匹配简述2. 重点结构体介绍2.1 struct device2.2 struct platform_device2.3 struct platform_driver2.4 struct device_driver 3. device端发起匹配:3.1 流程图3.2 start_kernel时候解析设备树3.2.1 start_kernel3.2.2 set…

Linux设备驱动之字符设备驱动

一、linux系统将设备分为3类:字符设备、块设备、网络设备。 应用程序调用的流程框图: 三种设备的定义分别如下, 字符设备:只能一个字节一个字节的读写的设备,不能随机读取设备内存中的某一数据,读取数据需…