全链接层:线性变换与非线性整合

卷积神经网络CNN 一、结构 结构:卷积层----->池化层----->全链接层 二、卷积层 卷积层:提取出图像的特征 卷积核、填充(padding)、步长(stride)------>三者共同决定了卷积层输出特征图的尺寸 卷积层级之间的神经元是局部链接和权值共享,这样设计很大程度上减小了(w,b)的数量,加快了训练。 填充(padding)---->实现输入和输出图像大小一致 p=(f-1)/2 通道(channel):一般彩色图像有三个颜色通道,对应红、绿、蓝三种颜色 多过滤器(Multiple 阅读详情

一、神经网络的本质与结构

神经网络是一种受生物神经系统启发的计算模型,由大量简单处理单元(神经元)互联组成。通过调整连接权重来学习数据中的复杂模式。其中,全连接层(也称为线性层)作为核心组件,在结构上与生物神经元最为接近,是构建CNN、RNN等复杂网络架构的基础。

全连接层的核心特征:

  • 采用完全有向图结构,每层所有神经元与下一层全部神经元相连
  • 每个连接拥有独立权重,用于调整信号传递强度
  • 通常结合非线性激活函数,引入复杂模式表达能力
    在这里插入图片描述

二、激活函数的核心作用

为什么需要非线性激活?

若缺少非线性激活函数,无论网络层数多少,整个模型都等价于单层线性模型,无法学习复杂模式。典型表现为:

  1. 无法解决非线性问题
    例如XOR问题(异或逻辑),单层线性模型无法解决,而加入激活函数后可实现非线性划分:
    • 无激活函数:仅能学习线性划分(如直线)
    • 有激活函数:可学习复杂曲线或区域划分
常见激活函数对比
函数类型数学表达式输出范围特性
Sigmoidf(z)=11+e−zf(z) = \frac{1}{1+e^{-z}}f(z)=1+e−z1​[0,1][0, 1][0,1]压缩输出至概率区间,易梯度消失
ReLUf(z)=max⁡(0,z)f(z) = \max(0, z)f(z)=max(0,z)[0,+∞)[0, +\infty)[0,+∞)单侧抑制,缓解梯度消失
Tanhf(z)=ez−e−zez+e−zf(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}}f(z)=ez+e−zez−e−z​[−1,1][-1, 1][−1,1]零中心化输出,适合对称数据

激活函数可视化

下面是三种常见激活函数(Sigmoid、ReLU和Tanh)的可视化图表,通过图像可以直观地看到它们的输出特性和曲线形状。

Sigmoid 激活函数

在这里插入图片描述

  • 曲线形状:S型曲线,将任意输入压缩到[0,1]区间
  • 数学表达式:f(z)=11+e−zf(z) = \frac{1}{1+e^{-z}}f(z)=1+e−z1​
  • 关键特性:
    • 输出范围为[0,1],适合表示概率
    • 当z接近±∞时,梯度趋近于0,容易导致梯度消失问题
    • 输出非零中心化,可能导致神经元更新效率降低
ReLU 激活函数

在这里插入图片描述

  • 曲线形状:在z=0处有一个拐点,z<0时输出0,z≥0时输出z
  • 数学表达式:f(z)=max(0,z)f(z) = max(0, z)f(z)=max(0,z)
  • 关键特性:
    • 输出范围为[0, +∞)
    • 计算效率高,避免了指数运算
    • 缓解了梯度消失问题,但可能导致"死神经元"问题(z<0时梯度为0)
    • 单侧抑制特性,符合生物神经元的激活特性
Tanh 激活函数

在这里插入图片描述

  • 曲线形状:S型曲线,将任意输入压缩到[-1,1]区间
  • 数学表达式:f(z)=ez−e−zez+e−zf(z) = \frac{e^z - e^{-z}}{e^z + e^{-z}}f(z)=ez+e−zez−e−z​
  • 关键特性:
    • 输出范围为[-1,1],是零中心化的
    • 解决了Sigmoid的非零中心化问题
    • 当z接近±∞时,同样存在梯度消失问题
    • 相比Sigmoid,Tanh通常有更好的性能表现

