神经网络背后的数学原理
神经网络背后的数学原理
神经网络是人工智能的核心技术,从图像识别到自然语言处理,再到预测分析,它们在现代科技中扮演着至关重要的角色。本文将带你深入了解神经网络的数学原理,从基本概念到复杂算法,为你揭示这一神奇技术背后的科学奥秘。
1:基础知识
1.1:什么是神经网络?
神经网络是生物学和计算机科学的酷炫融合,灵感来自我们大脑处理复杂计算任务的设置。从本质上讲,它们是旨在发现模式和理解感官数据的算法,这使它们可以做很多事情,例如识别人脸、理解口语、做出预测和理解自然语言。
生物启示
我们的大脑有大约860亿个神经元,它们都连接在一个复杂的网络中。这些神经元通过称为突触的连接聊天,其中信号可以变强或变弱,从而影响传递的信息。这是我们学习和记忆事物的基础。
人工神经网络借鉴了本书的一页,使用分层连接的数字神经元或节点。您有接收数据的输入层、咀嚼这些数据的隐藏层以及吐出结果的输出层。当网络获得更多数据时,它会调整连接强度(或“权重”)来学习,有点像我们大脑的突触如何增强或减弱。
从感知器到深度学习
神经网络始于1958年一种叫做感知器的东西,这要归功于弗兰克·罗森布拉特(Frank Rosenblatt)。这是一个基本的神经网络,用于简单的“是”或“否”类型的任务。从那里,我们构建了更复杂的网络,如多层感知器(MLP),由于具有一个或多个隐藏层,它可以理解更复杂的数据关系。
然后是深度学习,它是关于具有许多层的神经网络。这些深度神经网络能够从大量数据中学习,它们是我们听到的许多人工智能突破的幕后推手,从击败人类围棋选手到为自动驾驶汽车提供动力。
通过模式理解
神经网络的最大优势之一是它们能够学习数据中的模式,而无需直接针对特定任务进行编程。这个过程被称为“训练”,让神经网络能够掌握总体趋势,并根据他们所学到的知识做出预测或决策。
由于这种能力,神经网络具有超强的通用性,可用于广泛的应用,从图像识别到语言翻译,再到预测股票市场趋势。他们正在证明,曾经被认为需要人类智能的任务现在可以通过人工智能来解决。
1.2:神经网络的类型
在深入研究它们的结构和数学之前,让我们先来看看我们今天可能发现的最流行的神经网络类型。这将使我们更好地了解他们的潜力和能力。
前馈神经网络 (FNN)
从基础开始,前馈神经网络是最简单的类型。这就像数据的单行道——信息直接从输入端传输,穿过任何隐藏层,然后从另一端传到输出端。这些网络是简单预测和将事物分类的首选。
卷积神经网络 (CNN)
CNN是计算机视觉领域的大佬。由于它们的特殊图层,它们具有捕捉图像中空间模式的诀窍。这种能力使他们在识别图像、发现其中的物体以及对他们所看到的事物进行分类方面成为明星。这就是您的手机可以在照片中区分狗和猫的原因。
递归神经网络 (RNN)
RNN 具有各种记忆力,非常适合任何涉及数据序列的事情,例如句子、DNA 序列、笔迹或股票市场趋势。它们将信息循环回,使它们能够记住序列中以前的输入。这使他们在预测句子中的下一个单词或理解口语等任务中表现出色。
长短期记忆网络 (LSTM)
LSTM 是一种特殊品种的 RNN,旨在长时间记住事物。它们旨在解决 RNN 在长序列中忘记内容的问题。如果您正在处理需要长时间保留信息的复杂任务,例如翻译段落或预测电视剧中接下来会发生什么,LSTM 是您的首选。
生成对抗网络 (GAN)
想象一下,在猫捉老鼠的游戏中有两个人工智能:一个生成虚假数据(如图像),另一个试图捕捉什么是假的,什么是真的。那是 GAN。这种设置允许 GAN 创建令人难以置信的逼真图像、音乐、文本等。他们是神经网络世界的艺术家,从头开始生成新的、逼真的数据。
2:神经网络的架构
神经网络的核心是我们所说的神经元或节点,其灵感来自我们大脑中的神经细胞。这些人工神经元是处理接收、处理和传递信息的繁重工作的主要力量。让我们深入了解这些神经元是如何构建的。
2.1:神经元的结构
神经元直接从我们感兴趣的数据或其他神经元的输出中获取输入。这些输入就像一个列表,列表中的每个项目都代表数据的不同特征。
对于每个输入,神经元都会做一些数学运算:它将输入乘以“权重”,然后添加“偏差”。将权重视为神经元决定输入重要性的方式,将偏差视为一种调整,以确保神经元的输出恰到好处。在网络训练期间,它会调整这些权重和偏差,以更好地完成工作。
接下来,神经元将所有这些加权输入和偏差相加,并通过称为激活函数的特殊函数运行总数。这一步是神奇的地方,允许神经元通过以非线性方式弯曲和拉伸数据来处理复杂的模式。此函数的常用选择是 ReLU、Sigmoid 和 Tanh,每种方法都有其调整数据的方式。
2.2:图层
具有 3 层的 FNN 架构 — 图片由作者提供
神经网络是分层结构的,有点像分层蛋糕,每一层由多个神经元组成。这些层的堆叠方式形成了网络的架构:
输入层
这是数据进入网络的地方。这里的每个神经元对应于数据的一个特征。在上图中,输入层是左侧的第一层,其中包含两个节点。
隐藏图层
这些是夹在输入和输出之间的层,从上图中可以看出。你可能只有一个或一堆这样的隐藏层,做着繁重的计算和转换工作。您拥有的层(以及每层中的神经元)越多,网络可以学习的模式就越复杂。但是,这也意味着需要更多的计算能力,并且网络更有可能过于沉迷于训练数据,这个问题被称为过拟合。
输出层
这是网络的最后一站,它在那里吐出结果。根据任务的不同,例如对数据进行分类,该层可能为每个类别都有一个神经元,使用类似于 softmax 函数的东西来给出每个类别的概率。在上图中,最后一层仅包含一个节点,表明该节点用于回归任务。
2.3:层在学习中的作用
隐藏层是网络的特征检测器。当数据在这些层中移动时,网络可以更好地发现和组合输入特征,将它们分层到对数据的更复杂的理解中。
随着数据通过的每一层,网络都可以拾取更复杂的模式。早期的图层可能会学习形状或纹理等基本知识,而更深的图层则掌握了更复杂的想法,例如识别图片中的物体或人脸。
3:神经网络的数学
3.1:加权总和
神经计算过程的第一步是将输入聚合到神经元中,每个输入乘以各自的权重,然后添加一个偏差项。此操作称为加权和或线性组合。在数学上,它表示为:
NN 的加权和公式 — 图片由作者提供
解释:
- z 是加权和,
- wi 表示与第 i 个输入相关的权重,
- xi 是神经元的第 i 个输入,
- b 是偏置项,这是一个唯一的参数,允许调整输出和加权和。
加权和至关重要,因为它构成了任何非线性变换之前神经元的原始输入信号。它允许网络对输入进行线性转换,调整神经元输出中每个输入的重要性(权重)。
3.2:激活函数
正如我们之前所说,激活函数在决定神经网络的输出方面起着关键作用。它们是决定神经元是否应该被激活的数学方程式。激活函数为网络引入了非线性属性,使其能够学习复杂的数据模式并执行超越单纯线性分类的任务,这对于深度学习模型至关重要。在这里,我们深入探讨了激活函数的几种关键类型及其意义:
Sigmoid 激活函数
Sigmoid Plot — 图片由作者提供
此函数将其输入压缩到 0 到 1 之间的狭窄范围内。这就像取任何值,无论大小,并将其转换为概率。
Sigmoid 函数 — 图片由作者提供
您将在二元分类网络的最后一层中看到 sigmoid 函数,您需要在两个选项之间做出决定——是或否、真或假、1 或 0。
双曲正切函数 (tanh)
tanh Plot — 图片由作者提供
Tanh 将输出范围扩展到 -1 和 1 之间。这会使数据以 0 为中心,使下层更容易从中学习。
tanh formula — 图片由作者提供
它通常位于隐藏层中,通过平衡输入信号来帮助对更复杂的数据关系进行建模。
整流线性单元 (ReLU)
ReLU Plot — 图片由作者提供
ReLU 就像一个看门人,它传递正值不变,但阻止负值,将它们变为零。这种简单性使其非常高效,并有助于克服训练深度神经网络时的一些棘手问题。
ReLU 函数 — 图片由作者提供
它的简单性和效率使 ReLU 非常受欢迎,尤其是在卷积神经网络 (CNN) 和深度学习模型中。
泄漏整流线性单元 (Leaky ReLU)
Leaky ReLU Plot — 图片由作者提供
当输入小于零时,Leaky ReLU 允许微小的非零梯度,即使神经元没有主动放电,它们也能保持活力和踢动。