问题

人工「神经网络」技术在信息处理上有何特点,工作原理是什么?

回答
触碰智慧的边界:人工神经网络在信息处理上的独特魅力与工作之道

在我们这个信息爆炸的时代,如何有效地处理、理解和利用海量数据,是摆在我们面前的一项巨大挑战。而人工神经网络(Artificial Neural Networks, ANNs),这个源于模仿生物大脑结构和功能的计算模型,正以其独特的魅力,为信息处理领域带来了革命性的变革。它不再是冰冷的算法堆砌,而是更像一种“学习”和“感知”的智能体,能够从数据中提炼规律,甚至进行预测和决策。

独特的处理信息特质

人工神经网络之所以能在信息处理上独树一帜,关键在于它身上蕴含的几项核心特质:

强大的非线性映射能力: 现实世界中的许多关系并非简单的线性关系,比如图像的识别、语音的理解,这些都涉及到极其复杂的非线性变化。传统算法在处理这类问题时往往显得力不从心。神经网络通过其多层结构的“非线性激活函数”,能够有效地捕捉和模拟这些复杂的非线性映射,将输入数据转化为有意义的输出。这就像我们的大脑,能够分辨出即使是相似但细微的差异,从而做出判断。

分布式存储与并行处理: 与传统计算机将信息集中存储和顺序处理不同,神经网络的信息是分散存储在各个“神经元”的连接权重中的。这意味着信息并不是存储在一个固定的位置,而是分布在整个网络之中。同时,网络的各个部分可以并行工作,就像我们大脑中的不同区域同时处理视觉、听觉和思考一样。这种分布式存储和并行处理的特性,使得神经网络在处理大规模、高维度数据时,能够展现出惊人的效率和鲁棒性,即使部分神经元“失灵”,整个系统也能继续有效运作,具有良好的容错性。

自学习与自适应能力: 这是神经网络最令人着迷的特质之一。它不像传统的程序那样需要人类预先设定好所有的规则和逻辑。相反,神经网络可以通过“训练”过程,从大量的示例数据中“学习”规律。通过不断地调整连接权重,它能够逐渐改进自己的性能,适应新的、未见过的数据。这种“边学边做”的能力,使得神经网络在面对未知领域或不断变化的环境时,表现出强大的适应性。

特征提取与模式识别: 神经网络能够自动地从原始数据中提取出有用的特征,而无需人工进行繁琐的特征工程。在图像识别中,浅层网络可能识别出边缘、纹理等基本特征,而深层网络则能将这些基本特征组合成更复杂的模式,最终识别出人脸、物体等。这种“自动发现”特征的能力,极大地简化了数据处理的流程,并提升了识别的精度。

泛化能力: 一个训练有素的神经网络,不仅仅是记住训练数据,更重要的是它能够将从训练数据中学到的知识“泛化”到未见过的新数据上。这意味着,即使输入的数据与训练数据有所不同,神经网络也能够做出合理的预测或判断。这种泛化能力,是神经网络能否真正应用于实际问题的关键。

探索深邃的工作原理

理解人工神经网络的工作原理,就像是在探索大脑这个复杂器官的运作机制。虽然我们对其内在细节仍有许多未知,但其核心的运作流程可以概括为以下几个步骤:

1. 结构构建:模仿大脑的“神经元”与“连接”

神经元(Neuron): 神经网络的基本单元,可以类比生物神经元。每个神经元接收来自其他神经元的输入信号,然后对这些信号进行处理,并产生一个输出信号。
连接(Connection)与权重(Weight): 神经元之间通过“连接”相互传递信号。每个连接都有一个“权重”,这个权重代表了该连接的“强度”或“重要性”。权重越大,表示该输入信号对当前神经元的输出影响越大。这些权重就是神经网络学习到的“知识”的载体。
层(Layer): 神经元通常被组织成层。最常见的结构包括:
输入层(Input Layer): 接收原始的外部数据,如图像的像素值、文本的词向量等。输入层的神经元数量取决于输入数据的特征数量。
隐藏层(Hidden Layer): 位于输入层和输出层之间,是进行复杂信息处理的核心。隐藏层的数量和每层的神经元数量,是决定网络模型复杂度的重要因素。一个网络可以有多个隐藏层,这便是“深度学习”的由来。
输出层(Output Layer): 产生最终的处理结果,如分类的类别、预测的数值等。输出层的神经元数量取决于任务的输出形式。

2. 信号的传递与激活:信息如何流动

