关于神经网络各种概念的小白解释

神经网络能干什么?

神经网络能干的事情很多,目前最火的深度学习的核心。利用神经网络,可以实现人脸识别、手写字体识别、指纹识别、图片识别等等,目前最成功的就是GPT Chart了,它的核心也是神经网络。

神经网络是什么?

顾名思义,神经网络就是由多个神经元相互连接,组成的网络。神经元是一个生物学概念,指的是人和动物神经系统中的一种细胞,看起来是这样的:
v2-ad967dc35d335a6a3ae5d0a6864a73af_r.jpg

在计算机中肯定不存在神经细胞,所以伟大的程序猿们把它简化成了这个样子:
v2-ad967dc35d335a6a3ae5d0a6864a73af_r.jpg

程序猿们利用计算机的CPU或GPU,按照上图的流程来模拟神经元。Ix、Iy、Iz一直到In代表神经元的输入,每个输入都乘上对应的权重(图中W*)再全部加起来作为中间结果存储在图中的圆圈中。权重的作用是模拟神经元对不同信号的敏感程度,比如人的神经元,对轻轻抚摸的信号不敏感,但对用刀轻轻切割很敏感(^_^)。抚摸和切割可以视为两种输入信号,但因为权重不同,造成人对这种输入信号的敏感程度不同。姑且这样理解吧,对于一篇免费的小白文,你还能要求更多吗?

中间结果会传递给阙值函数,阙值函数对其进行一定的运算后产生输出。为什么需要阙值函数?因为要模拟神经元的“抑制”现象。生物学家经过长时间研究,发现神经元并不是对所有输入都会产生输出。程序猿们为了模拟这种现象,引入了阙值函数,又叫激活函数,这类函数有很多,几乎所有非线性函数都可用作激活函数,比如sin、cos、tanh、sigmod等等。

为什么不能用线性函数?嗯,专业的回答是:用线性函数就不能处理非线性问题。小白的回答是:线性函数一定会产生一个输出,因此不能模拟“抑制”现象。

什么是线性函数?小白的回答:函数的图像看起来是一条直线的函数就是线性函数。专业的回答:小白不知道,请问百度大哥。

神经网络的结构

最简单的神经网络的结构看起来是这样的:
神经网络结构.jpg

图中每一个圆圈表示一个神经元,箭头表示数据的流动方向。数据首先进入输入层的各个神经元中,再流入隐层,最后再从输出层流出,从而产生整个神经网络的输出。

数据从一个神经元流向另一个神经元时都要经过权重、求和、激活函数的运算,上图没有画出来,请参考上上图。

神经网络中输入层和输出层是必须的,隐层是可选的,隐层的数量没有上限。隐层越多,神经网络的能力就越强,表现为能识别的类别越多、能存储的数据越大。理论上只要计算机算力够强,可以有无限多隐层,然而遗憾的是这个世界上从来就没有“足够快”的计算机,所以隐层的数量总是有限的。

上图中的神经网络已经可以解决很多问题了,图片识别、人脸识别、物体分类等等都可以。然而这种所有神经元都彼此连接的网络有一个严重的缺陷,就是运算量大,造成运算过程非常缓慢,不适合用来处理大数据、高分辨率图像。

其他类型的神经网络

为了解决各种问题,睿智的程序猿们发明了各种各样的神经网络,比如循环神经网络、卷积神经网络、LSTM等等,大家可以自行百度相关资料。特别是这两年,新的神经网络结构如火山喷发一般出现,看得人眼花缭乱、晕头转向、心生敬畏进而顶礼膜拜。


芸芸小站首发,阅读原文:


最后编辑:2023年08月06日 ©版权所有,转载须保留原文链接

发表评论

正在加载 Emoji