感知机简单逻辑电路实现

1.什么是感知机?

        感知机是由美国学者Frank Rosenblatt在1957年提出来的,是作为神经网络(深度学习)的起源的算法。

        感知机接收多个输入信号,输出一个信号。这里所说的“信号”类似于电流或河流等具备“流动性”的东西。像电流流过导线,感知机的信号也会形成流,向前方输送信息。但是,感知机的信号只有“流/不流”(1/0)两种取值。

两个输入神经元的感知机网络结构示意图

        图示为接收两个输入信号的感知机。x1,x2为输入信号,y为输出信号,w1,w2是权重,o为“神经元”或“节点”。输入信号被送往神经元时,会被分别乘以固定的权重 (w1x1、w2x2)。神经元会计算传送过来的信号的总和(w1x1+w2x2),只有当这个总和超过 了某个界限值(θ)时,才会输出1。这也称为“神经元被激活”。感知机的激活函数是阶跃函数。

        公式表示:

感知机运行原理数学表示
周志华机器学习中典型激活函数图

 2.简单逻辑电路实现

        (1)与门(AND gate):两个输入都为1时,输出1.真值表: 

        怎样用感知机来实现与门呢?结合数学公式可以看到 输入信号都为1时,w1、w2之和应该大于θ,输入信号其中一个为1,一个为0时,每一个权重应该小于θ,符合以上条件的参数很多,我们可以任取一个,例(w1,w2,θ)=(0.5,0.5,0.7)。

        代码实现:

          现在,我们导入权重和偏置,即对上述公式进行修改:

        将-θ赋值给b,b称为偏置,w1和w2称为权重。感知机会计算输入 信号和权重的乘积,然后加上偏置,如果这个值大于0则输出1,否则输出0。此时:(w1,w2,b)=(0.5,0.5,0.7)

        在Python中,NumPy的数组类 (numpy.array)中为数组和矩阵的计算提供了很多便捷的方法,我们在此处应用到与门的代码中:

       

        (2)与非门(NAND gate):仅当x1和x2同时为1时输出0,其他时候则输出1。真值表:

         

        与非门实现比较简单,只要把与门参数取反即可:(w1,w2,b)=(-0.5,-0.5,0.7)。

        代码实现:

        (3)或门(OR gate):只要有一个输入信号是1,输 出就为1”的逻辑电路。真值表:

         或门的实现:每一个权重应当大于偏置的绝对值,例:(w1,w2,b)=(0.5,0.5,-0.2)代码实现:

         3.感知机的局限性

        异或门(OR gate)也被称为逻辑异或电路。仅当x1或x2中的一方为 1时,才会输出1。真值表:

         由于感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,学习能力非常有限。上述的与、或、与非问题都是线性可分,即存在一个线性超平面能将他们分开(如图所示)。然而异或门是简单的非线性可分问题,因此无法实现。

周志华机器学习线性可分和非线性可分问题

                 但是,可以通过已有门电路组合进行代码实现:

                其他门组合成异或门的过程不做解释。 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
micro:bit是一种小型的单板计算机,它可以被用来学习物理电路。micro:bit的 GPIO 接口允许我们将它与各种传感器和执行器相连,来创建和调试物理电路。我们可以使用裸线或者通过电子引脚扩展板来连接 micro:bit。 通过使用micro:bit学习物理电路,我们能够了解电路的基本概念,例如导线、开关、电流和电压。我们可以通过连接传感器来感知环境中的物理量,例如光线强度、温度、压力等等。此外,我们还可以使用micro:bit来控制执行器,例如蜂鸣器、LED灯等,实现有趣的电路实验。 学习物理电路时,我们可以通过编写MicroPython代码来控制micro:bit。MicroPython是一种简化的Python编程语言,非常适合初学者。通过编写代码,我们可以实时读取传感器的数据,并根据需要控制执行器的状态。这种实时交互的过程,不仅加深了我们对物理电路和传感器工作原理的理解,还培养了逻辑思维和编程能力。 除了学习基本的电路原理和编程技能,micro:bit还可以用来进行更高级的物理电路实验。我们可以利用micro:bit的蓝牙功能将其连接到其他设备,例如电脑或手机,以进行更复杂的数据处理和可视化。这为我们提供了更广阔的学习空间,可以探索更多有趣的物理现象和实验。 总之,micro:bit是一种非常适合学习物理电路的工具。它不仅提供了硬件接口,还提供了简化的编程语言,让初学者能够轻松地入门。通过使用micro:bit,我们可以进行各种有趣的实验,深入理解物理电路的原理,并培养逻辑思维和编程能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值