技术学习_人工智能_1_神经网络是如何实现的?
1.神经网络的发展
从1940年代至2012年,神经网络的发展经历了多个关键阶段。1943年,McCulloch 和 Pitts 提出了首个形式化神经元模型(MP模型),1949年 Hebb 提出神经可塑性原则,为学习规则奠定基础。1958年,Rosenblatt 提出感知机模型,引发第一次人工智能热潮,但因其无法处理非线性问题,1969年迎来首次“AI寒冬”。1980年代,Hopfield 网络(1982)和反向传播算法(1986)的提出,推动多层神经网络的发展,引发第二次兴起。1990年代,支持向量机(SVM)等传统机器学习方法崛起,神经网络研究热度下降。直到2006年,Hinton 等人提出深度学习方法,开启神经网络新时代。2011年深度学习在语音识别中取得突破,2012年 AlexNet 在图像识别任务中表现优异,标志着深度学习迎来第三次兴起。
2. 人工神经网络的概念
神经网络是由大量神经元通过突触相互连接而成的复杂系统,是生物大脑中信息传递和处理的基础。每个神经元通过树突接收来自其他神经元的信号,在细胞体中整合这些信号后,通过轴突将信息传递给下一个神经元。神经网络能够支持大脑的学习、记忆与决策等高级智能活动。
人工神经网络(ANN)是一种受生物神经网络启发的计算模型,主要由输入层、隐藏层和输出层构成。它将每个人工神经元视为一个计算节点,通过设置连接权重来模拟突触强度,模拟大脑处理信息的方式。随着层数的增加,人工神经网络具备了强大的特征提取与非线性建模能力,被广泛应用于语音识别、图像分类、自然语言处理等领域。
神经网络与人工神经网络之间存在密切的启发与模拟关系。人工神经网络并非对生物神经系统的完全复制,而是对其结构和功能的抽象建模。它借鉴了神经元之间的连接方式和信息处理流程,将其转化为数学计算框架,使计算机能够通过“学习”模拟人类的智能行为。
3. 基于ANN的图像识别
3.1 通过神经元实现模式识别
在基于人工神经网络(ANN)的图像识别中,系统通过模拟人脑处理信息的方式,从图像中提取特征并进行分类判断。图像识别的关键在于识别图像中是否存在某种特定的模式,而这正是模式匹配的核心思想。上图展示了模式匹配的基本过程:将输入图像与一个已知的模式模板逐像素进行比对,通过对应位置的数值进行逐项相乘并求和,从而得到一个匹配得分。得分越高,说明输入图像越接近模板所代表的模式。这种方法构成了神经网络处理图像的基本计算框架,是实现字符识别、目标检测等任务的重要基础。
Sigmoid函数是一种常用的激活函数,它的作用是将神经元的输出值压缩到 0 到 1 的区间内,使得网络能够引入非线性表达能力,并且输出具有概率意义。具体而言,Sigmoid函数能够模拟“神经元是否被激活”的状态,小的输入值会被压缩到接近0,大的输入值则趋近于1。
常见激活函数包括Sigmoid、ReLU、Tanh、Leaky ReLU和Softmax。引入激活函数是为了为神经网络提供非线性建模能力,使其能够学习和表示复杂的输入输出关系。
带偏置的Sigmoid函数则在这个加权求和结果的基础上额外加上一个偏置项(bias),用以调整激活函数的整体位置,从而增强模型的表达能力。偏置项可以被理解为一种“自由度”,它允许神经元在没有输入激活的情况下仍然产生输出,有助于模型更好地拟合复杂数据分布。
神经元中每个输入值通过与对应的权重相乘后汇总,并加入一个偏置项,形成该神经元的总输入。随后,这一结果会经过激活函数(如Sigmoid函数)处理,最终产生输出。整个过程可以理解为神经元通过“模式匹配”的方式对输入数据进行判断与筛选,输出的结果代表当前输入与神经元所代表模式的匹配程度。每个神经元专注于识别一种特定的特征或模式,多个神经元组合在一起便构成了具有强大识别能力的神经网络系统。神经元的模式识别
3.2 通过两层神经网络实现模式识别(整体模式)
神经网络的输入层接收来自图像等数据的特征信息,通过带有不同权重的连接传递到输出层的各个神经元。输出层中的每个神经元代表一个具体的识别目标或模式,例如“模式3”或“模式8”。在识别过程中,网络对输入信息进行加权求和并经过激活函数处理,输出层中激活值最高的神经元即表示当前输入最匹配的模式。通过这种方式,神经网络能够有效区分不同类别,实现对图像或其他输入的自动识别与分类。
上面的神经网络用于数字识别,输出层包含十个神经元,分别对应数字0到9。每个输出神经元对所有输入进行整合,并通过激活函数输出匹配程度。最终,输出值最大的神经元对应的数字即为识别结果。该方法无需手动设定规则,可通过训练自动学习图像与数字的映射关系,实现数字识别。神经网络的模式识别
3.2 通过多层神经网络实现模式识别(局部模式组合)
多层神经网络通过局部模式组合实现复杂模式识别的过程。输入层接收图像的像素信息,隐含层的每个神经元可分别响应图像的某一局部区域,例如数字“3”的左部或右部、数字“8”的左右部分。隐含层通过对这些局部特征的提取和编码,逐步组合出更具判别性的整体结构。在输出层,各模式神经元(如表示“3”或“8”的神经元)会根据这些组合特征做出判断,从而实现对复杂图像模式的识别。这种“从局部到整体”的层级表示能力,是多层神经网络优于单层模型的重要原因。
神经网络通过训练样本自动调整连接权重,其中反向传播(BP)算法用于根据误差逐层更新权重,实现模型的自我学习与优化。权重并非人工设计
4. 神经网络的训练
建立数据集,划分训练集与测试集:神经网络训练的第一步是准备数据集,并将其划分为训练集与测试集。训练集用于指导模型学习输入与输出之间的关系,而测试集用于评估模型在未见样本上的泛化能力,确保其不仅能“记住”训练数据,还能正确处理新数据。
神经网络的训练与权重调整:训练过程中,神经网络通过多次遍历训练集,将输入样本传入网络并生成输出结果。输出与真实标签之间的误差被反馈到网络中,用于调整每一层神经元之间的连接权重。权重的更新是模型不断改进的关键,决定了网络最终的性能。
- 最小化损失函数以提升准确性:为了量化预测结果与真实标签之间的差距,神经网络引入损失函数(如均方误差、交叉熵等)作为优化目标。训练的核心任务就是不断调整网络参数,使损失函数的值尽可能小,从而提升模型对目标任务的预测准确率。
- 利用梯度下降法进行优化:实现损失最小化常用的方法是梯度下降法。该方法通过计算损失函数对每个权重的偏导数(即梯度),指明损失函数在当前点的下降方向,并据此更新参数值。通过不断迭代优化,神经网络逐步逼近最优解,实现有效学习。
- 梯度下降的具体实现:反向传播(BP)算法是连接误差计算与权重更新的核心机制。当网络生成输出并与真实标签比较后,BP算法会从输出层开始,将误差信息逐层向后传播至每一个隐藏层神经元,并利用链式法则计算损失函数对各层权重的梯度。这些梯度被用于梯度下降法中,指导每个权重如何调整,以最小化损失函数。借助BP算法,神经网络得以高效地识别哪些连接需要加强或减弱,从而逐步提升模型的预测能力。
在神经网络的训练中,损失函数、梯度下降法和反向传播(BP)算法三者构成了一个紧密关联的优化体系。损失函数用于衡量网络输出与真实标签之间的差距,是训练的优化目标;梯度下降法通过计算损失函数关于每个权重的梯度,指引网络参数朝着减小损失的方向调整;而BP算法正是实现这一梯度计算的核心工具,它通过链式法则将误差从输出层向前逐层传播,精确地求出每一层权重对损失函数的贡献。三者协同作用,使神经网络能够高效地学习并不断提升预测性能。神经网络训练->损失函数最小化->梯度下降算法->BP算法
在深度学习中,常见的损失函数包括用于回归任务的均方误差(MSE)、平均绝对误差(MAE)和Huber损失,以及用于分类任务的交叉熵损失(Cross-Entropy)和二元交叉熵。梯度下降算法方面,常用方法有SGD(随机梯度下降)、Mini-batch SGD、Momentum、RMSProp 和 Adam,其中Adam因具备自适应学习率与动量机制,适用于大多数任务。回归通常结合MSE与SGD或Adam,分类则多采用交叉熵与Adam优化器,合适的组合有助于提升模型性能与训练效率。
5. 卷积神经网络
全连接神经网络在结构上每个神经元与上一层的所有神经元都有连接,虽然具备较强的表达能力,但也存在明显不足。其主要问题是连接权重数量过多,导致参数冗余,不仅增加了模型的计算和存储开销,还显著影响了训练速度和推理效率。在处理高维输入时,这种结构会造成资源浪费,限制了模型的实际应用性能。
上图展示了卷积神经网络(Convolutional Neural Network, CNN)的基本工作原理。与全连接网络不同,CNN采用局部连接和权值共享的结构,大幅减少了参数数量,提高了计算效率。图中,输入图像被一个称为卷积核(或权重模板)的窗口滑动扫描,每次仅处理局部区域。卷积核中的权值是通过训练获得的,用于识别局部特征模式。每次卷积操作会将输入局部区域与卷积核进行逐元素相乘并求和,得到一个输出值,称为特征图(feature map)中的一个位置。这种滑动匹配的过程可以提取图像中的边缘、纹理等关键结构信息。最终,输出的特征图保留了输入图像的空间结构,同时显著减少了计算开销,是图像分类、目标检测等视觉任务中的核心组成。卷积神经网络提取局部模式
上图对比了全连接神经网络与卷积神经网络在连接方式和参数数量上的显著差异。全连接网络中,每个输出节点与所有输入节点相连,导致连接权重数量庞大(如图中需234个参数),不仅计算成本高,也容易过拟合。相比之下,卷积神经网络采用局部连接与权值共享的机制,卷积核在输入上滑动时只提取局部特征,并重复使用相同的参数,大大减少了模型所需的总参数量(图中仅需10个),提升了训练效率和模型的泛化能力。这种结构优势使得卷积神经网络在处理图像等高维数据时更具优势。
卷积核:卷积核是用于提取图像局部特征的权重模板,通过在输入上滑动并进行加权运算来识别边缘、纹理等模式。
通道:通道表示图像或特征图在深度维度上的信息层数,输入图像一般有RGB三通道,卷积操作后可生成多个特征通道以捕捉不同类型的特征。
池化:池化是对特征图进行降采样的操作,常用最大池化或平均池化,能够压缩数据、减少计算量,并增强特征的平移不变性。
LeNet-5广泛应用于手写数字识别等任务。网络输入为32×32的图像,首先经过两层卷积层与最大池化层交替提取局部特征,逐步减少空间维度并增强抽象表示。其中第一组卷积和池化后得到6个14×14的特征图,第二组卷积和池化后扩展到16个5×5的特征图。之后,网络通过三层全连接层进一步整合特征信息,最终输出层包含10个神经元,用于分类数字0至9。LeNet结构设计合理,参数较少,是现代深度卷积网络的先驱之一。最早用卷积神经网络构建图像识别系统(CNN+MLP)
VGG-16输入为224×224×3的彩色图像。VGG-16由多个3×3卷积层和2×2最大池化层组成,逐步提取图像的空间与语义特征。整个网络共包含13个卷积层和3个全连接层,其中中间特征图的深度从64逐渐增加到512,用于提取更复杂的图像表示。最后三层全连接结构包含两个4096维的隐藏层和一个1000维的Softmax输出层,用于ImageNet 1000类分类任务。VGG-16结构简单统一,深度适中,是深度学习中广泛应用与迁移的重要基准模型。比较知名的图像识别系统(纯CNN)
6. 代表性问题及解决(梯度消失,网络退化,过拟合)
梯度消失问题是深度神经网络训练中常见的困难,尤其在层数较深的网络中更为突出。当误差信号从输出层通过反向传播向输入层传递时,梯度在每层被不断乘以小于1的值,导致越靠近输入层的参数更新越来越微弱,甚至几乎不变,从而影响网络的学习能力。该问题使得网络难以有效训练,收敛速度变慢,模型性能受限,特别是在使用如Sigmoid或Tanh等饱和激活函数时更易出现。
GoogLeNet通过在网络中间引入辅助分类器,为主干网络提供额外的监督信号,有效增强了梯度在深层网络中的传播能力,从而缓解了梯度消失问题。这些辅助输出分支通过独立的损失函数参与训练,确保深层网络各部分都能获得清晰的误差信号,提升整体训练稳定性。与此同时,GoogLeNet的核心组件——Inception模块,在每一层中并行使用不同尺寸的卷积核(1×1、3×3、5×5)和最大池化操作,从多个尺度提取特征,并通过特征拼接整合信息,显著增强网络的表示能力。此外,模块中使用1×1卷积进行降维,有效降低参数量和计算开销,使网络在保持深度和表达能力的同时更加高效。GoogLeNet用于解决梯度消失
网络退化问题是指随着神经网络层数的增加,模型性能不仅没有提升,反而出现训练误差增大的现象。这一问题并非源于过拟合或梯度消失,而是由于网络加深后模型难以有效地学习有用特征,导致浅层网络能够很好训练,而深层网络反而性能下降。换句话说,理论上更深的网络应具备更强的表达能力,但实际训练中却因优化困难、信息传递受阻等因素,出现“更深但更差”的退化现象。
ResNet的核心创新在于引入恒等映射(identity mapping)形式的残差连接,以有效缓解深层神经网络中的退化问题。传统网络在层数加深时,模型性能往往不升反降,而 ResNet 通过将输入直接绕过多个卷积层并与输出相加,实现“跳跃连接”(skip connection),使得梯度在反向传播过程中能更顺畅地传递至前层,避免梯度消失或梯度过小。这种残差学习机制让网络可以更容易地学习恒等变换或轻微调整,从而在加深网络的同时保持或提升模型性能,推动了超深网络(如 ResNet-50、ResNet-101)的广泛应用与成功。用于解决网络退化

