C# 中的深度学习:理解神经网络架构





5.00/5 (5投票s)
在本文中,我们将介绍监督机器学习的基础知识以及训练和验证阶段的组成部分。
机器学习是人工智能的一个分支,它试图让机器通过从一组示例中进行泛化来弄清楚如何执行任务,而不是接收明确的指令。机器学习有三种范式:监督学习、无监督学习和强化学习。在监督学习中,模型(我们将在下面讨论)通过一个称为训练的过程来学习,该过程为其提供示例输入及其正确的输出。它学习来自数据集示例的哪些特征映射到特定的输出,然后能够在称为预测的阶段预测新的传入数据。在无监督学习中,模型通过分析数据之间的关系来学习数据的结构,而无需涉及任何其他过程。在强化学习中,我们构建的模型通过反复试验技术随着时间的推移进行学习和改进。
什么是机器学习中的模型?模型只是一个数学对象或实体,它包含一些关于人工智能的理论背景,以便能够从数据集学习。监督学习中流行的模型包括决策树、支持向量机,当然还有神经网络 (NN)。
神经网络以堆栈的形式排列成层。除输入层和输出层之外,每一层中的节点都从前一层中的节点接收输入,也可以从下一层中的节点接收输入,同样也可以向前一层和下一层中的节点发送信号或输出。
在神经网络中,我们总是有输入层和输出层,并且可以有一个或多个隐藏层。最简单的神经网络是感知器,它只包含一个输入层和一个单节点的输出层。
对于神经网络中的每条边,都有一个相关的权重,对于每个节点,都有一个相关的值。例如,输入层中每个节点的值可能来自与数据集中图像相关的像素值输入数组。为了计算下一层中节点的值,我们计算连接到该节点的输入的加权和。这被称为传递函数。一旦计算出这个值,它就会传递给另一个称为激活函数的函数,该函数根据阈值确定该节点是否应该向下一层触发。一些激活函数是二进制的,而另一些可以有多个输出。
通常在神经网络的末尾,我们有一个激活函数,它对传递到输入层的数据进行分类(做出决定)。在硬币识别的情况下,它将决定图像中硬币的类别或类型。神经网络中的学习过程可以仅仅看作是对其权重的调整,以便我们为每个给定的输入获得预期的输出。一旦模型经过训练,就可以保存得到的权重。
每当神经网络有多个隐藏层时,它就被认为是深度学习 (DL)。深度学习是一组依赖于具有多个隐藏层的神经网络的技术。拥有多个隐藏层的原因是为了提供比单个隐藏层神经网络更准确的结果。事实证明,深度学习可以产生比单个隐藏层神经网络更快的结果,并且更准确。此外,您添加到神经网络中的每一层都有助于从数据集中学习复杂的特征。
神经网络包含许多需要调整的参数以获得更好的性能。为了能够检查我们的参数调整的有效性和神经网络本身的性能,我们保留了原始数据集的很大一部分(通常大于 70%)用作训练集,其余部分用作验证(测试)集。验证集也有助于我们防止过拟合,当模型对数据集中一组非常相似的对象学习得太好时,就会发生过拟合,这使得它非常适合这些数据,而不太适合与原始示例略有不同的新数据。
在下一篇文章中,我们将研究一个用于硬币识别问题的卷积神经网络,并将在 Keras.NET 中实现一个。