简单感知机是一个单层神经网络。它使用阈值**函数,正如 Marvin Minsky 在论文中所证明的,它只能解决线性可分的问题。虽然这限制了单层感知机只能应用于线性可分问题,但它具有学习能力已经很好了。

当感知机使用阈值**函数时,不能使用 TensorFlow 优化器来更新权重。我们将不得不使用权重更新规则:

TensorFlow 实现简单的感知机详解
η 是学习率。为了简化编程,当输入固定为 +1 时,偏置可以作为一个额外的权重。那么,上面的公式可以用来同时更新权重和偏置。

下面讨论如何实现单层感知机:
1、导入所需的模块:

TensorFlow 实现简单的感知机详解
2、定义需要使用的参数:

TensorFlow 实现简单的感知机详解
3、指定训练数据,在这个列子中取三个输入神经元ABC, 并训练逻辑Y=AB+BC

TensorFlow 实现简单的感知机详解
4、定义要用到的变量和用于计算更新的计算图,最后执行计算图:

TensorFlow 实现简单的感知机详解
5、以下是上述代码的输出:

TensorFlow 实现简单的感知机详解
那么,如果使用 Sigmoid **函数,而不是阈值**函数,会发生什么?你猜对了,首先,可以使用 TensorFlow 优化器来更新权重。其次,网络将表现得像逻辑回归。

相关文章:

  • 2022-01-04
  • 2021-07-30
  • 2021-05-01
  • 2021-07-11
  • 2021-05-30
  • 2021-05-21
  • 2022-02-25
猜你喜欢
  • 2022-01-01
  • 2022-12-23
  • 2022-02-27
  • 2022-03-06
  • 2021-11-30
  • 2021-06-01
  • 2021-10-02
相关资源
相似解决方案