AI技术入门学习(一):什么是神经网络?它是如何运作的?

神经网络,是计算机技术基于生物学技术提出的理念。

人类视觉系统非常复杂,包含数亿个神经元和连接,举个例子来说,在我们的认知领域,识别手写数字很容易,但这项工作对计算机程序来说却非常困难。

如图例,人会先通过视觉去看到数字,然后迅速传导到大脑进行辨析,输出结论——这是数字5。

即使这些5的长相各异,但人类出于某些原因仍能够精准判断,比如认识第一个5,自然而然对后续的符号产生联想,理解后续的符号都是数字,然后归类于5。

或者比如第三个5,独立去看,奇形怪状的,但若某人曾看见过某个5是这样书写的,也会自然而然将其认识为5。

识别手写数字并不容易,但人类非常擅长理解视觉所见,这种辨析往往在几分之一秒就不知不觉地完成。因此,我们通常不会意识到我们的视觉系统解决的问题有多复杂。

但对于计算机来说,这是一个全新的领域,计算机没有所谓的“视觉神经”,摄像头起到的作用仅仅是“看”而不是“迅速地想”,那么,该如何识别这个手写数字为5呢?

这就是神经网络所解决的问题,神经网络是存在于计算机中的、模拟了人类判断辨析事物的方法的运算集合,它可以依据这种运算能力去处理和模拟复杂的问题,如图像识别、语音识别、自然语言处理等。

这也是为什么AI会可以替代人,因为它的技术基础——神经网络,就是在模仿人。

二、神经网络是什么?其中有什么?

科学家们将人的判断步骤分为三块:输入-分析-输出,所以,神经网络也由输入层、隐藏层(我愿意称之为分析层)和输出层组成。

依据这种阶段的概念,制造出了存在于计算机中的人工神经元,将这些人工神经元,布置在输入层、隐藏层和输出层之中,人工神经元之间交叉着利用函数构建起来的关联线,最终形成了有结构的神经网络。

我会介绍两种重要的人工神经元模型:感知器和S型神经元。

1.感知器

在输入层,最重要的就是该如何去获取有效信息,并输入到计算机之中。这点我们可以理解为,我们在看到某个事物时,并不是纯粹机械地在“看”,而是有主次意识地在“看”。

但对于计算机来说,如果不进行“感知”而是单纯去看,这张图对于它就是这样的(甚至更夸张一些,但我不知道该如何形容这种虚无):

而感知器的存在,就像是为计算机提供了一种优先级识别的能力。

感知器中会有一套二进制的运算方式,以图片中的各个“元素优先级(权重)”搭配“是/否判断”,来达成“识别感知”的目的。

比如,以上面的数字图为基础,感知器会这样帮助计算器识别图片中有文字。

中间的圆圈就是感知器,而在这个过程中,“黑色”和“线条”都要经过感知器的“是/否判断”,并且还会对应权重,比如“线条”的权重就应该略高于“黑色”,因为图中还有非线条的“·”存在,如果单纯以黑色为判断基础,“·”也会被定义为“数字”。

这就是感知器的工作原理。

当然,实际层面的判断不会如我介绍的这么简单,各种判断条件及权重的交叉是很复杂的,如下图,感知器会接力运行计算,最终输出结果。

这也是为什么会有人说,AI模型很考验“算力”,因为感知器需要在瞬间完成大量判断运算。

这里需要注意的是,感知器只有“单个条件”输出的能力,也就是说,一个感知器最终只会输出一个结果,如图中的这种输出多个结果的形式,是因为下一列的多个感知器都会使用这个感知器输出的同一个结果来进行判断。

2.S型神经元

上文提到的感知器,很容易爆发出一个致命问题:其中细小的一些权重变化,就会对后续结果造成很大影响。那么我们该如何保证最终输出的结果能满足我们的要求呢?

修正偏差。

我们可以利用结果来反向修改权重,就像是工作中经常会做的“复盘”,这会使神经网络表现得如我们所愿。

S形神经元(Sigmoid神经元)就是这种可以自行复盘的人工神经元,是对早期感知器模型的改进,表面看与感知器很类似,但经过机器自行的复盘修正,其权重和偏差的微小变化仅会导致其输出的微小变化,这也是一直所讨论的机器学习的关键基础——通过不断修正偏差来不断逼近有效结果。

