人工神经网络

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

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

神经网络模拟神经元,神经元有树突、细胞核、轴突和末端轴突。

Terminal Axon

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

神经元传递信息

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

可能模型

神经网络如下所示 −

神经网络

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

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

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

在这个模型中,你有输入数据,你给它加权,并通过神经元中的函数传递它,该函数称为阈值函数或激活函数。

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

我们可以将 S 形函数用作激活函数。

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

在典型的"前馈"中,最基本的神经网络类型,您的信息直接通过您创建的网络,然后将输出与您希望使用样本数据获得的输出进行比较。

从这里开始,您需要调整权重,以帮助您获得与所需输出相匹配的输出。

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

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

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

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

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

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