神经网络解决与、或、非问题

感知机是简单的两层神经网络模型,用于线性可分问题的分类。它由输入、权重、偏置和激活函数构成,常使用阶跃函数或sigmoid函数。训练过程通过梯度下降法调整权重和偏置。然而,感知机无法解决非线性可分问题,对输入数据有强线性假设,并且对噪声敏感,仅能处理二类分类问题。
摘要由CSDN通过智能技术生成

一、感知机

感知机是一种最简单的神经网络模型,由两层神经元组成,其中每个神经元接收多个输入,通过加权求和后,经过一个激活函数得到输出。

感知机是一个线性分类器,可以用来解决线性可分问题。其模型可以表示为:
z = w ⋅ x + b z= \mathbf{w}\cdot\mathbf{x}+b z=wx+b
其中, x = ( x 1 , x 2 , . . . , x n ) \mathbf{x}=(x_1,x_2,...,x_n) x=(x1,x2,...,xn)是输入向量, w = ( w 1 , w 2 , . . . , w n ) \mathbf{w}=(w_1,w_2,...,w_n) w=(w1,w2,...,wn) 是权重向量, b b b 是偏置项。不要把神经网络想想过于复杂,实际上就是一个常见的函数。
y = f ( z ) y = f(z) y=f(z)

f ( ⋅ ) f(\cdot) f() 是激活函数,通常采用阶跃函数或者sigmoid函数。它的作用是引入非线性性质,从而提高神经网络的表达能力和性能。下面介绍一个简单的激活函数用于对下文的讲解。
在这里插入图片描述
在这里插入图片描述

单层感知机的训练过程就是不断调整权重和偏置项,使得模型能够对样本进行正确分类。此过程通常采用梯度下降法进行参数优化。

二、感知机的局限性

感知机有以下几个局限性:

  1. 不能解决非线性可分问题。由于单层感知机只能表示线性决策边界,对于非线性决策边界,无法正确分类。比如异或问题。

  2. 对输入数据有强假设。单层感知机假设输入特征与输出结果之间是线性关系。这种假设限制了单层感知机在处理非线性关系时表现较差。

  3. 容易受到噪声干扰。单层感知机对噪声敏感,当输入数据出现错误时,模型会出现严重的分类错误。

  4. 无法处理多类别问题。单层感知机只能处理二元分类问题,无法推广到多类别分类问题。

因此,感知机的局限性限制了它在实际应用中的广泛应用。多层感知机则采用了多层神经元来组成更复杂的模型,并且引入了非线性激活函数,从而更好地解决这些局限性。

三、单层感知机解决与、或、非问题

感知机可以使用阶跃函数作为激活函数来解决一些简单的逻辑运算问题,如与、或、非问题。这里我们分别介绍在阶跃函数作为激活函数下,感知机如何解决这三种问题。

(1)“与”问题:

与问题是指对于两个二元输入 x 1 x_1 x1 x 2 x_2 x2,只有同时为 1 的情况输出 1,否则输出 0。我们可以先设定权重向量 w = ( w 1 , w 2 ) \mathbf{w}=(w_1, w_2) w=(w1,w2) 和偏置量 b b b 的值。

f ( x ) = s g n ( w T x + b ) = s g n ( w 1 x 1 + w 2 x 2 + b ) \begin{aligned} f(\mathbf{x}) &= \mathrm{sgn}(\mathbf{w}^T\mathbf{x}+b)\\ &= \mathrm{sgn}(\mathbf{w_1}x_1+\mathbf{w_2}x_2+b) \end{aligned} f(x)=sgn(wTx+b)=sgn(w1x1+w2x2+b)
但是如何设定权重和偏置呢?我们可以将这个问题转换成对直角坐标系的四个点进行分类,横坐标、纵坐标分别表示两个二元输入 x 1 x_1 x1 x 2 x_2 x2。感知器相当于是一条直线 w 1 x 1 + w 2 x 2 + b = 0 \begin{aligned} \mathbf{w_1}x_1+\mathbf{w_2}x_2+b=0 \end{aligned} w1x1+w2x2+b=0
①若点(红色)在直线上方,则 w 1 x 1 + w 2 x 2 + b > 0 f ( x ) = s g n ( w 1 x 1 + w 2 x 2 + b ) = 1 \begin{aligned} \mathbf{w_1}x_1+\mathbf{w_2}x_2+b>0\\ f(\mathbf{x}) = \mathrm{sgn}(\mathbf{w_1}x_1+\mathbf{w_2}x_2+b)=1 \end{aligned} w1x1+w2x2+b>0f(x)=sgn(w1x1+w2x2+b)=1
①若点(蓝色)在直线下方,则 w 1 x 1 + w 2 x 2 + b < 0 f ( x ) = s g n ( w 1 x 1 + w 2 x 2 + b ) = 0 \begin{aligned} \mathbf{w_1}x_1+\mathbf{w_2}x_2+b<0\\ f(\mathbf{x}) = \mathrm{sgn}(\mathbf{w_1}x_1+\mathbf{w_2}x_2+b)=0 \end{aligned} w1x1+w2x2+b<0f(x)=sgn(w1x1+w2x2+b)=0
在这里插入图片描述
由上层图像可知,该条直线可以有无数条,对应的神经网络(单层感知器)也有无数种画法。下面我们举一个例子,将神经网络的参数设置为 w = ( 1 , 1 ) \mathbf{w}=(1,1) w=(1,1) b = − 1.5 b=-1.5 b=1.5 ,对应的直线方程为 x 1 + x 2 − 1.5 = 0 \begin{aligned} x_1+x_2-1.5=0 \end{aligned} x1+x21.5=0