激活函数选择建议

  • Sigmoid:适合二分类问题的输出层,或需要将输出表示为概率的场景
  • ReLU:默认首选的隐藏层激活函数,计算高效且缓解梯度消失
  • Tanh:适合需要零中心化输出的场景,如循环神经网络(RNN)

通过可视化可以更直观地理解这些激活函数的特性,这对于选择合适的激活函数和理解神经网络的行为非常有帮助。

三、全连接层的数学原理

1. 线性变换的矩阵表示

在这里插入图片描述

W:权重矩阵(维度:out_features×in_features\text{out\_features} \times \text{in\_features}out_features×in_features)
b\mathbf{b}b:偏置向量(维度:out_features×1\text{out\_features} \times 1out_features×1)
x\mathbf{x}x:输入向量(维度:in_features×1\text{in\_features} \times 1in_features×1)

2. 单神经元计算视角

输出向量 y\mathbf{y}y 的第 iii 个元素 yiy_iyi​ 的计算:
yi=∑j=1nwi,j⋅xj+biy_i = \sum_{j=1}^{n} w_{i,j} \cdot x_j + b_iyi​=j=1∑n​wi,j​⋅xj​+bi​
其中:

  • wi,jw_{i,j}wi,j​:权重矩阵 WWW 的第 iii 行第 jjj 列元素
  • xjx_jxj​:输入向量 x\mathbf{x}x 的第 jjj 个元素
  • bib_ibi​:偏置向量 b\mathbf{b}b 的第 iii 个元素
3. 批量计算的矩阵优化

对于批量输入 XXX(维度:KaTeX parse error: Expected 'EOF', got '_' at position 12: \text{batch_̲size} \times \t…):
Y=XWT+BY = XW^T + BY=XWT+B
其中:

  • WTW^TWT:权重矩阵的转置(维度:KaTeX parse error: Expected 'EOF', got '_' at position 9: \text{in_̲features} \time…)
  • BBB:偏置向量的批量复制(维度:KaTeX parse error: Expected 'EOF', got '_' at position 12: \text{batch_̲size} \times \t…)
4. 非线性激活函数

线性变换后应用激活函数 f(⋅)f(\cdot)f(⋅) 引入非线性特性:
z=f(y)=f(Wx+b)\mathbf{z} = f(\mathbf{y}) = f(W\mathbf{x} + \mathbf{b})z=f(y)=f(Wx+b)

四、PyTorch实现全连接网络

以下是使用PyTorch构建多层全连接网络的完整示例:

import torch
import torch.nn as nn

class MultiLayerPerceptron(nn.Module):
    def __init__(self, input_dim, hidden_dim, output_dim):
        super(MultiLayerPerceptron, self).__init__()
        
        # 第一层:线性变换 + ReLU激活
        self.layer1 = nn.Sequential(
            nn.Linear(input_dim, hidden_dim),  # 线性变换
            nn.ReLU()                          # 非线性激活
        )
        
        # 第二层:可选的隐藏层
        self.layer2 = nn.Sequential(
            nn.Linear(hidden_dim, hidden_dim),
            nn.ReLU()
        )
        
        # 输出层:通常不使用激活(除特殊任务外)
        self.output_layer = nn.Linear(hidden_dim, output_dim)
    
    def forward(self, x):
        x = self.layer1(x)         # 第一层处理
        x = self.layer2(x)         # 第二层处理(可选)
        x = self.output_layer(x)   # 输出层
        return x

# 实例化模型(例如MNIST分类)
model = MultiLayerPerceptron(
    input_dim=784,      # 28x28像素图像
    hidden_dim=256,     # 隐藏层神经元数量
    output_dim=10       # 10个分类类别
)