加权求和: 当信号从一个神经元传递到另一个神经元时,会乘以连接的权重。一个神经元接收到的总输入信号,是所有输入信号经过权重加权后的总和。
激活函数(Activation Function): 原始的加权求和结果,并不能直接决定神经元的输出。在这个加权求和结果上,会应用一个“激活函数”。激活函数的作用是引入非线性,将输入信号转化为输出信号。它决定了神经元是否“激活”,以及激活的强度。常见的激活函数有Sigmoid、ReLU(Rectified Linear Unit)、Tanh等。例如,ReLU函数会简单地将负值置零,而正值则保持不变,这模仿了生物神经元只有在接收到足够强的信号时才会“兴奋”的特性。

3. 学习的过程:通过“试错”修正权重

前向传播(Forward Propagation): 训练过程中,首先会将输入数据从输入层开始,一层一层地向前传递,经过权重加权、激活函数处理,最终到达输出层,产生一个预测结果。
损失函数(Loss Function): 将神经网络的预测结果与真实的期望结果进行比较,计算出一个“误差”或者“损失”。损失函数衡量了预测结果与真实值之间的差距。损失函数的值越小,说明模型的预测越准确。
反向传播(Backpropagation): 这是神经网络学习的核心算法。它利用微积分中的链式法则,将输出层的误差,从输出层开始,一层一层地反向传播回输入层。在这个过程中,算法会计算出每个权重对总误差的“贡献度”,也就是“梯度”。
梯度下降(Gradient Descent)或优化器: 根据计算出的梯度,通过“梯度下降”等优化算法,对网络中的权重进行微调。优化的目标是使损失函数的值最小化。简单来说,就是朝着使误差变小的方向,调整权重。这个调整的过程会不断重复,直到网络的预测结果足够接近真实值。

举个例子,想象你在学习骑自行车。刚开始,你可能掌握不好平衡,经常摔倒(高损失)。你通过观察自己的动作,以及别人给的反馈(反向传播),了解到是手腕的角度不对,或者是脚踩的力度不够(计算梯度)。然后,你就会尝试调整这些动作(更新权重),直到能够平稳地骑行(低损失)。

4. 应用场景:智慧之花的绽放

正是凭借这些独特的处理能力和精巧的工作原理,人工神经网络在信息处理的各个领域都展现出了强大的生命力,例如:

计算机视觉: 图像识别、目标检测、人脸识别、医学影像分析等。
自然语言处理: 机器翻译、文本情感分析、语音识别、智能问答、文本生成等。
推荐系统: 电商平台的商品推荐、视频平台的影片推荐等。
金融领域: 股票市场预测、风险评估、欺诈检测等。
自动驾驶: 车辆路径规划、障碍物识别、交通信号灯识别等。

总而言之,人工神经网络并非简单的计算工具,它是一种模拟生物学习机制的强大模型。通过层层传递的信号、可调节的连接权重以及不断优化的学习过程,神经网络能够从海量数据中提炼模式、理解复杂关系,并将其应用到各种实际问题中,悄然地改变着我们与信息互动的方式,引领着人工智能前行的步伐。

网友意见

user avatar

太长不看划重点,由我个人理解,人工「神经网络」在信息处理上的特点可以归纳为以下三类:

  1. 非线性:省心的“万能函数逼近器”
  2. 简单粗暴却极度复杂
  3. 极强的可拓展性与应用潜力

为了充分了解这三个特点,我们需要从人工神经网络是什么开始讲起


PART 1: 神经网络的原理

1. 概述:人工神经网络是什么

人工神经网络(英语:Artificial Neural Network,ANN),简称神经网络(Neural Network,NN),在机器学习和认知科学领域,是一种模仿生物神经网络(动物的中枢神经系统,特别是大脑)的结构和功能的数学模型或计算模型,用于对函数进行估计或近似。

神经网络由大量的人工神经元联结进行计算。大多数情况下人工神经网络能在外界信息的基础上改变内部结构,是一种自适应系统,通俗的讲就是具备学习功能

现代神经网络是一种非线性统计性数据建模工具,神经网络通常是通过一个基于数学统计学类型的学习方法(Learning Method)得以优化,所以也是数学统计学方法的一种实际应用,通过统计学的标准数学方法我们能够得到大量的可以用函数来表达的局部结构空间,另一方面在人工智能学的人工感知领域,我们通过数学统计学的应用可以来做人工感知方面的决定问题(也就是说通过统计学的方法,人工神经网络能够类似人一样具有简单的决定能力和简单的判断能力),这种方法比起正式的逻辑学推理演算更具有优势[1]

和其他机器学习方法一样,神经网络已经被用于解决各种各样的问题,例如机器视觉和语音识别。这些问题都是很难被传统基于规则的编程所解决的。

