人工神经网络运作过程
人工神经网络中最小和最重要的单元是神经元。与生物神经系统一样,这些神经元彼此连接在一起,它们具有很强的处理能力。一般而言,人工神经网络试图复制真实大脑的行为和过程,这就是为什么他们的建筑是基于生物观察建模的原因。人造神经元也是如此。它的结构让人联想到真实神经元的结构。
每个神经元都有输入连接和输出连接。这些连接模拟了大脑中突触的行为。与大脑中的突触将信号从一个神经元传递到另一个神经元的方式相同,连接在人工神经元之间传递信息。这些连接具有权重,这意味着发送到每个连接的值乘以此因子。同样,这受到大脑突触的启发,并且权重实际上模拟了在生物神经元中传递的神经递质的数量。因此,如果连接很重要,那么它的权重值将大于那些不重要的连接。
由于可能有许多值进入其中一个神经元,每个神经元都有一个所谓的输入函数。通常汇总来自所有加权连接的输入值,这通过加权和函数来完成 。然后将该值传递给**函数,**函数的作用是计算是否应将某些信号发送到神经元的输出。
我们可以(并且通常会)在每个ANN中具有多层神经元。它看起来像这样:
学习
如果我们观察自然,我们可以看到能够学习的系统具有很强的适应性。在寻求获取知识的过程中,这些系统使用来自外部世界的输入并修改他们已经收集的信息,或修改其内部结构。这正是人工神经网络所做的。他们适应和修改他们的架构以便学习。更准确地说,ANN基于输入和期望输出改变连接的权重。
有人可能会问,“为什么要举重?” 那么,如果你仔细观察人工神经网络的结构,如果我们想修改他们的架构,我们可以在ANN内部改变一些组件。例如,我们可以在神经元之间创建新的连接,或删除它们,或添加和删除神经元。我们甚至可以修改输入功能或**功能。事实证明,改变权重是最实用的方法。此外,大多数其他情况可以通过改变重量来弥补。例如,删除连接可以通过将权重设置为0来完成。如果我们将所有连接的权重设置为零,则可以删除神经元。
训练
培训是每个人工神经网络的必要过程,也是人工神经网络熟悉需要解决的问题的过程。在实践中,我们通常会收集一些数据,我们需要根据这些数据创建预测,分类或任何其他处理。该数据称为训练集。事实上,基于训练期间的行为和训练集的性质,我们有几类学习:
• 无监督学习 - 训练集仅包含输入。网络尝试识别类似的输入并将它们分类。这种类型的学习是生物学上的动机,但并不适合所有问题。
• 强化学习 - 训练集包含输入,但在培训期间还向网络提供了附加信息。所发生的是,一旦网络计算其中一个输入的输出,我们提供的信息表明结果是对还是错,可能还有网络错误的性质。
• 监督学习 - 训练集包含输入和所需输出。这样,网络可以检查其计算输出与所需输出相同,并根据该输出采取适当的操作。
监督学习是最常用的,所以让我们深入探讨这个主题。基本上,我们得到一个包含输入值向量和所需输出值向量的训练集。一旦网络计算其中一个输入的输出,成本函数就会计算误差向量。此错误表示我们的猜测与所需输出的接近程度。最常用的成本函数之一是均方误差函数:
这里,x是训练输入向量,y(x)是人工神经网络的生成输出,a是期望的输出。此外,可以注意到该函数是依赖于w和b的函数,w和b分别代表权重和偏差。
现在,该错误被发送回神经网络,并相应地修改权重。此过程称为反向传播。反向传播是一种先进的数学算法,使用该算法,人工神经网络能够一次调整所有权重。这里要记住的重要一点是,通过使用这种算法,人工神经网络能够快速简便地修改权重。
梯度下降
整个训练点是为权重设置正确的值,因此我们在神经网络中获得所需的输出。这意味着我们试图使误差向量的值尽可能小,即找到成本函数的全局最小值。解决这个问题的一种方法是使用微积分。我们可以计算导数,然后使用它们来找到成本函数极值的位置。但是,成本函数不是一个或几个变量的函数; 它是网络中所有权重的函数,因此这些计算将迅速成长为一个怪物。这就是为什么我们使用称为梯度下降的技术。
简而言之,过程如下:
1. 将训练集放入神经网络并获得输出。
2. 将输出与所需输出进行比较,并使用成本函数计算误差。
3. 基于误差值和使用的成本函数,决定如何改变权重以便最小化误差值。
4. 重复该过程直到错误最小。
总结:
现在,让我们分几步:
1. 我们在神经网络中随机初始化权重
2. 我们将第一组输入值发送到神经网络,并通过它传播值以获得输出值。
3. 我们将输出值与预期输出值进行比较,并使用成本函数计算误差。
4. 我们将错误传播回网络并根据该信息设置权重。
5. 对于训练集中的每个输入值,重复步骤2到4。
6. 当整个训练集通过神经网络发送时,我们已经完成了一个时代。在那之后,我们重复更多的时代。
因此,这是神经网络学习方式的过度简化表示。我没有提到的是,在实践中,训练集分为两部分,训练集的第二部分用于验证网络的工作。