|
|
51CTO旗下网站
|
|
移动端

2.2 理解感知器

《Python深度学习实战:75个有关神经网络建模、强化学习与迁移学习的解决方案》第2章前馈神经网络,本章的重点是为FNN 和其他网络拓扑的常见实现问题提供解决方案。本章讨论的技术也适用于后续内容。本节为理解感知器。

作者:程国建/周冠武 译来源:机械工业出版社|2018-08-30 18:30

【大咖·来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》

2.2 理解感知器

首先,需要了解神经网络的基础知识。神经网络由一层或多层神经元组成,以人脑中的生物神经元命名。通过实现感知器来演示单个神经元的工作机理。在感知器中,单个神经元执行所有的计算,之后扩大神经元的数量来创建深度神经网络,如图2.1 所示。

感知器可以有多个输入。在这些输入上,神经元执行计算并输出单个值,例如对两个类别进行分类的二进制值。该神经元执行的计算是输入和权重的简单矩阵乘法。将得到的值加起来并添加一个偏置,如下:

这些计算可以很容易地扩展到高维输入。激活函数φ( x)确定正向传递中感知器的最终输出:

权重和偏置随机初始化。在每个周期(对训练数据迭代)之后,基于网络输出与期望输出之间的误差值乘以学习率来更新权重。因此,网络训练将按新权重施加到训练数据上(反向传播阶段),并且输出的精度会提高。感知器是在训练数据上优化的线性组合。作为一个激活函数,将使用一个单位阶跃函数:如果输出超过一定的阈值将被激活(因此,成为一个0 与1 的二进制分类器)。如果这些类是线性可分,感知器就能够以100%的精度对模式进行分类。在下一个方案中,将向读者展示如何用NumPy 实现感知器。

如何去做…

1)导入函数库和数据集,如下:

2)首先,将导入的数据进行分组,如下所示:

3)用下面的代码片断绘制四个变量中两个变量的数据展示:

在图2.2 中,绘制了两个类的分布:

4)为了验证结果,将数据分成如下的训练集和测试集:

5)接下来,初始化感知器的权重和偏置:

6)在训练之前,需要定义超参数:

7)现在,开始用for 循环来训练感知器:

8)保存训练损失值和验证精度,以便可以绘图呈现:

在图2.3 中,显示了由此产生的训练损失值和验证精度。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书会第9群:808517103

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

共章 |

人订阅学习

共章 |

人订阅学习

读 书 +更多

Struts 2权威指南:基于WebWork核心的MVC开发

本书所介绍的Struts 2已经完全超出了Struts 1框架原有的高度,Struts 2建立在Struts 1和WebWork两个框架整合的基础之上,因此提供了更多优...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO播客