第三十七课.宽度学习

article/2025/11/9 22:16:11

目录

  • 前置内容
  • 宽度学习的基本结构:RVFLNN
  • 宽度学习系统
    • 岭回归

前置内容

深度学习计算量过大,成本过高,因此提出宽度学习(BLS,Broad Learning System)。我们首先要知道,BLS的网络结构不是固定的,就像第三十三课的级联相关网络。但是级联相关网络还是在往深处走,宽度学习才是真正往宽处走。


级联相关网络的训练
第三十三课的级联相关网络的训练可以展示为以下形式:
fig1
其中,candidate neuron即为候选神经元(即要加入的新节点),训练过程如下:

  • 首先,候选神经元连结到所有的输入和隐层神经元(即图中的有向虚线),并且候选神经元的输出不连结到网络上;
  • 然后冻结固定住图中的实线部分,只训练候选神经元的权重(即图中的有向虚线);
    注意,候选神经元的训练目标是最大化候选神经元的输出和网络输出层误差之间的相关性,使用梯度上升法实现最大化;
  • 当权重训练好之后,就将候选神经元安装到图中空白的层上,也就是第四个区域,这时候候选神经元的虚线连接权就不能再改变了;
  • 然后将候选神经元连结到网络的输出上,这时候代表选神经元被激活,开始训练网络的所有输出连接权;
  • 重复以上步骤;

宽度学习的基本结构:RVFLNN

BLS来源于随机向量函数连接网络 random vector functional-link neural network (RVFLNN)的结构。
fig2
RVFLNN多了一个增强层(Enhance Nodes),网络中存在3种连接:

  • 输入-增强:非线性变换;
  • 增强-输出:线性变换;
  • 输入-输出:线性变换;

可以看出,RVFLNN只有增强层是真正意义上的神经网络单元,因为只有它带了激活函数。下面我们将增强层与输入节点排列到一起:
fig3
网络就变成了由A到Y的线性变换。如果我们随机初始化增强节点的参数并固定(随机初始化 W h , β h W_{h},\beta_{h} Wh,βh),整个网络的训练就是求出A到Y之间的线性变换W: W = A − 1 Y W=A^{-1}Y W=A1Y由于输入 X X X已知,可以很方便求出 A A A,又加上已知 Y Y Y,所以学习将变成只需要一步操作的事情。

为什么可以这样
深度学习把网络层数不断加深,就是为了增加模型的复杂度,能更好地逼近我们希望学习到的非线性函数,但是不是非线性层数越多越好?理论证明单层前馈网络(SLFN)已经可以作为函数近似器了,可见增加层数并不是必要的。RVFLNN也被证明可以用来逼近任何连续函数,其非线性近似能力就体现在增强层的非线性激活函数上,只要增强层单元数量足够多就行。

宽度学习系统

fig4

之前介绍的是RVFLNN,现在来看BLS,它对输入层做了一点改进,就是不直接用原始数据作为输入层,而是先对数据做了一些变换,相当于特征提取,将变换后的特征作为原RVFLNN的输入层,这样做的意义不是很大,只不过想告诉我们:宽度学习可以利用别的模型提取到的特征来训练,即可以和别的机器学习算法组装。现在我们不把第一层叫做输入层,而是叫它特征层。

从上图看出,我们可以使用增加特征提取器数量的方式加宽 Z Z Z的长度(使用 n n n个特征提取器, n n n越大,BLS越复杂)

当给定了特征 Z Z Z,直接计算增强 H H H,将两者合并为 A = [ Z ∣ H ] A=[Z|H] A=[ZH] ∣ | 表示合并。由于训练数据的标签 Y Y Y已知,计算权重 W = A − 1 Y W=A^{-1}Y W=A1Y即可。实际计算时,也可以用岭回归求解,即优化以下问题: a r g m i n W ∣ ∣ A W − Y ∣ ∣ 2 2 + λ ∣ ∣ W ∣ ∣ 2 2 argmin_{W}||AW-Y||^{2}_{2}+\lambda||W||^{2}_{2} argminWAWY22+λW22求解得到 W = ( λ I + A A T ) − 1 A T Y W=(\lambda I+AA^{T})^{-1}A^{T}Y W=(λI+AAT)1ATY

岭回归

