神经网络—感知器、多层感知器

文章目录

  • 前言
  • 一、生物神经元与感知器的类比
  • 二、感知器
    • 1、简单感知器
    • 2、多层感知器
      • (1)多层感知机结构
    • 3、神经网络结构
  • 总结
    • 1、感知器的局限性
      • 如何突破感知器的局限性?
    • 2、感知器的应用


前言

感知器(Perceptron)是神经网络发展历程中的基础模型,由美国科学家 Frank Rosenblatt 在 1957 年提出。它模拟了生物神经元的工作方式,是构建更复杂神经网络的基石。

一、生物神经元与感知器的类比

生物神经元是神经系统的基本单元,主要由树突、细胞体和轴突组成。树突接收来自其他神经元的信号,细胞体对这些信号进行整合,当信号强度超过一定阈值时,轴突会将处理后的信号传递给其他神经元。
感知器借鉴了生物神经元的工作机制,它接收多个输入信号,对这些输入进行加权求和,然后通过一个激活函数进行处理,当输出超过一定阈值时,感知器输出一个信号。

二、感知器

1、简单感知器

由两层神经元组成的神经网络–“感知器”(Perceptron),感知器只能线性划分数据。
=320x
公式是线性代数方程组,因此可以用矩阵乘法来表达这两个公式
在这里插入图片描述
输出的结果与训练集标签进行损失函数计算,与逻辑回归基本一致。

神经网络的本质:通过参数与激活函数来拟合特征与目标之间的真实函数关系。但在一个神经网络的程序中,不需要神经元和线,本质上是矩阵的运算,实现一个神经网络最需要的是线性代数库。

2、多层感知器

(1)多层感知机结构

增加了一个中间层。即隐含层
神经网络可以做非线性分类的关键–隐藏层。
在这里插入图片描述

假设我们的预测目标是一个向量,那么与前面类似,只需要在“输出层”再增加节点即可。
=120x
(2)多层感知器偏置结点
在神经网络中需要默认增加偏置神经元(节点),这些节点是默认存在的。它本质上是一个只含有存储功能,且存储值永远为1的单元。在神经网络的每个层次中,除了输出层以外,都会含有这样一个偏置单元。

=120x120在这里插入图片描述
偏置节点没有输入(前一层中没有箭头指向它)。一般情况下,我们都不会明确画出偏置节点。

3、神经网络结构

输入层的节点数:与特征的维度匹配
输出层的节点数:与目标的维度匹配。
中间层的节点数:目前业界没有完善的理论来指导这个决策。一般是根据经验来设置。较好的方法就是预先设定几个可选值,通过切换这几个值来看整个模型的预测效果,选择效果最好的值作为最终选择。

1、设计一个神经网络时,输入层与输出层的节点数往往是固定的,中间层则可以自由指定;
2、神经网络结构图中的拓扑与箭头代表着预测过程时数据的流向,跟训练时的数据流有一定的区别;
3、结构图里的关键不是圆圈(代表“神经元”),而是连接线(代表“神经元”之间的连接)。每个连接线对应一个不同的权重(其值称为权值),这是需要训练得到的。

总结

1、感知器的局限性

感知器虽然是神经网络的基础,但它存在一定的局限性:
只能处理线性可分问题:感知器只能对线性可分的数据进行分类,对于线性不可分的数据(如异或问题),感知器无法收敛到一个正确的解。

缺乏隐藏层:简单感知器没有隐藏层,这限制了它的表达能力,无法处理复杂的非线性映射。

如何突破感知器的局限性?

(1) 多层感知器(MLP)与非线性激活函数
引入隐藏层:通过叠加多个感知器层(输入层→隐藏层→输出层),形成多层网络,能够学习非线性决策边界。例如,XOR问题可以通过一个包含隐藏层的网络解决。

激活函数升级:用Sigmoid、ReLU等非线性函数替代阶跃函数,使网络具备非线性表达能力。例如:

Sigmoid函数:
在这里插入图片描述
​ReLU函数:
在这里插入图片描述

(2) 反向传播算法
通过链式法则计算梯度,逐层调整权重,使多层网络的训练成为可能。这是感知器无法实现的。

(3) 多分类扩展
使用Softmax激活函数和交叉熵损失函数,将输出扩展到多类别概率分布。

2、感知器的应用

尽管存在局限性,感知器在一些简单的分类问题中仍然有应用,例如:
二分类问题:可以用于区分两个不同类别的数据,如判断邮件是否为垃圾邮件、判断图像中是否包含特定物体等。

早期神经网络的基础:感知器为后续更复杂神经网络的发展奠定了基础,许多神经网络的训练算法和结构都是在感知器的基础上发展而来的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/230.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++:扫雷游戏

