游乐游手机版
首页/AI热点日报/热点详情

典型神经网络结构全面入门教程与实例详解

类型:热点整理2026-07-06
从本质上来说,深度学习这个名字算是旧瓶装新酒——它背后的主题,神经网络,其实已经存在相当长一段时间了。从20世纪40年代算起,这个领域一路迅猛发展,到今天已经彻底渗透进智能手机、汽车,以及大量智能设备中。可以说,深度学习的成功有目共睹。那么,神经网络到底是什么?它又能做什么?先来看传统计算机科学的典

从本质上来说,深度学习这个名字算是旧瓶装新酒——它背后的主题,神经网络,其实已经存在相当长一段时间了。

从20世纪40年代算起,这个领域一路迅猛发展,到今天已经彻底渗透进智能手机、汽车,以及大量智能设备中。可以说,深度学习的成功有目共睹。

那么,神经网络到底是什么?它又能做什么?

先来看传统计算机科学的典型做法:

程序员设计一种算法,对给定的输入数据生成输出数据——说白了,就是精准地构造函数 f(x) 的所有逻辑:

y = f(x)

其中 x 是输入,y 是输出。

不过,有时候 f(x) 的设计并不那么简单。举个例子,假设 x 是一张人脸图像,y 是照片中人的名字。对大脑来说,这是小菜一碟;但对计算机算法而言,却是个大的麻烦。

这正是深度学习和神经网络大放异彩的地方。

核心思路很简单:放弃手工设计 f(),转而模仿大脑。

那么,大脑是怎么工作的?

大脑会用无数个 (x, y) 样本——也就是训练集——不断进行训练。在这个过程中,f(x) 自动成型。它并非由任何人刻意设计,而是在无数次试错中提炼出来的机制。

想象一个孩子每天观察周围熟悉的人。数十亿张快照,在不同位置、不同视角、不同光线条件下抓拍。每次识别都带来一次关联,每次关联都修正并锐化着自然的神经网络。

人工神经网络正是以大脑中的神经元和突触为模型构建的。

典型的神经网络结构

为了保持简洁,并兼顾当前计算机的数学与计算能力,神经网络通常被设计成一组层。每一层包含若干节点——也就是大脑神经元的人工对应物——而层中的每个节点都会连接到下一层中的节点。

每个节点都有一个状态,用浮点数表示,取值范围通常在0到1之间。状态接近最小值时,节点被视为非活跃(关闭);接近最大值时,则为活跃(打开)。可以把它想象成一个灯泡——不必严格遵循二进制,它可以在取值范围内处于任意中间值。

每条连接都有一个权重。因此,前一层中的活跃节点或多或少会影响下一层节点的活跃程度(这叫兴奋性连接),而非活跃节点则不会产生任何影响。

连接权重也可以是负的,这意味着前一层中的节点会对下一层节点的非活跃性做出贡献(这叫抑制性连接)。

为了简化,假设一个网络子集:前一层有三个节点与下一层的一个节点相连。前两个节点处于最大激活值(1),第三个节点处于最小值(0)。

上图里,前层的前两个节点是活跃的(开),所以它们对下一层节点的状态有贡献;第三个节点非活跃(关),因此完全不产生任何影响(与它的连接权重无关)。

第一个节点拥有强(粗)的正(绿色)连接权重,意味着它对激活贡献很大。第二个节点拥有弱(细)的负(红色)连接权重——因此它主要起抑制连接节点的作用。

最终,我们得到来自前一层所有传入连接节点的贡献值的加权和:

其中 i 是节点 i 的激活状态,w_{ij} 是连接节点 i 和节点 j 的权重。

那么,给定这个加权和之后,如何判断下一层节点是否会被激活?规则简单到“总和为正就激活,结果为负就不激活”吗?有可能,但说到底,这取决于你为节点选择的激活函数(以及阈值)。

想一想:这个最终数字可以是实数范围内的任意值,而我们需要的节点状态却被约束在0到1之间。于是,必须把第一个范围映射到第二个范围,把任意正负数压缩到0~1之间。sigmoid 函数就是干这个活的常见激活函数。

