初识感知机

2019-04-23  本文已影响0人  流星游

基本概念

可以将感知机看做基本的“神经元”,它接收多个信号输入,然后输出一个信号。

感知机的输入信号可以有不同的权重,权重越大该信号越重要;计算输入信号的总和,通过与阈值的比较,感知机将输出1(超过阈值)或0(不超过阈值)。

用公式表达如下:
y=\begin{cases} 1 & (\omega_1x_1 + \omega_2x_2 > \theta)\\ 0 & (\omega_1x_1 + \omega_2x_2 \leq \theta) \end{cases}
等价于:

y=\begin{cases} 1 & (b + \omega_1x_1 + \omega_2x_2 > 0)\\ 0 & (b + \omega_1x_1 + \omega_2x_2 \leq 0) \end{cases}

感知机实现逻辑电路

逻辑电路 - 与门
def AND(x1,x2):
    x = np.array([x1, x2])
    w = np.array([0.5,0.5])
    b = -0.7
    
    sum = np.sum(x*w) + b
    if sum <= 0:
        return 0
    return 1
逻辑电路 - 或门
def OR(x1,x2):
    x = np.array([x1, x2])
    w = np.array([0.5,0.5])
    b = -0.3
    
    sum = np.sum(x*w) + b
    if sum <= 0:
        return 0
    return 1
逻辑电路 - 与非门
def NAND(x1,x2):
    x = np.array([x1, x2])
    w = np.array([-0.5,-0.5])
    b = 0.7
    
    sum = np.sum(x*w) + b
    if sum <= 0:
        return 0
    return 1

感知机的局限性

感知机的局限在于它只能通过切割线性空间。所有感知机可以实现与门、或们、与非门,但是无法是实现异或门。

多层感知机

多层感知机叠加可以实现切割非线性空间,不同层级的感知机组合可以实现极其复杂的逻辑。

多层感知机实例 - 异或门

def XOR(x1,x2):
    s1 = NAND(x1,x2)
    s2 = OR(x1,x2)
    return AND(s1,s2)
上一篇下一篇

猜你喜欢

热点阅读