☰
深度学习入门1——感知机
2026/11/5 1:16:54 网站建设 项目流程

1. 前言

最近开始接触深度学习的相关知识,为了巩固以及更好的理解知识点,因此通过撰写博客的方式较为浅显的描述一下我对于deep learning的理解,不足之处还望见谅。这一系列博客主要参考斋藤康毅所著的《Deep Learning from Scratch》,也就是我们常说的“鱼书”系列的开篇之作。

对于本书的内容,我将主要从以下几个方面进行讨论(其他部分如有需要,另行补充):

(1)神经网络的先导——感知机

(2)神经网络的结构及推理

(3)神经网络的学习

(4)卷积神经网络

话不多说,本文首先介绍第一部分——感知机

2. 感知机是什么?

通俗而言,读者可以将感知机看成一个开关,但这一开关生效(开或关)的先决条件不是按钮的来回拨动,而是取决于输入信号的加权和是否超过设定的阈值。这样说可能对于零基础的读者有些难以理解,我简单的举个例子:

正如上图所示的三个杯子,现在需要做的工作是使用前两个杯子向第三个杯子内加水,并且观察水的总量是否超过了警戒红线。这里需要明确几个前提,第一,前两个杯子所含的水是未知的;第二,前两个杯子的直径(大小)是不同的。感知机的激活与否取决于第三个杯子里的水,水的总量 超过红线便激活,开关打开;水的总量小于或等于红线便未激活,开关关闭。这样就可以理解什么叫作“输入信号的加权和是否超过设定的阈值”了。在上例中,前两个杯子的水的高度就是输入信号;杯子的直径就是对于输入信号的权重;警戒线就是设定的阈值。

此外,对于感知机而言,激活就相当于输出“1”,未激活就输出“0”。这也就是为什么可以把感知机看作一个开关的原因。接下来让我们看一看更加专业一些的表述:

右侧三个圆圈代表的就是信号流经的节点,或者叫它“神经元”;左边的数学表达式展示了感知机的原理,即输入信号的加权和同阈值的关系决定节点的输出情况,其中x1,x2为输入信号;w1,w2为权重参数,theta表示阈值,y表示输出,这几点在右侧的结构图中也可以得到。

至此,我们已经学习了两个输入一个输出的感知机的结构以及原理。那么,它能用来做什么?它与神经网络又有什么关系呢?

3. 用感知机实现门电路

学习过数字电路的读者应该对于门电路非常熟悉了,对于其他读者仅需了解一些简单原理也可以轻松掌握,这里就不再赘述。

那么,如何使用感知机来构建门电路呢?

上面是与门的真值表,与门的控制逻辑为:只有输入全为“1”,结果才输出“1”,反之输出“0”。用上面介绍的感知机来实现该控制功能就是要设定三个参数,w1,w2,theta。通过简单尝试,我们将(w1,w2,theta)= (0.5,0.5,0.8)即可实现与门的控制(结合感知机的原理公式)。这些参数的组合有很多种。例如(0.1,0.1,0.15)、(0.2,0.2,0.3),仅需满足两个权重任一均不大于阈值,两个权重的和大于阈值即可。

除此之外,两个输入一个输出的感知机还能实现与非门、或门。读者可以列出真值表,随机取几个数字实验一下。这里给出一些参考。

下面我们关注异或门的问题。下图是异或门的真值表:

事实上,对于两个输入一个输出的感知机而言,无论如何取参数,它始终无法完全满足上述的控制逻辑(读者可以模仿前面的做法进行实验),这也是单层感知机的局限所在。那么,如何解决这一问题呢?

回顾一下数字电路的相关知识,我们发现异或门可以通过组合与门,或门,与非门来实现。具体可以参考下面这张真值表:

输入信号x1,x2流经s1——与非门,s2——或门,两路输出信号再流经一个与门得到输出,我们发现这里的输出同上述异或门的控制逻辑相同,也就是我们成功通过三个门电路的组合实现了一个新的门电路。而这三个门电路均可以使用单层感知机实现。这就给我们提供了一个全新的思路——通过感知机的堆叠,我们能够实现更复杂的功能。它的实现如下图所示:

参考最初实现与门的方式,这里我们需要设定共计9个权重和阈值。经过简单分析不难得出下述内容:

4. 总结

通过上面的论述,可以清晰的感觉到经过不断增加层的深度,我们可以实现许多更复杂的功能。原书中还有一段内容写的很好:“这里决定感知机参数的并不是计算机,而是我们人。我们看着真值表这种‘’训练数据’‘,人工想到了参数的值。而机器学习的课题就是将这个决定参数值的工作交给计算机自动运行。学习是确定合适的参数的过程,而人要做的是思考感知机的构造(模型),并把训练数据交给计算机。”下一节将介绍神经网络以及它与感知机的区别与联系。

5. 学习资料

书籍配套源代码:图灵社区

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询