Python深度学习 人工神经网络

Python深度学习 人工神经网络

人工神经网络,或简称为神经网络,并不是一个新的想法。它已经存在了大约80年。

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

一个神经网络模仿一个神经元,它有树突、核、轴突和末端轴突。

人工神经网络

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

人工神经网络

一个人工神经元的可能模型看起来是这样的

人工神经网络

一个神经网络看起来就像下面所示的那样

人工神经网络

圆圈是神经元或节点,它们在数据上的功能,连接它们的线/边是正在传递的权重/信息。

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

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

在这个模型中,你有输入数据,你给它加权,并通过神经元中的函数,即所谓的阈值函数或激活函数。

基本上,它是将所有的值与某个值进行比较后的总和。如果你发射了一个信号,那么结果就是(1)出来,或者什么都没有发射出来,那么就是(0)。然后加权并传递给下一个神经元,并运行同样的函数。

我们可以有一个sigmoid(s型)函数作为激活函数。

至于权重,它们是随机开始的,而且每个输入节点/神经元的权重是唯一的。

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

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

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

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

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

这是一个 优化问题。 通过神经网络,在实际操作中,我们必须处理数十万个变量,或数百万个,甚至更多。

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

对于简单的分类任务,神经网络的性能相对接近于其他简单的算法,如K最近的邻居。当我们拥有更大的数据,以及更复杂的问题时,神经网络的真正效用才得以实现,这两方面的表现都优于其他机器学习模型。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程