连续且可微:“连续且可微”是描述函数性质的两个重要概念,在机器学习中,连续且可微的激活函数(如Sigmoid或Tanh)允许使用基于梯度的优化算法来训练神经网络。

非线性:这个函数使得神经网络能够学习和模拟非线性数据关系,显著扩展了网络的功能和应用范围。它不遵循线性原则,即其输出与输入之间的关系不是简单的、成比例的关系。更具体地说,如果一个函数()f(x)对于其变量x的变化不是成倍增加或减少的,那么这个函数就被认为是非线性的。

随着深度学习技术的发展,现在已经有了更多高级的激活函数,如ReLU(RectifiedLinearUnit),它们在许多现代深度学习架构中更为常用,但S型神经元依然在神经网络的历史发展中占有重要地位,它激发了其他函数的诞生。

3.补充信息:前馈神经网络和循环神经网络

前文我们所介绍的,一直都是单向循环的网络结构,从输入-分析-输出的链路完成计算,这被定义为“前馈神经网络”(FeedforwardNeuralNetworks,FFNNs)。

但人脑的结构真的是这样吗?

循环神经网络目前的影响力不如前馈网络,前馈网络在商业和工业应用中的影响力更大,特别是在图像和视频处理领域。

三、实战:利用神经网络分析该数字是5

还是以前文提到的数字5为例。

首先,我们可以对数字进行识别,即黑色+线条的概念,将所有数字提取出来。

紧接着,先把数字与数字分隔开,再去分割数字本身。

最终我们得到的数字碎片,会有可判断的属性,也会有对应的权重区分。

我们已经圈定范围为这些线条组成了一个数字,接下来我们需要判断的,就是这个数字到底是几,已知单个数字共有9个,也就是说会输出9种结果,我们以结果反推,每个数字都有对应特征,这些特征就是判断的条件和权重基础,而每一个碎片都会被经历数轮的判断,最终将这些碎片得出的结果再计算,得到结果,如图,我使用了四层神经网络来判断数字碎片的特征,最终导向识别结果,如果加上前面的识别分割,神经网络的结构会更密集:

输出层包含9个神经元。如果第一个神经元激发,即有输出≈1,就表明该神经网络认为该数字是0。

当然,虽然我是这么设计的,但这一切都只是一种启发。没有说明识别数字的神经网络必须按照我描述的方式运行,也不一定是四层结构,这只是一种基于实例所做的思维方式的延伸。

四、训练神经网络:梯度下降算法

基于前文,我们已经基本了解了神经网络的概念和架构逻辑。那么,神经网络如何才能更精准地达成我们想要达成的目标?我们如何避免神经网络的最终计算结果不出现偏差?

答案就是不断训练它。

在训练中测试,以最小化成本在测试中尽快找到权重和偏差并进行修正,使结果无线趋近于正确,即使初始结果不佳,通过调整参数,依然可以逐步提高神经网络的性能。

业内会用“成本函数”(也称为损失函数或目标函数)的概念来衡量网络输出与实际值之间的差异,梯度下降算法是一种强大的优化工具,它在机器学习和深度学习中用于最小化成本函数,从而找到模型参数的最佳值。

梯度下降不仅用于神经网络,还用于线性回归、支持向量机等多种机器学习算法,是许多高级优化技术的基础,也是机器学习中的一个核心概念,理解并掌握它对于构建和优化预测模型至关重要。

这个概念比较复杂,所以我用一个比喻来解释:想象你站在一座山的山顶,并想要到达山谷的最低点。由于你只能看到周围的一小段距离,你通过观察周围地形的斜率(即梯度)来决定每一步的移动方向。你总是朝着斜率最陡峭的下降方向走,这样就能逐渐走到山谷的最低点。

在这个比喻中,山的高度代表成本函数的值,而你的位置代表神经网络的参数(权重和偏差)。

成本函数越低,山越低,你到达山谷最低点的成本就越低,而梯度下降算法则是在这个过程中的作用,就是帮你加速度到达山谷最低点,进一步降低成本。

如何操作梯度下降:

在很多情况下,简单的学习算法+良好的训练数据>=复杂算法,所以机器训练是非常重要的。

