TensorFlow从0到1之浅谈感知机与神经网络(13)

2022-02-19

在过去的十年中,神经网络一直处于机器学习研究和应用的前沿。深度神经网络 (DNN)、迁移学习和计算效率高的图形处理单元 (GPU) 的普及导致图像识别、语音识别甚至文本生成方面取得了重大进展。

神经网络受到人脑的启发,也被称为连接模型。与人脑一样,神经网络是由称为权重的突触互连的大量人工神经元。

正如我们从老年人提供的示例中学习一样,人工神经网络从提供给他们的示例中学习,这些示例称为训练数据集。有了足够数量的训练数据集,人工神经网络就可以提取信息并将其用于他们以前从未见过的数据。

神经网络并不新鲜。第一个神经网络模型 Pitts(MCP)() 早在 1943 年就被提出,可以进行 AND、OR、NOT 等逻辑运算。

图片[1]-TensorFlow从0到1之浅谈感知机与神经网络(13)-唐朝资源网

MCP模型的权重和偏差是固定的,所以没有学习的可能。几年后的 1958 年,Frank() 解决了这个问题。他提出了第一个能够学习的神经网络,称为 ()。

从那时起,人们就知道,添加多层神经元并构建一个深度、密集的网络将有助于神经网络解决复杂的任务。就像母亲为孩子的成就感到自豪一样,科学家和工程师也高度评价使用神经网络所能取得的成就 ( )。

这些评价并不假,但由于硬件计算的限制和网络结构的复杂性,在当时根本无法实现。这导致了 1970 年代和 1980 年代被称为 AI 冬天的时期。在此期间,由于没有资金的人工智能项目,该领域的进展放缓。

随着 DNN 和 GPU 的出现,情况发生了变化。如今,迁移学习和迁移学习等技术可用于微调参数以获得性能更好的网络,从而减少训练时间。最后,硬件公司提出使用专门的硬件芯片来快速执行基于神经网络的计算。

图片[2]-TensorFlow从0到1之浅谈感知机与神经网络(13)-唐朝资源网

人工神经元是所有神经网络的核心。它由两个主要部分组成:一个加法器,它对神经元上的所有输入进行加权和求和;处理单元,其根据称为激活函数的预定义函数产生输出。每个神经元都有自己的一组权重和阈值(偏差),它通过不同的学习算法学习:

当只有一层这样的神经元存在时,它被称为感知器。输入层被称为第零层,因为它只是缓冲输入。唯一存在的神经元层形成输出层。输出层中的每个神经元都有自己的权重和阈值。

当有许多这样的层时,该网络称为多层感知器(MLP)。MLP 具有一个或多个隐藏层。这些隐藏层具有不同数量的隐藏神经元。每个隐藏层的神经元具有相同的激活函数:

上面的 MLP 有一个带有 4 个输入的输入层,5 个带有 4、5、6、4 和 3 个神经元的隐藏层,以及一个带有 3 个神经元的输出层。在这个 MLP 中,下层的所有神经元都连接到其相邻上层的所有神经元。因此,MLP 也称为全连接层。MLP 中的信息流通常是从输入到输出,目前没有反馈或跳跃,因此这些网络也称为前馈网络。

感知器使用梯度下降算法进行训练。梯度下降在前面的章节中已经介绍过,所以让我们在这里更进一步。感知器通过监督学习算法进行学习,该算法为网络提供所需的训练数据集输出。在输出端,定义了一个误差函数或目标函数 J(W),这样当网络完全学习所有训练数据时,目标函数将是最小的。

更新输出层和隐藏层的权重,使目标函数的梯度减小:

为了更好地理解它,想象一个到处都是丘陵、高原和坑洼的地形。目标是落地(目标函数的全局最小值)。如果你站在山顶必须下山,那么显然你会选择下山,即朝负坡度(或负坡度)的方向移动。同理,感知器的权重与目标函数梯度的负值成正比变化。

梯度值越大,权重变化越大,反之亦然。现在,这一切都很好,但是当你到达高原时,你可能会遇到问题,因为梯度为零,所以权重不会改变。进入小坑(局部最小值)时也会遇到问题,因为试图向任一侧移动,梯度会增加,迫使网络停留在坑中。

如前所述,已经提出了各种梯度下降的变体来增加网络的收敛性,从而使网络避免陷入局部最小值或高原,例如增加动量、可变学习率。

这些梯度是在不同优化器的帮助下自动计算的。但是,需要注意的是,由于将计算梯度,这也将涉及激活函数的导数,因此您选择的激活函数必须是可微的,并且在整个训练场景中具有非零梯度。

感知器中的梯度下降和梯度下降之间的主要区别之一是输出层的目标函数已经定义,但它也用于更新隐藏层神经元的权重。这是使用反向传播 (BPN) 算法完成的,其中输出中的误差被传播回隐藏层并用于确定权重变化。

分类:

技术要点:

相关文章:

© 版权声明
THE END
喜欢就支持一下吧
点赞8赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容