关键组件详解:

  1. nn.Linear:实现线性变换 y=Wx+by = Wx + by=Wx+b
  2. nn.ReLU:引入非线性激活 f(z)=max⁡(0,z)f(z) = \max(0, z)f(z)=max(0,z)
  3. nn.Sequential:模块化组织网络层
  4. forward()方法:定义数据前向传播路径

五、核心总结

  1. 全连接层的核心作用:通过线性变换和非线性激活实现特征重组与复杂模式学习
  2. 激活函数的必要性:打破线性约束,使网络能够表达任意复杂函数
  3. PyTorch实现要点:使用nn.Linear构建线性层,结合激活函数构建完整网络

理解全连接层的数学原理和PyTorch实现方式,是掌握深度学习基础的关键一步。后续可在此基础上扩展学习CNN、RNN等更复杂的网络架构。

神经网络:线性模型与非线性模型(Mnist手写体图像分类) 神经网络中提到的线性模型与非线性模型之间的区别就体现在字面意思上:线性模型即仅通过对输入进行线性变换得到输出的网络模型,我们知道在线性代数中矩阵的相乘就是一种线性变换,根据矩阵乘法的结合律可知:一个矩阵依次与多个矩阵相乘等价于这个矩阵乘上这多个矩阵的乘积;类似的,任意线性模型的组合还是线性模型,也就是说,只通过线性变换,任意层的全连接神经网络和单层神经网络的表达能力没有区别。 由于线性模... 阅读详情

相关推荐

affine/linear(仿射/线性)变换函数详解及全连接层反向传播的梯度求导

Affine 仿射层, 又称 Linear 线性变换层常用于神经网络结构中的推断部分.

BrightLamp的博客 9355

Transfomer原理线性层

通过合理的设置输入输出特征的维度,以及初始化权重矩阵和偏置,线性层能够有效地实现特征的映射和提取,为模型的训练和推断提供了基础支持。通过本篇内容的介绍,读者可以更加深入地理解Transformer原理中的线性层,掌握线性层的基本原理、参数介绍和完整代码案例。除了上述提到的基本的线性层,还有一些变种形式的线性层,比如带有批标准化的线性层(nn.BatchNorm1d)、带有dropout的线性层(nn.Dropout)等,这些扩展的线性层在实际应用中也有着重要的作用。下面将逐一介绍这些参数的含义和作用。

互联网知识分享 1149

实战指南:用Python实现ONVIF WS-Discovery设备发现(附完整代码)

本文提供了一份详细的实战指南,介绍如何使用Python实现基于ONVIF标准的WS-Discovery设备发现协议。文章深入解析了协议原理、网络通信模型,并提供了完整的代码实现,帮助开发者快速构建智能安防和物联网应用中的设备自动发现工具,有效提升网络设备集成与管理的效率。

chair的专栏 1114

Transformer结构介绍

一.

ys_1991的博客 1844

利用抖音Cookie充值接口提取支付链接,调起原生微信h5支付宝h5支付

最近开始搞一些个人支付通道的开发,方便个人不用和第三方平台签约就能收款,省去很多流程手续的成本。 然后翻了一下网上并没有太多现成的技术教程,只能自己研究着搞了。 这次要分享的是利用抖音的充值接口,去分析提取出支付链接,分别包含微信原生支付的h5支付链接,和支付宝h5支付链接。 微信h5支付: 抖币充值,抖音充值,抖音直播充值官方入口 - 抖音 支付宝h5支付 抖币充值,抖音充值,抖音直播充值官方入口 - 抖音 整个开发流程思路是以下几步: 1.抓包分析抖音的充值的整个流程,提取关键的一些

Android-逆向的博客 6568

AppStore逆向分析:从网络抓包到自动化模拟的完整实践

