鱼书学习笔记:感知机

感知机

  • 感知机是具有输入和输出的算法。给定一个输入后,将输出一个既定的值。
  • 感知机将权重和偏置设定为参数
  • 使用感知机可以表示与门和或门等逻辑电路
def AND(x1, x2):
    x = np.array([x1, x2])
    w = np.array([0.5, 0.5])
    b = -0.7
    tmp = np.sum(w*x) + b
    if tmp <= 0:
        return 0
    else:
        return 1

def NAND(x1, x2):
    x = np.array([x1, x2])
    w = np.array([-0.5, -0.5])
    b = 0.7
    tmp = np.sum(w*x) + b
    if tmp <= 0:
        return 0
    else:
        return 1

def OR(x1, x2):
    x = np.array([x1, x2])
    w = np.array([0.5, 0.5])
    b = -0.2
    tmp = np.sum(w*x) + b
    if tmp <= 0:
        return 0
    else:
        return 1
  • 异或门无法通过单层感知机来表示
  • 使用2层(3层)感知机可以表示异或门
def XOR(x1, x2):
     s1 = NAND(x1, x2)
     s2 = OR(x1, x2)
     y = AND(s1, s2)
     return y
  • 单层感知机只能表示线性空间,而多层感知机可以表示非线性空间
  • 多层感知机(在理论上)可以表示计算机

 

posted @ 2021-03-17 16:57  剑伟  阅读(111)  评论(0编辑  收藏  举报