在 Python 中实现人工神经网络训练过程17 Mar 2025 | 4 分钟阅读 ANN学习已成功用于学习实值、离散值或向量值函数,包括不同类型的特征景观、语音识别以及学习机器人控制技术等问题。ANN学习对训练数据中的错误具有抵抗力。生物体由高度复杂的、密集互连的网络构成,这一发现启发了人工神经网络(ANN)的发展。人脑由大约1011-1012个神经元组成的紧密连接网络构成。 神经网络由连接的I/O单元组成,每个单元都有一个与之对应的权重。你可以使用大型数据库来开发预测模型。人神经系统是该模型的基础。你可以用它来进行人类学习、计算机语音、图像识别等任务。 人工神经网络(ANN)是一种受大脑启发的信息处理范式。ANN的学习方式就像人类一样,通过模仿来学习。通过学习过程,ANN会针对特定目的进行定制,例如模式分类或数据分类。学习会导致神经元之间突触连接的变化。 ![]() 人脑中还有数千亿个神经元。这些神经元通过突触连接,突触是神经元通过冲动与其他神经元通信的点。一个神经元提供给另一个神经元的兴奋信号连接到该神经元的所有输入。如果目标神经元达到某个阈值,它将向前发送一个动作信号;这就是思维过程的运作方式。 通过利用矩阵在计算机上构建“网络”,计算机科学家可以模拟这一过程。这些网络可以被视为神经元的抽象,而不考虑所有的生物学复杂性。为了保持简单,我们将仅模拟一个可以解决线性分类问题的两层神经网络。 ![]() 例如,让我们设想一个问题,我们希望在给定一组输入和输出的情况下预测一个输出。 ![]() 请记住,第三列的值,即图2中每个训练示例中的输出,与输出直接相关。因此,测试示例的输出结果应为1。 训练过程包括以下步骤
顾名思义,输入信息通过网络向前馈送。每个隐藏层接收输入数据,根据激活函数进行处理,然后将其传递到下一层。为了产生输出,输入信息应该只向前馈送。在输出生成过程中,数据不得反向流动,因为那样会产生循环并导致无法生成输出。具有这种安排的网络称为前馈网络。前馈网络有助于信息的传播。 将权重乘以输入(只需使用随机数作为权重) 假设 Y = WiIi = W1I1 + W2I2 + W3I3。 为了确定神经元的输出,将结果通过Sigmoid算法运行。结果使用Sigmoid函数在0到1之间进行归一化:1/1 + e-y。 在正向传播过程中,每个隐藏层和输出层节点都会经历预激活和激活。
确定误差,即生成输出与预期输出之间的差异。根据误差,通过将误差乘以输入、Sigmoid曲线的梯度以及误差本身来调整权重。网络训练的基础是反向传播。它是一种根据上一周期(即迭代)记录的比率来调整神经网络权重的技术。通过正确调整权重,你可以降低误差率,并通过拓宽其适用性来提高模型的可靠性。 在神经网络中,“误差的反向传播”的缩写是“反向传播”。它是开发人工神经网络的常用技术。对于网络中的每个权重,该技术有助于计算损失函数的导数。 重复整个过程数千次迭代。让我们用Python代码写出整个过程。我们将使用NumPy库,以便我们能够轻松地进行所有矩阵计算。要运行代码,你需要先在你的电脑上安装NumPy库。 ![]() 输出 Our neural network expects the result to be 0.65980921 after 10 iterations. It doesn't look good because the correct response should be 1. We get 0.87680541 if we extend the iterations to 100. A smarter network is emerging! Following that, after 10000 iterations, we have 0.9897704, which is slightly closer and indeed a decent result. 下一主题Python私有变量 |
简介:在本教程中,我们将讨论如何在 Python 中计算多维点 x 上的勒让德级数。多维数组中的勒让德级数有多种方法;最常用的方法是 polynomial.legendre.legval() 方法。此方法在……中执行微积分和算术运算。
阅读 3 分钟
数据科学工作流程中一个关键阶段是使用适当的指标来衡量我们模型的准确性。在本教程中,我们将学习两种计算源样本预测类别准确性的方法:手动和使用 Python 的 scikit-learn 库。以下是我们将介绍的主题摘要...
5 分钟阅读
我们知道元组是 Python 中存在的数据结构,其中不同数据类型的元素可以包含在括号中。在本教程中,我们将学习如何在 Python 中反转元组。请看以下示例以理解我们的目标——输入 - (21, 54,...
阅读 4 分钟
我们想要知道给定过程何时完成以及任务完成了百分之多少,这是非常基本的人性。这是因为当一个过程在进行时,我们会变得非常不耐烦,我们只能...
7 分钟阅读
Python的random包有一个内置函数shuffle()。它可以在Python中用来打乱一个序列(如列表或元组);打乱意味着改变集合中元素的索引。random.shuffle()的语法 我们使用shuffle()函数来改变索引...
5 分钟阅读
乒乓球游戏是街机游戏中最著名的游戏之一,与乒乓球非常相似。这个游戏的规则很简单:有两个玩家。双方都控制着自己一方的球拍。他们可以在垂直方向上移动球拍,从...
阅读 6 分钟
我们中的许多人通常不感兴趣阅读完整的报纸甚至完整的文章。在这种情况下,我们只希望了解文章中的关键词、标题或许多这样的小内容,这样我们就无需花费太多时间阅读……
阅读 8 分钟
Python 的 print() 函数用于将结果或输出打印到屏幕。默认情况下,它会在打印语句后跳转到新行。它有一个预定义的格式来打印输出。让我们通过以下示例来理解。示例 - 1 print("Welcome") print("To") print("JavaTpoint") 输出: Welcome To JavaTpoint 或者,我们可以写...
阅读1分钟
我们很可能在生活中遇到过很多次,我们想知道目录(文件夹)中有多少文件以及有哪些文件。或者,有时我们必须寻找一个文件,我们知道它的名字,但是...
7 分钟阅读
在本教程中,我们将开发 Python 脚本来查找已安装的 Windows 应用程序并将它们连接到 GUI 应用程序。Winapps 模块用于管理 Windows 中已安装的程序。在终端中运行以下命令将帮助您在系统中安装该模块:pip...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India