yaboPP电子
技术文章

如何使用简单的Perceptron神经网络示例来对数据进行分类

2019年11月17日通过罗伯特Keim

本文演示了感知器神经网络的基本功能,并解释了训练的目的。

本文是感知器神经网络系列文章的一部分。

如果您想从开始或跳转开始,您可以查看其他文章:

  1. 如何使用神经网络执行分类:什么是Perceptron?
  2. 如何使用简单的Perceptron神经网络示例来对数据进行分类
  3. 如何训练基本的Perceptron神经网络
  4. 了解简单的神经网络培训
  5. 神经网络培训理论介绍
  6. 了解神经网络的学习率
  7. 高级机器学习与Multijayer Perceptron
  8. Sigmoid激活函数:多层感知器神经网络中的激活
  9. 如何训练多层感知器神经网络
  10. 理解多层感知器的训练公式和反向传播
  11. 神经网络体系结构的Python实现
  12. 如何用Python创建多层感知器神经网络
  13. 使用神经网络的信号处理:神经网络设计中的验证
  14. 用于神经网络的培训数据集:如何训练和验证Python神经网络

什么是单层的赫尔库茨?

在前一篇文章中,我们看到了神经网络由分层排列的互联节点组成。输入层的节点分布数据,其他层的节点执行求和,然后应用激活函数。这些节点之间的连接是加权的,这意味着每个连接将传输的数据乘以一个标量值。


请注意,此配置称为单层Perceptron。是的,我知道,它有两层(输入和输出),但它只有一层包含计算节点。

用一个感觉分类

在本文中,我们将使用以下神经网络探索感知器的功能。


如您所见,我们的输入维度是三个。我们可以将这种感觉器视为解决三维空间中问题的工具。例如,让我们提出以下问题:如果三维空间中的点位于X轴下方,则它对应于无效的基准。如果点在X轴上或高于X轴上,则它对应于必须保留的有效数据库以进行进一步的分析。我们需要这个中性网络来对我们的数据进行分类,输出值为1,表示有效的基准和值为0表示无效数据的值。

首先,必须将三维坐标映射到输入向量。在本例中,输入0是x组件,输入1是y组件和输入2是z组件。接下来,我们需要确定权重。此示例非常简单,我们不需要培训网络。我们可以简单地考虑所需的权重并分配它们:

我们现在需要做的就是指定输出节点的激活函数是单位步骤,如下所示:

\ [f(x)= \ begin {fise} 0&x <0 \\ 1&x \ geq 0 \结束{is} \]

Perceptron这样工作:自从w1= 0 and w2= 0时,y和z组件对输出节点生成的求和没有贡献。影响求和的唯一输入数据是x组件,它未被修改地交付到输出节点,因为w0= 1.如果三维空间中的点低于X轴,则输出节点的求和将为负,激活功能将将此负值转换为输出0= 0.如果三维空间中的点在X轴上或高于X轴上,则求和将等于或大于零,并且激活功能将其转换为输出0= 1。

用感知器解决问题

在前一节中,我将感知器描述为解决问题的工具。你们可能已经注意到,感知器并没有解决很多问题解决问题并通过分配所需的重量将解决方案提供给Perceptron。

此时我们已达到一个至关重要的神经网络概念:我能够快速解决有效/无效的分类问题,因为输入数据与所需输出值之间的关系非常简单。然而,在许多现实生活中,人类是在输入数据和输出值之间制定数学关系时非常困难。我们可以获得输入数据,我们可以录制或产生相应的输出值,但是我们没有从输入到输出的数学路线。

手写识别就是一个很好的例子。假设我们有手写字符的图像,我们想把这些图像分类为“a”、“b”、“c”等等,这样我们就可以把手写文字转换成普通的计算机文本。任何人谁知道如何写和读将能够生成输入图像,然后分配正确的类别给每个图像。因此,收集输入数据和相应的输出数据并不困难。另一方面,查看输入-输出对并制定一个数学表达式或算法来正确地将输入图像转换为输出类别将是极其困难的。

因此,手写识别和许多其他信号处理任务提出了人类没有复杂工具的帮助就无法解决的数学问题。尽管神经网络不能思考、分析和创新,但它们能让我们解决这些难题,因为它们能做一些人类做不到的事情——即快速重复地执行涉及潜在的大量数字数据的计算。

培训网络

允许神经网络从输入到输出创建数学路径的过程被称为训练。我们给出了由输入值和相应的输出值组成的网络训练数据,并对这些值采用固定的数学过程。这一过程的目标是逐步修改网络的权值,使网络能够计算出正确的输出值,即使输入数据是它从未见过的。它本质上是在训练数据中寻找模式,并通过将这些模式应用到新数据中生成权重,从而产生有用的输出。

下图显示了上面讨论的有效/无效分类器,但权重是不同的。这些是我通过用1000个数据点训练Perceptron而生成的权重。正如您所见,培训过程允许Perceptron自动近似于通过人类批判性思维所识别的数学关系。


在下一篇文章中…

我已经给你们展示了训练感知器的结果,但我还没有说我是怎么得到这些结果的。下一篇文章将简要介绍实现单层感知器神经网络的Python程序,我还将解释我的培训程序。