【深度学习】1 感知机(人工神经元)

认识感知机
感知机接收多个输入信号,输出一个信号
感知机的信号只有“流/不流”(1/0)两种取值
0对应“不传递信号”,1对应“传递信号”。
输入信号被送往神经元时,会被分别乘以固定的权重。神经元会计算传送过来的信号的综合,只有当这个综合超过了某个界限值时,才会输出1。这也叫“神经元被激活”。界限值也叫阈值

在感知机中,“输入”也作为神经元节点,标为“输入单元”。感知机仅有两层:分别是输入层和输出层。输入层里的“输入单元”只负责传输数据,不做计算。输出层里的“输出单元”则需要对前面一层的输入进行计算。

感知机模型
【深度学习】1 感知机(人工神经元)_第1张图片

简单逻辑电路
与门(AND gate) :仅在两个输人均为1时输出1,其他时候则输出0。
与非门(NAND gate): 仅当书和同时为1时输出0其他时候则输出1。
或门:只要有一个输入信号是1,输出就为1

AND函数实现

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

b是偏置,w称为权重
偏置的值决定了神经元被激活的容易程度。
权重控制输入信号的重要性

与非门的实现

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

异或门XOR
异或门也被称为逻辑异或电路,仅当x1或x2中的一方为1时,才会输出1
用前面介绍的感知机是无法实现这个异或门的,因为异或门是非线性的而感知机只能表示由一条直线分割的空间
由曲线分制而成的空间非线性空间,由直线分割而成的空间称为线性空间
【深度学习】1 感知机(人工神经元)_第2张图片

但是可以通过叠加层实现
实现如下:

def XOR(x1,x2):
	s1= NAND(x1, x2)
	s2= OR(x1, x2)
	y= AND(x1, x2)
	return y

异或门是一种多层结构的神经网络
将最左边的列称为第0层,中间的一列称为第1层,最右边的一列称为第2层。
叠加了多层的感知机也称为多层感知机

感知机通过叠加层能够进行非线性的标识,理论上还可以标识计算机进行的处理

你可能感兴趣的:(学习深度学习,深度学习,python,机器学习)