一.扫雷游戏项目设计 1.文件结构设计 首先我们要先定义三个文件 ①test.c //文件中写游戏的测试逻辑 ②game.c //文件中写游戏中函数的实现等 ③game.h //文件中写游戏需要的数据类型和函数声明等 2.扫雷游戏的主体结构 使⽤控制台实现经典的扫雷游戏 •游戏可以通过菜单…

k8s的pod挂载共享内存

k8s的pod挂载共享内存,限制不生效问题: 注:/dev/shm 是 Linux 系统中用于共享内存的特殊路径。通过将 emptyDir 的 medium 设置为 Memory,可以确保 /dev/shm 正确地挂载到一个基于内存的文件系统,从而实现高效的共享内…

【Linux学习笔记】基础IO之理解文件

【Linux学习笔记】基础IO之理解文件 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 前言 哈喽,各位小伙伴大家好!上期我们讲了进程替换 今天我们讲的是基础IO之理解文件。话不多说,我们进入正题&#…

XL32F001国产低成本单片机,24MHz主频,24KB Flash,3KB SRAM

XL32F001 是一颗基于ARM Cortex-M0内核的32 位微控制器,专为低成本、低功耗、小型化嵌入式系统设计,适合对资源需求中等但强调性价比和能效的场景。主频可达24M,内存方面有24KB Flash和3KB SRAM,适用于资源需求不大的应用场景。1.…

Oracle免费认证来袭

1、Oracle Cloud Infrastructure 2025 Foundations Associate” 🔗 考证地址:https://mylearn.oracle.com/ou/exam-unproctored/oracle-cloud-infrastructure-2025-foundations-associate-1z0-1085-25/148056/241954 2、Oracle Cloud Infrastructure 2…

C++ 完美转发

C 完美转发逐步详解 1. 问题背景与核心目标 在 C 模板编程中&#xff0c;若直接将参数传递给其他函数&#xff0c;参数的 值类别&#xff08;左值/右值&#xff09;和 类型信息&#xff08;如 const&#xff09;可能会丢失。例如&#xff1a; template<typename T> voi…

第2章 算法分析基础

2-1 算法的时间复杂度分析 2.1.1 输入规模与基本语句 输入规模&#xff1a;算法处理数据的规模&#xff0c;通常用 n 表示。 基本语句&#xff1a;执行次数与输入规模直接相关的关键操作。 例2.1 顺序查找 int SeqSearch(int A[], int n, int k) { for (int i 0; i < n…

4.系统定时器基本定时器

目录 系统定时器 系统定时器&#xff08;systick&#xff09;--内核 系统定时器结构 系统滴答定时器寄存器--内核 定时周期的确定公式 配置滴答定时器 系统定时器应用 应用1.定时器构造时间点任务&#xff0c;解决while循环阻塞问题 应用2.定时器构造精准的ms延时 应…

基于SpringBoot和PostGIS的应急运输事件影响分析-以1.31侧翻事故为例

目录 前言 一、技术实现路径 1、需要使用的数据 2、空间分析方法 二、相关模块设计与实现 1、运输路线重现开发 2、事故点影响范围实现 3、WebGIS可视化实现 三、讨论 1、界面结果展示 2、影响范围分析 四、总结 前言 在交通运输发达的当今社会&#xff0c;应急运输…

Python爬虫(20)Python爬虫数据存储技巧:二进制格式(Pickle/Parquet)性能优化实战

目录 背景介绍一、二进制存储的核心优势二、Python Pickle&#xff1a;轻量级对象序列化1. 基本介绍2. 代码示例3. 性能与局限性 三、Apache Parquet&#xff1a;列式存储的工业级方案1. 基本介绍2. 代码示例&#xff08;使用PyArrow库&#xff09;3. 核心优势 四、性能对比与选…

C++从入门到实战(十三)C++函数模板与类模板初阶讲解

C从入门到实战&#xff08;十三&#xff09;C函数模板与类模板初阶讲解 前言一、为什么需要模板1. 函数重载的问题2. 泛型编程和模板的作用 二、函数模板2.1 函数模板格式2.2 函数模板的原理2.3 函数模板的实例化&#xff08;1&#xff09;隐式实例化&#xff1a;&#xff08;2…

游戏引擎学习第261天:切换到静态帧数组

game_debug.cpp: 将ProfileGraph的尺寸初始化为相对较大的值 今天的讨论主要围绕性能分析器&#xff08;Profiler&#xff09;以及如何改进它的可用性展开。当前性能分析器已经能够正常工作&#xff0c;但我们希望通过一些改进&#xff0c;使其更易于使用&#xff0c;特别是在…