在移动应用生态中,理解客户端与服务器之间的通信协议是进行自动化测试、数据分析和系统集成的关键技术基础。通过分析网络请求与响应,可以深入理解认证、会话管理和数据交换的原理,这对于构建稳定的自动化流程至关重要。其技术价值在于能够实现合法场景下的流程模拟,例如应用元数据监控、沙盒环境测试或内部工具开发。在实际应用场景中,开发者常需处理登录态维持、请求签名验证及风控策略应对等挑战。本文聚焦于AppStore这一封闭生态,详细拆解了其登录、查询等核心环节的通信机制,并探讨了使用Python结合抓包工具进行安全逆向分析

weixin_42524171的博客 929

NdLinear:新一代线性变换层,为深度学习注入活力

NdLinear:新一代线性变换层,为深度学习注入活力 在深度学习领域,线性变换层是构建神经网络模型的基本组件之一。然而,传统的线性层往往在转换数据时会损失原始数据的结构和维度信息。今天,我们要推荐的这个开源项目——NdLinear,正是为了解决这一问题而设计的创新性模块。 项目介绍 NdLinear是由Ensemble AI团队开发的一个PyTorch模块。它旨在保留数据的原始多维结构,提高表征...

gitblog_01026的博客 1121

学Simulink——基于 Simulink 的 滑模控制(SMC)

本文详细介绍了基于Simulink的Buck变换器滑模控制(SMC)设计与实现方法。首先阐述了传统PI控制在负载突变时的不足,以及滑模控制具有强鲁棒性和快速响应的优势。通过建立Buck变换器的连续状态方程,推导了含积分项的滑模面和控制律,并采用边界层法抑制抖振。文章分步骤讲解了Simulink模型搭建过程,包括主电路、控制器实现和负载扰动模拟模块。仿真结果表明,在负载1A↔5A阶跃时,SMC控制输出电压波动仅0.08V,恢复时间0.35ms,远优于传统PI控制。同时给出了工程实践中的参数选择建议和数字实现技

amy_mhd的博客 254

全连接层是如何处理的?

全连接层的输出可以作为下一层的输入,继续传递给其他的全连接层或输出层,从而完成整个神经网络的前向传播过程。举个例子,假设我们的输入是一个扁平化的向量,大小为n。全连接层的权重矩阵的大小为m x n,其中m表示全连接层的输出大小或特征维度。全连接层通常紧跟在卷积层或池化层之后,用于接收从前一层传递过来的特征图,并对特征进行降维、提取和组合,最终生成对输入数据进行分类或回归的结果。全连接层是神经网络中的一种常见层类型,它的作用是对输入数据进行线性变换和非线性变换,从而实现对输入数据的特征提取和分类。

weixin_44943389的博客 608

智能温室:温室环境监测_(7).土壤监测技术包括pH值和电导率

土壤的pH值是指土壤溶液的酸碱度,它对植物的营养吸收和生长发育有着重要的影响。在智能温室中,土壤监测是非常重要的一个环节,因为土壤的pH值和电导率直接影响植物的生长和健康。本节将详细介绍如何利用传感器和数据处理技术来监测土壤的pH值和电导率,并提供具体的代码示例。在智能温室中,监测到的土壤pH值和电导率数据需要传输到中央控制系统进行进一步的处理和分析。通过以上步骤,您可以构建一个完整的智能温室土壤监测系统,实时监控土壤的pH值和电导率,确保植物在最佳的生长环境中。校准通常包括在已知电导率的标准溶液中进行。

zhubeibei168的博客 1408

Windows 下 Claude Code Desktop 安装与使用全记录:从零到一的保姆级图文教程

本文主要介绍了Windows 下 Claude Code 安装全记录:从零到一的保姆级图文教程,希望能对学习使用 Claude Code 的同学们有所帮助。 文章目录 1. 背景 2. 安装Claude Code Desktop 3. 配置第三方API 4. 日常使用

weixin_43178406的博客 8万+

Transformer学习笔记