五、总结

通过将复杂问题分解为多个简单的子问题,我们就可以构建一个神经网络。其中每一层网络的回答都简单具体,我们是通过多个层次的网络叠加来解决复杂问题的。

而深度学习技术则是神经网络实现真正飞跃的重点,允许神经网络自动从训练数据中学习该如何调整权重和偏差,并进行基于梯度下降算法进行快速调整,是AI技术得以铺开在各个领域的重要基础。

THE END
1.深度学习中神经网络模型训练常见技巧神经网络训练技巧有哪些深度学习中神经网络模型训练常见技巧 本文介绍了深度学习中神经网络模型训练的关键步骤,包括数据预处理、端到端训练框架设计、随机值管理和权重初始化,以及应对过拟合的策略、优化方法选择、预训练模型利用和超参数优化等,强调了长时间训练和集成学习的重要性。https://blog.csdn.net/l35633/article/details/136110019
2.跟我学AI:第一篇神经网络是如何实现的(二)跟我学AI 作者马少平 AI光影社. AI前沿、基础、应用的权威科普 一篇 神经网络是如何实现的(二) 清华大学计算机系 马少平 第二节:神经元与神经网络 自从听艾博士以数字识别为例讲解了神经网络之后,小明一直想着神经网络如何训练的问题。这天小明又来找艾博士,请教艾博士如何训练一个神经网络。 https://aidc.shisu.edu.cn/5e/57/c13626a155223/page.htm
3.一文搞懂神经网络人工智能是这几年非常火的技术,上至九十九下至刚会走都对人工智能或多或少的了解。神经网络是人工智能的核心,也就是说没有神经网络就没有人工智能,那么这篇文章就带大家学习一下神经网络相关的知识。这篇文章没有数学公式、没有代码,旨在帮助读者快速掌握神经网络的核心知识。 https://www.51cto.com/article/606086.html
4.神经网络除了基本单元的构造外,神经元模型中还有很多参数需要进行学习,如权重和偏置等。权重表示了神经元处理不同输入信号时的重要程度,而偏置则表示了神经元产生输出信号的难易程度,因此这些参数的学习和调整对神经网络的训练和预测精度具有极大的影响。 神经网络的结构 编辑本段 神经网络是由多个神经元(也称节点或单元)组成https://vebaike.com/doc-view-943.html
5.深度学习与神经网络有什么区别?深度学习和神经网络是人工智能领域中的两个重要概念,它们在很多方面有着相似之处,但也存在一些区别。本文将从定义、结构、应用等方面来探讨深度学习与神经网络的区别。 定义 深度学习是一种基于人工神经网络的机器学习算法,在大量数据上训练多层神经网络模型,实现对复杂问题的高效处理。而神经网络则是一种模拟生物神经系https://www.cda.cn/bigdata/201326.html
6.科学家构建深度脉冲神经网络学习框架脉冲神经网络(Spiking Neural Network,SNN)被誉为第三代神经网络,使用更低层次的生物神经系统的抽象。它既是神经科学中研究大脑原理的基本工具,又因稀疏计算、事件驱动、超低功耗的特性,备受计算科学的关注。随着深度学习方法的引入,SNN的性能得到大幅提升,脉冲深度学习(Spiking Deep Learning)成为新兴的研究热点。传统SNhttps://www.cas.cn/syky/202310/t20231011_4973919.shtml
7.人工神经网络(ANN)简述本文是这几天学习人工神经网络入门知识的总结。 我们从下面四点认识人工神经网络(ANN: Artificial Neutral Network):神经元结构、神经元的激活函数、神经网络拓扑结构、神经网络选择权值和学习算法。 1. 神经元: 我们先来看一组对比图就能了解是怎样从生物神经元建模为人工神经元。 https://www.jianshu.com/p/f69e16df2623
8.学习笔记:神经网络学习算法腾讯云开发者社区主流的神经网络学习算法(或者说学习方式)可分为三大类:有监督学习(SupervisedLearning)、无监督学习(Unsupervised Learning)和强化学习(Reinforcement Learning),如下图所示。 注:有监督学习、无监督学习和强化学习并不是某一种特定的算法,而是一类算法的统称。 https://cloud.tencent.com/developer/article/1610502