上图左侧展示了欠拟合、理想拟合与过拟合三种模型状态。理想拟合(红线)能够平衡训练数据与泛化能力,而过拟合(蓝线)则表现为模型过度贴合训练数据的细节和噪声,导致在测试集上表现不佳。右图进一步揭示了过拟合的动态过程:随着训练轮次增加,训练集误差持续下降,但测试集误差在达到某一点(即“停止点”)后反而开始上升,说明模型已开始过拟合。这种现象表明,虽然模型在训练数据上性能优异,但在未见过的新数据上却缺乏泛化能力。
正则化项可以引入到损失函数中,用于限制模型的复杂度,从而有效缓解过拟合问题。正则化通过对模型参数的大小施加惩罚,鼓励网络学习更加简洁、平滑的函数表示,避免对训练数据中的噪声进行过度拟合。常见的正则化方法包括 L1 正则化(促使参数稀疏)和 L2 正则化(抑制权重过大),它们分别在损失函数中添加参数绝对值和平方和的惩罚项。通过这种方式,模型更倾向于保留对预测有关键作用的特征,从而提升在测试集上的泛化性能,有效降低过拟合风险。
舍弃法(Dropout )是一种有效缓解过拟合的方法,其核心思想是在每次训练过程中随机“舍弃”一部分神经元,即临时将这些神经元及其连接从网络中移除,避免模型对局部特征的过度依赖。通过这种方式,Dropout 相当于在训练阶段构建了多个不同的神经网络子集,并在测试阶段将它们的预测结果集成起来,形成一个更具鲁棒性和泛化能力的模型,从而显著降低过拟合风险,提高模型性能。
数据增强是一种常用且有效的防止过拟合的方法,通过对原始训练样本进行一系列随机变换(如旋转、裁剪、翻转、缩放、加噪声、颜色扰动等),生成多样化的新样本,从而扩大训练集的规模和多样性。这种方式不仅增加了模型看到的数据变种,提升了其泛化能力,还降低了模型对训练集中具体样本特征的依赖,从而有效缓解过拟合问题。
7. 语言模型基础
词向量是一种将语言中的词语映射为数值向量的方式,能够捕捉词语之间的语义和语法关系。在自然语言处理中,计算机无法直接理解文本,必须将词语转换为模型可处理的数字形式。传统的表示方法如独热编码无法表达词与词之间的关联性,维度高且稀疏,难以支持深层语义分析。而词向量通过在连续空间中表示词语,不仅能显著降低维度,还能使语义相似的词在向量空间中彼此靠近,从而为各类语言理解任务奠定了更加有效和丰富的基础。
独热编码是一种将分类变量转换为数值表示的方法,常用于将文本中的词语表示为计算机可处理的向量。在独热编码中,每个词被表示为一个全为0、仅在对应位置为1的向量,该位置唯一对应该词在词汇表中的编号。例如,若词汇表包含1000个词,每个词就被表示为一个1000维的向量,只有一个元素为1,其余为0。虽然独热编码简单直观,能有效区分不同词,但其缺点也很明显:维度高、稀疏性强,且无法反映词与词之间的语义关系,限制了其在深层语言建模中的应用。
分布式表示将每个词映射为一个低维稠密向量,如图左所示,每个词被表示为一个包含实数的向量。这些向量通过训练学习得到,能够捕捉词与词之间的语义和语法关系。图右展示了这些词向量在二维空间中的投影,词语之间的相对位置体现了它们的语义相似性和关系,例如 "king" 与 "queen"、"man" 与 "woman" 在语义上形成对应关系,"Paris" 与 "France"、"Rome" 与 "Italy" 等也展现出国家与首都的对应模式。这种表示方式不仅降低了维度,还能在计算中保留词语间的内在联系,是自然语言处理中词语建模的核心基础。
语言模型是一种用于评估词序列是否构成合理句子的概率模型。它通过学习大量文本数据中词与词之间的统计规律,估计一个句子中各个词按顺序出现的联合概率。换句话说,语言模型能够判断一个句子在语言上是否自然、通顺,其核心目标是计算一个给定词序列的整体出现概率,从而在机器翻译、语音识别、文本生成等任务中发挥关键作用。