0-背景 机构:Google 大脑 作者:Ashish Vaswani等 发表会议:NIPS2017 面向任务:机器翻译 论文地址:https://arxiv.org/abs/1706.03762 论文代码:https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/models/transformer.py 本文主要...

ljp1919的专栏 3856

【Inpho精品教程】Inpho简介、安装教程(附Inpho8安装包下载)

本文介绍Trimble旗下Inpho UASMaster航空摄影测量软件,涵盖其核心功能模块(如Match-AT、OrthoMaster、Summit Evolution等)及安装教程。文章详细说明了从安装到汉化破解的全过程,并提供Inpho 8.0.1安装包下载链接与提取码,适用于无人机摄影测量专业用户。

智慧空间实验室 1万+

线性层/全连接层

作用类似于经典的全连接层(Fully Connected Layer),常用于连接神经网络中的不同层次。主要功能是执行线性变换,也就是对输入数据进行矩阵乘法并添加一个偏置(bias)。:有线性层将输入张量乘以权重矩阵并加上偏置项。如图所受,这种线性变换可以被表示为:也就是每个g都是由与它连线的x乘以相应权重k再加上偏值b。x 是输入张量,通常是二维的,形状为 (N,in_features),其中 N 是批量大小(batch size),in_features 是输入的特征数。

RaltBergling的博客 3679

OSPF规划两大模型:双塔奇兵、犬牙交错

大家好,今天给大家带来的是OSPF规划两大模型:双塔奇兵、犬牙交错,让我们直接开始吧! OSPF规划之双塔奇兵 说明: OSPF 如果某个区域存在两个 ABR,并且在两个 ABR 上都对 area n 内的路由做了聚合操作。 最佳配置: 两台ABR之间的红线应该使用以太网的子接口技术,一个子接口属于area0,另一个属于 area n;或者该链路规划为 area n,同时配置虚连接; ABR 的 loopback0 规划入 area 0 OSPF 规划之犬牙交错 说明: 有时接入层的设备会以乱序的

网络技术联盟站 2424

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

pytorch初学笔记(十二):神经网络基本结构之线性层

