人工神经网络



人工神经网络,简称神经网络,并不是一个新概念。它已经存在大约80年了。

直到2011年,随着新技术的应用、海量数据集的可用性和强大计算机的出现,深度神经网络才开始流行。

神经网络模仿神经元,神经元具有树突、细胞核、轴突和轴突末梢。

Terminal Axon

对于一个网络,我们需要两个神经元。这些神经元通过一个神经元树突和另一个神经元轴突末梢之间的突触传递信息。

Neurons Transfer Information

人工神经元的可能模型如下所示:

Probable Model

神经网络看起来如下所示:

Neural Network

圆圈是神经元或节点,它们对数据执行函数,连接它们的线/边是传递的信息/权重。

每一列都是一层。你的数据的第一个层是输入层。然后,输入层和输出层之间的所有层都是隐藏层。

如果你有一个或几个隐藏层,那么你有一个浅层神经网络。如果你有很多隐藏层,那么你有一个深度神经网络。

在这个模型中,你拥有输入数据,对其进行加权,并将其通过神经元中的函数,该函数称为阈值函数或激活函数。

基本上,它是将所有值与某个特定值进行比较后的总和。如果你发出信号,则结果为(1)输出,或者没有发出任何信号,则为(0)。然后对其进行加权并传递到下一个神经元,并运行相同类型的函数。

我们可以使用sigmoid(S形)函数作为激活函数。

至于权重,它们最初是随机的,并且对于每个输入到节点/神经元的权重都是唯一的。

在典型的“前馈”中,这是最基本类型的神经网络,你的信息直接通过你创建的网络传递,你使用样本数据将输出与你希望的输出进行比较。

从这里,你需要调整权重以帮助你使输出与你的期望输出相匹配。

将数据直接发送通过神经网络的行为称为**前馈神经网络**。

我们的数据按顺序从输入到各层,然后到输出。

当我们向后开始调整权重以最小化损失/成本时,这称为**反向传播**。

这是一个**优化问题**。在实际应用中,神经网络必须处理数十万个变量,甚至数百万个或更多。

第一个解决方案是使用随机梯度下降作为优化方法。现在,还有AdaGrad、Adam优化器等选项。无论哪种方式,这都是一个巨大的计算操作。这就是为什么神经网络在半个多世纪里基本上被束之高阁。直到最近,我们的机器才拥有执行这些操作的能力和架构,以及与之匹配的适当大小的数据集。

对于简单的分类任务,神经网络的性能与其他简单的算法(如K最近邻)相对接近。当我们拥有更多数据和更复杂的问题时,神经网络的真正效用就体现出来了,这两种情况都优于其他机器学习模型。

广告