当前位置: 首页 > news >正文

【第三章:神经网络原理详解与Pytorch入门】01.神经网络算法理论详解与实践-(2)神经网络整体结构

第三章: 神经网络原理详解与Pytorch入门

第一部分:神经网络算法理论详解与实践

第二节:神经网络整体结构

内容:从单层感知机的原理推广到神经网络


一、单层感知机(Perceptron)

【漫话机器学习系列】124.感知机(Perceptron)_感知机模型存在的问题-CSDN博客

【漫话机器学习系列】123.感知机学习(Perceptron Learning)-CSDN博客

感知机模型简介

感知机是最早的神经网络形式,用于进行线性可分的二分类任务。数学表达如下:

y = f\left(\sum_{i=1}^n w_i x_i + b\right)

其中:

  • x_i:输入特征

  • w_i:权重参数

  • b:偏置

  • f:激活函数(如 Sign、Step)

感知机结构图
输入层 → 权重加权求和 → 激活函数 → 输出结果

感知机的目标是调整 w, b 使其能把输入样本正确分类。


二、多层感知机(MLP)与前馈神经网络

【深度学习】常见模型-多层感知机(MLP,Multilayer Perceptron)_多层感知器mlp-CSDN博客

【漫话机器学习系列】060.前馈神经网络(Feed Forward Neural Networks, FFNN)_ffn前馈神经网络-CSDN博客

由于单层感知机只能处理线性可分问题,引入多层结构即可建模非线性关系。

结构层级:
  1. 输入层(Input Layer):接收原始数据向量。

  2. 隐藏层(Hidden Layer):可多层,核心是线性变换 + 非线性激活。

  3. 输出层(Output Layer):输出最终预测值。

数学表示(以一隐藏层为例):

z^{(1)} = W^{(1)}x + b^{(1)}
a^{(1)} = \sigma(z^{(1)})
z^{(2)} = W^{(2)}a^{(1)} + b^{(2)}
\hat{y} = f(z^{(2)})

  • σ:激活函数,如 ReLU、Sigmoid、Tanh

  • f:输出激活,如 Softmax(用于分类)


三、激活函数的非线性作用

【漫话机器学习系列】106.线性激活函数(Linear Activation Function)_鈥榣inear activation function-CSDN博客

【漫话机器学习系列】152.ReLU激活函数(ReLU Activation Function)_relu函数-CSDN博客

【漫话机器学习系列】142.Sigmoid 激活函数(Sigmoid Activation Function)_sigmoid函数-CSDN博客

【漫话机器学习系列】224.双曲正切激活函数(Hyperbolic Tangent Activation Function)_hyperbolic tangent激活函数-CSDN博客

【漫话机器学习系列】146.Softmax 激活函数(Softmax Activation Function)_softmax函数-CSDN博客

激活函数的引入打破了神经网络的线性限制,使其能表示复杂函数。

函数名公式特点
ReLUf(x)=max⁡(0,x)快速收敛,常用
Sigmoidf(x) = \frac{1}{1+e^{-x}}输出范围[0,1],梯度消失问题
Tanhf(x)=tanh⁡(x)输出[-1,1],对称性好

四、前向传播与反向传播流程

前向传播(Forward Pass)
  1. 输入数据传入网络

  2. 每层执行线性变换(加权求和)

  3. 应用激活函数

  4. 输出预测结果 \hat{y}

反向传播(Backward Pass)

【漫话机器学习系列】008.反向传播算法(Backpropagation Algorithm)-CSDN博客

  1. 根据损失函数 L(y, \hat{y}) 计算误差

  2. 利用链式法则逐层反向传播梯度

  3. 更新权重(通过梯度下降优化)


五、网络结构示意图

输入层:    x1  x2  x3 ...↓
隐藏层1:  z1  z2  z3 → ReLU↓
隐藏层2:  z4  z5  z6 → ReLU↓
输出层:    y1  y2 (如分类概率)

可以扩展到任意深度(深度学习),形成多层结构。


六、PyTorch 中的神经网络构建示例(简单 MLP)

【人工智能】Python常用库-PyTorch常用方法教程-CSDN博客

import torch.nn as nnclass MLP(nn.Module):def __init__(self):super().__init__()self.model = nn.Sequential(nn.Linear(10, 64),nn.ReLU(),nn.Linear(64, 3),  # 3类分类任务nn.Softmax(dim=1))def forward(self, x):return self.model(x)

小结

内容描述
单层感知机最基本的神经网络,用于线性分类
多层网络引入隐藏层,可拟合复杂非线性函数
激活函数提供非线性变换能力
前向传播数据从输入到输出流动
反向传播基于梯度优化权重

http://www.xdnf.cn/news/1079425.html

相关文章:

  • STM32-第二节-GPIO输入(按键,传感器)
  • C盘爆满元凶!WinSxS组件解密
  • JsonCpp的核心类及核心函数使用汇总
  • Web 服务器架构选择深度解析
  • Linux常见指令以及权限理解
  • Flowable12基础流程实战资金申请------------持续更新中
  • 埃及黑白沙漠:2亿年风蚀岩的“外星登陆现场“
  • 未来之窗冥界调试工具—东方仙盟
  • LTspice仿真10——电容
  • A模块 系统与网络安全 第四门课 弹性交换网络-1
  • 在小程序中实现实时聊天:WebSocket最佳实践
  • Verilog 语法介绍 1-1结构
  • Spring Boot + 本地部署大模型实现:基于 Ollama 的集成实践
  • KMP(Kotlin Multiplatform)改造(Android/iOS)老项目
  • PHP语法基础篇(八):超全局变量
  • 转录组分析流程(零):流程介绍
  • 【二分】-----【Music Notes S】
  • 【Git】同时在本地使用多个github账号进行github仓库管理
  • 通过Curtain 解决方案保障BIM模型安全共享—建筑业的防泄密实战
  • react-打包和本地预览 ——打包优化
  • 【数据结构】C++的unordered_map/set模拟实现(开散列(哈希桶)作底层)
  • npm 命令入门指南(前端小白版)
  • contenteditable网页富文本编辑无法选中图片
  • 从0到1实战!用Docker部署Qwerty Learner输入法的完整实践过程
  • curl for android
  • Linux多线程(十三)之【POSIX信号量基于环形队列的生产消费模型】
  • OpenCV CUDA模块设备层-----在 GPU上高效地执行两个uint类型值的最小值比较函数vmin2()
  • LeetCode 317 最短距离选址问题详解(Swift 实现 + BFS 多源遍历)
  • 高边驱动 低边驱动
  • 多模态AI Agent技术栈解析:视觉-语言-决策融合的算法原理与实践