CLASS,,bias=True,,dtype=None)每一层的某个神经元的值都为前一层所有神经元的值的sum和。基于公式y=wx+b计算,w为权重,x为输入,b为偏置值。in_features,输入特征(int) – size of each input sample,输入的tensor大小out_features,输出特征(int) – size of each output sample,输出的tensor大小bias(boolFalseTrueweight(bias。

CV在读 7736

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

全连接层(Fully Connected Layer)概述

本篇博客介绍了全连接层的历史、优点,与其他方法的不同之处,并给出了全连接层的理论推导和作用。通过使用Python示例代码展示了全连接层的具体实现过程,并给出了全连接层的结构图和数组说明计算过程。全连接层作为深度学习中重要的一部分,将帮助你更好地理解和应用这一经典的神经网络层。以上就是关于全连接层的介绍,希望能对读者有所帮助!

泛红尘的博客 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

transformer

翻译自 https://jalammar.github.io/illustrated-transformer/ Transformer模型结构 Transformer的主体结构图: 编码器解码器 模型分为编码器和解码器两个部分。 编码器由6个相同的层堆叠在一起,每一层又有两个支层。第一个支层是一个多头的自注意机制,第二个支层是一个简单的全连接前馈网络。在两个支层外面都添加了一个r...

小岁月太着急 7729

深度学习--第10篇: Pytorch卷积层,池化层,线性层和激活函数层

Pytorch卷积层,池化层,线性层和激活函数层1. 卷积层 Conv Layer1.1 卷积 1d/2d/3d1.2 nn.Conv2d1.3 转置卷积 nn.ConvTranspose2. 池化层 Pooling Layer2.1 最大池化 nn.MaxPool2d2.2 平均值池化 nn.AvgPool2d2.3 最大池化上采样 nn.MaxUnpool2d3. 线性层 Linear Lay...

w风的季节-博客 6253

torch.nn 模块の全连接层

通常所说的全连接层是指一个由多个神经元所组成的层,其所有的输出和该层的所有输入都有连接,即每个输入都会影响所有神经元的输出。在 pytorch 中的 nn.Linear() 表示线性变换,全连接层可以看作是 nn.Linear() 表示线性变层再加上一个激活函数层所构成的结构。 nn.Linear() 全连接操作及相关参数如下: torch.nn.Linear(in_features, out_features, bias=True) 参数说明如下: in_features: 每个输入样本的特征数量 out

expansion 3148

深度学习中的常见隐藏层介绍:卷积层、池化层、全连接层、Dropout、批量归一化等

传统方法 vs 端到端传统流水线方法。

学亮编程手记 1047

土堆pytorch 13——线性层(全连接层)

通常,线性层后面会接一个非线性激活函数。这样,网络先做一次简单的转换(线性),然后用激活函数(非线性)添加一些复杂性。(即 output = activation(linear(input)) )2、在实践中,两者常常被视作同义词。FalseTrue(默认True,自动学习并添加偏置参数)这里,input_tensor形状为(3,4),意味着有3个样本(batch_size),每个样本有4个特征(输入张量的每一列通常代表一个特征)

2302_79795489的博客 1132

深度学习基础知识2-线性神经网络

在神经网络中,线性神经网络(Linear Neural Network)通常指的是只包含线性变换(线性映射)的神经网络层,也被称为全连接层(Fully Connected Layer)或密集层(Dense Layer)。一个典型的线性神经网络层可以表示为:(y) 是输出向量。(W) 是权重矩阵。(x) 是输入向量。(b) 是偏置向量。这是一个线性变换,(W \cdot x) 表示输入 (x) 与权重矩阵 (W) 的矩阵乘法,然后加上偏置 (b)。这个线性变换是神经网络中最简单的一种。

qq_41810539的博客 3024

神经网络的全连接层_神经网络全连接层(1)

接下来聊一聊现在大热的神经网络。最近这几年深度学习发展十分迅速,感觉已经占据了整个机器学习的“半壁江山”。各大会议也是被深度学习占据,引领了一波潮流。深度学习中目前最火热的两大类是卷积神经网络(CNN)和递归神经网络(RNN),就从这两个模型开始聊起。当然,这两个模型所涉及到概念内容实在太多,要写的东西也比较多,所以为了能把事情讲得更清楚,这里从一些基本概念聊起,大神们不要觉得无聊啊……...

weixin_42395669的博客 1772

sigmoid、relu、多层全连接层结构

在输出层使用Sigmoid函数,可以将多个全连接层的输出值映射到(0,1)的范围内,并且输出的值可以被解释为属于正类的概率。计算速度快:ReLU函数的计算速度比Sigmoid函数快,因为ReLU函数只需要进行简单的数值比较和取最大值操作,而Sigmoid函数需要进行指数计算和除法运算。另外,如果使用交叉熵作为损失函数来训练模型,那么在输出层使用Sigmoid函数可以很方便地计算损失函数的梯度,从而实现反向传播算法更新模型参数。输出值在0和1之间,可以表示为概率值,用于二元分类问题。稀疏性:ReLU函数在。

luluoluoa的博客 1153

全连接层的作用_神经网络全连接层(1)

接下来聊一聊现在大热的神经网络。最近这几年深度学习发展十分迅速,感觉已经占据了整个机器学习的“半壁江山”。各大会议也是被深度学习占据,引领了一波潮流。深度学习中目前最火热的两大类是卷积神经网络(CNN)和递归神经网络(RNN),就从这两个模型开始聊起。当然,这两个模型所涉及到概念内容实在太多,要写的东西也比较多,所以为了能把事情讲得更清楚,这里从一些基本概念聊起,大神们不要觉得无聊啊……...

weixin_39655689的博客 1261
上一篇: 池化层:神经网络的特征精炼器与计算优化核心
QLluck
博客等级 码龄2年 10粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值