news 2026/4/23 14:49:48

神经网络(从感知机到神经网络)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
神经网络(从感知机到神经网络)

从感知机到神经网络

神经网络和上一章介绍的感知机有很多共同点。这里,我们主要以两者
的差异为中心,来介绍神经网络的结构。

神经网络的例子

用图来表示神经网络的话,如图3-1 所示。我们把最左边的一列称为
输入层,最右边的一列称为输出层,中间的一列称为中间层。中间层有时也称为隐藏层。“隐藏”一词的意思是,隐藏层的神经元(和输入层、输出
层不同)肉眼看不见。另外,本书中把输入层到输出层依次称为第0 层、第
1 层、第2 层(层号之所以从0 开始,是为了方便后面基于Python 进行实现)。
图3-1 中,第0 层对应输入层,第1 层对应中间层,第2 层对应输出层。

图3-1 中的网络一共由3 层神经元构成,但实质上只有2 层神经
元有权重,因此将其称为“2 层网络”。请注意,有的书也会根据
构成网络的层数,把图3-1 的网络称为“3 层网络”。本书将根据
实质上拥有权重的层数(输入层、隐藏层、输出层的总数减去1
后的数量)来表示网络的名称。

只看图3-1 的话,神经网络的形状类似上一章的感知机。实际上,就神
经元的连接方式而言,与上一章的感知机并没有任何差异。那么,神经网络
中信号是如何传递的呢?

复习感知机

在观察神经网络中信号的传递方法之前,我们先复习一下感知机。现在来思考一下图3-2 中的网络结构。

