Administrator
发布于 2026-01-26 / 18 阅读
0
0

深度学习入门 - 感知机

1. 感知机是什么?

感知机能够接受多个输入信号,输出一个信号

重点:权重w1、w2 以及 门限值Threshold

图形表述如下:

graph LR x1((x1)) x2((x2)) Y((Y)) x1--w1-->Y x2--w2-->Y

公式如下

$$
y = \begin{cases} 
0 & (w_1x_1 + w_2x_2 \leqslant \theta) \\ 
1 & (w_1x_1 + w_2x_2 > \theta) 
\end{cases}
$$

2. 感知机实现门电路

  • 实现或门,与门,与非门是简单的

  • 与非门就是与门权重和门限值都取负数即可

  • 但是单靠单个的上述感知机实现异或门做不到的,需要增加感知机的层数

如图:

graph LR x1((x1)) x2((x2)) s1((s2)) s2((s2)) y((y)) x1-->s1 x2-->s1 x1-->s2 x2-->s2 s1-->y s2-->y

3.python代码的简单实现

"""
AND 函数
"""
def AND(x1,x2):
    w1,w2,theta = 0.5,0.5,0.7
    if(x1*w1+x2*w2>theta):
        return 1
    else:
        return 0

# print(AND(0,0))
# print(AND(1,0))
# print(AND(0,1))
# print(AND(1,1))


"""
OR 函数
"""
def OR(x1,x2):
    w1,w2,theta = 0.5,0.5,0.4
    if(x1*w1+x2*w2>theta):
        return 1
    else:
        return 0
    
# print(OR(0,0))
# print(OR(1,0))
# print(OR(0,1))
# print(OR(1,1))


"""
NAND 函数
"""
def NAND(x1,x2):
    w1,w2,theta = -0.5,-0.5,-0.7
    if(x1*w1+x2*w2>theta):
        return 1
    else:
        return 0

# print(NAND(0,0))
# print(NAND(1,0))
# print(NAND(0,1))
# print(NAND(1,1))


"""
XOR 函数
"""
def XOR(x1,x2):
    return AND(OR(x1,x2),NAND(x1,x2))


# print(XOR(0,0))
# print(XOR(1,0))
# print(XOR(0,1))
# print(XOR(1,1))


评论