那么,人工神经网络是怎么模仿生物神经网络的呢?让我们先展开说说

1.1 从生物神经元到人工神经元

神经系统Nervous system中的细胞叫做神经元Neuron,人脑中有大概一千亿个神经元。树突Dendrite和轴突Synapse。而神经元之间通过电化学过程进行交流

生物神经网络中,每个神经元与其他神经元相连,当它兴♂奋时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个阈值,那么它就会激活,即兴♂奋起来并向其他神经元发送化学物质。

深度学习借鉴了这样的结构,每一个神经元(定义中的适应性简单单元)接受输入 x ,通过带权重 w 的连接进行传递,将加权总输入信号与神经元的阈值θ进行比较,最后通过激活函数处理确定是否激活,并将激活后的计算结果 y 输出,而我们所说的训练,所训练的就是这里面的权重 w

而将这些神经元一层一层地相互连接,我们就得到了一个复杂的多层神经网络~

如下图所示,每一层的每一个神经元与上一层的每一个神经元相连,所以这也叫全连接神经网络。

而下图的连接都是用箭头表示的,这说明信息(数据)的流动方向是由“输入→输出”,一路向前不回头,因此这种神经网络也成为“前馈”神经网络。

把上述的三段话合在一起,我们就得到了最原始的神经网络模型——“多层/全连接/前馈/神经网络

是不是觉得看着头昏脑胀,看了这么半天还没有涉及到我说的那三个特性?那不如让我们找一个实际的例子说明一下!


PART2:从认识狗和曲奇开始,了解神经网络的特性

1. 大杀特杀的深度神经网络

卷积神经网络为代表的深度学习理论在舆论界走向高潮的事件是16年左右Alpha Go先后击败人类顶尖棋手李世石和柯洁[2]

但在此之前,深度学习理论在学术界获得重视的出发点则是2012年名为AlexNet[3]的卷积神经网络模型力压群雄,获得了图像识别比赛ImageNet的冠军。而随后的所有图像识别比赛中,几乎所有的图像识别类比赛中,名列前茅的参赛队伍都使用了基于卷积神经网络的架构,而在2015年,ResNet[4]的图像识别能力首次超过人类。

(基础好的同学可以参考我的这个回答,了解ResNet的原理)

2. 从图像识别讲起

图像识别其实是个对我们来说很简单的任务:给AI看一张图片,AI告诉你图里的“是什么东西”。

但直到12年之前,这却就是一直难倒一票科学家的问题。因为最早我们解决问题的方法是基于“统计+规则”的方法。如下图所示(密恐警告……)。

过去,程序员通过人为编程告诉程序,狗的脸是一个“白色或者黄色的圆,上面有固定分布的三个黑色小球”这一规则。结果,来自现实数据的毒打教会了程序员,很多曲奇其实也长这样,这种基于简单“统计+规则”的方法行不通。

你可能觉得“再加几条规则就好了?”但实际上,为了实现人想要的效果,需要统计的规则会变得无穷多,甚至我们自己都不知道需要统计哪些规则。你难道以为搞定了曲奇,戚风蛋糕就不会冲过来暴打程序员了吗?

类似问题充斥于计算机视觉,自然语言处理等很多领域。直到有一天,AI程序员的大救星,也就是本文的主角“神经网络”诞生了。它是一种方便的工具,可以对大数据进行自我学习,并找出那些连人类都说不清为什么的规则,且它们就是有用,比如当初暴打人类围棋的“点三三”起手。

而且,图像识别任务是人脸识别/目标检测之类更高级任务的基础。只有教会AI每种东西长什么样,它才能对其做出特定的反应。不知道什么是人脸,美颜相机就没脸可以美,地铁站那些方便的人脸识别功能就更无从谈起了。

实际上,几乎所有计算机视觉任务用到的神经网络模型,都是在图像识别的基础上增补额外的东西。因此,至少在计算机视觉(与图像有关的人工智能)领域,图像识别是重中之重的基础。

3. 神经网络到底是怎么做到的

让我们继续以图像识别任务为例,在PART1中,我们讲到神经网络接到的输入是一组数字 X,那数字和图片又有说明关系呢?

实际上,在信息处理中,所有不同的信息最终都要被用各种方法转化为数字信号(比如音频信号的模数转换),而图片信息则是各个像素点上,各个颜色的亮度值。现在,我们把 X 看成输入的猫,继续回顾之前说过的内容:

