【有书共读】《深度学习入门》第2章 - 感知机

一、感知机概念


1、感知机(perceptron)是1957年提出来的一种算法,作为神经网络(深度学习)的起源的算法,本书所提到的感知机应称为“人工神经元”或“朴素感知机”。学习感知机的构造是学习通向深度学习和神经网络的一种重要思想。
2、感知机是什么:
感知机接收多个输入信号,输出一个信号,信号可想象成具有流动性的电流、河流之类。如下图例子:
图片说明

解释:x1, x2为输入信号,y为输出信号,w1, w2是权重,图中的圆圈可称为神经元或节点,输入信号被送往神经元时,会被分别乘以固定的权重(w1x1, w2x2), 神经元会计算传送过来的神经信号的总和。当超过某个界限时,才会输出1,也称为神经元被激活。这个界限被称为阈值。

图片说明

解释:用数学符号表示出来如上,感知机的多个输入信号都有各自的权重weight, 这些权重发挥着控制各个信号的重要作用。也即权重越大,对应该权重的信号的重要性就越高。

二、简单逻辑电路


1、与门 --AND gate

输入信号x1 输入信号x2 输出信号y
0 0 0
1 0 0
0 1 0
1 1 1

怎么选择满足真值表的w1, w2, threshold的值?
当然满足条件的参数选择有无数个,如(w1, w2, h) = (0.5, 0.5, 0.7)、(0.5, 0.5, 0.8)等满足条件。设定参数后,当且仅当x1和x2同时为1时,信号的加权总和才会超过给定的阈值。

2、与非门 --NAND gate

输入信号x1 输入信号x2 输出信号y
0 0 1
1 0 1
0 1 1
1 1 0

当且仅当x1, x2同时为1时输出0。组合有(w1, w2, t) = (-0.5, -0.5, -0.7).

3、或门

输入信号x1 输入信号x2 输出信号y
0 0 0
1 0 1
0 1 1
1 1 1

只要有一个输入信号是1,输出就为1。

4、与门、与非门、或门的感知机构造是一样的!三个门电路只有参数的值(权重和阈值)不同。也即是相同构造的感知机,只需通过适当地调整参数的值实现转变。机器学习的过程就是将决定参数的工作交给计算机自动进行。

三、感知机实现


1、python实现逻辑电路

def and(x1, x2):
    w1, w2, theta = 0.5, 0.5, 0.7
    tmp = x1 * w1 + x2 * w2
    if tmp <= theta:
        return 0
    else:
        return 1

2、导入权重和偏置进行计算

import numpy as np
x = np.aray([0, 1])
w = np.array([0.5, 0.5])
b = -0.7
print(np.sum(w * x))
print(np.sum(w * x) + b)

3、权重和偏置实现与门

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

注:权重参数的作用是控制信号输入重要性的表示方法,而偏置是调整神经元被激活的容易程度的表示。

四、感知机的局限性


单层感知机不可以表示异或门,这里简答解释一下,感知机的局限性在于只能表示一条直线分开的空间,弯曲的曲线则无法表示,即表示线性空间而不能表示非线性空间,异或门则是曲线才能分开0和1.

五、多层感知机


1、感知机通过叠加层来表示异或门。通过与非门和或门来实现异或门。

x1 x2 s1 s2 输出信号y
0 0 1 0 0
1 0 1 1 1
0 1 1 1 1
1 1 0 1 0

2、python实现异或门

def XOR(x1, x2):
    s1 = NAND(x1, x2)
    s2 = OR(x1, x2)
    y = AND(s1, s2)
    return y
# XOR(0, 0)  # 输出0
# XOR(1, 0)  # 输出1
# XOR(0, 1)  # 输出1
# XOR(1, 1)  # 输出0

3、异或门是一种2层的神经网络结构,与门、或门是单层感知机,叠加了多层的感知机称为多层感知机。

图片说明

六、小结


1、感知机是具有输入和输出的算法。给定一个输入后,将输出一个既定的值。
2、感知机将权重和偏置设定为参数。
3、使用感知机可以表示与门、或门等逻辑电路。
4、异或门无法使用单层感知机来表示。
5、使用2层感知机可以表示异或门。
6、单层感知机只能表示线性空间,而多层感知机可以表示非线性空间。
7、多层感知机在理论上可以表示计算机。

#深度学习#
全部评论

相关推荐

xwqlikepsl:感觉很厉害啊,慢慢找
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务