雷竞技注册
技术文章

用于Python实现的神经网络架构

2020年1月09年,经过罗伯特·凯

本文讨论了我们将使用神经网络培训和分类的实验的Perceptron配置,我们还将查看偏置节点的相关主题。

欢迎来到全部关于电路神经网络系雷竞技注册列技术文章。在该系列中,如下所示 - 我们已经涵盖了周围神经网络的一些理论。

  1. 如何使用神经网络进行分类:什么是感知机?
  2. 如何用一个简单的感知器神经网络来分类数据
  3. 如何训练基本感知器神经网络
  4. 理解简单神经网络训练
  5. 神经网络培训理论介绍
  6. 理解神经网络中的学习率
  7. 多层感知器的高级机器学习
  8. SIGMOID激活功能:多层erceptron神经网络中的激活
  9. 如何训练多层的感知者神经网络
  10. 了解多层情人的培训公式和背部经验
  11. 用于Python实现的神经网络架构
  12. 如何在Python中创建多层Perceptron神经网络
  13. 使用神经网络的信号处理:神经网络设计中的验证
  14. 用于神经网络的培训数据集:如何训练和验证Python神经网络

现在我们准备开始把这个理论知识转化为函数式感知器分类系统。

首先我想介绍我们将以高级编程语言实施的网络的一般特征;I’m using Python, but the code will be written in a way that facilitates translation to other languages such as C. The next article provides the detailed walk-through of the Python code, and after that we’ll explore different ways of training, using, and evaluating this network.

Python神经网络架构

该软件对应于下图中描绘的Perceptron。


以下是网络的基本特征:

  • 输入节点的数量是可变的。如果我们希望网络具有任何具有显着灵活性的网络,这是必不可少的,因为输入的维度必须与我们想要分类的样本的维度相匹配。
  • 代码不支持多个隐藏图层。此时,没有必需的隐藏层足以实现极其强大的分类。
  • 一个隐藏层内的节点数量是可变的。找到最佳的隐藏节点涉及某些试验和错误,尽管有指南可以帮助我们选择合理的起点。我们将在未来的文章中探讨隐藏层维度的问题。
  • 当前输出节点的数量固定为1。这个限制将使我们的初始程序稍微简单一些,我们可以将变量输出维度合并到改进的版本中。
  • 隐藏节点和输出节点的激活函数都是标准的逻辑s型关系:

\ [f(x)= \ frac {1} {1 + e ^ { - x}}} \]

什么是偏置节点?(如果你是一个感知器偏见是好的)

当我们在讨论网络结构时,我应该指出,神经网络通常包含一个被称为偏倚节点的东西(或者你可以只称它为“偏倚”,没有“节点”)。与偏置节点相关的数值是由设计者选择的常数。例如:

偏置节点可以合并到输入层或隐藏层中,或两者。它们的权重就像任何其他权重,并且使用相同的BackProjagation过程更新。

偏置节点的使用是编写神经网络代码的一个重要原因,允许您轻松更改输入节点或隐藏节点的数量 - 即使您仅感兴趣,只有在一个特定的分类任务,可变输入和隐藏层维度中感兴趣确保您可以方便地尝试使用偏置节点。

在第10部分中,我指出节点的预激活信号是通过执行点积来计算的。,您可以将两个数组(或者向量)的相应元素相乘,然后将所有单独的乘积相加。第一个数组保存来自前一层的激活后值,第二个数组保存连接前一层和当前层的权重。因此,若前一层激活后数组用x表示,权向量用w表示,则计算激活前值为:

\ [S_ {preA} = w \ cdot x =总和(w_1x_1 + w_2x_2 + \ cdots + w_nx_n) \]

你可能想知道这到底和偏置节点有什么关系。好吧,偏差(用b表示)修改了这个程序如下:

\ [S_ {preA} = (w \ cdot x) + b =总和(w_1x_1 + w_2x_2 + \ cdots + w_nx_n) + b \]

偏置使激活函数处理的信号发生移位,从而使网络更加灵活和健壮。用字母b表示偏差值让人想起直线的标准方程中的“y截距”:y = mx +B..这并不是偶然的巧合。偏差确实类似于y轴截距,你可能也注意到权重数组等价于斜率:

\ [s_ {prea} =(w \ cdot x)+ b \]

[y = mx + b]

重量,偏见和激活

如果我们考虑在训练期间向节点的激活功能传递到节点的激活功能的数值,则权重增加或减少输入数据的斜率,并且偏置垂直移动输入数据。但这如何影响节点的输出?嗯,让我们假设我们正在使用标准逻辑函数进行激活:

从f的跃迁一种(x)= 0到f一种(x) = 1以输入值x = 0为中心。因此,通过使用偏差来增加或减少预激活信号,我们可以影响过渡的发生,从而将激活功能向左或向右移动。另一方面,权值决定了输入值通过x = 0的“快”程度,这影响了激活函数中过渡的陡度。

结论

我们已经讨论了我们将在软件中实现的第一个神经网络的偏置节点和显著特征。现在我们已经准备好查看实际的代码,这正是我们将在下一篇文章中做的事情。

1条评论
  • Sima Omer. 2020年1月13日

    我需要你帮我设计一个专家系统,以便在救护车上提供急救服务。prolog的设计。回复我的请求

    喜欢的。 回复