图中,阈值(y值达到范围中点,也就是0.5时的x值)为零,但一般来说可以取任意值(负数或正数,其变化会使sigmoid曲线向左或向右移动)。

当然,低阈值允许用较小的加权和激活节点,而高阈值则只允许加权和较高时才能激活。

这个阈值可以通过在前一层增加一个固定激活值为1的虚节点来实现。此时,这个虚节点的连接权重就可以充当阈值,前面提到的加权和公式也能把阈值本身包含进去。

最终,网络的状态由全部权重的一组值表示(广义上讲,包括阈值)。

可以想象,某个状态或一组权重值会带来糟糕的结果——也就是大误差;另一个状态则可能产出好结果,即小误差。所以,在N维状态空间中移动,会制造出或大或小的误差。

损失函数就是将权重域映射到误差值的函数。在n+1维的空间里,人脑很难直观想象这样的函数,但N=2这个特殊情况是个例外。

训练神经网络本质上就是在寻找损失函数的最小值。为什么是最佳最小值,而不是全局最小值?因为这个函数通常不可微,只能借助梯度下降技术在权重域中游荡,同时注意避免两个陷阱:

  • 做出太大的变动,很可能还没觉察就错过了最佳最小值;
  • 做出太小的变动,又可能困在一个不理想的局部最小值。

不容易,对吧?这就是深度学习的核心难题,也解释了为什么训练阶段经常需要花上数小时、数天甚至数周。正因为如此,硬件在这项任务中至关重要,同时这也解释了为什么大家常常得暂停、思考不同的方法和配置参数,然后重新开始。

回到网络的一般结构:它是一堆层。第一层是输入数据(x),最后一层是输出数据(y)。中间的层可以是零个、一个或多个,它们被称为隐藏层。深度学习里的“深度”一词,正是指网络可以堆叠许多隐藏层,从而在训练过程中挖掘更多关联输入和输出的特征。

话说回来,20世纪90年代的时候,人们更习惯说多层网络而非深度网络——但两者是一回事。今天越来越清晰的是,越远离输入层的筛选层,越能捕捉抽象特征。

学习过程

在最初阶段,所有权重都是随机设置的。于是,第一层给定的输入会传递下去并生成随机的输出数据。把实际输出与期望输出一比较,差异就是网络误差(损失函数)的度量。

然后,这个误差被用来调整产生它的连接权重。调整过程从输出层开始,逐步向后移动到第一层。调整量可以很小,也可以很大,通常由所谓的学习率来控制。

这种算法叫做反向传播,在Rumelhart、Hinton和Williams的研究推动下,于1986年开始流行。

记住这个名字:杰弗里·辛顿(Geoffrey Hinton)——公认的“深度学习教*父”,一位不知疲倦的领路人。他甚至已经开始研究名为胶囊神经网络(Capsule Neural Networks)的新范式,听起来像是这个领域的又一场伟大革命。

反向传播的目标是,通过在训练轮次中不断对权重进行适当校正,逐步减少网络的整体误差。当然,减少误差这一步本身很棘手,因为你无法保证权重调整总是朝着正确的方向使误差最小化。

简而言之,就像戴着眼罩在一个n维曲面上寻找最低点:你能找到一个局部最低点,但永远不知道是否还有更低的点。

如果学习率太低,过程会极其缓慢,网络还可能卡在局部极小值。反之,较高的学习率则可能导致跳过全局最小值,甚至让算法发散。事实上,训练阶段的最大难题恰恰是——误差只增不减!

现状

那么,为什么这个领域如今能取得如此巨大的成功?

核心原因只有两个:

  • 训练所需的海量数据(来自智能手机、各种设备、物联网传感器和互联网)已变得触手可及;
  • 现代计算机的计算能力大幅缩短了训练阶段(几周甚至几天完成训练已经不算稀奇)。
来源:https://m.elecfans.com/article/1871358.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。