接受输入x ,通过带权重w 的连接进行传递,将加权总输入信号与神经元的阈值θ进行比较,最后通过激活函数处理确定是否激活,并将激活后的计算结果 y输出,而我们所说的训练,所训练的就是这里面的权重w

而我们的目的,就是想寻找一个奇妙的函数 ,它的输入是一张照片的像素值,然后输出则是这张图片是不是猫(或者说是是猫的概率,这个值越大则说明它越有可能是只猫)

实际上,在实际处理中,输入x 和 权重w 加权求和可以通过一个输入向量 x 与权重矩阵 w 的矩阵乘法[5]描述。让我们先忽略阈值,那么单层神经网络的输出就是:


3.1 非线性:省心的万能函数逼近器

接下来,我们思考一下为什么要引入非线性?或者说我们为什么要和某个阈值进行比较呢?

当然,最简单的原因就是我们的生物神经元也有兴♂奋和抑制两种状态,所以人工的也可以通过让中间结果 和阈值 比较的方式模拟这两种状态。

但是,从数学上讲,我们也可以很简单想到这个问题。

之前我们考虑的都是只有一层神经网络的情况,现在假设我们有两层神经网络,这两层的权重分别是 ,输入先经 再经过 ,那么这个过程可以写作

这个时候,尴尬的情况就来了,我们知道线性代数中矩阵乘法是满足结合律[6]的,所以上述式子等价于

也就是说,如果我们令 ,那么没有非线性的两层神经网络将会退化为一个一层的神经网络。而且这个结论可以推广到任意层,不管有多少层神经网络,只要没有非线性都会退化为一个很小的一维神经网络。而这种非线性,我们由叫它“激活函数”。

为了让多层神经网络有意义,我们需要对每一层输出的中间结果带入一个非线性的激活函数进行处理。最常用的激活函数就是线性整流单元(Rectified Linear Unit)——Relu!

实际上,Relu做的事情就是将输出结果 与一个等于0的阈值相比,若大于0则输出,小于0则输出0!

有了非线性函数的加持,我们就可以用很多层很复杂的神经网络逼近任意的连续函数!这就是传说中鼎鼎大名的——“万能逼近定理(Universal Approximation Theorem)”[7]

从数学上讲,任何神经网络体系结构都旨在寻找可以将属性(x)映射到输出(y)的任何数学函数y = f(x)。此功能(即映射)的准确性取决于数据集的分布和所用网络的体系结构而有所不同。函数f(x)可以任意复杂。万能逼近定理逼近定理告诉我们,神经网络具有某种通用性,即无论f(x)是什么,都有一个网络可以近似地逼近结果并完成工作!该结果适用于任意数量的输入和输出。

总而言之,在非线性的加持下,我们可以设计出任意复杂的神经网络。而由万能逼近定理,只要我们能计算足够复杂的神经网络,那么我们总可以使用神经网络解决某个十分抽象的数学问题(比如输入图片的像素,得到其内容分类的概率)

这就是第一个特性,非线性:省心的“万能函数逼近器”

3.2 拆开来看:简单粗暴却极度复杂

虽然神经网络可以设计的十分复杂,但是拆开来看,就单纯只是“加权求和+比较阈值”而已。

那么,这些简单的模块组合在一起,究竟能学习到什么东西呢?

让我们把一个用来识别猫、狗和曲奇等物品的神经网络拆开来看看吧

所谓拆开来看看,就是找到一个用于图片分类的卷积神经网络,把他们每一层的权重 拿出来,然后画在电脑上(就像我们把照片通过数字保存在电脑显示一样)。

这时卷积神经网络的第一层权重[8](第一层有好多组,这些组是什么则是神经网络的第三个特性)

我们看到了很多小方格,每个小方格就是一组权重,我们会发现特别有趣的一点,那就是即使没有人告诉神经网络,神经网络自己就学习出了很多很多有规则的权重!

比如上面的几个,我们看到了很多不同角度的纹理,这其实这些神经元可以让神经网络对图片中的边、角度和纹理高度敏感

而下面则是一些色块,这说明这些神经元负责感知图片中的颜色变化和分布

也就是说,神经网络通过大数据,自己就学会了观察图片中的线条、纹理和颜色,并且学会了各个神经元之间各司其职。

但这有什么用呢?

要知道,这些简单的纹理、边、颜色检测器是十分简单的,简单到我们用几行代码就可以完成同样的效果。也就是说,单个神经元的作用其实十分简单粗暴……

强大在于,这个神经网络有很多层,每一层都是获取上一层的输出作为输入。那么,你可以这么理解,就是神经网络在对信息一步一步的进行自发的组合。本来是几条边,组合在一起就可以形成某种形状,再加上颜色就会变成某个特定的色块,而色块和形状组合又会变成更加具体的图像,这么逐步组合,逐步处理,最终神经网络将会理解极度复杂的信息

