deep learning入门:感知机

时间:2023-03-09 18:38:31
deep learning入门:感知机

权重和偏置

deep learning入门:感知机

import numpy as np

# 求x1 and x2
def AND(x1, x2):
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.7
# tmp = w[0]*x[0] + w[1]*x[1] + b
tmp = np.sum(w * x) + b
if tmp <= 0:
return 0
else:
return 1 print(AND(0,0), AND(0,1), AND(1,0), AND(1,1)) # 求not (x1 and x2)
def NAND(x1, x2):
x = np.array([x1, x2])
w = np.array([-0.5, -0.5])
b = 0.7
# tmp = w[0]*x[0] + w[1]*x[1] + b
tmp = np.sum(w * x) + b
if tmp <= 0:
return 0
else:
return 1 print(NAND(0,0), NAND(0,1), NAND(1,0), NAND(1,1)) # 求 x1 or x2
def OR(x1, x2):
x = np.array([x1, x2])
w = np.array([0.5, 0.5])
b = -0.1
# tmp = w[0]*x[0] + w[1]*x[1] + b
tmp = np.sum(w * x) + b
if tmp <= 0:
return 0
else:
return 1 print(OR(0,0), OR(0,1), OR(1,0), OR(1,1))

与门 与非门 或门

deep learning入门:感知机

异或门

deep learning入门:感知机

# 求 x1 xor x2
def XOR(x1, x2):
s1 = NAND(x1, x2)
s2 = OR(x1,x2)
y = AND(s1,s2)
return y print(XOR(0,0), XOR(0,1), XOR(1,0), XOR(1,1))

小结

  • 感知机是具有输入和输出的算法。给定一个输入后,将输出一个既定的值

  • 感知机将权重和偏置设定为参数

  • 使用感知机可以表示与和或门等逻辑电路

  • 异或门无法通过单层感知机来表示,可以使用2层感知机来表示

  • 单层感知机只能表示线性空间,而多层感知机可以表示非线性空间。

  • 多层感知机(理论上)可以表示计算机