(X1,X2)x1+x2-1.5f(x1+x2-1.5)
(0,0)<00
(0,1)<00
(1,0)<00
(1,1)>01

所对应的神经网络结构为:
在这里插入图片描述

(2)“或”问题:

或问题是指对于两个二元输入 x 1 x_1 x1 x 2 x_2 x2,只有其中之一为 1 的情况输出 1,否则输出 0。我们可以先设定权重向量 w = ( w 1 , w 2 ) \mathbf{w}=(w_1, w_2) w=(w1,w2) 和偏置量 b b b 的值。

f ( x ) = s g n ( w T x + b ) = s g n ( w 1 x 1 + w 2 x 2 + b ) \begin{aligned} f(\mathbf{x}) &= \mathrm{sgn}(\mathbf{w}^T\mathbf{x}+b)\\ &= \mathrm{sgn}(\mathbf{w_1}x_1+\mathbf{w_2}x_2+b) \end{aligned} f(x)=sgn(wTx+b)=sgn(w1x1+w2x2+b)
但是如何设定权重和偏置呢?我们可以将这个问题转换成对直角坐标系的四个点进行分类,横坐标、纵坐标分别表示两个二元输入 x 1 x_1 x1 x 2 x_2 x2。感知器相当于是一条直线 w 1 x 1 + w 2 x 2 + b = 0 \begin{aligned} \mathbf{w_1}x_1+\mathbf{w_2}x_2+b=0 \end{aligned} w1x1+w2x2+b=0
①若点(红色)在直线上方,则 w 1 x 1 + w 2 x 2 + b > 0 f ( x ) = s g n ( w 1 x 1 + w 2 x 2 + b ) = 1 \begin{aligned} \mathbf{w_1}x_1+\mathbf{w_2}x_2+b>0\\ f(\mathbf{x}) = \mathrm{sgn}(\mathbf{w_1}x_1+\mathbf{w_2}x_2+b)=1 \end{aligned} w1x1+w2x2+b>0f(x)=sgn(w1x1+w2x2+b)=1
①若点(绿色)在直线下方,则 w 1 x 1 + w 2 x 2 + b < 0 f ( x ) = s g n ( w 1 x 1 + w 2 x 2 + b ) = 0 \begin{aligned} \mathbf{w_1}x_1+\mathbf{w_2}x_2+b<0\\ f(\mathbf{x}) = \mathrm{sgn}(\mathbf{w_1}x_1+\mathbf{w_2}x_2+b)=0 \end{aligned} w1x1+w2x2+b<0f(x)=sgn(w1x1+w2x2+b)=0
在这里插入图片描述

由上层图像可知,该条直线可以有无数条,对应的神经网络(单层感知器)也有无数种画法。下面我们举一个例子,将神经网络的参数设置为 w = ( 1 , 1 ) \mathbf{w}=(1,1) w=(1,1) b = − 0.5 b=-0.5 b=0.5 ,对应的直线方程为 x 1 + x 2 − 0.5 = 0 \begin{aligned} x_1+x_2-0.5=0 \end{aligned} x1+x20.5=0

(X1,X2)x1+x2-0.5f(x1+x2-0.5)
(0,0)<00
(0,1)>01
(1,0)>01
(1,1)>01

所对应的神经网络结构为:
在这里插入图片描述

(3)“非”问题:

非问题是指对于单个输入 x x x ,当输入为1(0)时,输出为0(1)。我们可以先设定权重向量 w w w 和偏置量 b b b 的值。在这里插入图片描述
由上层图像可知,该条直线可以有无数条,对应的神经网络(单层感知器)也有无数种画法。下面我们举一个例子,将神经网络的参数设置为 w = ( − 1 , 0 ) \mathbf{w}=(-1,0) w=(1,0) b = 0 b=0 b=0 ,对应的直线方程为 − x 1 \begin{aligned} -x_1 \end{aligned} x1

X-Xf(-X)
011
100

所对应的神经网络结构为:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

满星映九天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值