复杂到即使是专家,也很难自己写出尽善尽美的规则一步步组合这些信息,而神经网络却可以做到。

在高层神经元权重中,我们其实已经很难看出什么信息了,因为我们自己都搞不懂神经网络在做什么样的组合。但是我们可以去看各个高层神经元会对啥玩意更敏感。以上图[9]为例,每一行都是一个特定的神经元,我们会发现他们各自都对一些事物很敏感,比如人脸,黑白、棕白相间的东西(狗和铁板),红红的一坨(不管是花花还是意大利面)……

总结一下,这就是第二个特性了:单个神经元简单粗暴,组合起来能理解的信息却极度复杂

3.3 以卷积神经网络为例:极强的拓展性和潜力

之前介绍的神经网络是多层全连接前馈网络,但我们举的例子是卷积神经网络

卷积神经网络[10](Convolutional Neural Networks,CNNs,不是Fake News)是一种对图片信息特攻的神经网络。其相比传统的全连接网络最大的区别就在于卷积

卷积和信号与系统的卷积有点不太一样,不过意思差不多,就是通过一个更小的神经元:卷积核(filter),滑过输入的每一个位置,每次只处理输入(图片)中的一小部分信息。

这么做的好处在于可以是用更少的参数量,因为图片都是很大的(长1080宽720的RGB图像就有 个数!),传统的全连接神经网络需要把输入的每个数连到一个神经元上,需要的计算量很大,大到没人会考虑拿神经网络搞图片。

而卷积神经网络的好处不只在于参数量少,想象一下,同一个物体有不同的角度,不同的光照,也可能在一张图中不同的位置。但他们同样都是一部分线条和颜色的组合,这样,我们其实更关心的是有没有这些线条、颜色和形状,而不是他们在哪。这就是图片的平移、旋转不变性。

所以,我们可以每次只关注图片的一小部分,寻找那些基本元素再进行一步步的组合!这样就可以最大化地针对图片本身的特性(如平移旋转不变性)设计独特的神经网络求解问题。

更进一步的,针对各种问题,我们都可以针对问题中数据的特性来设计特有的神经网络。

比如,为了处理文字和声音这样的序列,我们设计了循环神经网络[11]为了让神经网络能够自己创造出全新的信息,我们设计了生成对抗网络[12],等等等等……

之所以能设计出这么多变体,也是因为神经网络的基本元素——神经元的原理极其简单,而且他们的组合十分容易,但是组合之后的效果却惊人的好。

因此,它就像一块块乐高积木,我们得以用他们拼凑出各种神秘的东西!

在未来,我们会碰到越来越多的问题,并通过分析设计出各种各样的神经网络解决他们,这就是神经网络的第三个特性:极强的拓展性和潜力


结语

作为一个研究深度学习和计算机视觉的直博生,我还在在人工神经网络这个汪洋大海中探索,每每看到一个新的方法,我都会感慨:这真的是个十分有意思的方向!

我希望我能早一点为这个领域添砖加瓦(指发一些不错的paper,设计出好用的算法和模型)。在这个慢慢求索路上,我会把自己的心得体会记录在我的专栏《薰风的计算机科学家之路》中,欢迎关注~

与君共勉!

参考

  1. ^维基百科:人工神经网络 https://zh.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C
  2. ^ https://www.zhihu.com/question/41187777
  3. ^ Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[J]. Communications of the ACM, 2017, 60(6): 84-90.
  4. ^ He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.
  5. ^线性代数 https://baike.baidu.com/item/%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0/800
  6. ^ https://baike.baidu.com/item/%E7%9F%A9%E9%98%B5%E4%B9%98%E6%B3%95
  7. ^万能逼近定理 https://towardsdatascience.com/neural-networks-and-the-universal-approximation-theorem-8a389a33d30a
  8. ^cs231n:理解卷积神经网络 http://cs231n.github.io/understanding-cnn
  9. ^ Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation”, CVPR, 2014
  10. ^百度百科:卷积神经网络 https://baike.baidu.com/item/%E5%8D%B7%E7%A7%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C
  11. ^ https://baike.baidu.com/item/%E5%BE%AA%E7%8E%AF%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C
  12. ^ https://baike.baidu.com/item/Gan/22181905?fromtitle=%E7%94%9F%E6%88%90%E5%AF%B9%E6%8A%97%E7%BD%91%E7%BB%9C&fromid=22831848

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有