图3-2 中的感知机接收x1x_1x1x2x_2x2两个输入信号,输出y。如果用数学式来
表示图3-2 中的感知机,则如式(3.1)所示。
y={0(b+w1x1+w2x2⩽0)1(b+w1x1+w2x2>0)\begin{align*} y = \begin{cases} 0 & (b + w_1 x_1 + w_2 x_2 \leqslant 0) \\ 1 & (b + w_1 x_1 + w_2 x_2 > 0) \end{cases} \end{align*}y={01(b+w1x1+w2x20)(b+w1x1+w2x2>0)
b 是被称为偏置的参数,用于控制神经元被激活的容易程度;而w1w_1w1w2w_2w2
是表示各个信号的权重的参数,用于控制各个信号的重要性。

顺便提一下,在图3-2 的网络中,偏置b 并没有被画出来。如果要明确
地表示出b,可以像图3-3 那样做。图3-3 中添加了权重为b 的输入信号1。这
个感知机将x1x_1x1x2x_2x2、1 三个信号作为神经元的输入,将其和各自的权重相乘后,
传送至下一个神经元。在下一个神经元中,计算这些加权信号的总和。如果
这个总和超过0,则输出1,否则输出0。另外,由于偏置的输入信号一直是1,
所以为了区别于其他神经元,我们在图中把这个神经元整个涂成灰色。

现在将式(3.1)改写成更加简洁的形式。为了简化式(3.1),我们用一个
函数来表示这种分情况的动作(超过0 则输出1,否则输出0)。引入新函数
h(x),将式(3.1)改写成下面的式(3.2)和式(3.3)
y=h(b+w1x1+w2x2)\begin{align*} y=h(b+w_1x_1+w_2x_2) \end{align*}y=h(b+w1x1+w2x2)

h(x)={0(x⩽0)1(x>0)\begin{align*} h(x) = \begin{cases} 0 & (x \leqslant 0) \\ 1 & (x > 0) \end{cases} \end{align*}h(x)={01(x0)(x>0)

式(3.2)中,输入信号的总和会被函数h(x) 转换,转换后的值就是输出y。
然后,式(3.3)所表示的函数h(x),在输入超过0 时返回1,否则返回0。因此,
式(3.1)和式(3.2)、式(3.3)做的是相同的事情。

激活函数登场

刚才登场的h(x)函数会将输入信号的总和转换为输出信号,这种函数
一般称为激活函数(activation function)。如“激活”一词所示,激活函数的
作用在于决定如何来激活输入信号的总和。

现在来进一步改写式(3.2)。式(3.2)分两个阶段进行处理,先计算输入
信号的加权总和,然后用激活函数转换这一总和。因此,如果将式(3.2)写
得详细一点,则可以分成下面两个式子。
a=b+w1x1+w2x2(3.4)a = b + w_1 x_1 + w_2 x_2 \tag{3.4}a=b+w1x1+w2x2(3.4)

y=h(a)(3.5)y = h(a) \tag{3.5}y=h(a)(3.5)

首先,式(3.4)计算加权输入信号和偏置的总和,记为a。然后,式(3.5)
用h()函数将a转换为输出y。

之前的神经元都是用一个○表示的,如果要在图中明确表示出式(3.4)
和式(3.5),则可以像图3-4 这样做。

如图3-4 所示,表示神经元的○中明确显示了激活函数的计算过程,即
信号的加权总和为节点a,然后节点a被激活函数h() 转换成节点y。本书中,“神
经元”和“节点”两个术语的含义相同。这里,我们称a和y 为“节点”,其实
它和之前所说的“神经元”含义相同。

通常如图3-5 的左图所示,神经元用一个○表示。本书中,在可以明确
神经网络的动作的情况下,将在图中明确显示激活函数的计算过程,如图3-5
的右图所示。

下面,我们将仔细介绍激活函数。激活函数是连接感知机和神经网络的
桥梁。

本书在使用“感知机”一词时,没有严格统一它所指的算法。一
般而言,“朴素感知机”是指单层网络,指的是激活函数使用了阶
跃函数A 的模型。“多层感知机”是指神经网络,即使用sigmoid
函数(后述)等平滑的激活函数的多层网络。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 14:47:44

如何在TensorFlow-v2.9中配置PyTorch安装教程GPU依赖?

如何在 TensorFlow-v2.9 环境中安全集成 PyTorch 并启用 GPU 支持 在现代 AI 开发中,一个项目往往不会只依赖单一框架。你可能正在用 TensorFlow 构建生产级推理服务,但又需要运行一段基于 PyTorch 的论文复现代码;或者团队中一部分人习惯使…

作者头像 李华
网站建设 2026/4/18 9:54:59

SeedVR2终极指南:3步实现AI视频4K超清修复

SeedVR2终极指南:3步实现AI视频4K超清修复 【免费下载链接】SeedVR2-7B 项目地址: https://ai.gitcode.com/hf_mirrors/ByteDance-Seed/SeedVR2-7B 你是否正在为AI生成的视频画质不够清晰而烦恼?无论是Sora2还是其他AI视频工具生成的素材&#x…

作者头像 李华
网站建设 2026/4/22 17:37:27

STM32F4系列移植LVGL实战案例

从零开始:在STM32F4上跑通LVGL图形界面的完整实战 你有没有遇到过这样的场景?项目需要一个带触摸屏的操作面板,客户希望界面“像手机一样流畅美观”,而你手里只有一块STM32开发板和一块并行TFT屏。传统的GUI方案要么太贵&#xf…

作者头像 李华
网站建设 2026/4/23 9:57:37

精准追踪:5种场景深度解析Linux进程内存监控工具

精准追踪:5种场景深度解析Linux进程内存监控工具 【免费下载链接】ps_mem A utility to accurately report the in core memory usage for a program 项目地址: https://gitcode.com/gh_mirrors/ps/ps_mem 在现代服务器运维和应用程序开发中,内存…

作者头像 李华
网站建设 2026/4/22 3:55:01

Yuzu模拟器性能调校终极指南:从入门到精通的全流程优化方案

还在为Yuzu模拟器卡顿、闪退而烦恼?作为你的专属技术顾问,我将带你从基础安装到高级调优,彻底解决游戏兼容性难题。本文基于最新测试数据和真实用户反馈,为你提供最实用的性能提升方案。 【免费下载链接】yuzu-downloads 项目地…

作者头像 李华
网站建设 2026/4/23 13:17:24

基于Vue.js+AI+可视化的去中心化知识图谱系统的设计与实现

阅读提示 博主是一位拥有多年毕设经验的技术人员,如果本选题不适用于您的专业或者已选题目,我们同样支持按需求定做项目,论文全套!!! 博主介绍 CSDN毕设辅导第一人、靠谱第一人、全网粉丝50W,csdn特邀作者…

作者头像 李华