岭回归(Ridge Regression)是回归方法的一种,属于统计方法。在机器学习中也称作权重衰减。也有人称之为Tikhonov正则化。岭回归主要解决的问题是两种:

  • 一是当特征的维度数量超过标签的维度数量的时候;
  • 二是数据集之间具有多重共线性,即特征之间具有相关性。

一般,回归分析如下: y = ∑ j = 1 p β j x j + β 0 y=\sum_{j=1}^{p}\beta_{j}x_{j}+\beta_{0} y=j=1pβjxj+β0其中, p p p为特征维数;

使用最小二乘法求解回归问题的最小化目标为: β ^ = a r g m i n β ∑ i = 1 N ( y ( i ) − β 0 − ∑ j = 1 p β j x j ( i ) ) \widehat{\beta}=argmin_{\beta}\sum_{i=1}^{N}(y^{(i)}-\beta_{0}-\sum_{j=1}^{p}\beta_{j}x_{j}^{(i)}) β =argminβi=1N(y(i)β0j=1pβjxj(i))岭回归就是要在最小化目标上加一个惩罚: β ^ = a r g m i n β { [ ∑ i = 1 N ( y ( i ) − β 0 − ∑ j = 1 p β j x j ( i ) ) ] + λ ∑ j = 1 p β j 2 } \widehat{\beta}=argmin_{\beta}\left\{[\sum_{i=1}^{N}(y^{(i)}-\beta_{0}-\sum_{j=1}^{p}\beta_{j}x_{j}^{(i)})]+\lambda\sum_{j=1}^{p}\beta_{j}^{2}\right\} β =argminβ{[i=1N(y(i)β0j=1pβjxj(i))]+λj=1pβj2}


http://chatgpt.dhexx.cn/article/2sQ1ruhL.shtml

相关文章

宽度学习详解(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类:字符设备、块设备、网络设备。 应用程序调用的流程框图: 三种设备的定义分别如下, 字符设备:只能一个字节一个字节的读写的设备,不能随机读取设备内存中的某一数据,读取数据需…

Linux设备驱动基础01:Linux设备驱动概述

目录 1. 设备驱动的作用 2. 有无操作系统时的设备驱动 2.1 无操作系统 2.1.1 硬件、驱动和应用程序的关系 2.1.2 单任务软件典型架构 2.2 有操作系统 2.2.1 硬件、驱动、操作系统和应用软件的关系 3. Linux设备分类 3.1 常规分类法 3.1.1 字符设备 3.1.2 块设备 3.…

Linux设备驱动模型

目录 一、linux设备驱动模型简介1、什么是设备驱动模型2、为什么需要设备驱动模型3、驱动开发的2个点 二、设备驱动模型的底层架构1、kobject2、kobj_type3、kset 三、总线式设备驱动组织方式1、总线2、设备3、驱动4、类5、总结 四、platform平台总线工作原理1、何为平台总线2、…

【linux内核分析与应用-陈莉君】字符设备驱动

目录 1.什么是字符设备 2.如何来描述字符设备 3 struct cdev与const struct file_operations之间的关系 4.struct file_operations源码 5.字符设备驱动框架 6.编写字符设备驱动的步骤 7.字符设备结构 8.字符设备驱动程序的注册 9.从系统调用到驱动程序 10.用户空间与内…

微信小程序云数据库使用讲解

第一步:注册开通 单击云开发 第二步:创建数据库 选择数据库,并点击号创建一个集合 输入名字 创建完毕后点击添加记录即可添加数据 数据库获取: 查询: 查询指令:

微信小程序云开发入门-数据库插入数据(包含批量)

一、前言 文章将介绍如何在微信小程序云开发中向云开发数据库插入数据(单条或批量)。 写法有好几种,文章将会一一进行对比,看看每种写法之间有何优缺点,如何让代码看起来更优雅。 为了更加贴合实际的开发逻辑&#xf…

【微信小程序】如何获取微信小程序云开发数据库的数据并渲染到页面?

前言 上一篇博客我把微信小程序云开发数据库操作(增删改查)的实现方法都已经分享出来啦,可以戳链接进去阅读哦 【微信小程序】小程序云开发实现数据库增删改查(小白速度Get起来!!一步步教你如何实现) 基于微信小程序…